summaryrefslogtreecommitdiffstats
path: root/upstream/archlinux/man5/makefiles.5
diff options
context:
space:
mode:
Diffstat (limited to 'upstream/archlinux/man5/makefiles.5')
-rw-r--r--upstream/archlinux/man5/makefiles.51975
1 files changed, 1975 insertions, 0 deletions
diff --git a/upstream/archlinux/man5/makefiles.5 b/upstream/archlinux/man5/makefiles.5
new file mode 100644
index 00000000..b8a7bd7b
--- /dev/null
+++ b/upstream/archlinux/man5/makefiles.5
@@ -0,0 +1,1975 @@
+. \" @(#)makefiles.4 1.7 09/04/11 Copyr 1996 J. Schilling
+. \" User Manual page for makefile system
+. \"
+.if t .ds a \v'-0.55m'\h'0.00n'\z.\h'0.40n'\z.\v'0.55m'\h'-0.40n'a
+.if t .ds o \v'-0.55m'\h'0.00n'\z.\h'0.45n'\z.\v'0.55m'\h'-0.45n'o
+.if t .ds u \v'-0.55m'\h'0.00n'\z.\h'0.40n'\z.\v'0.55m'\h'-0.40n'u
+.if t .ds A \v'-0.77m'\h'0.25n'\z.\h'0.45n'\z.\v'0.77m'\h'-0.70n'A
+.if t .ds O \v'-0.77m'\h'0.25n'\z.\h'0.45n'\z.\v'0.77m'\h'-0.70n'O
+.if t .ds U \v'-0.77m'\h'0.30n'\z.\h'0.45n'\z.\v'0.77m'\h'-.75n'U
+.if t .ds s \(*b
+.if t .ds S SS
+.if n .ds a ae
+.if n .ds o oe
+.if n .ds u ue
+.if n .ds s sz
+.\".TH makefiles 4L "14. February 1997" "J\*org Schilling" "Schily\'s FILE FORMATS"
+.TH makefiles 4L "14. February 1997" "J\*org Schilling" "GMD FOKUS FILE FORMATS"
+.SH NAME
+makefiles \- users guide for compiling projects on different platforms
+.SH SYNOPSIS
+.B "make [target]
+.br
+.B "gmake [target]
+.br
+.B "smake [target]
+.br
+.PP
+Target may be one of:
+.TP 10
+\&.help
+to get a list of possible targets and a short description.
+.TP
+all
+to make the default targets
+.TP
+install
+to make and install the default targets
+(see
+.IR INS_BASE " and " INS_KBASE
+to learn how to modify the installation path).
+.TP
+ibins
+to make and install a target in
+.I SRCROOT/bins
+.TP
+depend
+to re-make dependency rules for all default targets.
+Note: All dependency files will automatically remade
+on the next run of make before they are included.
+.TP
+clean
+to remove
+.I core
+files and all intermediate object files.
+.TP
+clobber
+to remove the targets from
+.IR clean ,
+all dependency files and all final targets
+.TP
+distclean
+to remove the targets from
+.IR clean " and " clobber
+and all made files for all architectures.
+.TP
+tags
+to make
+.IR vi (1)
+compatible tags
+.TP
+TAGS
+to make
+.IR emacs (1)
+compatible tags
+.TP
+config
+reserved for future use.
+.TP
+rmtarget
+to remove the default target
+.TP
+relink
+to remove the default target and remake it immediately. This can be
+used to change .e.g LD_RUN_PATH in the executable.
+
+.SH DESCRIPTION
+Makefiles is a set of rules that allows compiling of structured
+projects with small and uniformly structured makefiles.
+All rules are located in a central directory.
+Compiling the projects on different platforms can be done
+simultaneously without
+the need to modify any of the makefiles that are located
+in the projects directories.
+.PP
+Makefiles is a set of high level portability tools superior to
+.B autoconf
+and easier to use.
+.PP
+Three make programs are supported:
+.IR "Sunpro make" ,
+.I "GNU make"
+and
+.IR smake .
+.PP
+.I BSDmake
+could be supported if it supports pattern matching rules correctly.
+.PP
+The main design goal was to have a set of small and easy to read
+makefiles, each located in the project's leaf directory and therefore
+called
+.IR leaf -makefile.
+.PP
+Each of these
+.IR leaf -makefiles,
+in fact contains no rule at all. It simply defines some macros
+for the
+.IR make -program
+and includes two files from a central make rule depository.
+The included files and the files that are recursively included
+define the rules that are needed to compile the project.
+.PP
+Each
+.IR leaf -makefile
+is formed in a really simple way:
+.TP
+\(bu
+It first defines two macros that define the relative location
+of the project's root directory and the name of the directory
+that contains the complete set of of rules and then includes
+the rule file
+.I rules.top
+from the directory that forms the central rule depository.
+You only have to edit the macro
+.I SRCROOT
+to reflect the relative location of the project's root directory.
+.TP
+\(bu
+The next part of a
+.IR leaf -makefile
+defines macros that describe the target and the source.
+You can only have one target per
+.IR leaf -makefile.
+Of course, there may be many source files, that are needed to create
+that target.
+If you want to make more than one target in a specific directory,
+you have to put more than one makefile into that directory.
+This is the part of a makefile that describes a unique target.
+Edit this part to contain all source files, all local include files
+and all non global compile time flags that are needed for your target.
+For a typical target this is as simple as filling in a form.
+.TP
+\(bu
+Each
+.IR leaf -makefile
+finally includes a file from the rules directory that contains
+rules for the appropriate type of target that is to be made
+from this
+.IR leaf -makefile.
+.PP
+The makefile in each directory has to be called
+.IR Makefile .
+If you want to have more than one makefile in a specific directory,
+you have to choose different names for the other makefiles.
+.PP
+There are rules for the following type of targets:
+.TP 20
+commands
+The make rules for user level commands like
+.IR cat ", " ls
+etc. are located in the file
+.I rules.cmd
+.TP
+drivers
+The make rules for device drivers
+are located in the file
+.I rules.drv
+.TP
+libraries
+The make rules for non shared libraries
+are located in the file
+.I rules.lib
+.TP
+shared libraries
+The make rules for shared libraries
+are located in the file
+.I rules.shl
+.TP
+localized files
+The make rules for localized files
+are located in the file
+.I rules.loc
+.TP
+nonlocalized files
+The make rules for non localized files
+are located in the file
+.I rules.aux
+.TP
+shell scripts
+The make rules for shell scripts (a variant of localized files)
+are located in the file
+.I rules.scr
+.TP
+manual pages
+The make rules for manual pages (a variant of localized files)
+are located in the file
+.I rules.man
+.TP
+diverted makefiles
+The make rules for projects that need to have more than
+one makefile in a specific directory
+are located in the file
+.I rules.mks
+It contains a rule that diverts to the listed sub makefiles.
+Each sub makefile may be of any type.
+.TP
+directories
+The make rules for sub directories
+are located in the file
+.I rules.dir
+
+.SH "Macros/Variables Used In Rules
+.PP
+The following is a description of the most important macros
+used within the make rules.
+.I NOTE:
+not all of them might be changed in a specific makefile.
+Carefully read the description and change only those macros
+that are intended to be used to change the behavior of
+the compilation.
+
+.TP 13
+ARCHDIR
+contains the location where object files and make targets will be placed.
+A typical name would be:
+.I "OBJ/sparc\-sunos5\-cc
+.br
+Do not change this macro.
+.
+.TP
+ASFLAGS
+The flags that are used with the assembler.
+.br
+Do not change this macro.
+.
+.TP
+ASMFILES
+a list of assembler source files, to be specified in a
+leaf makefile.
+.
+.TP
+ASOPTS
+The internal macro that contains the flags for the assembler.
+Change this macro if you want to change the behavior.
+Use:
+.B "ASOPTS= value"
+If you want to override the default value. If you want to
+override the default assembler flags from the command line
+call:
+.B "make 'ASOPTS=value'"
+Use:
+.B "ASOPTS += value"
+If you want to add flags to the default value from within a makefile.
+.
+.TP
+ASOPTX
+may be used if you want to add flags to the assembler flags from the
+command line. Use:
+.B "make 'ASOPTX=value'
+.
+.TP
+C_ARCH
+this macro contains the c-compiler architecture name.
+.br
+Do not change this macro.
+.
+.TP
+CCOM
+This macro may be used from the command line to use a different
+c-compiler than the default.
+Use:
+.B "make 'CCOM=gcc'
+to use
+.I gcc
+for the next run.
+Note: The value of
+.I CCOM
+must not necessarily be identical to the real name of the c-compiler.
+It refers to a filename which contains the definition for that
+c-compiler. This hint applies as well to all other macros that deal with
+the name of the c-compiler.
+The only macro, that contains the real invocation name of the c-compiler,
+is
+.IR CC .
+.I CC
+is set inside the machine dependent configuration file in the central
+rules depository and must not be changed elsewhere.
+.
+.TP
+CFILES
+a list of C source files, to be specified in a
+leaf makefile.
+.
+.TP
+CFLAGS
+The flags that are used with the c-compiler.
+Do not use flags that belong to the c-preprocessor in the
+.IR COPTOPT ", " COPTS " and " COPTX
+macros.
+.br
+Do not change this macro.
+.
+.TP
+CLEAN_FILES
+A list of files ( besides the object files ) that will be
+removed with
+.IR "make clean" .
+.br
+Do not change this macro.
+.
+.TP
+CLEAN_FILEX
+this macro may be used to define additional files that should
+be removed with
+.IR "make clean" .
+.
+.TP
+CLOBBER_FILEX
+this macro may be used to define additional files that should
+be removed with
+.IR "make clobber" .
+.
+.TP
+COPTOPT
+The c-compiler optimization flag. This flag is intended to
+be overridden either from a makefile or from command line.
+.
+.TP
+COPTS
+The internal macro that contains the flags for the c-compiler.
+Change this macro if you want to change the behavior.
+Use:
+.B "COPTS= value"
+If you want to override the default value. If you want to
+override the default c-compiler flags from the command line
+call:
+.B "make 'COPTS=value'"
+Use:
+.B "COPTS += value"
+If you want to add flags to the default value from within a makefile.
+.
+.TP
+COPTX
+may be used if you want to add flags to the c-compiler flags from the
+command line. Use:
+.B "make 'COPTX=value'
+.
+.TP
+CPPFLAGS
+The flags that are used with the c-preprocessor.
+This macro as well as:
+.IR CPPOPTS " and " CPPOPTX
+are also used when compiling c-programs.
+They should contain only the following flags:
+.IR "\-Dname=value ", " \-Uname " , "
+.IR \-Idirectory " and " \-Ydirectory .
+.br
+Do not change this macro.
+.
+.TP
+CPPOPTS
+The internal macro that contains the flags for the c-preprocessor.
+Change this macro if you want to change the behavior.
+Use:
+.B "CPPOPTS= value"
+If you want to override the default value. If you want to
+override the default c-preprocessor flags from the command line
+call:
+.B "make 'CPPOPTS=value'"
+Use:
+.B "CPPOPTS += value"
+If you want to add flags to the default value from within a makefile.
+.
+.TP
+CPPOPTX
+may be used if you want to add flags to the c-preprocessor flags from the
+command line. Use:
+.B "make 'CPPOPTX=value'
+.
+.TP
+CURDIR
+This macro contains the name of the sub directory that is currently processed.
+.br
+Do not change this macro.
+.
+.TP
+CWARNOPTS
+This macro may be set in
+.I $(DEFLTSROOT)/$(DEFLTSDIR)/Defaults
+or
+.I $(DEFLTSROOT)/$(DEFLTSDIR)/Defaults.$(O_ARCH)
+to overwrite the default c-compiler warn options.
+.
+.TP
+CWOPTS
+This macro is set inside the machine dependent configuration file in the central
+rules depository and must not be changed elsewhere.
+It contains the flags that set the default warning level for the c-compiler.
+.
+.TP
+DEFINSGRP
+this macro may be set in the projects defaults file to set up the
+default group id for installation
+.TP
+DEFINSMODE
+this macro may be set in the projects defaults file to set up the
+default file permission for installation
+.TP
+DEFINSUSR
+this macro may be set in the projects defaults file to set up the
+default user id for installation
+.TP
+DEFUMASK
+this macro may be set in the projects defaults file to set up the
+default
+.I umask
+value for creating sub directories
+.
+.TP
+DEFAULTSDIR
+this macro may be set from command line or from the shell environment
+if the user wants to use a different set of
+.I Defaults
+files that is not located in the directory
+.B DEFAULTS
+in the source root directory.
+This may be used to hold two or more set of defaults that differ e.g. in the
+installation path or the C-compiler.
+.
+.TP
+DEFAULTSROOT
+this macro may be set in a leaf makefile, if that makefile wants to use
+a
+.I Defaults
+file that is not located in
+.I $(DEFAULTSDIR)
+in the source root.
+This may be used, if a sub tree in a big project needs a different setup.
+.
+.TP
+DEFLTSDIR
+This is an internally used macro that is set from
+.I $(DEFAULTSDIR)
+or from the internal defaults.
+.br
+Do not change this macro.
+.
+.TP
+DEFLTSROOT
+This is an internally used macro that is set from
+.I $(DEFAULTSROOT)
+or from the internal defaults.
+.br
+Do not change this macro.
+.
+.TP
+DEFCCOM
+the default name of the c-compiler. This is usually set in the file
+.I $(DEFLTSROOT)/$(DEFLTSDIR)/Defaults
+or
+.IR $(DEFLTSROOT)/$(DEFLTSDIR)/Defaults.$(O_ARCH) .
+.
+.TP
+DEFINCDIRS
+a list of directories that are searched by default in addition to
+the system include directories. If this macro is not set,
+.I $(SRCROOT)/include
+is used.
+.
+.TP
+DIRNAME
+this macro needs to be set in the makefile that is located in
+the
+.I "$(SRCROOT)
+directory.
+The value should be either set to the name of the directory
+where the makefile is located or to
+.BR SRCROOT .
+The value of this macro is updated automatically
+to follow the directory hierarchy.
+Do not change this macro in a make file other than the make file
+in the source root.
+.
+.TP
+DIRS
+this macro needs to be set in a makefile that is located in
+a directory that contains diversion directories.
+It must contain a list of directory names where the diversions
+go to e.g.
+.BR "DIRS= libfoo libbar libgarbage" .
+.
+.TP
+HFILES
+for normal operation,
+.I makefiles
+will automatically find which include files are needed
+for compilation.
+However, if you want to create a tag file that includes
+tags for definitions that occur within include files,
+you should set
+.I HFILES
+to be a list of include files containing such definitions.
+.
+.TP
+INCDIRS
+this macro will normally be a copy from
+.IR DEFINCDIRS .
+You may however specify a different value in a leaf makefile
+or from command line. This will overwrite the defaults value.
+.
+.TP
+INS_BASE
+this macro has to be specified in the file
+.I $(DEFLTSROOT)/$(DEFLTSDIR)/Defaults
+or
+.IR $(DEFLTSROOT)/$(DEFLTSDIR)/Defaults.$(O_ARCH) .
+It must contain the path name of the root for installing
+general targets of the project.
+See
+.IR INSDIR .
+.
+.TP
+INS_KBASE
+this macro has to be specified in the file
+.I $(DEFLTSROOT)/$(DEFLTSDIR)/Defaults
+or
+.IR $(DEFLTSROOT)/$(DEFLTSDIR)/Defaults.$(O_ARCH) .
+It must contain the path name of the root for installing
+kernel modules from the project.
+See
+.IR INSDIR .
+.
+.TP
+INSDIR
+this macro has to be specified in the leaf makefile.
+It must contain the path name of a directory relative to
+.IR INS_BASE " or " INS_KBASE .
+The target will be installed into
+.I "$(INS_BASE)/$(INSDIR)" .
+.
+.TP
+INSGRP
+this macro may be set in a leaf makefile to set up the
+group id for installation
+.TP
+INSMODE
+this macro may be set in a leaf makefile to set up the
+file permission for installation
+.TP
+INSUSR
+this macro may be set in a leaf makefile to set up the
+user id for installation
+.
+.TP
+K_ARCH
+this macro contains the kernel/machine architecture for the
+target machine (e.g.
+.IR "sun3 sun4c sun4m sun4u 9000\-725 aviion" ).
+It is set to the output of
+.I "uname \-m
+converted to lower case.
+.br
+Do not change this macro.
+.
+.TP
+KARCH
+this macro contains the kernel/machine architecture for the
+target machine (e.g.
+.IR "sun3 sun4c sun4m sun4u 9000\-725 aviion" ).
+It is set to the output of
+.I "uname \-m
+converted to lower case.
+.br
+Do not change this macro unless you want to do a cross compilation.
+.
+.TP
+LDFLAGS
+The flags that are used with the linker.
+.br
+Do not change this macro.
+.
+.TP
+LDLIBS
+The internal macro that holds the
+libraries that are used while linking the target.
+.br
+Do not change this macro.
+.
+.TP
+LDOPTS
+The internal macro that contains the flags for the linker.
+Change this macro if you want to change the behavior.
+Use:
+.B "LDOPTS= value"
+If you want to override the default value. If you want to
+override the default linker flags from the command line
+call:
+.B "make 'LDOPTS=value'"
+Use:
+.B "LDOPTS += value"
+If you want to add flags to the default value from within a makefile.
+.
+.TP
+LDOPTX
+may be used if you want to add flags to the linker flags from the
+command line. Use:
+.B "make 'LDOPTX=value'
+.
+.TP
+LDPATH
+the default library search path for the linker.
+This is usually set in the file
+.I $(DEFLTSROOT)/$(DEFLTSDIR)/Defaults
+or
+.IR $(DEFLTSROOT)/$(DEFLTSDIR)/Defaults.$(O_ARCH) .
+.
+.TP
+LIB_KVM
+a predefined macro that contains the operating system dependent
+name of a library
+that is needed by programs that read/write kernel virtual memory.
+Add
+.I "$(LIB_KVM)
+to your list of libraries (e.g.
+.BR "LIBS= \-lintl $(LIB_KVM)" ),
+if your target uses kvm.
+.
+.TP
+LIB_MATH
+a predefined macro that contains the operating system dependent
+name of a library
+that is needed by programs that use routines of the math library.
+Add
+.I "$(LIB_MATH)
+to your list of libraries (e.g.
+.BR "LIBS= \-lintl $(LIB_MATH)" ),
+if your target uses math subroutines.
+.
+.TP
+LIB_SOCKET
+a predefined macro that contains the operating system dependent
+name of a library
+that is needed by programs that use socket calls.
+Add
+.I "$(LIB_SOCKET)
+to your list of libraries (e.g.
+.BR "LIBS= \-lintl $(LIB_SOCKET)" ),
+if your target uses sockets. Note: this should (for portability reasons)
+even be done on systems that don't require a socket library because
+they have the socket interface inside libc.
+.
+.TP
+LIBS_PATH
+this macro contains the path to a directory where those
+libraries are located, that have been build during
+a make run inside the current project.
+.br
+Do not change this macro.
+.
+.TP
+M_ARCH
+this macro contains the machine architecture for the
+target machine (e.g.
+.IR "sun3 sun4 ip22 i86pc i586 9000\-725 aviion" ).
+It is set to the output of
+.I "arch
+converted to lower case.
+On systems, where
+.I M_ARCH
+is not available, it is set to the content of
+.IR K_ARCH .
+.br
+Do not change this macro.
+.
+.TP
+MK_FILES
+makefiles that divert into sub makes within the same directory
+must set
+.I MK_FILES
+to be a list of makefile names for the sub makes.
+Makefile names for sub makes should have a name that is build
+by adding
+.I .mk
+to the base name of the target that is defined inside the
+specific makefile.
+.
+.TP
+MAKEPROG
+Set this macro to the name of your make program if it does
+not support the macro
+.IR MAKE_NAME .
+The make program
+.I smake
+is able to identify itself.
+If you want to use a make program that is not able
+to identify itself
+and it's name is not
+.IR make ,
+set
+.I MAKEPROG
+to the name of the make program.
+Currently only
+.I gmake
+is supported as alternate value for
+.IR MAKEPROG .
+If you want to use an unsupported make program
+you have to check if it supports the needed features
+for
+.IR makefiles .
+You must write your own rule files for that make program.
+If you want to use
+.IR gmake ,
+you should do
+.B "setenv MAKEPROG gmake
+before you start
+.I gmake
+or use a shell script that does this job for you.
+.
+.TP
+MAKE
+This macro is set up by the
+.I make
+program.
+It contains a path name that is sufficient to recursively
+call the same
+.I make
+program again (either that last path component or the full path
+name of the make program).
+.br
+Do not change this macro.
+.
+.TP
+MAKEFLAGS
+This macro is set up by the
+.I make
+program.
+It contains the command line flags,
+.I make
+is called with.
+.br
+Do not change this macro.
+.
+.TP
+MAKE_ARCH
+This macro is currently set up by
+.B smake
+only.
+It contains the processor architecture of the target machine
+(e.g. mc68020, sparc, pentium).
+.br
+Do not change this macro.
+.
+.TP
+MAKE_BRAND
+This macro is currently set up by
+.B smake
+only.
+It contains the brand of the target machine
+(e.g. Sun_Microsystems(e.g. ).
+.br
+Do not change this macro.
+.
+.TP
+MAKE_HOST
+This macro is currently set up by
+.B smake
+only.
+It contains the host name of the target machine
+(e.g. duffy, sherwood, ghost).
+.br
+Do not change this macro.
+.
+.TP
+MAKE_MACH
+This macro is currently set up by
+.B smake
+only.
+It contains the kernel architecture of the target machine
+(e.g. sun3, sun4c, sun4m, sun4u).
+.br
+Do not change this macro.
+.
+.TP
+MAKE_MODEL
+This macro is currently set up by
+.B smake
+only.
+It contains the model name of the target machine
+(e.g. SUNW,SPARCstation-20).
+.br
+Do not change this macro.
+.
+.TP
+MAKE_M_ARCH
+This macro is currently set up by
+.B smake
+only.
+It contains the machine architecture of the target machine
+(e.g. sun3, sun4).
+.br
+Do not change this macro.
+.
+.TP
+MAKE_NAME
+This macro is currently set up by
+.B smake
+only.
+It contains the official name of the
+make program
+(e.g. make, smake, gmake).
+.br
+Do not change this macro.
+.
+.TP
+MAKE_OS
+This macro is currently set up by
+.B smake
+only.
+It contains the operating system name of the target machine
+(e.g. sunos, linux, dgux).
+.br
+Do not change this macro.
+.
+.TP
+MAKE_OSDEFS
+This macro is currently set up by
+.B smake
+only.
+It contains operating system specific defines for the compiler
+(e.g. \-D__SVR4).
+.br
+Do not change this macro.
+.
+.TP
+MAKE_OSREL
+This macro is currently set up by
+.B smake
+only.
+It contains the operating system release name of the target machine
+(e.g. 5.5, 4.1.1).
+.br
+Do not change this macro.
+.
+.TP
+MAKE_OSVERSION
+This macro is currently set up by
+.B smake
+only.
+It contains the operating system version of the target machine
+(e.g. generic).
+.br
+Do not change this macro.
+.
+.TP
+MAKE_SERIAL
+This macro is currently set up by
+.B smake
+only.
+It contains the serial number of the target machine
+(e.g. 1920098175).
+.br
+Do not change this macro.
+.
+.TP
+MANDIR
+all makefiles for manual pages must set this macro to the
+path name relative to
+.I INS_BASE
+where the manual page root dir for the project should be.
+Possible values for english manual pages are
+.IR man " or " share/man ,
+possible values for german manual pages are
+.IR man/de " or " share/man/de .
+.
+.TP
+MANFILE
+makefiles for manual pages set this macro to the name of the
+troff source file for the manual page
+.
+.TP
+MANSECT
+makefiles for manual pages set this macro to the macro name that
+contains the real section name for this manual page. This is
+necessary because bsd based system have different naming conventions than
+system V based systems. See below for a valid list of manual section
+macros.
+.TP
+MANSECT_ADMIN
+This macro contains the name of the sub directory for administrative
+commands and maintenance procedures.
+.br
+Do not change this macro.
+.TP
+MANSECT_CMD
+This macro contains the name of the sub directory for general
+user commands.
+.br
+Do not change this macro.
+.TP
+MANSECT_DEMOS
+This macro contains the name of the sub directory for demo
+commands.
+.br
+Do not change this macro.
+.TP
+MANSECT_DEVICE
+This macro contains the name of the sub directory for
+user level device interfaces.
+.br
+Do not change this macro.
+.TP
+MANSECT_DRIVER
+This macro contains the name of the sub directory for
+kernel level device driver interfaces.
+.br
+Do not change this macro.
+.TP
+MANSECT_FILEFORM
+This macro contains the name of the sub directory for
+file formats.
+.br
+Do not change this macro.
+.TP
+MANSECT_GAMES
+This macro contains the name of the sub directory for
+games.
+.br
+Do not change this macro.
+.TP
+MANSECT_HDR
+This macro contains the name of the sub directory for
+header files.
+.br
+Do not change this macro.
+.TP
+MANSECT_LIB
+This macro contains the name of the sub directory for
+library function interfaces.
+.br
+Do not change this macro.
+.TP
+MANSECT_MACROS
+This macro contains the name of the sub directory for
+troff macros.
+.br
+Do not change this macro.
+.TP
+MANSECT_NETWORK
+This macro contains the name of the sub directory for
+user level network interfaces.
+.br
+Do not change this macro.
+.TP
+MANSECT_SYSCALL
+This macro contains the name of the sub directory for
+system call interfaces.
+Do not change this macro.
+.TP
+MANSECT_TABLES
+This macro contains the name of the sub directory for
+tables.
+Do not change this macro.
+.TP
+MANSTYLE
+This macro contains the name that is used to find the right
+ordering conventions for manual pages.
+Do not change this macro.
+.TP
+MANSUFFIX
+makefiles for manual pages set this macro to the macro name that
+contains the real suffix for this manual page. This is
+necessary because bsd based system have different naming conventions than
+system V based systems. See below for a valid list of manual suffix
+macros.
+.TP
+MANSUFF_ADMIN
+This macro contains the name of the file suffix for administrative
+commands and maintenance procedures.
+.br
+Do not change this macro.
+.TP
+MANSUFF_CMD
+This macro contains the name of the file suffix for general
+user commands.
+.br
+Do not change this macro.
+.TP
+MANSUFF_DEMOS
+This macro contains the name of the file suffix for demo
+commands.
+.br
+Do not change this macro.
+.TP
+MANSUFF_DEVICE
+This macro contains the name of the file suffix for
+user level device interfaces.
+.br
+Do not change this macro.
+.TP
+MANSUFF_DRIVER
+This macro contains the name of the file suffix for
+kernel level device driver interfaces.
+.br
+Do not change this macro.
+.TP
+MANSUFF_FILEFORM
+This macro contains the name of the file suffix for
+file formats.
+.br
+Do not change this macro.
+.TP
+MANSUFF_GAMES
+This macro contains the name of the file suffix for
+games.
+.br
+Do not change this macro.
+.TP
+MANSUFF_HDR
+This macro contains the name of the file suffix for
+header files.
+.br
+Do not change this macro.
+.TP
+MANSUFF_LIB
+This macro contains the name of the file suffix for
+library function interfaces.
+.br
+Do not change this macro.
+.TP
+MANSUFF_MACROS
+This macro contains the name of the file suffix for
+troff macros.
+.br
+Do not change this macro.
+.TP
+MANSUFF_NETWORK
+This macro contains the name of the file suffix for
+user level network interfaces.
+.br
+Do not change this macro.
+.TP
+MANSUFF_SYSCALL
+This macro contains the name of the file suffix for
+system call interfaces.
+Do not change this macro.
+.TP
+MANSUFF_TABLES
+This macro contains the name of the file suffix for
+tables.
+Do not change this macro.
+.TP
+MARCH
+this macro contains the machine architecture for the
+target machine (e.g.
+.IR "sun3 sun4 ip22 i86pc i586 9000\-725 aviion" ).
+It is set to the output of
+.I "arch
+converted to lower case.
+On systems, where
+.I M_ARCH
+is not available, it is set to the content of
+.IR K_ARCH .
+.br
+Do not change this macro unless you want to do a cross compilation.
+.
+.TP
+O_ARCH
+this macro contains the name of the operating system
+converted to lower case.
+It is usually the output of:
+.IR "uname \-s" .
+It may contain a modified name if the compilation rules
+for different version of the operating system differ (e.g.
+on
+.IR SunOS " and " Solaris ,
+the official operation system name in both cases is
+.IR SunOS ).
+.br
+Do not change this macro.
+.
+.TP
+OARCH
+this macro contains the object architecture that is used
+for architecture dependent sub directories.
+It is set to:
+.IR "$(PARCH)\-$(O_ARCH)\-$(C_ARCH)" .
+.br
+Do not change this macro.
+.
+.TP
+OARCHDIR
+this macro contains the concatenation of
+.I OBJ/
+and
+.IR "$(OARCH)" .
+.br
+Do not change this macro.
+.
+.TP
+OFILES
+this macro contains the list of objects that are the
+the dependency list for the target.
+It is constructed from the list of
+assembler source files,
+c source files,
+lex source files and
+yacc source files.
+.br
+Do not change this macro.
+.
+.TP
+OINCSDIR
+this macro contains the concatenation of
+.I $(SRCROOT)/incs/
+and
+.IR "$(OARCH)" .
+It is the location where include files that are made within a make run
+and subject to global use will be placed.
+.br
+Do not change this macro.
+.TP
+OLIBSDIR
+this macro contains the concatenation of
+.I $(SRCROOT)/libs/
+and
+.IR "$(OARCH)" .
+It is the location where libraries that are made within a make run
+will be placed.
+.br
+Do not change this macro.
+.
+.TP
+OSDEFS
+this macro contains operating system specific c-preprocessor
+definitions.
+.br
+Do not change this macro.
+.
+.TP
+OSNAME
+the unmodified name of the operating system converted to lower case.
+See
+.IR O_ARCH .
+.br
+Do not change this macro.
+.
+.TP
+OSREL
+the release of the operating system.
+.br
+Do not change this macro.
+.
+.TP
+P_ARCH
+this macro contains the processor architecture for the
+target machine (e.g.
+.IR "mc68020 mc88200 sparc pentium" ).
+It is set to the output of
+.I "uname \-p
+converted to lower case.
+On systems, where
+.I P_ARCH
+is not available, it is set to the content of
+.IR K_ARCH .
+.br
+Do not change this macro.
+.
+.TP
+PARCH
+this macro contains the processor architecture for the
+target machine (e.g.
+.IR "mc68020 mc88200 sparc pentium" ).
+It is set to the output of
+.I "uname \-p
+converted to lower case.
+On systems, where
+.I P_ARCH
+is not available, it is set to the content of
+.IR K_ARCH .
+.br
+Do not change this macro unless you want to do a cross compilation.
+.
+.TP
+RULESDIR
+the value of this macro must be set before
+the rules file
+.I "$(SRCROOT)/$(RULESDIR/rules.top
+is included.
+If you want to test the behavior of a modified version
+of the
+.I makefiles
+in
+.IR RULESDIR ,
+put a copy into an alternate directory, modify one or more
+files in it and then use make with a different value of
+.IR RULESDIR ,
+that points to the alternate directory.
+.
+.TP
+RUNPATH
+is evaluated on systems, where
+.I LD_RUN_PATH
+is supported.
+It contains the default library search path for dynamic linked targets
+on runtime.
+This search path will be stored inside the target.
+This is usually set in the file
+.I $(DEFLTSROOT)/$(DEFLTSDIR)/Defaults
+or
+.IR $(DEFLTSROOT)/$(DEFLTSDIR)/Defaults.$(O_ARCH) .
+Note that older systems will use
+.I LD_LIBRARY_PATH
+for this purpose too.
+.
+.TP
+SCRFILE
+this macro must be set in a leaf makefile for shell scripts to define
+the source for that script file.
+.
+.TP
+SRCFILE
+this macro must be set in a leaf makefile for localized files to define
+the source for that file.
+.
+.TP
+SRCROOT
+this macro contains the relative position to the project's
+source root directory.
+The value of this macro must be set before
+the rules file
+.I "$(SRCROOT)/$(RULESDIR/rules.top
+is included.
+.I SRCROOT
+should be set to
+.I ../..
+if the appropriate leaf makefile is located two directory
+levels below the source route.
+.
+.TP
+SUBARCHDIR
+may be set to put the object files and the target into
+a different directory than usual.
+.I SUBARCHDIR
+will modify the value of
+.IR ARCHDIR .
+If you want to make a target that is compiled for
+.I dbx
+you may use:
+.IR "make COPTX=\-g SUBARCHDIR=\-dbx" .
+.
+.TP
+TARGET
+all makefiles, that are not referring to library targets or
+sub makes / sub dir makes,
+must define
+.I TARGET
+to be the output file name of the final link operation.
+.
+.TP
+TARGETLIB
+all makefiles that are used to make libraries
+must define
+.I TARGETLIB
+to be the central part of the target library.
+If you want to make e.g.
+.I libfoo
+define
+.IR "TARGETLIB= foo" .
+This is needed to allow operating systems to have different naming
+conventions for libraries.
+If you are making a non shared library, the example above
+would result in a filename:
+.I libfoo.a
+for the real target.
+.
+.TP
+TARGETMAN
+this macro must be set in a leaf makefile for manual pages to define
+the base name for that manual page (not including the suffix).
+.
+.TP
+XMK_FILE
+makefiles that want to install manual pages should set
+.I XMK_FILE
+to
+.B Makefile.man
+to avoid having to install a diversion make file.
+The make file found in
+.I XMK_FILE
+will be processed only if
+.I make
+is called with the target
+.IR install .
+
+.SH "GETTING STARTED
+.PP
+To set up a new project, first copy the
+.IR RULES " and " TEMPLATES
+directories and all its content into the project's root directory.
+.PP
+Then copy a top level makefile, a
+.I Defaults
+file and a
+.I Targetdirs.archname
+file into the project's root directory.
+.PP
+Then create the following directories:
+.IR cmd ", " lib ", " include .
+.PP
+Now start creating target directories e.g below
+.IR cmd " and " lib .
+Don't forget to create a makefile and an appropriate
+.I Targetdirs.archname
+file on each node directory.
+
+.SH EXAMPLES
+.PP
+If you want to set up a private copy of parts of a project,
+you should choose a directory inside your directory tree that will become
+the shadow projects source root directory.
+Then create symbolic links named
+.IR RULES " and " TEMPLATES
+to the real source root.
+If you don't want to modify the global include files,
+create a symbolic link to the
+.I include
+directory too, else copy the include directory and its content.
+copy the top level makefile, the
+.I Defaults
+file and the
+.I Targetdirs.archname
+file.
+.PP
+Finally copy the desired sub tree together with all
+makefiles and the
+.I Targetdirs.archname
+files that are located in the directories above
+your part of the project that you want to have separately.
+
+.SH FILES
+\&.\|.\|./RULES/*
+.br
+\&.\|.\|./DEFAULTS/*
+.br
+\&.\|.\|./TARGETS/*
+.br
+\&.\|.\|./TEMPLATES/*
+
+.SH "SEE ALSO"
+.BR makerules (4),
+.BR make (1),
+.BR gmake (1),
+.BR smake (1).
+.PP
+If you want to know, how to add new rules or how to add support
+for new operating systems or compilers look into
+.BR makerules (4).
+
+.SH DIAGNOSTICS
+Diagnostic messages depend on the make program.
+Have a look at the appropriate man page.
+
+.SH NOTES
+The scope of this manual is only the usage of
+.BR "leaf makefiles" .
+If you want to make changes to the
+.B make rules
+have a look at
+.BR makerules (4).
+.PP
+.I makefiles
+can be used with
+.IR "Sunpro make" ", " "Gnu make"
+and
+.IR smake .
+Although Gnu make runs on many platforms, it has no useful debug
+output.
+.PP
+Use
+.IR "Sunpro make" " or " "smake"
+if you have problems with a makefile.
+.IR "Sunpro make" " and " "smake" ,
+both have a \-D flag, that allows you to watch the makefiles
+after the first expansion. Use this option, if you are in doubt
+if your makefile gets expanded the right way and if the right
+rules are included.
+There is also a \-d option that gives debugging output while
+make is running. If you want more output, use \-dd, \-ddd and so on.
+.PP
+.I Smake
+has an option \-xM that shows you the include dependency for
+make rules.
+
+.PP
+.ne 20
+The following is a list of all macros that are used in
+.IR makefiles .
+Do not use them unless their meaning has been explained
+before.
+.PP
+
+.BR \-O_ARCH ,
+.BR .OBJDIR ,
+.BR .SEARCHLIST ,
+.BR ALLTARGETS ,
+.BR AR ,
+.BR ARCH ,
+.BR ARCHDIR ,
+.BR ARCHDIRX ,
+.BR ARCH_DONE ,
+.BR ARFLAGS ,
+.BR AS ,
+.BR ASFLAGS ,
+.BR ASMFILES ,
+.BR ASOPTS ,
+.BR ASOPTX ,
+.BR CC ,
+.BR CCOM ,
+.BR CCOM_DEF ,
+.BR CFILES ,
+.BR CFLAGS ,
+.BR CHGRP ,
+.BR CHMOD ,
+.BR CHOWN ,
+.BR CLEAN_FILES ,
+.BR CLEAN_FILEX ,
+.BR CLOBBER_FILEX ,
+.BR COPTDYN ,
+.BR COPTGPROF ,
+.BR COPTOPT ,
+.BR COPTS ,
+.BR COPTX ,
+.BR CPP ,
+.BR CPPFLAGS ,
+.BR CPPOPTS ,
+.BR CPPOPTX ,
+.BR CTAGS ,
+.BR CURDIR ,
+.BR CWARNOPTS ,
+.BR CWOPTS ,
+.BR C_ARCH ,
+.BR DEFAULTSDIR ,
+.BR DEFAULTSROOT ,
+.BR DEFCCOM ,
+.BR DEFCCOM_DEF ,
+.BR DEFINCDIRS ,
+.BR DEFINCDIRS_DEF ,
+.BR DEFINSGRP ,
+.BR DEFINSMODE ,
+.BR DEFINSUSR ,
+.BR DEFUMASK ,
+.BR DEF_ROOT ,
+.BR DEP_DEP ,
+.BR DEP_FILE ,
+.BR DEP_SUFFIX ,
+.BR DIRNAME ,
+.BR DIRS ,
+.BR DYNLD ,
+.BR ETAGS ,
+.BR FLOAT_OPTIONS ,
+.BR HFILES ,
+.BR HOSTNAME ,
+.BR INCDIRS ,
+.BR INSDIR ,
+.BR INSGRP ,
+.BR INSGRP_DEF ,
+.BR INSMODE ,
+.BR INSMODE_DEF ,
+.BR INSTALL ,
+.BR INSUSR ,
+.BR INSUSR_DEF ,
+.BR INS_BASE ,
+.BR INS_KBASE ,
+.BR KARCH ,
+.BR KARCH_DEF ,
+.BR KDEFINES ,
+.BR K_ARCH ,
+.BR LD ,
+.BR LDCC ,
+.BR LDFLAGS ,
+.BR LDLIBS ,
+.BR LDOPTDYN ,
+.BR LDOPTS ,
+.BR LDOPTX ,
+.BR LDPATH ,
+.BR LIBS ,
+.BR LIBS_PATH ,
+.BR LIBX ,
+.BR LIB_KVM ,
+.BR LIB_MATH ,
+.BR LIB_PREFIX ,
+.BR LIB_SOCKET ,
+.BR LIB_SUFFIX ,
+.BR LN ,
+.BR LNDYNLIB ,
+.BR LOCALIZE ,
+.BR LORDER ,
+.BR MAKE ,
+.BR MK_FILES ,
+.BR MAKEPROG ,
+.BR MAKE_ARCH ,
+.BR MAKE_HOST ,
+.BR MAKE_MACH ,
+.BR MAKE_M_ARCH ,
+.BR MAKE_NAME ,
+.BR MAKE_OS ,
+.BR MAKE_OSDEFS ,
+.BR MAKE_OSREL ,
+.BR MANDIR ,
+.BR MANFILE ,
+.BR MANSECT ,
+.BR MANSECT_ADMIN ,
+.BR MANSECT_CMD ,
+.BR MANSECT_DEMOS ,
+.BR MANSECT_DEVICE ,
+.BR MANSECT_DRIVER ,
+.BR MANSECT_FILEFORM ,
+.BR MANSECT_GAMES ,
+.BR MANSECT_HDR ,
+.BR MANSECT_LIB ,
+.BR MANSECT_MACROS ,
+.BR MANSECT_NETWORK ,
+.BR MANSECT_SYSCALL ,
+.BR MANSECT_TABLES ,
+.BR MANSTYLE ,
+.BR MANSUFFIX ,
+.BR MANSUFF_ADMIN ,
+.BR MANSUFF_CMD ,
+.BR MANSUFF_DEMOS ,
+.BR MANSUFF_DEVICE ,
+.BR MANSUFF_DRIVER ,
+.BR MANSUFF_FILEFORM ,
+.BR MANSUFF_GAMES ,
+.BR MANSUFF_HDR ,
+.BR MANSUFF_LIB ,
+.BR MANSUFF_MACROS ,
+.BR MANSUFF_NETWORK ,
+.BR MANSUFF_SYSCALL ,
+.BR MANSUFF_TABLES ,
+.BR MARCH ,
+.BR MARCH_DEF ,
+.BR MKDEP ,
+.BR MKDEP_OUT ,
+.BR MKDIR ,
+.BR MV ,
+.BR M_ARCH ,
+.BR OARCH ,
+.BR OARCHDIR ,
+.BR OFILES ,
+.BR OINCSDIR ,
+.BR OLIBSDIR ,
+.BR OSDEFS ,
+.BR OSNAME ,
+.BR OSREL ,
+.BR O_ARCH ,
+.BR PALLDEP_FILE ,
+.BR PARCH ,
+.BR PARCH_DEF ,
+.BR PASMFILES ,
+.BR PDEP_FILE ,
+.BR PLOFILES ,
+.BR POFILES ,
+.BR PTARGET ,
+.BR PTARGET_BASE ,
+.BR PYOFILES ,
+.BR P_ARCH ,
+.BR RANLIB ,
+.BR RM ,
+.BR RMDEP ,
+.BR RMTARGET ,
+.BR RM_FORCE ,
+.BR RM_RECURS ,
+.BR RM_RF ,
+.BR RULESDIR ,
+.BR RUNPATH ,
+.BR SCRFILE ,
+.BR SHELL ,
+.BR SHL_SUFFIX ,
+.BR SRCFILE ,
+.BR SRCLIBS ,
+.BR SRCROOT ,
+.BR SUBARCH ,
+.BR SUBARCHDIR ,
+.BR SYMLINK ,
+.BR TAGS ,
+.BR TARGET ,
+.BR TARGETLIB ,
+.BR TARGETMAN ,
+.BR TARGET_BASE ,
+.BR TARGET_PATH ,
+.BR TSORT ,
+.BR UMASK ,
+.BR UMASK_DEF ,
+.BR UMASK_VAL ,
+.BR XARCH ,
+.BR XK_ARCH ,
+.BR XMK_FILE ,
+.BR XMAKEPROG ,
+.BR XM_ARCH ,
+.BR XP_ARCH ,
+.BR _CCOM ,
+.BR _DEFAULTSDIR ,
+.BR _DEFCCOM ,
+.BR _DEFINSGRP ,
+.BR _DEFINSMODE ,
+.BR _DEFINSUSR ,
+.BR _DEFUMASK ,
+.BR _DIRNAME ,
+.BR _INCDIRS ,
+.BR _MAKEPROG ,
+.BR _MARCH ,
+.BR _M_ARCH ,
+.BR _O_ARCH ,
+.BR _PARCH ,
+.BR _P_ARCH ,
+.BR _UNIQ ,
+.BR __CCOM ,
+.BR __DEFAULTSDIR ,
+.BR __DEFCCOM ,
+.BR __DEFINSGRP ,
+.BR __DEFINSMODE ,
+.BR __DEFINSUSR ,
+.BR __DEFUMASK ,
+.BR __DIRNAME ,
+.BR __INCDIRS ,
+.BR __MAKEPROG ,
+.BR __MARCH ,
+.BR __M_ARCH ,
+.BR __PARCH ,
+.BR __P_ARCH ,
+
+.SH BUGS
+
+.SH "Source Tree Hierarchy
+.LP
+The following outline gives a quick tour through a typical
+source hierarchy:
+.LP
+.na
+.nh
+.PD 0
+.TP
+.B .../
+root directory of the source tree
+.
+.RS
+.TP
+.B Makefile
+the top Makefile
+.TP
+.B Targetdirs
+a file containing a list of directories that are needed
+for that project.
+If the system needs different target lists depending
+on the target system architecture , use target specific files in
+.B .../TARGETS/
+.TP
+\&.\|.\|.
+.RE
+.
+.TP
+.B .../RULES/
+the location of makefiles (included rules)
+.
+.RS
+.TP
+.B rules.top
+the mandatory include rules (needed to setup basic rules)
+.TP
+.B rules.aux
+rules needed to install a non localized auxiliary file
+.TP
+.B rules.cmd
+rules needed to make an ordinary command (like /bin/sh)
+.TP
+.B rules.drv
+rules needed to make a device driver
+.TP
+.B rules.lib
+rules needed to make a standard (nonshared) library
+.TP
+.B rules.loc
+rules needed to install a localized auxiliary file
+.TP
+.B rules.man
+rules needed to install a localized manual page
+.TP
+.B rules.scr
+rules needed to install a localized shell script
+.TP
+.B rules.shl
+rules needed to make a shared library
+.TP
+.B rules.mks
+rules needed to make more than one target in a specific directory
+.TP
+.B rules.dir
+rules needed to make targets that are located in sub directories
+to the current directory
+.TP
+\&.\|.\|.
+.RE
+.
+.TP
+.B .../DEFAULTS/
+default definitions for various target architectures are
+located in this directory. Templates for some architectures can
+be found in the
+.I .../TEMPLATES/
+directory.
+.RS
+.TP
+.B Defaults
+default definitions for that source tree. System dependent
+definitions are in
+.B .../DEFAULTS/Defaults.*
+.RE
+.TP
+.B .../TARGETS/
+target list definitions for various target architectures are
+located in this directory.
+.TP
+.B .../TEMPLATES/
+templates that should be used inside the project
+(rename to Makefile, if it is the only makefile in that directory,
+rename to
+.I target.mk,
+if there is more than one target in that directory)
+.
+.RS
+.TP
+.B Defaults
+Defaults file for the source root directory
+.TP
+.B Defaults.linux
+Defaults file for
+.IR linux .
+This should be installed in the
+.B .../DEFAULTS/
+directory.
+.TP
+.B Makefile.root
+Makefile for the source root directory
+.TP
+.B Makefile.aux
+Makefile for a non localized auxiliary file
+.TP
+.B Makefile.cmd
+Makefile for an ordinary command (like /bin/sh)
+.TP
+.B Makefile.lib
+Makefile for a standard (nonshared) library
+.TP
+.B Makefile.loc
+Makefile for a localized auxiliary file
+.TP
+.B Makefile.man
+Makefile for a localized manual page
+.TP
+.B Makefile_de.man
+Makefile for a localized manual page in the german locale
+.TP
+.B Makefile.scr
+Makefile for a localized shell script
+.TP
+.B Makefile.shl
+Makefile for a shared library
+.TP
+.B Makefile.drv
+Makefile for a device driver
+.TP
+.B Makefile.mks
+Makefile for more than one target in a specific directory
+.TP
+.B Makefile.dir
+Makefile for targets that are located in sub directories
+to the current directory
+.TP
+\&.\|.\|.
+.RE
+.
+.TP
+.B .../cmd/
+source tree for normal commands
+.
+.RS
+.TP
+.B Makefile
+the makefile for the
+.I cmd
+sub directory
+.TP
+.B Targetdirs.sun4m
+a file containing a list of directories like
+.I myprog
+(see below) that are needed
+for that specific architecture.
+.TP
+.B myprog/
+directory where the sources for a specific command are located
+.
+.RS
+.TP
+Makefile
+makefile for
+.I myprog
+.TP
+Makefile.man
+makefile for the manual page of
+.I myprog
+.TP
+mprog.c
+source for myprog
+.TP
+mprog.tr
+troff source for the manual page of myprog
+.TP
+.B OBJ/
+directory where system specific sub directories are located
+.
+.RS
+.TP
+.B sparc\-sunos5\-cc/
+directory for binaries that belong to a specific system
+.TP
+\&.\|.\|.
+.RE
+.TP
+\&.\|.\|.
+.RE
+.br
+.TP
+\&.\|.\|.
+.RE
+.br
+.ne 5
+.TP
+.B .../lib/
+directory where the sources for a libraries are located
+.
+.RS
+.TP
+.B Makefile
+the makefile for the
+.I lib
+sub directory
+.TP
+.B Targetdirs.sun4m
+a file containing a list of directories like
+.I libfoo
+(see below) that are needed
+for that specific architecture.
+.TP
+.B libfoo/
+directory where all source files for libfoo are located
+.TP
+\&.\|.\|.
+.RE
+.
+.TP
+.B .../kernel
+directory for kernel modules
+.
+.RS
+.TP
+.B Makefile
+the makefile for the
+.I kernel
+sub directory
+.TP
+.B Targetdirs.sun4m
+a file containing a list of directories like
+.I drv
+(see below) that are needed
+for that specific architecture.
+.TP
+.B drv/
+directory where drivers are located
+.
+.RS
+.TP
+.B Makefile
+the makefile for the
+.I drv
+sub directory
+.TP
+.B Targetdirs.sun4m
+a file containing a list of directories like
+.I mydrv
+(see below) that are needed
+for that specific architecture.
+.TP
+.B mydrv/
+source for a specific driver
+.TP
+\&.\|.\|.
+.RE
+.
+.TP
+\&.\|.\|.
+.RE
+.
+.TP
+.B .../include
+directory for global include files that are used in that project
+.
+.TP
+.B .../bins
+directory for binary programs that are created/needed while compiling
+the project
+.RS
+.TP
+.B sparc\-sunos5\-cc/
+directory for binaries that belong to a specific system
+.TP
+\&.\|.\|.
+.RE
+.
+.TP
+.B .../libs
+directory for libraries that are created/needed while compiling
+the project
+.RS
+.TP
+.B sparc\-sunos5\-cc/
+directory for libraries that belong to a specific system
+.TP
+\&.\|.\|.
+.RE
+.
+.TP
+.B .../incs
+directory for include files that are created/needed while compiling
+the project
+.RS
+.TP
+.B sparc\-sunos5\-cc/
+directory for include files that belong to a specific system
+.TP
+\&.\|.\|.
+.RE
+.TP
+\&.\|.\|.
+.RE
+.
+.ad
+.PD
+
+.SH AUTHOR
+.nf
+J\*org Schilling
+Seestr. 110
+D-13353 Berlin
+Germany
+.fi
+.PP
+Mail bugs and suggestions to:
+.PP
+.B
+joerg@schily.isdn.cs.tu-berlin.de
+or
+.B
+js@cs.tu-berlin.de
+or
+.B
+jes@fokus.gmd.de