|
@@ -1,31 +1,149 @@
|
|
|
|
|
|
-First you need to install all the sources like:
|
|
|
+Possible settings for common Free Pascal Makefile:
|
|
|
|
|
|
-<basedir>/
|
|
|
- base
|
|
|
- compiler
|
|
|
- rtl
|
|
|
- ide/text
|
|
|
- ide/fake
|
|
|
- api
|
|
|
- fv
|
|
|
- gdbint
|
|
|
- gdbint/libgdb
|
|
|
+General configurable settings:
|
|
|
+------------------------------
|
|
|
+OS_TARGET The target operating system you are going to compile for
|
|
|
+ (Note: This has autodetection for go32v2,linux,winnt)
|
|
|
|
|
|
-- Copy the files (Makefile,makefile.fpc) from the base/ directory to the
|
|
|
-<basedir>.
|
|
|
+OS_SOURCE The source operating system you compiling under
|
|
|
+ (Note: This has autodetection for go32v2,linux,winnt)
|
|
|
|
|
|
-- get the libgdb_<system>.zip from tflily ftp and unzip it in the
|
|
|
-gdbint/libgdb directory
|
|
|
+CPU The target CPU that is used (currently m68k,i386)
|
|
|
+ Default: CPU=i386
|
|
|
|
|
|
-- Type: SET FPCDIR=<basedir>
|
|
|
+OPT General commandline options you want to give
|
|
|
+ Example to compile with debug info: OPT=-g
|
|
|
|
|
|
-- Then you can type 'make info' and see it finds the correct files.
|
|
|
+OPTDEF Commandline defines, which also need to be passed to
|
|
|
+ programs that don't want other options (like mkdep)
|
|
|
|
|
|
-- When that works fine, then you can type in the <basedir>:
|
|
|
+NEEDOPT Realy needed commandline options, also used when
|
|
|
+ RELEASE=1. Example: NEEDOPT=-Sg to allow goto
|
|
|
|
|
|
- 'make ide_all' IDE without compiler/debugger
|
|
|
- 'make ide_gdb' IDE with debugger
|
|
|
- 'make ide_full' IDE with compiler
|
|
|
- 'make ide_fullgdb' IDE with compiler/debugger
|
|
|
-
|
|
|
+NEEDUNITDIR Realy needed unitdir
|
|
|
+
|
|
|
+PP compiler to use, default is ppc386
|
|
|
+ Example to compile with version 0.99.8: PP=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
|
|
|
+
|
|
|
+PROCINC Where to find processor dependent .inc files
|
|
|
+ Example: PROCINC=$(CPU)
|
|
|
+
|
|
|
+OSINC Where to find operating system dependent .inc files
|
|
|
+ Example: OSINC=$(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)
|
|
|
+
|
|
|
+
|
|
|
+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)
|