|
@@ -1,5 +1,5 @@
|
|
|
#
|
|
|
-# Makefile generated by fpcmake v0.99.13 on 1999-11-10 23:52
|
|
|
+# Makefile generated by fpcmake v0.99.13 on 1999-12-19 16:02
|
|
|
#
|
|
|
|
|
|
defaultrule: all
|
|
@@ -65,12 +65,17 @@ endif
|
|
|
|
|
|
# What compiler to use ?
|
|
|
ifndef FPC
|
|
|
+# Compatibility with old makefiles
|
|
|
+ifdef PP
|
|
|
+export FPC=$(PP)
|
|
|
+else
|
|
|
ifdef inOS2
|
|
|
export FPC=ppos2$(EXEEXT)
|
|
|
else
|
|
|
export FPC=ppc386$(EXEEXT)
|
|
|
endif
|
|
|
endif
|
|
|
+endif
|
|
|
|
|
|
# Target OS
|
|
|
ifndef OS_TARGET
|
|
@@ -102,6 +107,10 @@ endif
|
|
|
#####################################################################
|
|
|
|
|
|
# Release ? Then force OPT and don't use extra opts via commandline
|
|
|
+ifndef REDIRFILE
|
|
|
+REDIRFILE=log
|
|
|
+endif
|
|
|
+
|
|
|
ifdef RELEASE
|
|
|
override OPT:=-Xs -OG2p3 -n
|
|
|
endif
|
|
@@ -111,6 +120,15 @@ ifdef VERBOSE
|
|
|
override OPT+=-vwni
|
|
|
endif
|
|
|
|
|
|
+ifdef REDIR
|
|
|
+ifndef inlinux
|
|
|
+override FPC=redir -eo $(FPC)
|
|
|
+endif
|
|
|
+# set the verbosity to max
|
|
|
+override OPT+=-va
|
|
|
+override REDIR:= >> $(REDIRFILE)
|
|
|
+endif
|
|
|
+
|
|
|
#####################################################################
|
|
|
# User Settings
|
|
|
#####################################################################
|
|
@@ -118,28 +136,29 @@ endif
|
|
|
|
|
|
# Targets
|
|
|
|
|
|
-UNITOBJECTS=ziptypes unzip
|
|
|
+override UNITOBJECTS+=ziptypes unzip
|
|
|
ifeq ($(OS_TARGET),linux)
|
|
|
-EXEOBJECTS+=installer
|
|
|
+override EXEOBJECTS+=installer
|
|
|
endif
|
|
|
ifeq ($(OS_TARGET),go32v2)
|
|
|
-EXEOBJECTS+=install
|
|
|
+override EXEOBJECTS+=install
|
|
|
endif
|
|
|
ifeq ($(OS_TARGET),win32)
|
|
|
-EXEOBJECTS+=install
|
|
|
+override EXEOBJECTS+=install
|
|
|
endif
|
|
|
ifeq ($(OS_TARGET),os2)
|
|
|
-EXEOBJECTS+=install
|
|
|
+override EXEOBJECTS+=install
|
|
|
endif
|
|
|
|
|
|
# Clean
|
|
|
|
|
|
ifeq ($(OS_TARGET),linux)
|
|
|
-EXTRACLEANFILES+=install.o
|
|
|
+override EXTRACLEANFILES+=install.o
|
|
|
endif
|
|
|
|
|
|
# Install
|
|
|
|
|
|
+ZIPTARGET=install
|
|
|
|
|
|
# Defaults
|
|
|
|
|
@@ -149,17 +168,26 @@ endif
|
|
|
ifndef FPCDIR
|
|
|
FPCDIR=../..
|
|
|
endif
|
|
|
+ifndef PACKAGEDIR
|
|
|
+PACKAGEDIR=$(FPCDIR)/packages
|
|
|
+endif
|
|
|
+ifndef COMPONENTDIR
|
|
|
+COMPONENTDIR=$(FPCDIR)/components
|
|
|
+endif
|
|
|
override NEEDUNITDIR=$(FPCDIR)/fv $(FPCDIR)/api
|
|
|
ifndef TARGETDIR
|
|
|
TARGETDIR=.
|
|
|
endif
|
|
|
|
|
|
+# Packages
|
|
|
+
|
|
|
+
|
|
|
# Libraries
|
|
|
|
|
|
|
|
|
# Info
|
|
|
|
|
|
-FPCINFO=fpc_infocfg fpc_infoobjects fpc_infoinstall
|
|
|
+INFOTARGET=fpc_infocfg fpc_infoobjects fpc_infoinstall
|
|
|
|
|
|
#####################################################################
|
|
|
# Default Directories
|
|
@@ -172,6 +200,11 @@ else
|
|
|
BASEDIR=.
|
|
|
endif
|
|
|
|
|
|
+# this can be set to 'rtl' when the RTL units are installed
|
|
|
+ifndef UNITPREFIX
|
|
|
+UNITPREFIX=units
|
|
|
+endif
|
|
|
+
|
|
|
# set the prefix directory where to install everything
|
|
|
ifndef PREFIXINSTALLDIR
|
|
|
ifdef inlinux
|
|
@@ -181,43 +214,18 @@ export PREFIXINSTALLDIR=/pp
|
|
|
endif
|
|
|
endif
|
|
|
|
|
|
-# set the directory to the rtl base
|
|
|
-ifndef RTLDIR
|
|
|
-ifdef RTL
|
|
|
-RTLDIR:=$(RTL)/$(OS_TARGET)
|
|
|
-else
|
|
|
-RTLDIR:=$(FPCDIR)/rtl/$(OS_TARGET)
|
|
|
-endif
|
|
|
-endif
|
|
|
-
|
|
|
-# specify where units are.
|
|
|
-ifndef UNITDIR
|
|
|
-ifdef UNITS
|
|
|
-UNITDIR=$(UNITS)/$(OS_TARGET)
|
|
|
-else
|
|
|
-UNITDIR=$(FPCDIR)/units/$(OS_TARGET)
|
|
|
-endif
|
|
|
-endif
|
|
|
-ifeq ($(strip $(wildcard $(UNITDIR)/*)),)
|
|
|
-UNITDIR=
|
|
|
-endif
|
|
|
-
|
|
|
-# On linux, try to find where libgcc.a is.
|
|
|
-ifdef inlinux
|
|
|
-ifndef GCCLIBDIR
|
|
|
-export GCCLIBDIR:=$(shell dirname `(gcc -v 2>&1)| head -n 1| awk '{ print $$4 } '`)
|
|
|
-endif
|
|
|
-endif
|
|
|
-
|
|
|
-# Where to find other libraries
|
|
|
-ifdef inlinux
|
|
|
-ifndef OTHERLIBDIR
|
|
|
-export OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }')
|
|
|
+# create fcldir,rtldir,unitdir
|
|
|
+ifdef FPCDIR
|
|
|
+override FPCDIR:=$(subst \,/,$(FPCDIR))
|
|
|
+ifneq ($(FPCDIR),.)
|
|
|
+override RTLDIR=$(FPCDIR)/rtl/$(OS_TARGET)
|
|
|
+override FCLDIR=$(FPCDIR)/fcl/$(OS_TARGET)
|
|
|
+override UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
|
|
|
endif
|
|
|
endif
|
|
|
|
|
|
#####################################################################
|
|
|
-# Install Directories based on BASEINSTALLDIR
|
|
|
+# Install Directories
|
|
|
#####################################################################
|
|
|
|
|
|
# set the base directory where to install everything
|
|
@@ -229,16 +237,6 @@ BASEINSTALLDIR=$(PREFIXINSTALLDIR)
|
|
|
endif
|
|
|
endif
|
|
|
|
|
|
-
|
|
|
-# Linux binary really goes to baseinstalldir
|
|
|
-ifndef LIBINSTALLDIR
|
|
|
-ifdef inlinux
|
|
|
-LIBINSTALLDIR=$(BASEINSTALLDIR)
|
|
|
-else
|
|
|
-LIBINSTALLDIR=$(BASEINSTALLDIR)/lib
|
|
|
-endif
|
|
|
-endif
|
|
|
-
|
|
|
# set the directory where to install the binaries
|
|
|
ifndef BININSTALLDIR
|
|
|
ifdef inlinux
|
|
@@ -248,15 +246,28 @@ BININSTALLDIR=$(BASEINSTALLDIR)/bin/$(OS_TARGET)
|
|
|
endif
|
|
|
endif
|
|
|
|
|
|
-# Where the .msg files will be stored
|
|
|
-ifndef MSGINSTALLDIR
|
|
|
-MSGINSTALLDIR=$(BASEINSTALLDIR)/msg
|
|
|
+# set the directory where to install the units.
|
|
|
+ifndef UNITINSTALLDIR
|
|
|
+UNITINSTALLDIR=$(BASEINSTALLDIR)/$(UNITPREFIX)/$(OS_TARGET)
|
|
|
+endif
|
|
|
+
|
|
|
+# Where to install shared libraries
|
|
|
+ifndef LIBINSTALLDIR
|
|
|
+ifdef inlinux
|
|
|
+LIBINSTALLDIR=$(PREFIXINSTALLDIR)/lib
|
|
|
+else
|
|
|
+LIBINSTALLDIR=$(UNITINSTALLDIR)
|
|
|
+endif
|
|
|
endif
|
|
|
|
|
|
-# Where the .msg files will be stored
|
|
|
+# Where the source files will be stored
|
|
|
ifndef SOURCEINSTALLDIR
|
|
|
+ifdef inlinux
|
|
|
+SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
|
|
|
+else
|
|
|
SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
|
|
|
endif
|
|
|
+endif
|
|
|
|
|
|
# Where the doc files will be stored
|
|
|
ifndef DOCINSTALLDIR
|
|
@@ -267,42 +278,9 @@ DOCINSTALLDIR=$(BASEINSTALLDIR)/doc
|
|
|
endif
|
|
|
endif
|
|
|
|
|
|
-########################
|
|
|
-# Unit Directories
|
|
|
-########################
|
|
|
-
|
|
|
-# this can be set to 'rtl' when the RTL units are installed
|
|
|
-ifndef UNITPREFIX
|
|
|
-UNITPREFIX=units
|
|
|
-endif
|
|
|
-
|
|
|
-# set the directory where to install the units.
|
|
|
-ifndef UNITINSTALLDIR
|
|
|
-UNITINSTALLDIR=$(BASEINSTALLDIR)/$(UNITPREFIX)/$(OS_TARGET)
|
|
|
-endif
|
|
|
-
|
|
|
-# set the directory where to install the units.
|
|
|
-ifndef STATIC_UNITINSTALLDIR
|
|
|
-STATIC_UNITINSTALLDIR=$(UNITINSTALLDIR)/static
|
|
|
-endif
|
|
|
-
|
|
|
-# set the directory where to install the units.
|
|
|
-ifndef SHARED_UNITINSTALLDIR
|
|
|
-SHARED_UNITINSTALLDIR=$(UNITINSTALLDIR)/shared
|
|
|
-endif
|
|
|
-
|
|
|
-# set the directory where to install the libs (must exist)
|
|
|
-ifndef STATIC_LIBINSTALLDIR
|
|
|
-STATIC_LIBINSTALLDIR=$(STATIC_UNITINSTALLDIR)
|
|
|
-endif
|
|
|
-
|
|
|
-# set the directory where to install the libs (must exist)
|
|
|
-ifndef SHARED_LIBINSTALLDIR
|
|
|
-ifdef inlinux
|
|
|
-SHARED_LIBINSTALLDIR=$(PREFIXINSTALLDIR)/lib
|
|
|
-else
|
|
|
-SHARED_LIBINSTALLDIR=$(SHARED_UNITINSTALLDIR)
|
|
|
-endif
|
|
|
+# Where the some extra (data)files will be stored
|
|
|
+ifndef EXTRAINSTALLDIR
|
|
|
+EXTRAINSTALLDIR=$(BASEINSTALLDIR)
|
|
|
endif
|
|
|
|
|
|
|
|
@@ -318,17 +296,12 @@ ifneq ($(OS_TARGET),$(OS_SOURCE))
|
|
|
override FPCOPT+=-T$(OS_TARGET)
|
|
|
endif
|
|
|
|
|
|
-
|
|
|
-ifdef NEEDOPT
|
|
|
-override FPCOPT+=$(NEEDOPT)
|
|
|
+ifdef RTLDIR
|
|
|
+override FPCOPT+=-Fu$(RTLDIR)
|
|
|
endif
|
|
|
|
|
|
-# RTL first and then Unit dir (a unit can override RTLunit). Don't add the
|
|
|
-# dirs if fpcdir=. which can be used for the rtl makefiles
|
|
|
-ifdef FPCDIR
|
|
|
-ifneq ($(FPCDIR),.)
|
|
|
-override FPCOPT+=-Fu$(FPCDIR)/rtl/$(OS_TARGET) -Fu$(FPCDIR)/units/$(OS_TARGET)
|
|
|
-endif
|
|
|
+ifdef UNITSDIR
|
|
|
+override FPCOPT+=-Fu$(UNITSDIR)
|
|
|
endif
|
|
|
|
|
|
ifdef NEEDUNITDIR
|
|
@@ -341,8 +314,13 @@ override FPCOPT+=-FE$(TARGETDIR)
|
|
|
endif
|
|
|
|
|
|
# Smartlinking
|
|
|
-ifeq ($(SMARTLINK),YES)
|
|
|
-override FPCOPT+=-Cx
|
|
|
+ifdef SMARTLINK
|
|
|
+override FPCOPT+=-CX
|
|
|
+endif
|
|
|
+
|
|
|
+# Debug
|
|
|
+ifdef DEBUG
|
|
|
+override FPCOPT+=-g
|
|
|
endif
|
|
|
|
|
|
# Add commandline options
|
|
@@ -367,12 +345,25 @@ ifdef FPCOPTDEF
|
|
|
override FPCOPT+=$(FPCOPTDEF)
|
|
|
endif
|
|
|
|
|
|
+# Error file ?
|
|
|
+ifdef ERRORFILE
|
|
|
+override FPCOPT+=-Fr$(ERRORFILE)
|
|
|
+endif
|
|
|
+
|
|
|
# Was a config file specified ?
|
|
|
ifdef CFGFILE
|
|
|
override FPCOPT+=@$(CFGFILE)
|
|
|
endif
|
|
|
|
|
|
-override COMPILER=$(FPC) $(FPCOPT)
|
|
|
+# For win32 the options are passed using the environment variable FPCEXTCMD
|
|
|
+ifeq ($(OS_SOURCE),win32)
|
|
|
+override FPCEXTCMD:=$(FPCOPT)
|
|
|
+override FPCOPT:=!FPCEXTCMD
|
|
|
+export FPCEXTCMD
|
|
|
+endif
|
|
|
+
|
|
|
+# Compiler commandline
|
|
|
+override COMPILER:=$(FPC) $(FPCOPT)
|
|
|
|
|
|
#####################################################################
|
|
|
# Shell tools
|
|
@@ -383,6 +374,11 @@ ifndef COPY
|
|
|
export COPY:=cp -fp
|
|
|
endif
|
|
|
|
|
|
+# Copy a whole tree
|
|
|
+ifndef COPYTREE
|
|
|
+export COPYTREE:=cp -rfp
|
|
|
+endif
|
|
|
+
|
|
|
# To move pograms
|
|
|
ifndef MOVE
|
|
|
export MOVE:=mv -f
|
|
@@ -439,16 +435,6 @@ ifndef LD
|
|
|
LD=ld
|
|
|
endif
|
|
|
|
|
|
-# Where is the ppumove program ?
|
|
|
-ifndef PPUMOVE
|
|
|
-PPUMOVE=ppumove
|
|
|
-endif
|
|
|
-
|
|
|
-# Where is the ppdep program ?
|
|
|
-ifndef PPDEP
|
|
|
-PPDEP=ppdep
|
|
|
-endif
|
|
|
-
|
|
|
# ppas.bat / ppas.sh
|
|
|
ifdef inlinux
|
|
|
PPAS=ppas.sh
|
|
@@ -464,7 +450,7 @@ endif
|
|
|
ifeq (,$(findstring -s ,$(COMPILER)))
|
|
|
EXECPPAS=
|
|
|
else
|
|
|
-EXECPPAS=@$(PPAS)
|
|
|
+EXECPPAS:=@$(PPAS)
|
|
|
endif
|
|
|
|
|
|
# ldconfig to rebuild .so cache
|
|
@@ -484,6 +470,36 @@ export ECHO:=$(firstword $(ECHO))
|
|
|
endif
|
|
|
endif
|
|
|
|
|
|
+# ppdep
|
|
|
+ifndef PPDEP
|
|
|
+PPDEP:=$(strip $(wildcard $(addsuffix /ppdep$(EXEEXT),$(SEARCHPATH))))
|
|
|
+ifeq ($(PPDEP),)
|
|
|
+PPDEP=
|
|
|
+else
|
|
|
+export PPDEP:=$(firstword $(PPDEP))
|
|
|
+endif
|
|
|
+endif
|
|
|
+
|
|
|
+# ppumove
|
|
|
+ifndef PPUMOVE
|
|
|
+PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
|
|
|
+ifeq ($(PPUMOVE),)
|
|
|
+PPUMOVE=
|
|
|
+else
|
|
|
+export PPUMOVE:=$(firstword $(PPUMOVE))
|
|
|
+endif
|
|
|
+endif
|
|
|
+
|
|
|
+# ppufiles
|
|
|
+ifndef PPUFILES
|
|
|
+PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(EXEEXT),$(SEARCHPATH))))
|
|
|
+ifeq ($(PPUFILES),)
|
|
|
+PPUFILES=
|
|
|
+else
|
|
|
+export PPUFILES:=$(firstword $(PPUFILES))
|
|
|
+endif
|
|
|
+endif
|
|
|
+
|
|
|
# Look if UPX is found for go32v2 and win32. We can't use $UPX becuase
|
|
|
# upx uses that one itself (PFV)
|
|
|
ifndef UPXPROG
|
|
@@ -554,6 +570,7 @@ SMARTEXT=.sl
|
|
|
STATICLIBEXT=.a
|
|
|
SHAREDLIBEXT=.so
|
|
|
PACKAGESUFFIX=
|
|
|
+FPCMADE=fpcmade
|
|
|
|
|
|
# Go32v1
|
|
|
ifeq ($(OS_TARGET),go32v1)
|
|
@@ -564,16 +581,19 @@ SMARTEXT=.sl1
|
|
|
STATICLIBEXT=.a1
|
|
|
SHAREDLIBEXT=.so1
|
|
|
PACKAGESUFFIX=v1
|
|
|
+FPCMADE=fpcmade.v1
|
|
|
endif
|
|
|
|
|
|
# Go32v2
|
|
|
ifeq ($(OS_TARGET),go32v2)
|
|
|
PACKAGESUFFIX=go32
|
|
|
+FPCMADE=fpcmade.dos
|
|
|
endif
|
|
|
|
|
|
# Linux
|
|
|
ifeq ($(OS_TARGET),linux)
|
|
|
PACKAGESUFFIX=linux
|
|
|
+FPCMADE=fpcmade.lnx
|
|
|
endif
|
|
|
|
|
|
# Win32
|
|
@@ -585,6 +605,7 @@ SMARTEXT=.slw
|
|
|
STATICLIBEXT=.aw
|
|
|
SHAREDLIBEXT=.dll
|
|
|
PACKAGESUFFIX=win32
|
|
|
+FPCMADE=fpcmade.w32
|
|
|
endif
|
|
|
|
|
|
# OS/2
|
|
@@ -596,6 +617,7 @@ SMARTEXT=.so
|
|
|
STATICLIBEXT=.ao2
|
|
|
SHAREDLIBEXT=.dll
|
|
|
PACKAGESUFFIX=os2
|
|
|
+FPCMADE=fpcmade.os2
|
|
|
endif
|
|
|
|
|
|
# library prefix
|
|
@@ -622,26 +644,22 @@ endif
|
|
|
endif
|
|
|
|
|
|
#####################################################################
|
|
|
-# Default rules
|
|
|
+# Standard rules
|
|
|
#####################################################################
|
|
|
|
|
|
-.PHONY: defaultrule all staticlib sharedlib showinstall install \
|
|
|
- staticinstall sharedinstall libinstall zipinstall zipinstalladd \
|
|
|
- clean cleanall depend info
|
|
|
-
|
|
|
all: fpc_all
|
|
|
|
|
|
-staticlib: fpc_staticlib
|
|
|
+debug: fpc_debug
|
|
|
|
|
|
-sharedlib: fpc_sharedlib
|
|
|
+smart: fpc_smart
|
|
|
|
|
|
-showinstall: fpc_showinstall
|
|
|
+shared: fpc_shared
|
|
|
|
|
|
-staticinstall: fpc_staticinstall
|
|
|
+showinstall: fpc_showinstall
|
|
|
|
|
|
-sharedinstall: fpc_sharedinstall
|
|
|
+install: fpc_install
|
|
|
|
|
|
-libinstall: fpc_libinstall
|
|
|
+sourceinstall: fpc_sourceinstall
|
|
|
|
|
|
zipinstall: fpc_zipinstall
|
|
|
|
|
@@ -649,41 +667,75 @@ zipinstalladd: fpc_zipinstalladd
|
|
|
|
|
|
clean: fpc_clean
|
|
|
|
|
|
-clean_all: fpc_clean_all
|
|
|
-
|
|
|
-depend: fpc_depend
|
|
|
+cleanall: fpc_cleanall
|
|
|
|
|
|
info: fpc_info
|
|
|
|
|
|
+.PHONY: all debug smart shared showinstall install sourceinstall zipinstall zipinstalladd clean cleanall info
|
|
|
+
|
|
|
#####################################################################
|
|
|
-# General compile rules
|
|
|
+# Package depends
|
|
|
#####################################################################
|
|
|
|
|
|
-.PHONY: fpc_all fpc_units fpc_exes fpc_loaders
|
|
|
+ifneq ($(wildcard $(RTLDIR)),)
|
|
|
+ifeq ($(wildcard $(RTLDIR)/$(FPCMADE)),)
|
|
|
+override COMPILEPACKAGES+=rtl
|
|
|
+rtl_package:
|
|
|
+ $(MAKE) -C $(RTLDIR) all
|
|
|
+endif
|
|
|
+endif
|
|
|
+
|
|
|
+.PHONY: rtl_package
|
|
|
|
|
|
-# Create Filenames
|
|
|
-LOADEROFILES=$(addsuffix $(OEXT),$(LOADEROBJECTS))
|
|
|
-EXEFILES=$(addsuffix $(EXEEXT),$(EXEOBJECTS))
|
|
|
-EXEOFILES=$(addsuffix $(OEXT),$(EXEOBJECTS))
|
|
|
-UNITPPUFILES=$(addsuffix $(PPUEXT),$(UNITOBJECTS))
|
|
|
-UNITOFILES=$(addsuffix $(OEXT),$(UNITOBJECTS))
|
|
|
-UNITAFILES=$(addsuffix $(STATICLIBEXT),$(UNITOBJECTS))
|
|
|
+#####################################################################
|
|
|
+# Units
|
|
|
+#####################################################################
|
|
|
|
|
|
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp
|
|
|
+.PHONY: fpc_units
|
|
|
|
|
|
-ifdef DEFAULTUNITS
|
|
|
-fpc_all: fpc_loaders fpc_units
|
|
|
-else
|
|
|
-fpc_all: fpc_loaders fpc_units fpc_exes
|
|
|
-endif
|
|
|
+override ALLTARGET+=fpc_units
|
|
|
|
|
|
-fpc_loaders: $(LOADEROFILES)
|
|
|
+override UNITPPUFILES=$(addsuffix $(PPUEXT),$(UNITOBJECTS))
|
|
|
+override INSTALLPPUFILES+=$(UNITPPUFILES)
|
|
|
+override CLEANPPUFILES+=$(UNITPPUFILES)
|
|
|
|
|
|
fpc_units: $(UNITPPUFILES)
|
|
|
|
|
|
+#####################################################################
|
|
|
+# Exes
|
|
|
+#####################################################################
|
|
|
+
|
|
|
+.PHONY: fpc_exes
|
|
|
+
|
|
|
+override EXEFILES=$(addsuffix $(EXEEXT),$(EXEOBJECTS))
|
|
|
+override EXEOFILES=$(addsuffix $(OEXT),$(EXEOBJECTS))
|
|
|
+
|
|
|
+override ALLTARGET+=fpc_exes
|
|
|
+override INSTALLEXEFILES+=$(EXEFILES)
|
|
|
+override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
|
|
|
+
|
|
|
fpc_exes: $(EXEFILES)
|
|
|
|
|
|
+#####################################################################
|
|
|
+# General compile rules
|
|
|
+#####################################################################
|
|
|
+
|
|
|
+.PHONY: fpc_all fpc_debug
|
|
|
+
|
|
|
+$(FPCMADE):
|
|
|
+ @$(ECHO) Compiled > $(FPCMADE)
|
|
|
+
|
|
|
+fpc_all: $(addsuffix _package,$(COMPILEPACKAGES)) \
|
|
|
+ $(addsuffix _component,$(COMPILECOMPONENTS)) \
|
|
|
+ $(ALLTARGET) $(FPCMADE)
|
|
|
+
|
|
|
+fpc_debug:
|
|
|
+ $(MAKE) all DEBUG=1
|
|
|
+
|
|
|
# General compile rules, available for both possible PASEXT
|
|
|
+
|
|
|
+.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp
|
|
|
+
|
|
|
%$(PPUEXT): %.pp
|
|
|
$(COMPILER) $< $(REDIR)
|
|
|
$(EXECPASS)
|
|
@@ -700,25 +752,21 @@ fpc_exes: $(EXEFILES)
|
|
|
$(COMPILER) $< $(REDIR)
|
|
|
$(EXECPASS)
|
|
|
|
|
|
-%$(OEXT): %$(LOADEREXT)
|
|
|
- $(AS) -o $*$(OEXT) $<
|
|
|
-
|
|
|
#####################################################################
|
|
|
# Library
|
|
|
#####################################################################
|
|
|
|
|
|
-.PHONY: fpc_staticlib fpc_sharedlib
|
|
|
+.PHONY: fpc_smart fpc_shared
|
|
|
|
|
|
# Default sharedlib units are all unit objects
|
|
|
ifndef SHAREDLIBUNITOBJECTS
|
|
|
-SHAREDLIBUNITOBJECTS=$(UNITOBJECTS)
|
|
|
+SHAREDLIBUNITOBJECTS:=$(UNITOBJECTS)
|
|
|
endif
|
|
|
|
|
|
-fpc_staticlib:
|
|
|
- $(MAKE) libsclean
|
|
|
- $(MAKE) all SMARTLINK=YES
|
|
|
+fpc_smart:
|
|
|
+ $(MAKE) all SMARTLINK=1
|
|
|
|
|
|
-fpc_sharedlib: all
|
|
|
+fpc_shared: all
|
|
|
ifdef inlinux
|
|
|
ifndef LIBNAME
|
|
|
@$(ECHO) LIBNAME not set
|
|
@@ -733,56 +781,78 @@ endif
|
|
|
# Install rules
|
|
|
#####################################################################
|
|
|
|
|
|
-.PHONY: fpc_showinstallfiles fpc_install
|
|
|
+.PHONY: fpc_showinstall fpc_install
|
|
|
|
|
|
-ifdef UNITOBJECTS
|
|
|
-override UNITINSTALLFILES=$(wildcard $(UNITPPUFILES) $(UNITOFILES) $(UNITAFILES))
|
|
|
-endif
|
|
|
ifdef EXTRAINSTALLUNITS
|
|
|
-override EXTRAINSTALLFILES+=$(wildcard $(addsuffix $(OEXT),$(EXTRAINSTALLUNITS)) $(addsuffix $(STATICLIBEXT),$(EXTRAINSTALLUNITS)) $(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS)))
|
|
|
+override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
|
|
|
endif
|
|
|
|
|
|
-fpc_showinstallfiles : all
|
|
|
-ifndef DEFAULTUNITS
|
|
|
-ifdef EXEOBJECTS
|
|
|
- @$(ECHO) $(addprefix "\n"$(BININSTALLDIR)/,$(EXEFILES))
|
|
|
+ifdef INSTALLPPUFILES
|
|
|
+ifdef PPUFILES
|
|
|
+ifdef inlinux
|
|
|
+INSTALLPPULINKFILES:=$(shell $(PPUFILES) -S -O $(INSTALLPPUFILES))
|
|
|
+INSTALLPPULIBFILES:=$(shell $(PPUFILES) -L $(INSTALLPPUFILES))
|
|
|
+else
|
|
|
+INSTALLPPULINKFILES:=$(shell $(PPUFILES) $(INSTALLPPUFILES))
|
|
|
endif
|
|
|
+else
|
|
|
+INSTALLPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)))
|
|
|
+endif
|
|
|
+endif
|
|
|
+
|
|
|
+fpc_showinstall: $(SHOWINSTALLTARGET)
|
|
|
+ifdef INSTALLEXEFILES
|
|
|
+ @$(ECHO) $(addprefix "\n"$(BININSTALLDIR)/,$(INSTALLEXEFILES))
|
|
|
+endif
|
|
|
+ifdef INSTALLPPUFILES
|
|
|
+ @$(ECHO) $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPUFILES))
|
|
|
+ifneq ($(INSTALLPPULINKFILES),)
|
|
|
+ @$(ECHO) $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPULINKFILES))
|
|
|
endif
|
|
|
-ifdef LOADEROBJECTS
|
|
|
- @$(ECHO) $(addprefix "\n"$(UNITINSTALLDIR)/,$(LOADEROFILES))
|
|
|
+ifneq ($(INSTALLPPULIBFILES),)
|
|
|
+ @$(ECHO) $(addprefix "\n"$(LIBINSTALLDIR)/,$(INSTALLPPULIBFILES))
|
|
|
endif
|
|
|
-ifdef UNITINSTALLFILES
|
|
|
- @$(ECHO) $(addprefix "\n"$(UNITINSTALLDIR)/,$(UNITINSTALLFILES))
|
|
|
endif
|
|
|
ifdef EXTRAINSTALLFILES
|
|
|
- @$(ECHO) $(addprefix "\n"$(UNITINSTALLDIR)/,$(EXTRAINSTALLFILES))
|
|
|
+ @$(ECHO) $(addprefix "\n"$(EXTRAINSTALLDIR)/,$(EXTRAINSTALLFILES))
|
|
|
endif
|
|
|
|
|
|
-fpc_install:
|
|
|
+fpc_install: $(INSTALLTARGET)
|
|
|
# Create UnitInstallFiles
|
|
|
-ifndef DEFAULTUNITS
|
|
|
-ifdef EXEOBJECTS
|
|
|
+ifdef INSTALLEXEFILES
|
|
|
$(MKDIR) $(BININSTALLDIR)
|
|
|
# Compress the exes if upx is defined
|
|
|
ifdef UPXPROG
|
|
|
- -$(UPXPROG) $(EXEFILES)
|
|
|
+ -$(UPXPROG) $(INSTALLEXEFILES)
|
|
|
endif
|
|
|
- $(INSTALLEXE) $(EXEFILES) $(BININSTALLDIR)
|
|
|
+ $(INSTALLEXE) $(INSTALLEXEFILES) $(BININSTALLDIR)
|
|
|
endif
|
|
|
-endif
|
|
|
-ifdef LOADEROBJECTS
|
|
|
+ifdef INSTALLPPUFILES
|
|
|
$(MKDIR) $(UNITINSTALLDIR)
|
|
|
- $(INSTALL) $(LOADEROFILES) $(UNITINSTALLDIR)
|
|
|
+ $(INSTALL) $(INSTALLPPUFILES) $(UNITINSTALLDIR)
|
|
|
+ifneq ($(INSTALLPPULINKFILES),)
|
|
|
+ $(INSTALL) $(INSTALLPPULINKFILES) $(UNITINSTALLDIR)
|
|
|
+endif
|
|
|
+ifneq ($(INSTALLPPULIBFILES),)
|
|
|
+ $(MKDIR) $(LIBINSTALLDIR)
|
|
|
+ $(INSTALL) $(INSTALLPPULIBFILES) $(LIBINSTALLDIR)
|
|
|
endif
|
|
|
-ifdef UNITINSTALLFILES
|
|
|
- $(MKDIR) $(UNITINSTALLDIR)
|
|
|
- $(INSTALL) $(UNITINSTALLFILES) $(UNITINSTALLDIR)
|
|
|
endif
|
|
|
ifdef EXTRAINSTALLFILES
|
|
|
- $(MKDIR) $(UNITINSTALLDIR)
|
|
|
- $(INSTALL) $(EXTRAINSTALLFILES) $(UNITINSTALLDIR)
|
|
|
+ $(MKDIR) $(EXTRAINSTALLDIR)
|
|
|
+ $(INSTALL) $(EXTRAINSTALLFILES) $(EXTRAINSTALLDIR)
|
|
|
endif
|
|
|
|
|
|
+#####################################################################
|
|
|
+# Source install rules
|
|
|
+#####################################################################
|
|
|
+
|
|
|
+.PHONY: fpc_sourceinstall
|
|
|
+
|
|
|
+fpc_sourceinstall: clean
|
|
|
+ $(MKDIR) $(SOURCEINSTALLDIR)
|
|
|
+ $(COPYTREE) $(BASEDIR) $(SOURCEINSTALLDIR)
|
|
|
+
|
|
|
#####################################################################
|
|
|
# Zip
|
|
|
#####################################################################
|
|
@@ -799,8 +869,8 @@ endif
|
|
|
endif
|
|
|
|
|
|
# Test dir if none specified
|
|
|
-ifndef PACKAGEDIR
|
|
|
-PACKAGEDIR=$(BASEDIR)
|
|
|
+ifndef DESTZIPDIR
|
|
|
+DESTZIPDIR:=$(BASEDIR)
|
|
|
endif
|
|
|
|
|
|
# Add .zip/.tar.gz extension
|
|
@@ -810,11 +880,6 @@ override ZIPNAME:=$(ZIPNAME)$(ZIPEXT)
|
|
|
endif
|
|
|
endif
|
|
|
|
|
|
-# Default target which is call before zipping
|
|
|
-ifndef ZIPTARGET
|
|
|
-ZIPTARGET=install
|
|
|
-endif
|
|
|
-
|
|
|
# Note: This will not remove the zipfile first
|
|
|
fpc_zipinstalladd:
|
|
|
ifndef ZIPNAME
|
|
@@ -823,11 +888,11 @@ ifndef ZIPNAME
|
|
|
else
|
|
|
$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
|
|
|
ifdef inlinux
|
|
|
- gzip -d $(PACKAGEDIR)/$(ZIPNAME).tar.gz
|
|
|
- cd $(PACKDIR) ; tar rv --file $(PACKAGEDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
|
|
|
- gzip $(PACKAGEDIR)/$(ZIPNAME).tar
|
|
|
+ gzip -d $(DESTZIPDIR)/$(ZIPNAME).tar.gz
|
|
|
+ cd $(PACKDIR) ; tar rv --file $(DESTZIPDIR)/$(ZIPNAME).tar * ; cd $(BASEDIR)
|
|
|
+ gzip $(DESTZIPDIR)/$(ZIPNAME).tar
|
|
|
else
|
|
|
- cd $(PACKDIR) ; $(ZIPPROG) $(PACKAGEDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
|
|
|
+ cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
|
|
|
endif
|
|
|
$(DELTREE) $(PACKDIR)
|
|
|
endif
|
|
@@ -838,12 +903,12 @@ ifndef ZIPNAME
|
|
|
@$(ECHO) Please specify ZIPNAME!
|
|
|
@exit
|
|
|
else
|
|
|
- $(DEL) $(PACKAGEDIR)/$(ZIPNAME)
|
|
|
+ $(DEL) $(DESTZIPDIR)/$(ZIPNAME)
|
|
|
$(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
|
|
|
ifdef inlinux
|
|
|
- cd $(PACKDIR) ; tar cvz --file $(PACKAGEDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
|
|
|
+ cd $(PACKDIR) ; tar cvz --file $(DESTZIPDIR)/$(ZIPNAME).tar.gz * ; cd $(BASEDIR)
|
|
|
else
|
|
|
- cd $(PACKDIR) ; $(ZIPPROG) $(PACKAGEDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
|
|
|
+ cd $(PACKDIR) ; $(ZIPPROG) $(DESTZIPDIR)/$(ZIPNAME) * ; cd $(BASEDIR)
|
|
|
endif
|
|
|
$(DELTREE) $(PACKDIR)
|
|
|
endif
|
|
@@ -852,48 +917,42 @@ endif
|
|
|
# Clean rules
|
|
|
#####################################################################
|
|
|
|
|
|
-.PHONY: fpc_clean fpc_libsclean fpc_cleanall
|
|
|
+.PHONY: fpc_clean fpc_cleanall
|
|
|
|
|
|
-ifdef UNITOBJECTS
|
|
|
-override UNITCLEANFILES=$(wildcard $(UNITPPUFILES) $(UNITOFILES) $(UNITAFILES))
|
|
|
-endif
|
|
|
ifdef EXTRACLEANUNITS
|
|
|
-override EXTRACLEANFILES+=$(wildcard $(addsuffix $(OEXT),$(EXTRACLEANUNITS)) $(addsuffix $(STATICLIBEXT),$(EXTRACLEANUNITS)) $(addsuffix $(PPUEXT),$(EXTRACLEANUNITS)))
|
|
|
+override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRACLEANUNITS))
|
|
|
endif
|
|
|
|
|
|
-fpc_clean:
|
|
|
-ifdef EXEOBJECTS
|
|
|
- -$(DEL) $(EXEFILES) $(EXEOFILES)
|
|
|
+ifdef CLEANPPUFILES
|
|
|
+ifdef PPUFILES
|
|
|
+CLEANPPULINKFILES:=$(shell $(PPUFILES) $(CLEANPPUFILES))
|
|
|
+else
|
|
|
+CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)))
|
|
|
+endif
|
|
|
endif
|
|
|
-ifdef LOADEROBJECTS
|
|
|
- -$(DEL) $(LOADEROFILES)
|
|
|
+
|
|
|
+fpc_clean: $(CLEANTARGET)
|
|
|
+ifdef CLEANEXEFILES
|
|
|
+ -$(DEL) $(CLEANEXEFILES)
|
|
|
+endif
|
|
|
+ifdef CLEANPPUFILES
|
|
|
+ -$(DEL) $(CLEANPPUFILES)
|
|
|
endif
|
|
|
-ifdef UNITCLEANFILES
|
|
|
- -$(DEL) $(UNITCLEANFILES)
|
|
|
+ifneq ($(CLEANPPULINKFILES),)
|
|
|
+ -$(DEL) $(CLEANPPULINKFILES)
|
|
|
endif
|
|
|
ifdef EXTRACLEANFILES
|
|
|
-$(DEL) $(EXTRACLEANFILES)
|
|
|
endif
|
|
|
- -$(DEL) $(PPAS) link.res log
|
|
|
-
|
|
|
-fpc_libsclean: clean
|
|
|
- -$(DEL) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
|
|
|
+ -$(DEL) $(FPCMADE) $(PPAS) link.res $(REDIRFILE)
|
|
|
|
|
|
-fpc_cleanall:
|
|
|
-ifdef EXEOBJECTS
|
|
|
- -$(DEL) $(EXEFILES)
|
|
|
+fpc_cleanall: $(CLEANTARGET)
|
|
|
+ifdef CLEANEXEFILES
|
|
|
+ -$(DEL) $(CLEANEXEFILES)
|
|
|
endif
|
|
|
-$(DEL) *$(OEXT) *$(PPUEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
|
|
|
-$(DELTREE) *$(SMARTEXT)
|
|
|
-
|
|
|
-#####################################################################
|
|
|
-# Depend rules
|
|
|
-#####################################################################
|
|
|
-
|
|
|
-.PHONY: fpc_depend
|
|
|
-
|
|
|
-fpc_depend:
|
|
|
- $(PPDEP) $(UNITOBJECTS)
|
|
|
+ -$(DEL) $(FPCMADE) $(PPAS) link.res $(REDIRFILE)
|
|
|
|
|
|
#####################################################################
|
|
|
# Info rules
|
|
@@ -902,7 +961,7 @@ fpc_depend:
|
|
|
.PHONY: fpc_info fpc_cfginfo fpc_objectinfo fpc_toolsinfo fpc_installinfo \
|
|
|
fpc_dirinfo
|
|
|
|
|
|
-fpc_info: $(FPCINFO)
|
|
|
+fpc_info: $(INFOTARGET)
|
|
|
|
|
|
fpc_infocfg:
|
|
|
@$(ECHO)
|
|
@@ -915,6 +974,20 @@ fpc_infocfg:
|
|
|
@$(ECHO) Target.... $(OS_TARGET)
|
|
|
@$(ECHO)
|
|
|
|
|
|
+fpc_infoobjects:
|
|
|
+ @$(ECHO)
|
|
|
+ @$(ECHO) == Object info ==
|
|
|
+ @$(ECHO)
|
|
|
+ @$(ECHO) LoaderObjects..... $(LOADEROBJECTS)
|
|
|
+ @$(ECHO) UnitObjects....... $(UNITOBJECTS)
|
|
|
+ @$(ECHO) ExeObjects........ $(EXEOBJECTS)
|
|
|
+ @$(ECHO)
|
|
|
+ @$(ECHO) ExtraCleanUnits... $(EXTRACLEANUNITS)
|
|
|
+ @$(ECHO) ExtraCleanFiles... $(EXTRACLEANFILES)
|
|
|
+ @$(ECHO)
|
|
|
+ @$(ECHO) ExtraInstallUnits. $(EXTRAINSTALLUNITS)
|
|
|
+ @$(ECHO) ExtraInstallFiles. $(EXTRAINSTALLFILES)
|
|
|
+ @$(ECHO)
|
|
|
|
|
|
fpc_infoinstall:
|
|
|
@$(ECHO)
|
|
@@ -927,21 +1000,17 @@ endif
|
|
|
@$(ECHO)
|
|
|
@$(ECHO) BaseInstallDir....... $(BASEINSTALLDIR)
|
|
|
@$(ECHO) BinInstallDir........ $(BININSTALLDIR)
|
|
|
- @$(ECHO) UnitInstallDir....... $(UNITINSTALLDIR)
|
|
|
- @$(ECHO) StaticUnitInstallDir. $(STATIC_UNITINSTALLDIR)
|
|
|
- @$(ECHO) SharedUnitInstallDir. $(SHARED_UNITINSTALLDIR)
|
|
|
@$(ECHO) LibInstallDir........ $(LIBINSTALLDIR)
|
|
|
- @$(ECHO) StaticLibInstallDir.. $(STATIC_LIBINSTALLDIR)
|
|
|
- @$(ECHO) SharedLibInstallDir.. $(SHARED_LIBINSTALLDIR)
|
|
|
- @$(ECHO) MsgInstallDir........ $(MSGINSTALLDIR)
|
|
|
+ @$(ECHO) UnitInstallDir....... $(UNITINSTALLDIR)
|
|
|
+ @$(ECHO) SourceInstallDir..... $(SOURCEINSTALLDIR)
|
|
|
@$(ECHO) DocInstallDir........ $(DOCINSTALLDIR)
|
|
|
+ @$(ECHO) ExtraInstallDir...... $(EXTRAINSTALLDIR)
|
|
|
@$(ECHO)
|
|
|
|
|
|
#####################################################################
|
|
|
# Users rules
|
|
|
#####################################################################
|
|
|
|
|
|
-
|
|
|
ifdef inlinux
|
|
|
installer: install.pas
|
|
|
$(COMPILER) -oinstaller install.pas
|