mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-25 01:39:34 +02:00
146 lines
5.4 KiB
Plaintext
146 lines
5.4 KiB
Plaintext
|
|
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 ppc386.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)
|