
    This directory contains the source and executable of my "cc" program,
a UNIX-like driver program for Manx Aztec C for the Amiga.

    cc compiles up to 32 each of C source files (.c extension), assembly
source files (.a extension) and object files (.o extension) into an
executable file named by the first source file in the argument list.
For example, "cc prog.o asmsrc.a csrc.c" produces an executable called 
"prog" from compiling csrc.c, assembling asmsrc.a and linking them to prog.o.

FEATURES

        The textual outputs of the compiler, assembler, and linker are
        filtered to remove the "Hello, I am the Manx C Compiler" type
        of messages, which some people find to be uselessly annoying.

        cc is configurable to put intermediate and library files in ram:, for
        faster compiles.  The cc program automatically moves the needed
        library files (and always moves the standard c.lib) to ram: the
        first time they are required, and then leaves them there to make
        subsequent compiles faster.

        Default options are used for larger string tables and more
        expression space than Manx's defaults.

        The program responds to CTRL-C breaks from the CLI.

INSTALLATION

    First, to avoid conflicts with this cc and the cc that Manx supplies,
    which is the actual C compiler, rename Manx's cc as ccom --

    rename c:cc c:ccom

    cc expects "ccom", "as" and "ln" to be in the c: directory.
    Next, the cc program expects certain environment variables to be set:

    ML        Set to the directory where your library files,
            such as c.lib, m.lib, c32.lib, heapmem.o and m32.lib,
            are kept

    CLIB    Set to the directory where you want library files to be
            while they are being used for the compile.  If you have
            enough memory, set it to ram:, otherwise make sure it
            is set to the same directory as ML.
            The files will "stick" to where they are put during the
            first compile, so they will not have to be copied over
            again if you recompile later.

    DOC        (optional) Set to the directory where the "cc.doc" file
            is kept.  This is the file that is displayed by the
            more program when cc is invoked by "cc ?".  If you
            don't want to use the more program, you can just
            rename c:type as c:more.  If there is no more program
			at all, cc will just complain and quit.

    INCLUDE    Set to your include directory of header files,
	        as specified and provided by Manx.
			(Note that cc also searches in a directory called
            INCLUDE/manx, where I have the standard C language headers
            like math.h and stdio.h (analogous to the way Lattice does
			it).  Manx just leaves these scattered in the INCLUDE directory,
			which is searched first anyway, so "theoretically," you shouldn't
			have to worry about not having the manx subdirectory.)

    CCTEMP    Set as specified by Manx.

    To provide an example, here are a few relevant lines from my own
    startup-sequence:

assign mc: hard:ccom/manx
makedir ram:_ccom
set CCTEMP=ram:_ccom/ INCLUDE=mc:include CLIB=ram:_ccom/ ML=mc:lib/ DOC=mc:src/

    My directory hard:ccom/manx contains the directories include (header
    files), lib (library files) and src (source for cc and cc.doc).
    I set up a directory called ram:_ccom in which to put all of
    the compiler's temporary files and the library files.
    Please note that when you set INCLUDE, leave off the trailing slash,
    but always provide it for the other directory named not ending in :.
    Two extra examples:

    If I wanted to leave library files on disk, I would have used

set CCTEMP=ram:_ccom/ INCLUDE=mc:include CLIB=mc:lib/ ML=mc:lib/ DOC=mc:src/

    and if I wanted the compiler's files to be put on disk, I might have used

set CCTEMP=hard: INCLUDE=mc:include CLIB=mc:lib/ ML=mc:lib/ DOC=mc:src/

    If you are trying to use Aztec C with only 256K, you might try that,
    but I wouldn't recommend it otherwise, especially if you don't
    have a hard disk.

OPTIONS

	Options must be separated, and not combined into one string; use
	"cc -p -c", not "cc -pc".  Most options are as defined by Manx;
    these are explained in the Manx manuals and in the cc.doc file.
    Note however, that the linker uses some of the same options as
    the compiler.  I have resolved this problem by making those options
    case sensitive, so beware.  See the cc.doc file for details.

    The following options have been added or changed:

    -p    Just print the actions to be done, but don't do them.  This shows
        you what you would have had to type yourself, if you didn't
        have this program.

    -s    This is simply the reverse from the way it is documented by Manx;
        it causes warning messages to be printed instead of inhibiting
        them.  It also inhibits the assembly and link phases of
        compilation, so you can use cc -s to quickly check over
        for minor problems, similar to how you might use a lint program.

	Also, note that you may put options and filenames in the command
	line in any order; cc figures out what to do with them.

                                    Jay Ts
                                    Box 890
                                    West Oneonta NY 13861
                                    607/432-4836

The program, both executable and sources, are Copyright 1986, Jay Ts.
You may copy, distribute, alter, and use them, but absolutely no
permission is granted to remove copyright notices from them or distribute
them, in whole or in part, as, or as part of, a commercial product.
