E.7.1 Directory variables

The following compiler directories are defined by the makefile:

BASEDIR
Is set to the current directory if the pwd command is available. If not, it is set to ’.’.
COMPILER_INCDIR
Is a space-separated list of include file paths. Each directory in the list is prepended with -Fi and added to the compiler options. Set by the incdir keyword in the Compiler section.
COMPILER_LIBDIR
Is a space-separated list of library paths. Each directory in the list is prepended with -Fl and added to the compiler options. Set by the libdir keyword in the Compiler section.
COMPILER_OBJDIR
Is a list of object file directories, separated by spaces. Each directory in the list is prepended with -Fo and added to the compiler options. Set by the objdir keyword in the Compiler section.
COMPILER_TARGETDIR
This directory is added as the output directory of the compiler, where all units and executables are written, i.e. it gets -FE prepended. It is set by the targetdir keyword in the Compiler section.
COMPILER_TARGETUNITDIR
If set, this directory is added as the output directory of the compiler, where all units and executables are written, i.e. it gets -FU prepended.It is set by the targetdir keyword in the Dirs section.
COMPILER_UNITDIR
Is a list of unit directories, separated by spaces. Each directory in the list is prepended with -Fu and is added to the compiler options. Set by the unitdir keyword in the Compiler section.
GCCLIBDIR
(linux only) Is set to the directory where libgcc.a is. If needgcclib is set to True in the Libs section, then this directory is added to the compiler command line with -Fl.
OTHERLIBDIR
Is a space-separated list of library paths. Each directory in the list is prepended with -Fl and added to the compiler options. If it is not defined on linux, then the contents of the /etc/ld.so.conf file is added.

The following directories are used for installs:

INSTALL_BASEDIR
Is the base for all directories where units are installed. By default, On linux, this is set to $(INSTALL_PREFIX)/lib/fpc/$(RELEASEVER).
On other systems, it is set to $(PREFIXINSTALLDIR). You can also set it with the basedir variable in the Install section.
INSTALL_BINDIR
Is set to $(INSTALL_BASEDIR)/bin on linux, and
$(INSTALL_BASEDIR)/bin/$(OS_TARGET) on other systems. This is the place where binaries are installed.
INSTALL_DATADIR
The directory where data files are installed. Set by the Data key in the Install section.
INSTALL_LIBDIR
Is set to $(INSTALL_PREFIX)/lib on linux,
and $(INSTALL_UNITDIR) on other systems.
INSTALL_PREFIX
Is set to /usr/local on linux, /pp on dos or Windows NT. Set by the prefix keyword in the Install section.
INSTALL_UNITDIR
Is where units will be installed. This is set to
$(INSTALL_BASEDIR)/units/$(OS_TARGET). If the units are compiled as a package, $(PACKAGE_NAME) is added to the directory.