objc man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



     objc(1)	       UNIX System V (Oct 29, 1997)	       objc(1)

     NAME
	  objc - Portable Object Compiler

     SYNOPSIS
	  objc [ options ] file ...

     DESCRIPTION
	  objc is a compiler for compiling Objective C objects into C,
	  or directly into a binary object file (by automatically
	  invoking an external C compiler).

	  Command line options that are not recognized by objc are
	  passed on to cc(1).

	  -boehm

	       The preferred interface to turn on garbage collection,
	       is to use the -gc flag (which currently is equivalent
	       to -boehm).

	       -boehm links against objcrtgc.a which is a version of
	       the runtime library, compiled with -DOBJCRT_BOEHM.
	       This option also adds the library gc.a (a mark-and-
	       sweep garbage collector, needs to be installed for this
	       option to work) to the list of libraries that are
	       automatically linked into the program.

	  -Bprefix

	       Use prefix as prefix for the bin, include and lib
	       directories when searching for binaries, include files
	       and libraries.  The default prefix is set to the
	       installation directory (e.g. /usr/local).  The
	       environment variable OBJCDIR overrides the default, and
	       this option can be used to override the value of the
	       environment variable, on the command line.

	  -c	Produce a .o file but do not link.  Equivalent to -Fo.

	  -C	When used with the -E option, this option will
	       preserve comments in the preprocessed code.  Otherwise,
	       this option is equivalent to -Fi, i.e. generate C code,
	       by translating Objective C into C, but do not run the C
	       compiler to produce a .o file.

	  -check

     Page 1					     (printed 6/28/99)

     objc(1)	       UNIX System V (Oct 29, 1997)	       objc(1)

	       Implemented for the binary driver objc.exe only.
	       Forces the driver to print a command whenever it is
	       supposed to invoke some tool using a system() call.
	       Commands are simply printed, they are not executed.
	       This is the default configuration of the Macintosh MPW
	       driver.

	  -cplus

	       Use the C++ compiler instead of the C compiler to
	       compile the output of objc1. The driver will
	       automatically select this mode objcpls1 for files
	       ending with a .cc or .mm suffix (C++ files or
	       Objective-C compiled by C++ respectively).

	  -cthreads

	       Link against the runtime library objcrtth.a which is a
	       thread-safe version of the objcrt.a runtime library
	       (compiled with -DOBJCRT_CTHREADS).

	  -dl	Combine a number of object files into a dynamic
	       module, to be loaded by dlopen() or similar, into a
	       running Objective-C program.   This option makes sure
	       the necessary code is generated to automatically
	       initialize Objective-C classes that are loaded into the
	       program.

	  -dollars

	       Passes flags to the C compiler to allow dollar
	       characters in identifiers.  Only tested with GNU C.

	  -dynamic

	       Must be specified to link a program that will load
	       dynamic modules (modules that are built with -dl).
	       Attempts to link against objcrt.so and objpak.so shared
	       runtime libraries, if those libraries can be found.

	       -dynamic passes on -noShared to the stage 1 compiler
	       and registers the function _objcInitNoShared as runtime
	       initialization function.	 This is strictly speaking not
	       needed on UNIX, but essential when using DLLs on
	       Windows, so it is done on all platforms.

	       In addition, -dynamic causes on some platforms to link

     Page 2					     (printed 6/28/99)

     objc(1)	       UNIX System V (Oct 29, 1997)	       objc(1)

	       against the necessary libraries that define dynamic
	       linking functions.  For example, on Linux it adds a
	       -rdynamic flag.	On HP-UX it passes a -E flag to the
	       link editor.  On Windows, (with the WATCOM driver), it
	       adds a -br flag to use the DLL versions of the WATCOM
	       runtime.

	  -E	Preprocess input and write output to the stdout.

	  -Fletter

	       Stop at the compilation stage specified by letter.
	       Letter can be one of o (-Fo is equivalent to -c), or
	       other file suffixes such as i,c,j etc.

	  -gc	Turn on garbage collection.  Client programs compiled
	       with this flag use +new to allocate objects (as usual),
	       but do not have to send a -free message to destroy
	       objects.

	  -g	Produce debugging symbols and attempts to link against
	       objcrt_g.a and objpak_g.a runtime libraries with debug
	       information, if they can be found. Since objc is also
	       emitting by default linetags that refer to the original
	       source file, it is possible to step through the code
	       using any C debugger.

	  -help

	       Print overview of compiler switches.

	  -i	Generate a TDF capsule (.j file) for use with the tcc
	       compiler and do not link.  Equivalent to -Fj.

	  -Idir

	       Add dir to the search path for include files.

	  -inlinecache

	       Generate inline cache code for calls to _imp()
	       messenger.  The inline cache messenger associates to
	       each message expression its own cache, and will in many
	       cases bypass the default objcrt messenger.

     Page 3					     (printed 6/28/99)

     objc(1)	       UNIX System V (Oct 29, 1997)	       objc(1)

	       It is safe to use this option to produce binary
	       libraries of objects; the libraries can later be used
	       both from within programs that are compiled either with
	       or without the -inlinecache option.

	  -import

	       Pass flags to the C preprocessor to do the traditional
	       Objective-C constructs # import and // on which we
	       usually don't depend.  Note that it's also possible to
	       set the environment variable CPP to a preprocessor
	       that's newline-terminated-comments capable, or to use
	       the cvtimport(1) utility so that the flag is not
	       needed.

	  -jfoo

	       Find and add a TDF library foo.tl.

	  -Jdir

	       Add dir to the search path for TDF libraries.

	  -lfoo

	       Find and add a library libfoo.a (or corresponding
	       shared library, depending on the system).

	  -Ldir

	       Add dir to the search path for libraries.

	  -main function

	       Emit runtime initialization code as first statement in
	       function. The default function name is main, but this
	       can be changed using this option if it's not desirable
	       for some reason to compile the main() function using
	       objc.

	  -mpwtool

	       Macintosh specific.  Generates an MPW tool.  Sets
	       creator type to the MPW type and adds the libraries
	       defined in the environment variable OBJCMPWLIBS.

     Page 4					     (printed 6/28/99)

     objc(1)	       UNIX System V (Oct 29, 1997)	       objc(1)

	  -noBlocks

	       Define the preprocessor symbol OBJC_BLOCKS as 0 (by
	       default the symbol is defined as 1), and make the
	       parser refuse to parse Objective-C blocks.  See the
	       documentation of the Block class for more information.

	  -noCache

	       Turn off global Objective C messenger cache.  This
	       option can be used with -inlineCache.  Sets the objcrt
	       variable noCacheFlag to 1.  The program can selectively
	       turn on caching by setting the variable to 0.

	  -noI	Do not search header files in the directories of the
	       runtime (objcrt) and of the collection class library
	       (objpak).

	  -noLibs

	       Do not link against the runtime (objcrt) and the
	       collection class library (objpak).

	  -noNilRcvr

	       Messages to nil, the NULL Object, are handled by the
	       nilHandler funtion.  This option registers a handler
	       that aborts the process.

	  -noCategories

	       Do not allow (parse) categories.	 It is still possible
	       to use the method addMethodsTo: instead.

	  -noFiler

	       Do not automatically link the AsciiFiler into the
	       program.	 Do not automatically generate filer code for
	       class implementations.  See the documentation on the
	       show, storeOn and readFrom methods, and the AsciiFiler
	       class, for more information.

	  -noFwd

	       Generate code for, and calls to, the traditional C

     Page 5					     (printed 6/28/99)

     objc(1)	       UNIX System V (Oct 29, 1997)	       objc(1)

	       messenger, _imp(), instead of calls to our forwarding C
	       messenger, fwdimp().  Programs compiled with -noFwd
	       compile faster and are significantly smaller in
	       executable size, but cannot make use of Object's
	       doesNotUnderstand:  method.   Libraries and object
	       files compiled with, or without, -noFwd can be freely
	       mixed, but message forwarding will only work for those
	       classes that were compiled with message forwarding
	       turned on.

	  -noPostlink

	       Allows to generate code for auto-init with compilers
	       that are configured to generate by default code for
	       postlink.

	  -noSelfAssign

	       Do not allow self as left hand side in an assignment.
	       This is related to the use of instance variables in
	       factory methods.

	  -noTags

	       Suppress generation of line tags in temporary files.
	       Normally, line tags as expected by the C compiler are
	       generated to indicate the line numbers of the original
	       source, so that diagnostics will be issued against the
	       Objective C source, not against the generated C output.

	  -nostdinc

	       Do not search header files in the standard include
	       directories.  This option is system specific, i.e. must
	       be supported by the cpp(1) preprocessor that is being
	       used; it differs from the -noI option.

	  -O	Enable the optimizer.  Whether it is possible to
	       specify both -g and -O depends on the C compiler that
	       is being used.

	  -oneperfile

	       Allow only one class implementation per compilation
	       unit, as the original Stepstone compiler does.  The

     Page 6					     (printed 6/28/99)

     objc(1)	       UNIX System V (Oct 29, 1997)	       objc(1)

	       compiler will generate slightly different structures
	       when this flag is used.	The runtime is properly
	       initializing both code variants, and binary object
	       files compiled with or without this flag can be linked
	       into the same program.

	  -objc

	       Treat files ending with .c as Objective C source files.
	       Normally, files ending with a .m are assumed to be
	       Objective C files, and .c files are assumed to contain
	       plain C.

	  -otb	Use object tables.  This option causes the compiler to
	       generate code that uses a double indirection for Object
	       identifiers (handles, instead of pointers).  It also
	       links against runtime libraries called otbcrt.a and
	       otbpak.a, because modules or libraries compiled with
	       the -otb switch cannot be mixed with modules that were
	       compiled without this option.

	  -pg	Produce profiling information for use by gprof.

	  -pic	Generate position independent code (PIC) on systems
	       that support it, for building shared libraries.	On
	       some systems, this option translates to -fpic, on other
	       systems (e.g. HP-UX) it is equivalent to +z.

	  -ppi	Include a set of compatibility header files in the
	       default include path (for compatibility with Stepstone
	       ICpak101). Also, allow classes to be defined using 3.x
	       Productivity Products International syntax.  This is
	       used for compiling Brad Cox' Smalltalk to Objective-C
	       translator.  Implementations of classes start with '='
	       instead of the usual @implementation keyword.
	       Superclasses still need to be declared with an
	       @interface part, but the class that is being defined,
	       itself, does not need an interface par t.

	  -postlink

	       Generate code for postlink. The default is not to do
	       this.  If you compile with this option on, you cannot
	       combine object files for Objective C source with the
	       usual link editor ld. Instead, if you use -postlink,
	       you will be using our postlink (1) link editor

     Page 7					     (printed 6/28/99)

     objc(1)	       UNIX System V (Oct 29, 1997)	       objc(1)

	       processor, which does additional processing after
	       linking.	 Programs compiled with postlink use a
	       somewhat faster objcrt initialization, at the expense
	       of longer link times.  Use the combination of the flags
	       -postlink and -retain to produce a file _postlnk.c that
	       contains a list of all the Objective C modules that are
	       linked into your program.

	  -prod

	       Combine target independent independent TDF capsules
	       into a TDF archive (a .ta file).	 This option is passed
	       on to the tcc (1) compiler, the archive name can be set
	       with -o.	 The resulting platform independent .ta file
	       can be specified on the command line as an ordinary .a
	       file.

	  -pthreads

	       Link against the library libpthreads.a and the runtime
	       library objcrtth.a which is a thread-safe version of
	       the objcrt.a runtime library (compiled with
	       -DOBJCRT_PTHREADS).

	  -quiet

	       Disable copyright notice.  Same as -q.

	  -retain

	       Do not remove intermediate C files.  Normally,
	       intermediate C code files are removed after objc has
	       made the C compiler compile them.

	  -refcnt

	       Generate code for reference counting.  Assignments of
	       object variables are translated towards calls to the
	       idassign() function and code to increment and decrement
	       reference counts is emitted for each compound
	       statement.  Only variables of type id are being
	       controlled by this option.

	  -sioux

	       Macintosh specific.  Generates a SIOUX tool.  Adds the

     Page 8					     (printed 6/28/99)

     objc(1)	       UNIX System V (Oct 29, 1997)	       objc(1)

	       libraries defined in the environment variable
	       OBJCSIOUXLIBS.

	  -static

	       On systems that support dynamic linking and the -static
	       compiler flag, this prevents linking with shared
	       libraries.

	  -Tprefix

	       Use prefix as prefix for temporary files (such as .P,
	       .c, .i files) that are generated by the precompiler.
	       For example, -T/scratch/ (note the trailing slash) will
	       place files in the /scratch directory.  Alternatively,
	       the environment variable TMPDIR can be used to specify
	       the directory that should be used.

	  -undef

	       Undefine all built-in C preprocessor symbols.  This
	       option is system specific, i.e. must be supported by
	       the cpp(1) preprocessor that is being used.

	  -unbuf

	       Run objc1 in unbuffered output mode.  The default is to
	       use block buffering.  Unbuffered output mode is useful
	       for debugging code generation of the precompiler.

	  -version

	       Print version of compiler and quit.

	  -v	Print commands that are being executed by the driver
	       script.	Same as -verbose.

	  -verbose

	       Print commands that are being executed by the driver
	       script.	Equivalent to -v.

	  -w	Suppress all warnings.

     Page 9					     (printed 6/28/99)

     objc(1)	       UNIX System V (Oct 29, 1997)	       objc(1)

	  -Wletter,option

	       Add option to the list of options passed to the tool
	       identified by letter.  Letter can be l for the link
	       editor, c for the C compiler, p for the C preprocessor,
	       or o for the stage 1 Objective C compiler.  For
	       example, -Wp,-x passes the option -x to cc when it is
	       called with the -E flag to do preprocessing.

	  -wClassUsedAsType

	       Suppress warnings when class names are used as types.
	       The compiler will translate pointers to classnames to
	       "id".

	  -wUndefinedMethod

	       Suppress warnings for methods that are not prototyped.
	       The compiler will assume that the return value and
	       argument types of such methods is "id".

	  -Wall

	       Passed on the GNU C compiler for enabling compiler
	       warning messages.

	  -xstr strings

	       Run the (modified) BSD program xstr(1) after running
	       the Objective C compiler.  This option can somewhat
	       reduce the size of Objective C selector tables of the
	       executable ( xstr will extract selector strings out of
	       the translated Objective C sources, assemble the
	       strings in a file called "strings", and will cause the
	       runtime to use a single, shared table of strings).
	       This could also speed up runtime initialization as
	       selectors don't have to be uniqued anylonger at
	       startup.

	  -Yenv

	       Use the specified environment.  This is for the TenDRA
	       tcc compiler.  Valid values are -Yansi, -Yposix,
	       -Yunix95 etc.

     ENVIRONMENT

     Page 10					     (printed 6/28/99)

     objc(1)	       UNIX System V (Oct 29, 1997)	       objc(1)

	  The most useful environment variable for setting options for
	  objc is probably OBJCOPT.  It was introduced in version
	  1.3.7 of the compiler (port to Windows95).  The environment
	  variable OBJCDIR is kept for backward compatibility with
	  older compilers.

	  OBJCOPT

	       The environment variable OBJCOPT can hold a list of
	       options that is always prepended to the command line
	       arguments of objc.
	       For example, on UNIX, using the ksh shell :

		    export OBJCOPT="-q -B$HOME/objc1.1.1"

	       This would set the top location of the distribution,
	       and would, in addition, always suppress copyright
	       messages.  On Windows95, the syntax is :

		    set OBJCOPT=-q -B\objc

	  OBJCDIR

	       This variable can hold the top location of the objc
	       distribution.  For example:

		    for ksh: export OBJCDIR="$HOME/objc1.1.1"

		    for csh: setenv OBJCDIR "$HOME/objc1.1.1"

	       $OBJCDIR/bin and $OBJCDIR/man can be added to $PATH and
	       $MANPATH respectively.

	  OBJCPATHSEP

	       This environment variable, if set, is a string that
	       will be used as path separator instead of the default
	       separator.  Applies to both objc and objc1.

	  TMPDIR

	       If set, temporary files will be placed in this
	       directory.  The -T option overrides the value set by
	       TMPDIR.

     Page 11					     (printed 6/28/99)

     objc(1)	       UNIX System V (Oct 29, 1997)	       objc(1)

	  CC	The environment variable CC can optionally hold the
	       name of a C compiler that is used to compile
	       intermediate C files.

	  CPP	The environment variable CPP can optionally hold the
	       name of a C preprocessor that is used to preprocess
	       Objective-C input.  The driver is normally configured
	       with a default value.

	  CPPFILTER

	       The environment variable CPPFILTER can optionally hold
	       the name of a C program that is to be ran after the C
	       preprocessor.  The tool will be invoked with two
	       arguments : the name of the input file, and the name of
	       the output file.

	  OBJCRTMSG

	       This environment variable is not strictly related to
	       the compiler, but rather used by the runtime and hence,
	       by all Objective-C programs.  It can be set to either
	       stderr or a filename to which messages should be
	       logged.	For every message, class of the receiver and
	       name of the selector are printed on a line.  This file
	       can quickly become very large; it is block buffered,
	       unless OBJCRTDBG is set, in which case it is line
	       buffered.

	  OBJCRTDBG

	       Like OBJCRTMSG, this variable is consulted by the
	       runtime.	 It can be set to either stderr or a filename
	       to which messages of the dbg() function should be
	       logged.	If this variable is set, output for OBJCRTDBG
	       and OBJCRTMSG is line buffered.

     BUGS
	  Send bug reports to objc-bugs@cys.de.	 Also see the
	  objc-users mailing list (subscribe by sending email to
	  objc-users-request@cys.de).

     SEE ALSO
	  cc(1), postlink(1), cvtimport(1)

     Page 12					     (printed 6/28/99)

     objc(1)	       UNIX System V (Oct 29, 1997)	       objc(1)

     Page 13					     (printed 6/28/99)

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net