BCC(1)

NAME
bcc - Bruce's C compiler

SYNOPSIS
bcc [-03EGOPSVcegv] [-Aas_option] [-Bexecutable_prefix] [-Ccc1_option] [-Ddefine] [-Iinclude_dir] [-Lld_option] [-Qc386_option] [-Ttmpdir] [-Uundef] [-o outfile] [-fpt error] [ld_options] [infiles]

DESCRIPTION

  Overview
Bcc is a simple C compiler suitable for generating 8086 or 80386 code. It basically understands the old K&R C input syntax, with some restrictions on bit fields. It interacts with the programs as86(1) and ld86(1).

As a compile-time option, it is also possible to convince bcc to generate code for the Motorola 6809 CPU.

  Options
-0  (the digit 0) 8086 target (works even on 80386 host)
-3  80386 target (works even on 8086 host)
-A  pass remainder of option to assembler; e. g. ‘-A-l -Alistfile’ for a listing
-B  prefix for executable search path; the search order is all paths specified using -B, in order, then the path given in the environment variable BCC_EXEC_PREFIX if that is set, then the compiled-in defaults /usr/local/lib/bcc, followed by /usr/local/bin
-C  pass remainder of option to bcc-cc1; e. g. ‘-C-c’ for caller-saves
-D  define
-E  produce preprocessor output
-G  produce gnu-Minix objects (link with gnu ld)
-I  include search path
-L  pass remainder of option to linker
-O  optimize (does nothing)
-P  produce preprocessor output with no line numbers
-Q  pass full option to c386
-S  produce assembler file
-T  temporary directory; overrides previous value and default; default is from the environment variable TMPDIR if that is set, otherwise /tmp
-U  undefine
-V  print names of files being compiled
-c  produce object file
-e  run the preprocess pass separately. This takes less memory, and may help or harm by giving more traditional semantics like token pasting with ‘/**/’ .
-f  error (float emulation not supported)
-g  produce debugging info (does nothing)
-o  output file name follows (assembler, object or executable)
-p  error (profiling not supported)
-t  error (substitution of some cc passes not supported)
-v  print names and args of subprocesses being run.

    Two or more -v 's: print names of files being unlinked.

    Three or more -v 's: print names of paths being searched.

The 6809 version does not support -0, -3 or -G.

Only the c386 version supports -Q.

  Defaults
Off or none except for these:
-0 | -3
    native, i. e. 80386
outfile
    stdout for preprocessor output

    somewhere/file.[ci] -> file.s for compiler output

    somewhere/file.[cis] -> file.o for assembler output

    a.out for ld output

Other options are passed to the linker, in particular -i-, -lx, -M, -m, -s. The -i option is always passed to the linker but can be cancelled using -i-.

ENVIRONMENT
BCC_EXEC_PREFIX
    directory to search for compiler passes
TMPDIR
    where to place temporary files

SEE ALSO
as86(1), bcc-cc1(1), cc(1), ld86(1)

AUTHORS
This program has been written by Bruce Evans.