
Possible settings for common Free Pascal Makefile:

General configurable settings:
------------------------------
OS_TARGET       The target operating system you are going to compile for
                (Note: This has autodetection for go32v2,linux,winnt)

OS_SOURCE       The source operating system you compiling under
                (Note: This has autodetection for go32v2,linux,winnt)

CPU_TARGET      The target CPU that is used (currently m68k,i386)
                Default: CPU_TARGET=i386

OPT             General commandline options you want to give
                Example to compile with debug info: OPT=-g

OPTDEF          Commandline defines, which also need to be passed to
                programs that don't want other options (like mkdep)

NEEDOPT         Realy needed commandline options, also used when
                RELEASE=1. Example: NEEDOPT=-Sg to allow goto

NEEDUNITDIR     Realy needed unitdir

FPC             compiler to use, default is ppc386
                Example to compile with version 0.99.8: FPC=ppc998

AS              assembler to use to compile the loaders
                Default: AS=as

LD              linker to use
                Default: LD=ld

RELEASE         setting this to a value (for example RELEASE=1) will compile
                for a release, no fpc.cfg is read an compile is done with
                the following settings: '-Xs -OG2p2 -n'

VERBOSE         setting this to a value (for example VERBOSE=1) will compile
                with more verbosity, this can be used in combination with
                the RELEASE option. Verbosity used: '-vwni'

SMARTLINK       setting this to YES will create smartlinked files
                Example: SMARTLINK=YES

LIBNAME         set the outputname for the library to LIBNAME, mostly used
                in combination with SMARTLINK to create a one library which
                contains all units
                Example: LIBNAME=objpas SMARTLINK=yes

LIBTYPE         can be set to shared or static to set the library type you
                want to create. When shared is set it overrides smartlink
                and turns it off.
                Example: LIBTYPE=shared LIBNAME=objpas

DEFAULTUNITS    if this is set then a 'make all' will only compile the units
                and not the exes

NODEFAULTRULES  Don't include the default compiler rules. This is needed for
                top-makefiles which call other files in subdirs


Location:
---------
INC             Where to find the .inc files.
                Example: INC=inc $(OS_TARGET)

TARGETDIR       Where to place all the .o,.ppu,.exe files
                Example: TARGETDIR=. (this is needed when you compile
                a unit from an other dir, but want the .ppu,.o in the
                current directory)

UNITTARGETDIR   Where to place the .o,.ppu files, this overrides the
                TARGETDIR setting for these files.
                Example see TARGETDIR


File Handling:
--------------
MOVE            Command to move files
COPY            Command to copy files
DEL             Command to delete files
DELTREE         Command to delete a whole directory tree
INSTALL         Command to install a normal file (not executable)
INSTALLEXE      Command to install an executable file
MKDIR           Command to make a new directory


Tools:
------
LDCONFIG        command to rebuild the ld.so.cache (automaticly set for linux)
PPAS            ppas.sh for linux, other os's ppas.bat
PPUMOVE         PPUMove program
DIFF            GNU Diff
DATE            GNU Date (automaticly searched)
SED             GNU Sed (automaticly searched)
PWD             GNU PWD (automaticly searched)
UPXPROG         UPX ExeFile compressor (automaticly searched)
ZIPPROG         ZIP compressor (automaticly searched)


Directories:
-----------
BASEDIR         Current working directory (automaticly loaded using PWD)

FPCDIR          Base directory of Free Pascal

RTLDIR          Directory to the used RTL. This contains already the target
                Default: $FPCDIR/rtl/$OS_TARGET

UNITDIR         Directory to the currently used units for the target
                Default: $FPCDIR/units/$OS_TARGET


Installation directories:
-------------------------
BASEINSTALLDIR  Base directory where to install all the files.
                Default: /pp (linux: /usr/lib/fpc/$VER)

LIBINSTALLDIR   Directory to install all libraries
                Default: $BASEINSTALLDIR/lib (linux: $BASEINSTALLDIR)

BININSTALLDIR   Directory where to install the binaries
                Default: $BASEINSTALLDIR/bin/$OS_TARGET (linux: /usr/bin)

UNITINSTALLDIR  Directory where to install the normal units
                Default: $BASEINSTALLDIR/rtl/$OS_TARGET

STATIC_UNITINSTALLDIR  Directory where to install static (smartlinked) units
                Default: $BASEINSTALLDIR/rtl/$OS_TARGET/static

SHARED_UNITINSTALLDIR  Directory where to install shared linked units
                Default: $BASEINSTALLDIR/rtl/$OS_TARGET/shared

STATIC_LIBINSTALLDIR  Directory where to install static linked libraries
                Default: $STATIC_UNITINSTALLDIR

SHARED_LIBINSTALLDIR  Directory where to install shared linked libraries
                Default: $SHARED_UNITINSTALLDIR (linux: /usr/lib)

MSGINSTALLDIR   Directory where to place the .msg (language) files
                Default: $BASEINSTALLDIR/msg

DOCINSTALLDIR:  Directory where to install the documentation
                Default: $BASEINSTALLDIR/doc (linux: /usr/doc/fpc/$VER)
