.if n .pH port.chap04 @(#)chap04	40.4
.\" Ps = POSTSCRIPT
.\" Sd = X11/NeWS
.\" Cs = CSCRIPT
.\" At = AT&T SVR4.0
.\"
.ds Ps P\s-2OST\s+2S\s-2CRIPT\s+2
.ds Sd \s-2Ne\h'-0.2n'WS\s+2
.ds Cs \CS\s-2CRIPT\s+2
.ds At "AT&T SVR4.0
.BK "Porting the X11/NeWS Server"
.CH "Development Tools" 4
.H 1 "Development Tools" 
.H 2 "Introduction"
.P
The development tools needed to port \*(Sd include:
.BL
.LI
\f(CWace\fP
.LI
\f(CWbsdinstall\fP
.LE
.P
The development environment for \*(Sd involves the use of several tools
which make porting much simpler.  These tools cover
code generation (\f(CWace\fP) through
installation (\f(CWbsdinstall\fP).  
.P
These tools are built and installed into
.UI ~/tools .
This directory should be made part of your
.UI PATH .  
See 
.UI ~/setup
for an example.
.H 2 "\f5ace\fP"
.UI ace
is a C preprocessor that works on abstract syntax trees instead
of tokens or characters like the standard C preprocessor.
.UI ace
is used in
conjunction with \f(CWcpp\fP to do a high level optimization pass on
the source code of several time critical modules in Shapes.
.UI ace
is used
to perform semi-automatic loop unrolling, loop invariant movement and
code re-ordering on a larger scope than that taken by most optimizing
compilers.  See the
.UI ace
manual in 
.UI ~/tools/src/ace/ace.ps
for more information.  The source for the command is located in 
.UI \~/tools/src/ace .

.H 2 "\f5bsdinstall\fP"
.UI bsdinstall
is provided for use on systems which do not provide an 
.UI install
command with Berkeley semantics.  In particular, AT&T Unix SVR3
provides a program named 
.UI install
which uses different command line flags
than the Berkeley version.  Rather than hard code 
.UI chmod()
and 
.UI chown()
calls in the 
.UI Makefiles , 
the 
.UI install
or 
.UI bsdinstall
command is used.  See also the file
.UI ~/Master.cfg .
.P
The version of 
.UI install
provided with \*(At uses the BSD semantics, so
.UI bsdinstall
is not needed in this environment.
The source for the command is located in 
.UI ~/tools/src/bsdinstall



