Fix typo in the descr file which was stopping -B from working. Add B
documentation to the ack man page.
This commit is contained in:
parent
aeb9d4952d
commit
72766a02de
|
@ -185,7 +185,7 @@ name b
|
|||
to .k
|
||||
program {EM}/lib/ack/em_b
|
||||
mapflag -B* ABC_F={ABC_F?} -B*
|
||||
args -i < -o > -w {p}
|
||||
args -i < -o > -w {p} {ABC_F}
|
||||
prep cond
|
||||
rts .b
|
||||
need .b
|
||||
|
|
|
@ -11,10 +11,13 @@
|
|||
..
|
||||
.TH ACK 1 "$Revision$"
|
||||
.ad
|
||||
|
||||
.SH NAME
|
||||
ack \- Amsterdam Compiler Kit
|
||||
|
||||
.SH SYNOPSIS
|
||||
\fBack\fP arguments
|
||||
|
||||
.SH DESCRIPTION
|
||||
This program transforms sources in several
|
||||
languages to load files for a variety of machines,
|
||||
|
@ -50,6 +53,8 @@ but the following are recognized by most machines:
|
|||
Pascal program.
|
||||
.IP .c
|
||||
C module.
|
||||
.IP .b
|
||||
B module.
|
||||
.IP .bas
|
||||
Basic program.
|
||||
.IP .ocm
|
||||
|
@ -140,6 +145,12 @@ is called and just before each return \fBprocexit\fP is called.
|
|||
These routines are supplied with one parameter, a pointer
|
||||
to a string containing the name of the routine.
|
||||
|
||||
.IP \-B\fIname\fP
|
||||
Tells the B front end what the name of the module being compiled is, for use
|
||||
with separate compilation. Defaults to
|
||||
.I main
|
||||
if not specified. See the section below on compiling B.
|
||||
|
||||
.IP \-O
|
||||
.IP \-O\fInum\fP
|
||||
.IP \-O\fIopt1,opt2,...\fP
|
||||
|
@ -309,6 +320,7 @@ Sparc, Vax, Intel 80386.
|
|||
.PP
|
||||
All arguments without a suffix or with an unrecognized suffix
|
||||
are passed to the loaders, as for flags.
|
||||
|
||||
.SH PREPROCESSOR
|
||||
All C source programs are run through the preprocessor
|
||||
before they are fed to the compiler proper.
|
||||
|
@ -336,6 +348,43 @@ As the ANSI C rules forbid this, in ANSI C, underscores are prepended to
|
|||
these names.
|
||||
.PP
|
||||
The default directories searched for include files differ for each machine.
|
||||
|
||||
.SH COMPILING B
|
||||
|
||||
B programs have special needs when compiled with the ACK. B modules have to be
|
||||
initialised before use, to convert pointer addresses to word addresses; this is
|
||||
done automatically when compiling a single B source file to an executable, but
|
||||
must be done manually when using separate compilation.
|
||||
|
||||
.PP
|
||||
To do this, compile your B modules with the \fI-B\fP option as usual, and then
|
||||
use the
|
||||
.B abmodules
|
||||
program to scan the object files and emit a C file which performs the
|
||||
initialisation. Then compile this as well into an object file, and link the
|
||||
whole lot together. The result will be a runnable executable.
|
||||
|
||||
.PP
|
||||
Beware --- referring to an uninitialised module will cause your program to
|
||||
crash!
|
||||
|
||||
.PP
|
||||
The default initialiser in the B standard library looks for a module called
|
||||
\fBmain\fP.
|
||||
|
||||
.PP
|
||||
For example:
|
||||
|
||||
.nf
|
||||
.sp
|
||||
ack -c -mpc86 thismodule.b -Bthismodule
|
||||
ack -c -mpc86 thatmodule.b -Bthatmodule
|
||||
ack -c -mpc86 theothermodule.b -Btheothermodule
|
||||
abmodules -o binit.c thismodule.o thatmodule.o theothermodule.o
|
||||
ack -c -mpc86 binit.c
|
||||
ack -mpc86 -o pc86.exe thismodule.o thatmodule.o theothermodule.o binit.o
|
||||
.fi
|
||||
|
||||
.SH PROGRAMS
|
||||
\fIAck\fP uses one or more programs in each phase of the
|
||||
transformation.
|
||||
|
@ -372,6 +421,7 @@ input:name:output:description
|
|||
\&.o:cv:a.out:Conversion from Ack object to machine object
|
||||
.TE
|
||||
.in -2
|
||||
|
||||
.SH "ENVIRONMENT VARIABLES"
|
||||
.IP ACKDIR
|
||||
If set, this environment variable overrides ack's idea of its home
|
||||
|
|
Loading…
Reference in a new issue