12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181 |
- #
- # Makefile generated by fpcmake v0.99.13 [2000/02/09]
- #
- defaultrule: all
- #####################################################################
- # Autodetect OS (Linux or Dos or Windows NT)
- # define inlinux when running under linux
- # define inWinNT when running under WinNT
- #####################################################################
- # We need only / in the path
- override PATH:=$(subst \,/,$(PATH))
- # Search for PWD and determine also if we are under linux
- PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH)))))
- ifeq ($(PWD),)
- PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH)))))
- ifeq ($(PWD),)
- nopwd:
- @echo You need the GNU utils package to use this Makefile!
- @echo Get ftp://ftp.freepascal.org/pub/fpc/dist/go32v2/utilgo32.zip
- @exit
- else
- inlinux=1
- endif
- else
- PWD:=$(firstword $(PWD))
- endif
- # Detect NT - NT sets OS to Windows_NT
- ifndef inlinux
- ifeq ($(OS),Windows_NT)
- inWinNT=1
- endif
- endif
- # Detect OS/2 - OS/2 has OS2_SHELL defined
- ifndef inlinux
- ifndef inWinNT
- ifdef OS2_SHELL
- inOS2=1
- endif
- endif
- endif
- # The extension of executables
- ifdef inlinux
- EXEEXT=
- else
- EXEEXT=.exe
- endif
- # The path which is searched separated by spaces
- ifdef inlinux
- SEARCHPATH=$(subst :, ,$(PATH))
- else
- SEARCHPATH=$(subst ;, ,$(PATH))
- endif
- # Base dir
- ifdef PWD
- BASEDIR:=$(shell $(PWD))
- else
- BASEDIR=.
- endif
- #####################################################################
- # FPC version/target Detection
- #####################################################################
- # What compiler to use ?
- ifndef FPC
- # Compatibility with old makefiles
- ifdef PP
- FPC=$(PP)
- else
- ifdef inOS2
- FPC=ppos2
- else
- FPC=ppc386
- endif
- endif
- endif
- override FPC:=$(subst $(EXEEXT),,$(FPC))
- override FPC:=$(subst \,/,$(FPC))$(EXEEXT)
- # Target OS
- ifndef OS_TARGET
- OS_TARGET:=$(shell $(FPC) -iTO)
- endif
- # Source OS
- ifndef OS_SOURCE
- OS_SOURCE:=$(shell $(FPC) -iSO)
- endif
- # Target CPU
- ifndef CPU_TARGET
- CPU_TARGET:=$(shell $(FPC) -iTP)
- endif
- # Source CPU
- ifndef CPU_SOURCE
- CPU_SOURCE:=$(shell $(FPC) -iSP)
- endif
- # FPC version
- ifndef FPC_VERSION
- FPC_VERSION:=$(shell $(FPC) -iV)
- endif
- export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
- #####################################################################
- # FPCDIR Setting
- #####################################################################
- # Test FPCDIR to look if the RTL dir exists
- ifdef FPCDIR
- override FPCDIR:=$(subst \,/,$(FPCDIR))
- ifeq ($(wildcard $(FPCDIR)/rtl),)
- ifeq ($(wildcard $(FPCDIR)/units),)
- override FPCDIR=wrong
- endif
- endif
- else
- override FPCDIR=wrong
- endif
- # Default FPCDIR
- ifeq ($(FPCDIR),wrong)
- override FPCDIR=../../..
- ifeq ($(wildcard $(FPCDIR)/rtl),)
- ifeq ($(wildcard $(FPCDIR)/units),)
- override FPCDIR=wrong
- endif
- endif
- endif
- # Detect FPCDIR
- ifeq ($(FPCDIR),wrong)
- ifdef inlinux
- override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
- ifeq ($(wildcard $(FPCDIR)/units),)
- override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
- endif
- else
- override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
- override FPCDIR:=$(FPCDIR)/..
- ifeq ($(wildcard $(FPCDIR)/rtl),)
- ifeq ($(wildcard $(FPCDIR)/units),)
- override FPCDIR:=$(FPCDIR)/..
- ifeq ($(wildcard $(FPCDIR)/rtl),)
- ifeq ($(wildcard $(FPCDIR)/units),)
- override FPCDIR=c:/pp
- endif
- endif
- endif
- endif
- endif
- endif
- ifndef PACKAGESDIR
- PACKAGESDIR=$(FPCDIR)/packages
- endif
- ifndef TOOLKITSDIR
- TOOLKITSDIR=
- endif
- ifndef COMPONENTSDIR
- COMPONENTSDIR=
- endif
- # Create units dir
- ifneq ($(FPCDIR),.)
- UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
- endif
- #####################################################################
- # User Settings
- #####################################################################
- # Targets
- override EXEOBJECTS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
- # Clean
- # Install
- ZIPTARGET=install
- # Defaults
- # Directories
- # Packages
- override PACKAGES+=rtl forms x11
- # Libraries
- override NEEDOTHERLIB=1
- # Info
- INFOTARGET=fpc_infocfg fpc_infoobjects fpc_infoinstall
- #####################################################################
- # Shell tools
- #####################################################################
- # echo
- ifndef ECHO
- ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
- ifeq ($(ECHO),)
- ECHO:=$(strip $(wildcard $(addsuffix /echo$(EXEEXT),$(SEARCHPATH))))
- ifeq ($(ECHO),)
- ECHO:=echo
- ECHOE:=echo
- else
- ECHO:=$(firstword $(ECHO))
- ECHOE=$(ECHO) -E
- endif
- else
- ECHO:=$(firstword $(ECHO))
- ECHOE=$(ECHO) -E
- endif
- endif
- # To copy pograms
- ifndef COPY
- COPY:=cp -fp
- endif
- # Copy a whole tree
- ifndef COPYTREE
- COPYTREE:=cp -rfp
- endif
- # To move pograms
- ifndef MOVE
- MOVE:=mv -f
- endif
- # Check delete program
- ifndef DEL
- DEL:=rm -f
- endif
- # Check deltree program
- ifndef DELTREE
- DELTREE:=rm -rf
- endif
- # To install files
- ifndef INSTALL
- ifdef inlinux
- INSTALL:=install -m 644
- else
- INSTALL:=$(COPY)
- endif
- endif
- # To install programs
- ifndef INSTALLEXE
- ifdef inlinux
- INSTALLEXE:=install -m 755
- else
- INSTALLEXE:=$(COPY)
- endif
- endif
- # To make a directory.
- ifndef MKDIR
- ifdef inlinux
- MKDIR:=install -m 755 -d
- else
- MKDIR:=ginstall -m 755 -d
- endif
- endif
- export ECHO ECHOE COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
- #####################################################################
- # Default Tools
- #####################################################################
- # assembler, redefine it if cross compiling
- ifndef AS
- AS=as
- endif
- # linker, but probably not used
- ifndef LD
- LD=ld
- endif
- # ppas.bat / ppas.sh
- ifdef inlinux
- PPAS=ppas.sh
- else
- ifdef inOS2
- PPAS=ppas.cmd
- else
- PPAS=ppas.bat
- endif
- endif
- # ldconfig to rebuild .so cache
- ifdef inlinux
- LDCONFIG=ldconfig
- else
- LDCONFIG=
- endif
- # ppumove
- ifndef PPUMOVE
- PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
- ifeq ($(PPUMOVE),)
- PPUMOVE=
- else
- PPUMOVE:=$(firstword $(PPUMOVE))
- endif
- endif
- export PPUMOVE
- # ppufiles
- ifndef PPUFILES
- PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(EXEEXT),$(SEARCHPATH))))
- ifeq ($(PPUFILES),)
- PPUFILES=
- else
- PPUFILES:=$(firstword $(PPUFILES))
- endif
- endif
- export PPUFILES
- # Look if UPX is found for go32v2 and win32. We can't use $UPX becuase
- # upx uses that one itself (PFV)
- ifndef UPXPROG
- ifeq ($(OS_TARGET),go32v2)
- UPXPROG:=1
- endif
- ifeq ($(OS_TARGET),win32)
- UPXPROG:=1
- endif
- ifdef UPXPROG
- UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(EXEEXT),$(SEARCHPATH))))
- ifeq ($(UPXPROG),)
- UPXPROG=
- else
- UPXPROG:=$(firstword $(UPXPROG))
- endif
- else
- UPXPROG=
- endif
- endif
- export UPXPROG
- # ZipProg, you can't use Zip as the var name (PFV)
- ifndef ZIPPROG
- ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
- ifeq ($(ZIPPROG),)
- ZIPPROG=
- else
- ZIPPROG:=$(firstword $(ZIPPROG))
- endif
- endif
- export ZIPPROG
- ZIPOPT=-9
- ZIPEXT=.zip
- # Tar
- ifndef TARPROG
- TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
- ifeq ($(TARPROG),)
- TARPROG=
- else
- TARPROG:=$(firstword $(TARPROG))
- endif
- endif
- export TARPROG
- ifeq ($(USETAR),bz2)
- TAROPT=vI
- TAREXT=.tar.bz2
- else
- TAROPT=vz
- TAREXT=.tar.gz
- endif
- #####################################################################
- # Default extensions
- #####################################################################
- # Default needed extensions (Go32v2,Linux)
- LOADEREXT=.as
- PPLEXT=.ppl
- PPUEXT=.ppu
- OEXT=.o
- ASMEXT=.s
- SMARTEXT=.sl
- STATICLIBEXT=.a
- SHAREDLIBEXT=.so
- RSTEXT=.rst
- FPCMADE=fpcmade
- # Go32v1
- ifeq ($(OS_TARGET),go32v1)
- PPUEXT=.pp1
- OEXT=.o1
- ASMEXT=.s1
- SMARTEXT=.sl1
- STATICLIBEXT=.a1
- SHAREDLIBEXT=.so1
- FPCMADE=fpcmade.v1
- endif
- # Go32v2
- ifeq ($(OS_TARGET),go32v2)
- FPCMADE=fpcmade.dos
- endif
- # Linux
- ifeq ($(OS_TARGET),linux)
- FPCMADE=fpcmade.lnx
- endif
- # Win32
- ifeq ($(OS_TARGET),win32)
- PPUEXT=.ppw
- OEXT=.ow
- ASMEXT=.sw
- SMARTEXT=.slw
- STATICLIBEXT=.aw
- SHAREDLIBEXT=.dll
- FPCMADE=fpcmade.w32
- endif
- # OS/2
- ifeq ($(OS_TARGET),os2)
- PPUEXT=.ppo
- ASMEXT=.so2
- OEXT=.oo2
- SMARTEXT=.so
- STATICLIBEXT=.ao2
- SHAREDLIBEXT=.dll
- FPCMADE=fpcmade.os2
- endif
- # library prefix
- LIBPREFIX=lib
- ifeq ($(OS_TARGET),go32v2)
- LIBPREFIX=
- endif
- ifeq ($(OS_TARGET),go32v1)
- LIBPREFIX=
- endif
- # determine which .pas extension is used
- ifndef PASEXT
- ifdef EXEOBJECTS
- override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(EXEOBJECTS)))))
- else
- override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(UNITOBJECTS)))))
- endif
- ifeq ($(TESTPAS),)
- PASEXT=.pp
- else
- PASEXT=.pas
- endif
- endif
- # Check if the dirs really exists, else turn it off
- ifeq ($(wildcard $(UNITSDIR)),)
- UNITSDIR=
- endif
- ifeq ($(wildcard $(TOOLKITSDIR)),)
- TOOLKITSDIR=
- endif
- ifeq ($(wildcard $(PACKAGESDIR)),)
- PACKAGESDIR=
- endif
- ifeq ($(wildcard $(COMPONENTSDIR)),)
- COMPONENTSDIR=
- endif
- # PACKAGESDIR packages
- PACKAGERTL=1
- PACKAGEFORMS=1
- PACKAGEX11=1
- ifdef PACKAGERTL
- ifneq ($(wildcard $(FPCDIR)/rtl),)
- ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
- PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
- else
- PACKAGEDIR_RTL=$(FPCDIR)/rtl
- endif
- ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
- override COMPILEPACKAGES+=package_rtl
- package_rtl:
- $(MAKE) -C $(PACKAGEDIR_RTL) all
- endif
- UNITDIR_RTL=$(PACKAGEDIR_RTL)
- else
- PACKAGEDIR_RTL=
- ifneq ($(wildcard $(UNITSDIR)/rtl),)
- ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
- UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
- else
- UNITDIR_RTL=$(UNITSDIR)/rtl
- endif
- else
- UNITDIR_RTL=
- endif
- endif
- ifdef UNITDIR_RTL
- override NEEDUNITDIR+=$(UNITDIR_RTL)
- endif
- endif
- ifdef PACKAGEFORMS
- ifneq ($(wildcard $(PACKAGESDIR)/forms),)
- ifneq ($(wildcard $(PACKAGESDIR)/forms/$(OS_TARGET)),)
- PACKAGEDIR_FORMS=$(PACKAGESDIR)/forms/$(OS_TARGET)
- else
- PACKAGEDIR_FORMS=$(PACKAGESDIR)/forms
- endif
- ifeq ($(wildcard $(PACKAGEDIR_FORMS)/$(FPCMADE)),)
- override COMPILEPACKAGES+=package_forms
- package_forms:
- $(MAKE) -C $(PACKAGEDIR_FORMS) all
- endif
- UNITDIR_FORMS=$(PACKAGEDIR_FORMS)
- else
- PACKAGEDIR_FORMS=
- ifneq ($(wildcard $(UNITSDIR)/forms),)
- ifneq ($(wildcard $(UNITSDIR)/forms/$(OS_TARGET)),)
- UNITDIR_FORMS=$(UNITSDIR)/forms/$(OS_TARGET)
- else
- UNITDIR_FORMS=$(UNITSDIR)/forms
- endif
- else
- UNITDIR_FORMS=
- endif
- endif
- ifdef UNITDIR_FORMS
- override NEEDUNITDIR+=$(UNITDIR_FORMS)
- endif
- endif
- ifdef PACKAGEX11
- ifneq ($(wildcard $(PACKAGESDIR)/x11),)
- ifneq ($(wildcard $(PACKAGESDIR)/x11/$(OS_TARGET)),)
- PACKAGEDIR_X11=$(PACKAGESDIR)/x11/$(OS_TARGET)
- else
- PACKAGEDIR_X11=$(PACKAGESDIR)/x11
- endif
- ifeq ($(wildcard $(PACKAGEDIR_X11)/$(FPCMADE)),)
- override COMPILEPACKAGES+=package_x11
- package_x11:
- $(MAKE) -C $(PACKAGEDIR_X11) all
- endif
- UNITDIR_X11=$(PACKAGEDIR_X11)
- else
- PACKAGEDIR_X11=
- ifneq ($(wildcard $(UNITSDIR)/x11),)
- ifneq ($(wildcard $(UNITSDIR)/x11/$(OS_TARGET)),)
- UNITDIR_X11=$(UNITSDIR)/x11/$(OS_TARGET)
- else
- UNITDIR_X11=$(UNITSDIR)/x11
- endif
- else
- UNITDIR_X11=
- endif
- endif
- ifdef UNITDIR_X11
- override NEEDUNITDIR+=$(UNITDIR_X11)
- endif
- endif
- #####################################################################
- # Default Directories
- #####################################################################
- # set the prefix directory where to install everything
- ifndef PREFIXINSTALLDIR
- ifdef inlinux
- PREFIXINSTALLDIR=/usr
- else
- PREFIXINSTALLDIR=/pp
- endif
- endif
- export PREFIXINSTALLDIR
- # Where to place the resulting zip files
- ifndef DESTZIPDIR
- DESTZIPDIR:=$(BASEDIR)
- endif
- export DESTZIPDIR
- # Where to find other libraries
- ifdef inlinux
- ifndef OTHERLIBDIR
- OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }')
- endif
- endif
- export OTHERLIBDIR
- #####################################################################
- # Install Directories
- #####################################################################
- # set the base directory where to install everything
- ifndef BASEINSTALLDIR
- ifdef inlinux
- BASEINSTALLDIR=$(PREFIXINSTALLDIR)/lib/fpc/$(FPC_VERSION)
- else
- BASEINSTALLDIR=$(PREFIXINSTALLDIR)
- endif
- endif
- # set the directory where to install the binaries
- ifndef BININSTALLDIR
- ifdef inlinux
- BININSTALLDIR=$(PREFIXINSTALLDIR)/bin
- else
- BININSTALLDIR=$(BASEINSTALLDIR)/bin/$(OS_TARGET)
- endif
- endif
- # set the directory where to install the units.
- ifndef UNITINSTALLDIR
- UNITINSTALLDIR=$(BASEINSTALLDIR)/units/$(OS_TARGET)
- ifdef UNITSUBDIR
- UNITINSTALLDIR:=$(UNITINSTALLDIR)/$(UNITSUBDIR)
- endif
- endif
- # Where to install shared libraries
- ifndef LIBINSTALLDIR
- ifdef inlinux
- LIBINSTALLDIR=$(PREFIXINSTALLDIR)/lib
- else
- LIBINSTALLDIR=$(UNITINSTALLDIR)
- endif
- endif
- # Where the source files will be stored
- ifndef SOURCEINSTALLDIR
- ifdef inlinux
- SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
- else
- SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
- endif
- ifdef SOURCESUBDIR
- SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
- endif
- endif
- # Where the doc files will be stored
- ifndef DOCINSTALLDIR
- ifdef inlinux
- DOCINSTALLDIR=$(PREFIXINSTALLDIR)/doc/fpc-$(FPC_VERSION)
- else
- DOCINSTALLDIR=$(BASEINSTALLDIR)/doc
- endif
- endif
- # Where the some extra (data)files will be stored
- ifndef DATAINSTALLDIR
- DATAINSTALLDIR=$(BASEINSTALLDIR)
- endif
- #####################################################################
- # Redirection
- #####################################################################
- ifndef REDIRFILE
- REDIRFILE=log
- endif
- ifdef REDIR
- ifndef inlinux
- override FPC=redir -eo $(FPC)
- endif
- # set the verbosity to max
- override FPCOPT+=-va
- override REDIR:= >> $(REDIRFILE)
- endif
- #####################################################################
- # Compiler Command Line
- #####################################################################
- # Load commandline OPTDEF and add FPC_CPU define
- override FPCOPTDEF:=-d$(CPU_TARGET)
- # Load commandline OPT and add target and unit dir to be sure
- ifneq ($(OS_TARGET),$(OS_SOURCE))
- override FPCOPT+=-T$(OS_TARGET)
- endif
- ifdef NEEDUNITDIR
- override FPCOPT+=$(addprefix -Fu,$(NEEDUNITDIR))
- endif
- ifdef UNITSDIR
- override FPCOPT+=-Fu$(UNITSDIR)
- endif
- # Add Other dirs path if asked
- ifdef OTHERLIBDIR
- override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR))
- endif
- # Smartlinking
- ifdef LINKSMART
- override FPCOPT+=-CX
- endif
- # Smartlinking
- ifdef CREATESMART
- override FPCOPT+=-XX
- endif
- # Debug
- ifdef DEBUG
- override FPCOPT+=-g -dDEBUG
- endif
- # Release mode (strip, optimize and don't load ppc386.cfg)
- # 0.99.12b has a bug in the optimizer so don't use it by default
- ifdef RELEASE
- ifeq ($(FPC_VERSION),0.99.12)
- override FPCOPT+=-Xs -OGp3 -n
- else
- override FPCOPT+=-Xs -OG2p3 -n
- endif
- endif
- # Strip
- ifdef STRIP
- override FPCOPT+=-Xs
- endif
- # Optimizer
- ifdef OPTIMIZE
- override FPCOPT+=-OG2p3
- endif
- # Verbose settings (warning,note,info)
- ifdef VERBOSE
- override FPCOPT+=-vwni
- endif
- # Add commandline options
- ifdef OPT
- override FPCOPT+=$(OPT)
- endif
- ifdef UNITDIR
- override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
- endif
- ifdef LIBDIR
- override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
- endif
- ifdef OBJDIR
- override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
- endif
- ifdef INCDIR
- override FPCOPT+=$(addprefix -Fi,$(INCDIR))
- endif
- # Add defines from FPCOPTDEF to FPCOPT
- 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
- # For win32 the options are passed using the environment FPCEXTCMD
- ifeq ($(OS_SOURCE),win32)
- override FPCEXTCMD:=$(FPCOPT)
- override FPCOPT:=!FPCEXTCMD
- export FPCEXTCMD
- endif
- # Compiler commandline
- override COMPILER:=$(FPC) $(FPCOPT)
- # also call ppas if with command option -s
- ifeq (,$(findstring -s ,$(COMPILER)))
- EXECPPAS=
- else
- EXECPPAS:=@$(PPAS)
- endif
- #####################################################################
- # Standard rules
- #####################################################################
- all: fpc_all
- debug: fpc_debug
- smart: fpc_smart
- shared: fpc_shared
- showinstall: fpc_showinstall
- install: fpc_install
- sourceinstall: fpc_sourceinstall
- zipinstall: fpc_zipinstall
- zipsourceinstall: fpc_zipsourceinstall
- clean: fpc_clean
- distclean: fpc_distclean
- cleanall: fpc_cleanall
- info: fpc_info
- .PHONY: all debug smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean distclean cleanall info
- #####################################################################
- # 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_packages fpc_all fpc_debug
- $(FPCMADE): $(ALLTARGET)
- @$(ECHO) Compiled > $(FPCMADE)
- fpc_packages: $(COMPILEPACKAGES)
- fpc_all: fpc_packages $(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)
- $(EXECPPAS)
- %$(PPUEXT): %.pas
- $(COMPILER) $< $(REDIR)
- $(EXECPPAS)
- %$(EXEEXT): %.pp
- $(COMPILER) $< $(REDIR)
- $(EXECPPAS)
- %$(EXEEXT): %.pas
- $(COMPILER) $< $(REDIR)
- $(EXECPPAS)
- #####################################################################
- # Library
- #####################################################################
- .PHONY: fpc_smart fpc_shared
- # Default sharedlib units are all unit objects
- ifndef SHAREDLIBUNITOBJECTS
- SHAREDLIBUNITOBJECTS:=$(UNITOBJECTS)
- endif
- fpc_smart:
- $(MAKE) all LINKSMART=1 CREATESMART=1
- fpc_shared: all
- ifdef inlinux
- ifndef LIBNAME
- @$(ECHO) "LIBNAME not set"
- else
- $(PPUMOVE) $(SHAREDLIBUNITOBJECTS) -o$(LIBNAME)
- endif
- else
- @$(ECHO) "Shared Libraries not supported"
- endif
- #####################################################################
- # Install rules
- #####################################################################
- .PHONY: fpc_showinstall fpc_install
- ifdef EXTRAINSTALLUNITS
- override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
- endif
- 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) -e $(addprefix "\n"$(BININSTALLDIR)/,$(INSTALLEXEFILES))
- endif
- ifdef INSTALLPPUFILES
- @$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPUFILES))
- ifneq ($(INSTALLPPULINKFILES),)
- @$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPULINKFILES))
- endif
- ifneq ($(INSTALLPPULIBFILES),)
- @$(ECHO) -e $(addprefix "\n"$(LIBINSTALLDIR)/,$(INSTALLPPULIBFILES))
- endif
- endif
- ifdef EXTRAINSTALLFILES
- @$(ECHO) -e $(addprefix "\n"$(DATAINSTALLDIR)/,$(EXTRAINSTALLFILES))
- endif
- fpc_install: $(INSTALLTARGET)
- # Create UnitInstallFiles
- ifdef INSTALLEXEFILES
- $(MKDIR) $(BININSTALLDIR)
- # Compress the exes if upx is defined
- ifdef UPXPROG
- -$(UPXPROG) $(INSTALLEXEFILES)
- endif
- $(INSTALLEXE) $(INSTALLEXEFILES) $(BININSTALLDIR)
- endif
- ifdef INSTALLPPUFILES
- $(MKDIR) $(UNITINSTALLDIR)
- $(INSTALL) $(INSTALLPPUFILES) $(UNITINSTALLDIR)
- ifneq ($(INSTALLPPULINKFILES),)
- $(INSTALL) $(INSTALLPPULINKFILES) $(UNITINSTALLDIR)
- endif
- ifneq ($(INSTALLPPULIBFILES),)
- $(MKDIR) $(LIBINSTALLDIR)
- $(INSTALL) $(INSTALLPPULIBFILES) $(LIBINSTALLDIR)
- endif
- endif
- ifdef EXTRAINSTALLFILES
- $(MKDIR) $(DATAINSTALLDIR)
- $(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
- endif
- #####################################################################
- # SourceInstall rules
- #####################################################################
- .PHONY: fpc_sourceinstall
- ifndef SOURCETOPDIR
- SOURCETOPDIR=$(BASEDIR)
- endif
- fpc_sourceinstall: clean
- $(MKDIR) $(SOURCEINSTALLDIR)
- $(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
- #####################################################################
- # Zip
- #####################################################################
- .PHONY: fpc_zipinstall
- # Create suffix to add
- ifndef PACKAGESUFFIX
- PACKAGESUFFIX=$(OS_TARGET)
- ifeq ($(OS_TARGET),go32v2)
- PACKAGESUFFIX=go32
- endif
- ifeq ($(OS_TARGET),win32)
- PACKAGESUFFIX=w32
- endif
- endif
- # Temporary path to pack a file
- ifndef PACKDIR
- ifndef inlinux
- PACKDIR=$(BASEDIR)/pack_tmp
- else
- PACKDIR=/tmp/fpc-pack
- endif
- endif
- # Maybe create default zipname from packagename
- ifndef ZIPNAME
- ifdef PACKAGENAME
- ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
- endif
- endif
- # Use tar by default under linux
- ifndef USEZIP
- ifdef inlinux
- USETAR=1
- endif
- endif
- fpc_zipinstall:
- ifndef ZIPNAME
- @$(ECHO) "Please specify ZIPNAME!"
- @exit 1
- else
- $(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
- ifdef USETAR
- $(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT)
- cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
- else
- $(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT)
- cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
- endif
- $(DELTREE) $(PACKDIR)
- endif
- .PHONY: fpc_zipsourceinstall
- fpc_zipsourceinstall:
- $(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
- #####################################################################
- # Clean rules
- #####################################################################
- .PHONY: fpc_clean fpc_cleanall fpc_distclean
- ifdef EXTRACLEANUNITS
- override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRACLEANUNITS))
- endif
- ifdef CLEANPPUFILES
- ifdef PPUFILES
- CLEANPPULINKFILES:=$(shell $(PPUFILES) $(CLEANPPUFILES))
- else
- CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)))
- endif
- endif
- fpc_clean: $(CLEANTARGET)
- ifdef CLEANEXEFILES
- -$(DEL) $(CLEANEXEFILES)
- endif
- ifdef CLEANPPUFILES
- -$(DEL) $(CLEANPPUFILES)
- endif
- ifneq ($(CLEANPPULINKFILES),)
- -$(DEL) $(CLEANPPULINKFILES)
- endif
- ifdef CLEANRSTFILES
- -$(DEL) $(CLEANRSTFILES)
- endif
- ifdef EXTRACLEANFILES
- -$(DEL) $(EXTRACLEANFILES)
- endif
- -$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
- fpc_distclean: fpc_clean
- fpc_cleanall: $(CLEANTARGET)
- ifdef CLEANEXEFILES
- -$(DEL) $(CLEANEXEFILES)
- endif
- -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
- -$(DELTREE) *$(SMARTEXT)
- -$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
- #####################################################################
- # Info rules
- #####################################################################
- .PHONY: fpc_info fpc_cfginfo fpc_objectinfo fpc_toolsinfo fpc_installinfo \
- fpc_dirinfo
- fpc_info: $(INFOTARGET)
- fpc_infocfg:
- @$(ECHO)
- @$(ECHO) == Configuration info ==
- @$(ECHO)
- @$(ECHO) FPC....... $(FPC)
- @$(ECHO) Version... $(FPC_VERSION)
- @$(ECHO) CPU....... $(CPU_TARGET)
- @$(ECHO) Source.... $(OS_SOURCE)
- @$(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)
- @$(ECHO) == Install info ==
- @$(ECHO)
- ifdef DATE
- @$(ECHO) DateStr.............. $(DATESTR)
- endif
- ifdef PACKAGEPREFIX
- @$(ECHO) PackagePrefix........ $(PACKAGEPREFIX)
- endif
- ifdef PACKAGENAME
- @$(ECHO) PackageName.......... $(PACKAGENAME)
- endif
- @$(ECHO) PackageSuffix........ $(PACKAGESUFFIX)
- @$(ECHO)
- @$(ECHO) BaseInstallDir....... $(BASEINSTALLDIR)
- @$(ECHO) BinInstallDir........ $(BININSTALLDIR)
- @$(ECHO) LibInstallDir........ $(LIBINSTALLDIR)
- @$(ECHO) UnitInstallDir....... $(UNITINSTALLDIR)
- @$(ECHO) SourceInstallDir..... $(SOURCEINSTALLDIR)
- @$(ECHO) DocInstallDir........ $(DOCINSTALLDIR)
- @$(ECHO) DataInstallDir....... $(DATAINSTALLDIR)
- @$(ECHO)
- @$(ECHO) DestZipDir........... $(DESTZIPDIR)
- @$(ECHO) ZipName.............. $(ZIPNAME)
- @$(ECHO)
- #####################################################################
- # Local Makefile
- #####################################################################
- ifneq ($(wildcard fpcmake.loc),)
- include fpcmake.loc
- endif
|