#
# Don't edit, this file is generated by FPCMake Version 1.1 [2002/01/27]
#
default: help
MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx
override PATH:=$(subst \,/,$(PATH))
ifeq ($(findstring ;,$(PATH)),)
inUnix=1
SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
else
SEARCHPATH:=$(subst ;, ,$(PATH))
endif
PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
ifeq ($(PWD),)
PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
ifeq ($(PWD),)
$(error You need the GNU utils package to use this Makefile)
else
PWD:=$(firstword $(PWD))
SRCEXEEXT=
endif
else
PWD:=$(firstword $(PWD))
SRCEXEEXT=.exe
endif
ifndef inUnix
ifeq ($(OS),Windows_NT)
inWinNT=1
else
ifdef OS2_SHELL
inOS2=1
endif
endif
else
ifneq ($(findstring cygwin,$(MACHTYPE)),)
inCygWin=1
endif
endif
ifeq ($(OS_TARGET),freebsd)
BSDhier=1
endif
ifeq ($(OS_TARGET),netbsd)
BSDhier=1
endif
ifdef inUnix
BATCHEXT=.sh
else
ifdef inOS2
BATCHEXT=.cmd
else
BATCHEXT=.bat
endif
endif
ifdef inUnix
PATHSEP=/
else
PATHSEP:=$(subst /,\,/)
endif
ifdef PWD
BASEDIR:=$(subst \,/,$(shell $(PWD)))
ifdef inCygWin
ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
endif
endif
else
BASEDIR=.
endif
override DEFAULT_FPCDIR=.
ifndef FPC
ifdef PP
FPC=$(PP)
endif
endif
ifndef FPC
FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
ifneq ($(FPCPROG),)
FPCPROG:=$(firstword $(FPCPROG))
FPC:=$(shell $(FPCPROG) -PB)
ifneq ($(findstring Error,$(FPC)),)
override FPC=ppc386
endif
else
override FPC=ppc386
endif
endif
override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
ifndef FPC_VERSION
FPC_VERSION:=$(shell $(FPC) -iV)
endif
export FPC FPC_VERSION
ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
COMPILERINFO:=$(shell $(FPC) -iSP -iTP -iSO -iTO)
ifndef CPU_SOURCE
CPU_SOURCE:=$(word 1,$(COMPILERINFO))
endif
ifndef CPU_TARGET
CPU_TARGET:=$(word 2,$(COMPILERINFO))
endif
ifndef OS_SOURCE
OS_SOURCE:=$(word 3,$(COMPILERINFO))
endif
ifndef OS_TARGET
OS_TARGET:=$(word 4,$(COMPILERINFO))
endif
else
ifndef CPU_SOURCE
CPU_SOURCE:=$(shell $(FPC) -iSP)
endif
ifndef CPU_TARGET
CPU_TARGET:=$(shell $(FPC) -iTP)
endif
ifndef OS_SOURCE
OS_SOURCE:=$(shell $(FPC) -iSO)
endif
ifndef OS_TARGET
OS_TARGET:=$(shell $(FPC) -iTO)
endif
endif
FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
ifneq ($(FULL_TARGET),$(FULL_SOURCE))
CROSSCOMPILE=1
endif
ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
ifeq ($(findstring $(OS_TARGET),$(MAKEFILETARGETS)),)
$(error The Makefile doesn't support target $(OS_TARGET), please run fpcmake first)
endif
endif
export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE CROSSCOMPILE
ifdef FPCDIR
override FPCDIR:=$(subst \,/,$(FPCDIR))
ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
override FPCDIR=wrong
endif
else
override FPCDIR=wrong
endif
ifdef DEFAULT_FPCDIR
ifeq ($(FPCDIR),wrong)
override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
override FPCDIR=wrong
endif
endif
endif
ifeq ($(FPCDIR),wrong)
ifdef inUnix
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 $(addprefix $(FPCDIR)/,rtl units)),)
override FPCDIR:=$(FPCDIR)/..
ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
override FPCDIR=c:/pp
endif
endif
endif
endif
ifndef CROSSDIR
CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
endif
ifndef CROSSTARGETDIR
CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
endif
ifdef CROSSCOMPILE
UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
ifeq ($(UNITSDIR),)
UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
endif
else
UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
endif
PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages)
override PACKAGE_NAME=fpc
override PACKAGE_VERSION=1.0.5
ifndef inOS2
override FPCDIR:=$(BASEDIR)
export FPCDIR
endif
ifndef PPNEW
ifeq ($(CPU_TARGET),m68k)
PPSUF=68k
endif
ifeq ($(CPU_TARGET),i386)
PPSUF=386
endif
ifeq ($(CPU_TARGET),powerpc)
PPSUF=ppc
endif
ifeq ($(CPU_TARGET),alpha)
PPSUF=axp
endif
ifneq ($(OS_TARGET),$(OS_SOURCE))
PPPRE=ppcross
else
ifneq ($(CPU_TARGET),$(CPU_SOURCE))
PPPRE=ppcross
else
PPPRE=ppc
endif
endif
PPNEW=$(BASEDIR)/compiler/$(PPPRE)$(PPSUF)$(SRCEXEEXT)
endif
ifneq ($(wildcard install),)
CVSINSTALL=install
else
CVSINSTALL=.
endif
ifdef SNAPSHOT
INSTALLTARGET=install
else
INSTALLTARGET=distinstall
endif
ifdef SNAPSHOT
ALLTARGET=all
else
ifndef ALLTARGET
ifeq ($(OS_TARGET),win32)
ALLTARGET=smart
else
ifeq ($(OS_TARGET),go32v2)
ALLTARGET=smart
else
ifeq ($(OS_TARGET),linux)
ALLTARGET=smart
else
ifeq ($(OS_TARGET),freebsd)
ALLTARGET=smart
else
ALLTARGET=all
endif
endif
endif
endif
endif
endif
ifdef SNAPSHOT
NOSTOP=-
else
NOSTOP=
endif
ifeq ($(OS_TARGET),linux)
PKGPRE=units
else
ifeq ($(OS_TARGET),freebsd)
PKGPRE=units
else
PKGPRE=u
endif
endif
override RELEASE=1
export RELEASE
ifndef DIST_DESTDIR
export DIST_DESTDIR:=$(BASEDIR)
endif
BASEPACKDIR=$(BASEDIR)/basepack
FPCMAKENEW=$(BASEDIR)/utils/fpcm/fpcmake$(EXEEXT)
BUILDOPTS=FPC=$(PPNEW) RELEASE=1
INSTALLOPTS=FPC=$(PPNEW) ZIPDESTDIR=$(BASEDIR) FPCMAKE=$(FPCMAKENEW)
ifneq ($(wildcard ide),)
ifneq ($(wildcard fv),)
ifeq ($(OS_TARGET),go32v2)
IDE=1
endif
ifeq ($(OS_TARGET),win32)
IDE=1
endif
ifeq ($(OS_TARGET),linux)
IDE=1
endif
endif
endif
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
ifdef REQUIRE_PACKAGESDIR
override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
endif
ifdef ZIPINSTALL
ifeq ($(OS_TARGET),linux)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),freebsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),netbsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),sunos)
UNIXINSTALLDIR=1
endif
else
ifeq ($(OS_SOURCE),linux)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_SOURCE),freebsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_SOURCE),netbsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),sunos)
UNIXINSTALLDIR=1
endif
endif
ifndef INSTALL_PREFIX
ifdef PREFIX
INSTALL_PREFIX=$(PREFIX)
endif
endif
ifndef INSTALL_PREFIX
ifdef UNIXINSTALLDIR
INSTALL_PREFIX=/usr/local
else
ifdef INSTALL_FPCPACKAGE
INSTALL_BASEDIR:=/pp
else
INSTALL_BASEDIR:=/$(PACKAGE_NAME)
endif
endif
endif
export INSTALL_PREFIX
ifndef DIST_DESTDIR
DIST_DESTDIR:=$(BASEDIR)
endif
export DIST_DESTDIR
ifndef INSTALL_BASEDIR
ifdef UNIXINSTALLDIR
ifdef INSTALL_FPCPACKAGE
INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
else
INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
endif
else
INSTALL_BASEDIR:=$(INSTALL_PREFIX)
endif
endif
ifndef INSTALL_BINDIR
ifdef UNIXINSTALLDIR
INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
else
INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
ifdef INSTALL_FPCPACKAGE
INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
endif
endif
endif
ifndef INSTALL_UNITDIR
ifdef CROSSCOMPILE
INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
else
INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
endif
ifdef INSTALL_FPCPACKAGE
ifdef PACKAGE_NAME
INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
endif
endif
endif
ifndef INSTALL_LIBDIR
ifdef UNIXINSTALLDIR
INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
else
INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
endif
endif
ifndef INSTALL_SOURCEDIR
ifdef UNIXINSTALLDIR
ifdef INSTALL_FPCPACKAGE
ifdef BSDhier
INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/share/src/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
else
INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/src/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
endif
else
ifdef BSDhier
INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/share/src/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
else
INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/src/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
endif
endif
else
ifdef INSTALL_FPCPACKAGE
INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
else
INSTALL_SOURCEDIRL:=$(INSTALL_BASEDIR)/source
endif
endif
endif
ifndef INSTALL_DOCDIR
ifdef UNIXINSTALLDIR
ifdef INSTALL_FPCPACKAGE
ifdef BSDhier
INSTALL_DOCDIR:=$(INSTALL_PREFIX)/share/doc/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
else
INSTALL_DOCDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
endif
else
ifdef BSDhier
INSTALL_DOCDIR:=$(INSTALL_PREFIX)/share/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
else
INSTALL_DOCDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
endif
endif
else
ifdef INSTALL_FPCPACKAGE
INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
else
INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
endif
endif
endif
ifndef INSTALL_EXAMPLEDIR
ifdef UNIXINSTALLDIR
ifdef INSTALL_FPCPACKAGE
ifdef BSDhier
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
else
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
endif
else
ifdef BSDhier
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
else
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
endif
endif
else
ifdef INSTALL_FPCPACKAGE
INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
else
INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
endif
endif
endif
ifndef INSTALL_DATADIR
INSTALL_DATADIR=$(INSTALL_BASEDIR)
endif
ifdef CROSSCOMPILE
ifndef CROSSBINDIR
CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(FULL_SOURCE))
ifeq ($(CROSSBINDIR),)
CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin/$(FULL_SOURCE))
endif
endif
else
CROSSBINDIR=
endif
LOADEREXT=.as
EXEEXT=.exe
PPLEXT=.ppl
PPUEXT=.ppu
OEXT=.o
ASMEXT=.s
SMARTEXT=.sl
STATICLIBEXT=.a
SHAREDLIBEXT=.so
STATICLIBPREFIX=libp
RSTEXT=.rst
FPCMADE=fpcmade
ifeq ($(OS_TARGET),go32v1)
PPUEXT=.pp1
OEXT=.o1
ASMEXT=.s1
SMARTEXT=.sl1
STATICLIBEXT=.a1
SHAREDLIBEXT=.so1
STATICLIBPREFIX=
FPCMADE=fpcmade.v1
PACKAGESUFFIX=v1
endif
ifeq ($(OS_TARGET),go32v2)
STATICLIBPREFIX=
FPCMADE=fpcmade.dos
ZIPSUFFIX=go32
endif
ifeq ($(OS_TARGET),linux)
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.lnx
ZIPSUFFIX=linux
endif
ifeq ($(OS_TARGET),freebsd)
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.freebsd
ZIPSUFFIX=freebsd
endif
ifeq ($(OS_TARGET),netbsd)
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.netbsd
ZIPSUFFIX=netbsd
endif
ifeq ($(OS_TARGET),win32)
PPUEXT=.ppw
OEXT=.ow
ASMEXT=.sw
SMARTEXT=.slw
STATICLIBEXT=.aw
SHAREDLIBEXT=.dll
FPCMADE=fpcmade.w32
ZIPSUFFIX=w32
endif
ifeq ($(OS_TARGET),os2)
PPUEXT=.ppo
ASMEXT=.so2
OEXT=.oo2
AOUTEXT=.out
SMARTEXT=.so
STATICLIBEXT=.ao2
SHAREDLIBEXT=.dll
FPCMADE=fpcmade.os2
ZIPSUFFIX=emx
endif
ifeq ($(OS_TARGET),amiga)
EXEEXT=
PPUEXT=.ppa
ASMEXT=.asm
OEXT=.o
SMARTEXT=.sl
STATICLIBEXT=.a
SHAREDLIBEXT=.library
FPCMADE=fpcmade.amg
endif
ifeq ($(OS_TARGET),atari)
PPUEXT=.ppt
ASMEXT=.s
OEXT=.o
SMARTEXT=.sl
STATICLIBEXT=.a
EXEEXT=.ttp
FPCMADE=fpcmade.ata
endif
ifeq ($(OS_TARGET),beos)
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
SMARTEXT=.sl
STATICLIBEXT=.a
EXEEXT=
FPCMADE=fpcmade.be
ZIPSUFFIX=be
endif
ifeq ($(OS_TARGET),sunos)
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
SMARTEXT=.sl
STATICLIBEXT=.a
EXEEXT=
FPCMADE=fpcmade.sun
ZIPSUFFIX=sun
endif
ifeq ($(OS_TARGET),qnx)
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
SMARTEXT=.sl
STATICLIBEXT=.a
EXEEXT=
FPCMADE=fpcmade.qnx
ZIPSUFFIX=qnx
endif
ifndef ECHO
ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ECHO),)
ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ECHO),)
ECHO=
else
ECHO:=$(firstword $(ECHO))
endif
else
ECHO:=$(firstword $(ECHO))
endif
endif
export ECHO
ifndef DATE
DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(DATE),)
DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(DATE),)
DATE=
else
DATE:=$(firstword $(DATE))
endif
else
DATE:=$(firstword $(DATE))
endif
endif
export DATE
ifndef GINSTALL
GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(GINSTALL),)
GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(GINSTALL),)
GINSTALL=
else
GINSTALL:=$(firstword $(GINSTALL))
endif
else
GINSTALL:=$(firstword $(GINSTALL))
endif
endif
export GINSTALL
ifndef CPPROG
CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(CPPROG),)
CPPROG=
else
CPPROG:=$(firstword $(CPPROG))
endif
endif
export CPPROG
ifndef RMPROG
RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(RMPROG),)
RMPROG=
else
RMPROG:=$(firstword $(RMPROG))
endif
endif
export RMPROG
ifndef MVPROG
MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(MVPROG),)
MVPROG=
else
MVPROG:=$(firstword $(MVPROG))
endif
endif
export MVPROG
ifndef ECHOREDIR
ECHOREDIR:=$(subst /,$(PATHSEP),$(ECHO))
endif
ifndef COPY
COPY:=$(CPPROG) -fp
endif
ifndef COPYTREE
COPYTREE:=$(CPPROG) -rfp
endif
ifndef MOVE
MOVE:=$(MVPROG) -f
endif
ifndef DEL
DEL:=$(RMPROG) -f
endif
ifndef DELTREE
DELTREE:=$(RMPROG) -rf
endif
ifndef INSTALL
ifdef inUnix
INSTALL:=$(GINSTALL) -c -m 644
else
INSTALL:=$(COPY)
endif
endif
ifndef INSTALLEXE
ifdef inUnix
INSTALLEXE:=$(GINSTALL) -c -m 755
else
INSTALLEXE:=$(COPY)
endif
endif
ifndef MKDIR
MKDIR:=$(GINSTALL) -m 755 -d
endif
export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
ifndef PPUMOVE
PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(PPUMOVE),)
PPUMOVE=
else
PPUMOVE:=$(firstword $(PPUMOVE))
endif
endif
export PPUMOVE
ifndef FPCMAKE
FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(FPCMAKE),)
FPCMAKE=
else
FPCMAKE:=$(firstword $(FPCMAKE))
endif
endif
export FPCMAKE
ifndef ZIPPROG
ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ZIPPROG),)
ZIPPROG=
else
ZIPPROG:=$(firstword $(ZIPPROG))
endif
endif
export ZIPPROG
ifndef TARPROG
TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(TARPROG),)
TARPROG=
else
TARPROG:=$(firstword $(TARPROG))
endif
endif
export TARPROG
ASNAME=as
LDNAME=ld
ARNAME=ar
RCNAME=rc
ifeq ($(OS_TARGET),win32)
ASNAME=asw
LDNAME=ldw
ARNAME=arw
endif
ifndef ASPROG
ifdef CROSSBINDIR
ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
else
ASPROG=$(ASNAME)
endif
endif
ifndef LDPROG
ifdef CROSSBINDIR
LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
else
LDPROG=$(LDNAME)
endif
endif
ifndef RCPROG
ifdef CROSSBINDIR
RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
else
RCPROG=$(RCNAME)
endif
endif
ifndef ARPROG
ifdef CROSSBINDIR
ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
else
ARPROG=$(ARNAME)
endif
endif
AS=$(ASPROG)
LD=$(LDPROG)
RC=$(RCPROG)
AR=$(ARPROG)
PPAS=ppas$(BATCHEXT)
ifdef inUnix
LDCONFIG=ldconfig
else
LDCONFIG=
endif
ifdef DATE
DATESTR:=$(shell $(DATE) +%Y%m%d)
else
DATESTR=
endif
ifndef UPXPROG
ifeq ($(OS_TARGET),go32v2)
UPXPROG:=1
endif
ifeq ($(OS_TARGET),win32)
UPXPROG:=1
endif
ifdef UPXPROG
UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(UPXPROG),)
UPXPROG=
else
UPXPROG:=$(firstword $(UPXPROG))
endif
else
UPXPROG=
endif
endif
export UPXPROG
ZIPOPT=-9
ZIPEXT=.zip
ifeq ($(USETAR),bz2)
TAROPT=vI
TAREXT=.tar.bz2
else
TAROPT=vz
TAREXT=.tar.gz
endif
ifndef NOCPUDEF
override FPCOPTDEF=$(CPU_TARGET)
endif
ifneq ($(OS_TARGET),$(OS_SOURCE))
override FPCOPT+=-T$(OS_TARGET)
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
ifdef LINKSMART
override FPCOPT+=-XX
endif
ifdef CREATESMART
override FPCOPT+=-CX
endif
ifdef DEBUG
override FPCOPT+=-gl
override FPCOPTDEF+=DEBUG
endif
ifdef RELEASE
ifeq ($(CPU_TARGET),i386)
FPCCPUOPT:=-OG2p3
else
FPCCPUOPT:=
endif
override FPCOPT+=-Xs $(FPCCPUOPT) -n
override FPCOPTDEF+=RELEASE
endif
ifdef STRIP
override FPCOPT+=-Xs
endif
ifdef OPTIMIZE
ifeq ($(CPU_TARGET),i386)
override FPCOPT+=-OG2p3
endif
endif
ifdef VERBOSE
override FPCOPT+=-vwni
endif
ifdef COMPILER_OPTIONS
override FPCOPT+=$(COMPILER_OPTIONS)
endif
ifdef COMPILER_UNITDIR
override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
endif
ifdef COMPILER_LIBRARYDIR
override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
endif
ifdef COMPILER_OBJECTDIR
override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
endif
ifdef COMPILER_INCLUDEDIR
override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
endif
ifdef CROSSBINDIR
override FPCOPT+=-FD$(CROSSBINDIR)
endif
ifdef COMPILER_TARGETDIR
override FPCOPT+=-FE$(COMPILER_TARGETDIR)
ifeq ($(COMPILER_TARGETDIR),.)
override TARGETDIRPREFIX=
else
override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
endif
endif
ifdef COMPILER_UNITTARGETDIR
override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
ifeq ($(COMPILER_UNITTARGETDIR),.)
override UNITTARGETDIRPREFIX=
else
override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
endif
else
ifdef COMPILER_TARGETDIR
override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
endif
endif
ifdef OPT
override FPCOPT+=$(OPT)
endif
ifdef FPCOPTDEF
override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
endif
ifdef CFGFILE
override FPCOPT+=@$(CFGFILE)
endif
ifdef USEENV
override FPCEXTCMD:=$(FPCOPT)
override FPCOPT:=!FPCEXTCMD
export FPCEXTCMD
endif
override COMPILER:=$(FPC) $(FPCOPT)
ifeq (,$(findstring -s ,$(COMPILER)))
EXECPPAS=
else
ifeq ($(OS_SOURCE),$(OS_TARGET))
EXECPPAS:=@$(PPAS)
endif
endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
endif
.PHONY: fpc_distinstall
fpc_distinstall: install exampleinstall
.PHONY: fpc_zipinstall fpc_zipsourceinstall fpc_zipexampleinstall
ifndef PACKDIR
ifndef inUnix
PACKDIR=$(BASEDIR)/../fpc-pack
else
PACKDIR=/tmp/fpc-pack
endif
endif
ifndef ZIPNAME
ifdef DIST_ZIPNAME
ZIPNAME=$(DIST_ZIPNAME)
else
ZIPNAME=$(ZIPPREFIX)$(PACKAGE_NAME)$(ZIPSUFFIX)
endif
endif
ifndef ZIPTARGET
ifdef DIST_ZIPTARGET
ZIPTARGET=DIST_ZIPTARGET
else
ZIPTARGET=install
endif
endif
ifndef USEZIP
ifdef inUnix
USETAR=1
endif
endif
ifndef inUnix
USEZIPWRAPPER=1
endif
ifdef USEZIPWRAPPER
ZIPPATHSEP=$(PATHSEP)
ZIPWRAPPER=$(subst /,$(PATHSEP),$(DIST_DESTDIR)/fpczip$(BATCHEXT))
else
ZIPPATHSEP=/
endif
ZIPCMD_CDPACK:=cd $(subst /,$(ZIPPATHSEP),$(PACKDIR))
ZIPCMD_CDBASE:=cd $(subst /,$(ZIPPATHSEP),$(BASEDIR))
ifdef USETAR
ZIPDESTFILE:=$(DIST_DESTDIR)/$(ZIPNAME)$(TAREXT)
ZIPCMD_ZIP:=$(TARPROG) cf$(TAROPT) $(ZIPDESTFILE) *
else
ZIPDESTFILE:=$(DIST_DESTDIR)/$(ZIPNAME)$(ZIPEXT)
ZIPCMD_ZIP:=$(subst /,$(ZIPPATHSEP),$(ZIPPROG)) -Dr $(ZIPOPT) $(ZIPDESTFILE) *
endif
fpc_zipinstall:
	$(MAKE) $(ZIPTARGET) INSTALL_PREFIX=$(PACKDIR) ZIPINSTALL=1
	$(MKDIR) $(DIST_DESTDIR)
	$(DEL) $(ZIPDESTFILE)
ifdef USEZIPWRAPPER
ifneq ($(ECHOREDIR),echo)
	$(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDPACK))" > $(ZIPWRAPPER)
	$(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_ZIP))" >> $(ZIPWRAPPER)
	$(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDBASE))" >> $(ZIPWRAPPER)
else
	echo $(ZIPCMD_CDPACK) > $(ZIPWRAPPER)
	echo $(ZIPCMD_ZIP) >> $(ZIPWRAPPER)
	echo $(ZIPCMD_CDBASE) >> $(ZIPWRAPPER)
endif
ifdef inUnix
	/bin/sh $(ZIPWRAPPER)
else
	$(ZIPWRAPPER)
endif
	$(DEL) $(ZIPWRAPPER)
else
	$(ZIPCMD_CDPACK) ; $(ZIPCMD_ZIP) ; $(ZIPCMD_CDBASE)
endif
	$(DELTREE) $(PACKDIR)
fpc_zipsourceinstall:
	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall ZIPSUFFIX=src
fpc_zipexampleinstall:
ifdef HASEXAMPLES
	$(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall ZIPSUFFIX=exm
endif
fpc_zipdistinstall:
	$(MAKE) fpc_zipinstall ZIPTARGET=distinstall
.PHONY: fpc_clean fpc_cleanall fpc_distclean
ifdef EXEFILES
override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
endif
ifdef CLEAN_UNITS
override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
endif
ifdef CLEANPPUFILES
override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
endif
fpc_clean: $(CLEANTARGET)
ifdef CLEANEXEFILES
	-$(DEL) $(CLEANEXEFILES)
endif
ifdef CLEANPPUFILES
	-$(DEL) $(CLEANPPUFILES)
endif
ifneq ($(CLEANPPULINKFILES),)
	-$(DEL) $(CLEANPPULINKFILES)
endif
ifdef CLEANRSTFILES
	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
endif
ifdef CLEAN_FILES
	-$(DEL) $(CLEAN_FILES)
endif
ifdef LIB_NAME
	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
endif
	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
fpc_distclean: clean
ifdef COMPILER_UNITTARGETDIR
TARGETDIRCLEAN=fpc_clean
endif
fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
ifdef CLEANEXEFILES
	-$(DEL) $(CLEANEXEFILES)
endif
	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
	-$(DELTREE) *$(SMARTEXT)
	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
ifdef AOUTEXT
	-$(DEL) *$(AOUTEXT)
endif
.PHONY: fpc_baseinfo
override INFORULES+=fpc_baseinfo
fpc_baseinfo:
	@$(ECHO)
	@$(ECHO)  == Package info ==
	@$(ECHO)  Package Name..... $(PACKAGE_NAME)
	@$(ECHO)  Package Version.. $(PACKAGE_VERSION)
	@$(ECHO)
	@$(ECHO)  == Configuration info ==
	@$(ECHO)
	@$(ECHO)  FPC.......... $(FPC)
	@$(ECHO)  FPC Version.. $(FPC_VERSION)
	@$(ECHO)  Source CPU... $(CPU_SOURCE)
	@$(ECHO)  Target CPU... $(CPU_TARGET)
	@$(ECHO)  Source OS.... $(OS_SOURCE)
	@$(ECHO)  Target OS.... $(OS_TARGET)
	@$(ECHO)  Full Target.. $(FULL_SOURCE)
	@$(ECHO)  Full Source.. $(FULL_TARGET)
	@$(ECHO)
	@$(ECHO)  == Directory info ==
	@$(ECHO)
	@$(ECHO)  Required pkgs... $(REQUIRE_PACKAGES)
	@$(ECHO)
	@$(ECHO)  Basedir......... $(BASEDIR)
	@$(ECHO)  FPCDir.......... $(FPCDIR)
	@$(ECHO)  CrossBinDir..... $(CROSSBINDIR)
	@$(ECHO)  UnitsDir........ $(UNITSDIR)
	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
	@$(ECHO)
	@$(ECHO)  GCC library..... $(GCCLIBDIR)
	@$(ECHO)  Other library... $(OTHERLIBDIR)
	@$(ECHO)
	@$(ECHO)  == Tools info ==
	@$(ECHO)
	@$(ECHO)  As........ $(AS)
	@$(ECHO)  Ld........ $(LD)
	@$(ECHO)  Ar........ $(AR)
	@$(ECHO)  Rc........ $(RC)
	@$(ECHO)
	@$(ECHO)  Mv........ $(MVPROG)
	@$(ECHO)  Cp........ $(CPPROG)
	@$(ECHO)  Rm........ $(RMPROG)
	@$(ECHO)  GInstall.. $(GINSTALL)
	@$(ECHO)  Echo...... $(ECHO)
	@$(ECHO)  Date...... $(DATE)
	@$(ECHO)  FPCMake... $(FPCMAKE)
	@$(ECHO)  PPUMove... $(PPUMOVE)
	@$(ECHO)  Upx....... $(UPXPROG)
	@$(ECHO)  Zip....... $(ZIPPROG)
	@$(ECHO)
	@$(ECHO)  == Object info ==
	@$(ECHO)
	@$(ECHO)  Target Loaders........ $(TARGET_LOADERS)
	@$(ECHO)  Target Units.......... $(TARGET_UNITS)
	@$(ECHO)  Target Implicit Units. $(TARGET_IMPLICITUNITS)
	@$(ECHO)  Target Programs....... $(TARGET_PROGRAMS)
	@$(ECHO)  Target Dirs........... $(TARGET_DIRS)
	@$(ECHO)  Target Examples....... $(TARGET_EXAMPLES)
	@$(ECHO)  Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
	@$(ECHO)
	@$(ECHO)  Clean Units......... $(CLEAN_UNITS)
	@$(ECHO)  Clean Files......... $(CLEAN_FILES)
	@$(ECHO)
	@$(ECHO)  Install Units....... $(INSTALL_UNITS)
	@$(ECHO)  Install Files....... $(INSTALL_FILES)
	@$(ECHO)
	@$(ECHO)  == Install info ==
	@$(ECHO)
	@$(ECHO)  DateStr.............. $(DATESTR)
	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
	@$(ECHO)  Install FPC Package.. $(INSTALL_FPCPACKAGE)
	@$(ECHO)
	@$(ECHO)  Install base dir..... $(INSTALL_BASEDIR)
	@$(ECHO)  Install binary dir... $(INSTALL_BINDIR)
	@$(ECHO)  Install library dir.. $(INSTALL_LIBDIR)
	@$(ECHO)  Install units dir.... $(INSTALL_UNITDIR)
	@$(ECHO)  Install source dir... $(INSTALL_SOURCEDIR)
	@$(ECHO)  Install doc dir...... $(INSTALL_DOCDIR)
	@$(ECHO)  Install example dir.. $(INSTALL_EXAMPLEDIR)
	@$(ECHO)  Install data dir..... $(INSTALL_DATADIR)
	@$(ECHO)
	@$(ECHO)  Dist destination dir. $(DIST_DESTDIR)
	@$(ECHO)  Dist zip name........ $(DIST_ZIPNAME)
	@$(ECHO)
.PHONY: fpc_info
fpc_info: $(INFORULES)
.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
	fpc_makefile_dirs
fpc_makefile:
	$(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
fpc_makefile_sub1:
ifdef TARGET_DIRS
	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
endif
ifdef TARGET_EXAMPLEDIRS
	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
endif
fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
fpc_makefiles: fpc_makefile fpc_makefile_dirs
TARGET_DIRS_COMPILER=1
TARGET_DIRS_RTL=1
TARGET_DIRS_UTILS=1
TARGET_DIRS_FCL=1
TARGET_DIRS_FV=1
TARGET_DIRS_PACKAGES=1
TARGET_DIRS_IDE=1
ifdef TARGET_DIRS_COMPILER
compiler_all:
	$(MAKE) -C compiler all
compiler_debug:
	$(MAKE) -C compiler debug
compiler_smart:
	$(MAKE) -C compiler smart
compiler_release:
	$(MAKE) -C compiler release
compiler_examples:
	$(MAKE) -C compiler examples
compiler_shared:
	$(MAKE) -C compiler shared
compiler_install:
	$(MAKE) -C compiler install
compiler_sourceinstall:
	$(MAKE) -C compiler sourceinstall
compiler_exampleinstall:
	$(MAKE) -C compiler exampleinstall
compiler_distinstall:
	$(MAKE) -C compiler distinstall
compiler_zipinstall:
	$(MAKE) -C compiler zipinstall
compiler_zipsourceinstall:
	$(MAKE) -C compiler zipsourceinstall
compiler_zipexampleinstall:
	$(MAKE) -C compiler zipexampleinstall
compiler_zipdistinstall:
	$(MAKE) -C compiler zipdistinstall
compiler_clean:
	$(MAKE) -C compiler clean
compiler_distclean:
	$(MAKE) -C compiler distclean
compiler_cleanall:
	$(MAKE) -C compiler cleanall
compiler_info:
	$(MAKE) -C compiler info
compiler_makefiles:
	$(MAKE) -C compiler makefiles
compiler:
	$(MAKE) -C compiler all
.PHONY: compiler_all compiler_debug compiler_smart compiler_release compiler_examples compiler_shared compiler_install compiler_sourceinstall compiler_exampleinstall compiler_distinstall compiler_zipinstall compiler_zipsourceinstall compiler_zipexampleinstall compiler_zipdistinstall compiler_clean compiler_distclean compiler_cleanall compiler_info compiler_makefiles compiler
endif
ifdef TARGET_DIRS_RTL
rtl_all:
	$(MAKE) -C rtl all
rtl_debug:
	$(MAKE) -C rtl debug
rtl_smart:
	$(MAKE) -C rtl smart
rtl_release:
	$(MAKE) -C rtl release
rtl_examples:
	$(MAKE) -C rtl examples
rtl_shared:
	$(MAKE) -C rtl shared
rtl_install:
	$(MAKE) -C rtl install
rtl_sourceinstall:
	$(MAKE) -C rtl sourceinstall
rtl_exampleinstall:
	$(MAKE) -C rtl exampleinstall
rtl_distinstall:
	$(MAKE) -C rtl distinstall
rtl_zipinstall:
	$(MAKE) -C rtl zipinstall
rtl_zipsourceinstall:
	$(MAKE) -C rtl zipsourceinstall
rtl_zipexampleinstall:
	$(MAKE) -C rtl zipexampleinstall
rtl_zipdistinstall:
	$(MAKE) -C rtl zipdistinstall
rtl_clean:
	$(MAKE) -C rtl clean
rtl_distclean:
	$(MAKE) -C rtl distclean
rtl_cleanall:
	$(MAKE) -C rtl cleanall
rtl_info:
	$(MAKE) -C rtl info
rtl_makefiles:
	$(MAKE) -C rtl makefiles
rtl:
	$(MAKE) -C rtl all
.PHONY: rtl_all rtl_debug rtl_smart rtl_release rtl_examples rtl_shared rtl_install rtl_sourceinstall rtl_exampleinstall rtl_distinstall rtl_zipinstall rtl_zipsourceinstall rtl_zipexampleinstall rtl_zipdistinstall rtl_clean rtl_distclean rtl_cleanall rtl_info rtl_makefiles rtl
endif
ifdef TARGET_DIRS_UTILS
utils_all:
	$(MAKE) -C utils all
utils_debug:
	$(MAKE) -C utils debug
utils_smart:
	$(MAKE) -C utils smart
utils_release:
	$(MAKE) -C utils release
utils_examples:
	$(MAKE) -C utils examples
utils_shared:
	$(MAKE) -C utils shared
utils_install:
	$(MAKE) -C utils install
utils_sourceinstall:
	$(MAKE) -C utils sourceinstall
utils_exampleinstall:
	$(MAKE) -C utils exampleinstall
utils_distinstall:
	$(MAKE) -C utils distinstall
utils_zipinstall:
	$(MAKE) -C utils zipinstall
utils_zipsourceinstall:
	$(MAKE) -C utils zipsourceinstall
utils_zipexampleinstall:
	$(MAKE) -C utils zipexampleinstall
utils_zipdistinstall:
	$(MAKE) -C utils zipdistinstall
utils_clean:
	$(MAKE) -C utils clean
utils_distclean:
	$(MAKE) -C utils distclean
utils_cleanall:
	$(MAKE) -C utils cleanall
utils_info:
	$(MAKE) -C utils info
utils_makefiles:
	$(MAKE) -C utils makefiles
utils:
	$(MAKE) -C utils all
.PHONY: utils_all utils_debug utils_smart utils_release utils_examples utils_shared utils_install utils_sourceinstall utils_exampleinstall utils_distinstall utils_zipinstall utils_zipsourceinstall utils_zipexampleinstall utils_zipdistinstall utils_clean utils_distclean utils_cleanall utils_info utils_makefiles utils
endif
ifdef TARGET_DIRS_FCL
fcl_all:
	$(MAKE) -C fcl all
fcl_debug:
	$(MAKE) -C fcl debug
fcl_smart:
	$(MAKE) -C fcl smart
fcl_release:
	$(MAKE) -C fcl release
fcl_examples:
	$(MAKE) -C fcl examples
fcl_shared:
	$(MAKE) -C fcl shared
fcl_install:
	$(MAKE) -C fcl install
fcl_sourceinstall:
	$(MAKE) -C fcl sourceinstall
fcl_exampleinstall:
	$(MAKE) -C fcl exampleinstall
fcl_distinstall:
	$(MAKE) -C fcl distinstall
fcl_zipinstall:
	$(MAKE) -C fcl zipinstall
fcl_zipsourceinstall:
	$(MAKE) -C fcl zipsourceinstall
fcl_zipexampleinstall:
	$(MAKE) -C fcl zipexampleinstall
fcl_zipdistinstall:
	$(MAKE) -C fcl zipdistinstall
fcl_clean:
	$(MAKE) -C fcl clean
fcl_distclean:
	$(MAKE) -C fcl distclean
fcl_cleanall:
	$(MAKE) -C fcl cleanall
fcl_info:
	$(MAKE) -C fcl info
fcl_makefiles:
	$(MAKE) -C fcl makefiles
fcl:
	$(MAKE) -C fcl all
.PHONY: fcl_all fcl_debug fcl_smart fcl_release fcl_examples fcl_shared fcl_install fcl_sourceinstall fcl_exampleinstall fcl_distinstall fcl_zipinstall fcl_zipsourceinstall fcl_zipexampleinstall fcl_zipdistinstall fcl_clean fcl_distclean fcl_cleanall fcl_info fcl_makefiles fcl
endif
ifdef TARGET_DIRS_FV
fv_all:
	$(MAKE) -C fv all
fv_debug:
	$(MAKE) -C fv debug
fv_smart:
	$(MAKE) -C fv smart
fv_release:
	$(MAKE) -C fv release
fv_examples:
	$(MAKE) -C fv examples
fv_shared:
	$(MAKE) -C fv shared
fv_install:
	$(MAKE) -C fv install
fv_sourceinstall:
	$(MAKE) -C fv sourceinstall
fv_exampleinstall:
	$(MAKE) -C fv exampleinstall
fv_distinstall:
	$(MAKE) -C fv distinstall
fv_zipinstall:
	$(MAKE) -C fv zipinstall
fv_zipsourceinstall:
	$(MAKE) -C fv zipsourceinstall
fv_zipexampleinstall:
	$(MAKE) -C fv zipexampleinstall
fv_zipdistinstall:
	$(MAKE) -C fv zipdistinstall
fv_clean:
	$(MAKE) -C fv clean
fv_distclean:
	$(MAKE) -C fv distclean
fv_cleanall:
	$(MAKE) -C fv cleanall
fv_info:
	$(MAKE) -C fv info
fv_makefiles:
	$(MAKE) -C fv makefiles
fv:
	$(MAKE) -C fv all
.PHONY: fv_all fv_debug fv_smart fv_release fv_examples fv_shared fv_install fv_sourceinstall fv_exampleinstall fv_distinstall fv_zipinstall fv_zipsourceinstall fv_zipexampleinstall fv_zipdistinstall fv_clean fv_distclean fv_cleanall fv_info fv_makefiles fv
endif
ifdef TARGET_DIRS_PACKAGES
packages_all:
	$(MAKE) -C packages all
packages_debug:
	$(MAKE) -C packages debug
packages_smart:
	$(MAKE) -C packages smart
packages_release:
	$(MAKE) -C packages release
packages_examples:
	$(MAKE) -C packages examples
packages_shared:
	$(MAKE) -C packages shared
packages_install:
	$(MAKE) -C packages install
packages_sourceinstall:
	$(MAKE) -C packages sourceinstall
packages_exampleinstall:
	$(MAKE) -C packages exampleinstall
packages_distinstall:
	$(MAKE) -C packages distinstall
packages_zipinstall:
	$(MAKE) -C packages zipinstall
packages_zipsourceinstall:
	$(MAKE) -C packages zipsourceinstall
packages_zipexampleinstall:
	$(MAKE) -C packages zipexampleinstall
packages_zipdistinstall:
	$(MAKE) -C packages zipdistinstall
packages_clean:
	$(MAKE) -C packages clean
packages_distclean:
	$(MAKE) -C packages distclean
packages_cleanall:
	$(MAKE) -C packages cleanall
packages_info:
	$(MAKE) -C packages info
packages_makefiles:
	$(MAKE) -C packages makefiles
packages:
	$(MAKE) -C packages all
.PHONY: packages_all packages_debug packages_smart packages_release packages_examples packages_shared packages_install packages_sourceinstall packages_exampleinstall packages_distinstall packages_zipinstall packages_zipsourceinstall packages_zipexampleinstall packages_zipdistinstall packages_clean packages_distclean packages_cleanall packages_info packages_makefiles packages
endif
ifdef TARGET_DIRS_IDE
ide_all:
	$(MAKE) -C ide all
ide_debug:
	$(MAKE) -C ide debug
ide_smart:
	$(MAKE) -C ide smart
ide_release:
	$(MAKE) -C ide release
ide_examples:
	$(MAKE) -C ide examples
ide_shared:
	$(MAKE) -C ide shared
ide_install:
	$(MAKE) -C ide install
ide_sourceinstall:
	$(MAKE) -C ide sourceinstall
ide_exampleinstall:
	$(MAKE) -C ide exampleinstall
ide_distinstall:
	$(MAKE) -C ide distinstall
ide_zipinstall:
	$(MAKE) -C ide zipinstall
ide_zipsourceinstall:
	$(MAKE) -C ide zipsourceinstall
ide_zipexampleinstall:
	$(MAKE) -C ide zipexampleinstall
ide_zipdistinstall:
	$(MAKE) -C ide zipdistinstall
ide_clean:
	$(MAKE) -C ide clean
ide_distclean:
	$(MAKE) -C ide distclean
ide_cleanall:
	$(MAKE) -C ide cleanall
ide_info:
	$(MAKE) -C ide info
ide_makefiles:
	$(MAKE) -C ide makefiles
ide:
	$(MAKE) -C ide all
.PHONY: ide_all ide_debug ide_smart ide_release ide_examples ide_shared ide_install ide_sourceinstall ide_exampleinstall ide_distinstall ide_zipinstall ide_zipsourceinstall ide_zipexampleinstall ide_zipdistinstall ide_clean ide_distclean ide_cleanall ide_info ide_makefiles ide
endif
debug: $(addsuffix _debug,$(TARGET_DIRS))
smart: $(addsuffix _smart,$(TARGET_DIRS))
release: $(addsuffix _release,$(TARGET_DIRS))
examples: $(addsuffix _examples,$(TARGET_DIRS))
shared: $(addsuffix _shared,$(TARGET_DIRS))
sourceinstall:
exampleinstall: $(addsuffix _exampleinstall,$(TARGET_DIRS))
distinstall: fpc_distinstall
zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall $(addsuffix _zipexampleinstall,$(TARGET_DIRS))
zipdistinstall: fpc_zipdistinstall $(addsuffix _zipdistinstall,$(TARGET_DIRS))
cleanall: $(addsuffix _cleanall,$(TARGET_DIRS))
info: fpc_info
makefiles: fpc_makefiles
.PHONY: debug smart release examples shared sourceinstall exampleinstall distinstall zipsourceinstall zipexampleinstall zipdistinstall cleanall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
unexport FPC_VERSION OS_SOURCE
override TARGET_DIRS:=$(wildcard $(TARGET_DIRS))
.PHONY: help checkfpcdir
help:
	@$(ECHO)
	@$(ECHO) Directory targets:
	@$(ECHO)
	@$(ECHO) $(TARGET_DIRS)
	@$(ECHO)
	@$(ECHO) Packing targets are:
	@$(ECHO)
	@$(ECHO) go32v2zip,win32zip,linuxzip,freebsdzip,sourcezip,os2zip
	@$(ECHO)
	@exit
.PHONY: compiler_cycle
compiler_cycle:
	$(MAKE) -C compiler cycle
demo_install:
	$(MAKE) -C $(CVSINSTALL)/demo sourceinstall
man_install:
	$(MAKE) -C $(CVSINSTALL)/man installman
doc_install:
	$(MAKE) -C $(CVSINSTALL)/doc installdoc
optzips: optcompinstall optcompzip
optcompinstall:
	$(MAKE) compiler_cycle OPT=-dNEWOPTIMIZATIONS
	$(MAKE) compiler_install
	$(MAKE) rtl_install
optcompzip:
	$(MAKE) fpc_zipinstall PACKAGENAME=optcomp ZIPTARGET=optcompinstall
.PHONY: installer installersrc
INSTALLERBUILDDIR=fpinst
installer:
	$(COPYTREE) $(CVSINSTALL)/fpinst $(INSTALLERBUILDDIR)
	$(MAKE) -C $(INSTALLERBUILDDIR) all RELEASE=1
	$(MOVE) $(INSTALLERBUILDDIR)/install.exe .
ifdef UPXPROG
	-$(UPXPROG) install.exe
endif
	$(DELTREE) $(INSTALLERBUILDDIR)
installersrc:
	$(COPYTREE) $(CVSINSTALL)/fpinst $(INSTALLERBUILDDIR)
	$(MAKE) -C $(INSTALLERBUILDDIR) zipsourceinstall
	$(DELTREE) $(INSTALLERBUILDDIR)
.PHONY: all clean distclean build install installbase zipinstall zipinstallbase zipinstallfcl \
	zipinstallpackages
all: build
clean: $(addsuffix _distclean,$(TARGET_DIRS))
	$(DEL) build-stamp.$(OS_TARGET)
distclean: clean
build: build-stamp.$(OS_TARGET)
build-stamp.$(OS_TARGET):
	$(MAKE) compiler_cycle
	$(MAKE) rtl_clean
	$(MAKE) packages_clean
	$(MAKE) fcl_clean
	$(MAKE) utils_clean
ifdef IDE
	$(MAKE) fv_clean
	$(MAKE) ide_clean
endif
	$(MAKE) rtl_$(ALLTARGET) $(BUILDOPTS)
	$(MAKE) packages_$(ALLTARGET) $(BUILDOPTS)
	$(MAKE) fcl_$(ALLTARGET) $(BUILDOPTS)
	$(MAKE) utils_all $(BUILDOPTS)
ifdef IDE
	$(MAKE) ide_all $(BUILDOPTS)
endif
	$(ECHOREDIR) Build > build-stamp.$(OS_TARGET)
installbase: build-stamp.$(OS_TARGET)
	$(MKDIR) $(INSTALL_BASEDIR)
	$(MKDIR) $(INSTALL_DOCDIR)
	$(MKDIR) $(INSTALL_BINDIR)
ifndef SNAPSHOT
	$(COPY) $(CVSINSTALL)/doc/*.txt $(CVSINSTALL)/doc/copying* $(CVSINSTALL)/doc/faq.* $(INSTALL_DOCDIR)
ifeq ($(OS_TARGET),go32v2)
	$(COPY) $(CVSINSTALL)/bingo32/* $(INSTALL_BINDIR)
endif
ifeq ($(OS_TARGET),win32)
	$(COPY) $(CVSINSTALL)/binw32/* $(INSTALL_BINDIR)
endif
ifeq ($(OS_TARGET),linux)
	$(MAKE) -C $(CVSINSTALL)/man installman
endif
ifeq ($(OS_TARGET),freebsd)
	$(MAKE) -C $(CVSINSTALL)/man installman
endif
endif
	$(MAKE) compiler_$(INSTALLTARGET) $(INSTALLOPTS)
	$(MAKE) rtl_$(INSTALLTARGET) $(INSTALLOPTS)
install: build-stamp.$(OS_TARGET)
	$(MAKE) installbase $(INSTALLOPTS)
	$(MAKE) packages_$(INSTALLTARGET) $(INSTALLOPTS)
	$(MAKE) fcl_$(INSTALLTARGET) $(INSTALLOPTS)
	$(MAKE) utils_$(INSTALLTARGET) $(INSTALLOPTS)
ifdef IDE
	$(NOSTOP)$(MAKE) ide_$(INSTALLTARGET) $(BUILDOPTS)
endif
zipinstall: build-stamp.$(OS_TARGET)
	$(MAKE) fpc_zipinstall ZIPTARGET=installbase ZIPNAME=base$(ZIPSUFFIX) $(INSTALLOPTS)
	$(MAKE) packages_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPPREFIX=$(PKGPRE)
	$(MAKE) fcl_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPPREFIX=$(PKGPRE)
	$(MAKE) utils_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPNAME=util$(ZIPSUFFIX)
ifdef IDE
	$(NOSTOP)$(MAKE) ide_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPNAME=ide$(ZIPSUFFIX)
endif
.PHONY: docspdf docs docsrcinstall docsrc
docspdf:
	$(MAKE) -C docs pdfinstall
docs:
	$(MAKE) fpc_zipinstall ZIPTARGET=docspdf ZIPNAME=docs
docsrcinstall:
	$(MAKE) -C docs clean
	$(MKDIR) $(INSTALL_SOURCEDIR)
	$(COPYTREE) docs $(INSTALL_SOURCEDIR)
docsrc:
	$(MAKE) fpc_zipinstall ZIPTARGET=docsrcinstall ZIPNAME=docsrc
.PHONY: demozip
demozip:
	$(MAKE) -C $(CVSINSTALL)/demo zipsourceinstall ZIPNAME=demo
.PHONY: sourcebase sourcezip
sourcebase:
	$(MKDIR) $(INSTALL_SOURCEDIR)
	$(MKDIR) $(INSTALL_SOURCEDIR)/rtl
	$(MKDIR) $(INSTALL_SOURCEDIR)/packages
	$(COPY) Makefile*  $(INSTALL_SOURCEDIR)
	$(COPY) rtl/Makefile* $(INSTALL_SOURCEDIR)/rtl
	$(COPY) packages/Makefile* $(INSTALL_SOURCEDIR)/packages
sourcezip: distclean
	$(MAKE) fpc_zipinstall ZIPTARGET=sourcebase ZIPNAME=basesrc
	$(MAKE) compiler_zipsourceinstall
	$(MAKE) rtl_zipsourceinstall
	$(MAKE) packages_zipsourceinstall
	$(MAKE) fcl_zipsourceinstall
	$(MAKE) utils_zipsourceinstall
	$(MAKE) ide_zipsourceinstall
.PHONY: go32v2 win32 linux freebsd os2 go32v2zip win32zip linuxzip freebsdzip os2zip
go32v2: checkfpcdir
	$(MAKE) install OS_TARGET=go32v2
win32: checkfpcdir
	$(MAKE) install OS_TARGET=win32
linux: checkfpcdir
	$(MAKE) install OS_TARGET=linux
freebsd: checkfpcdir
	$(MAKE) install OS_TARGET=freebsd
os2: checkfpcdir
	$(MAKE) install OS_TARGET=os2
go32v2zip: checkfpcdir
	$(MAKE) zipinstall OS_TARGET=go32v2
win32zip: checkfpcdir
	$(MAKE) zipinstall OS_TARGET=win32
linuxzip: checkfpcdir
	$(MAKE) zipinstall OS_TARGET=linux
freebsdzip : checkfpcdir
	$(MAKE) zipinstall OS_TARGET=freebsd
beoszip : checkfpcdir
	$(MAKE) zipinstall OS_TARGET=beos USEZIP=1
os2zip: checkfpcdir
	$(MAKE) zipinstall OS_TARGET=os2
ifdef inUnix
ifneq ($(wildcard $(CVSINSTALL)/debian/changelog),)
.PHONY: debcopy deb
DEBPACKAGEVERSION:=$(shell head -n 1 $(CVSINSTALL)/debian/changelog | awk '{ print $$2 }' | tr -d '[()]')
DEBFPCVERSION:=$(shell echo $(DEBPACKAGEVERSION) | awk -F '-' '{ print $$1 }')
DEBSRCDIR:=/usr/src/fpc-$(DEBFPCVERSION)
debcopy: distclean
	rm -rf $(DEBSRCDIR)
	install -d $(DEBSRCDIR)
	$(COPYTREE) compiler $(DEBSRCDIR)
	$(COPYTREE) rtl $(DEBSRCDIR)
	$(COPYTREE) fcl $(DEBSRCDIR)
	$(COPYTREE) packages $(DEBSRCDIR)
	$(COPYTREE) utils $(DEBSRCDIR)
	$(COPYTREE) demo $(DEBSRCDIR)
	$(COPYTREE) logs $(DEBSRCDIR)
	$(COPYTREE) docs $(DEBSRCDIR)
	$(COPYTREE) Makefile* $(DEBSRCDIR)
	$(COPYTREE) $(CVSINSTALL)/debian $(DEBSRCDIR)
	$(COPYTREE) $(CVSINSTALL)/man $(DEBSRCDIR)
	$(COPYTREE) $(CVSINSTALL)/doc $(DEBSRCDIR)
	find $(DEBSRCDIR) -name 'CVS*' | xargs -n1 rm -rf
	chmod 755 $(DEBSRCDIR)/debian/rules
deb: checkfpcdir debcopy
	cd $(DEBSRCDIR) ; debian/rules binary
endif   # changelog found
endif
ifdef inUnix
ifneq ($(wildcard $(CVSINSTALL)/fpc.spec),)
.PHONY: rpmcopy rpm
RPMFPCVERSION:=$(shell grep 'define fpcversion' $(CVSINSTALL)/fpc.spec | awk '{ print $$3 }')
REDHATDIR=/usr/src/redhat
RPMSOURCESDIR:=$(REDHATDIR)/SOURCES
RPMSPECDIR:=$(REDHATDIR)/SPECS
RPMSRCDIR:=$(RPMSOURCESDIR)/fpc
DOCSRCDIR:=$(RPMSOURCESDIR)/fpcdoc
rpmcopy: distclean
	install -d $(REDHATDIR)
	install -d $(RPMSPECDIR)
	install -d $(RPMSOURCESDIR)
	rm -rf $(RPMSRCDIR)
	cp $(CVSINSTALL)/fpc.spec $(RPMSPECDIR)/fpc-$(RPMFPCVERSION).spec
	install -d $(RPMSRCDIR)
	$(COPYTREE) compiler $(RPMSRCDIR)
	$(COPYTREE) rtl $(RPMSRCDIR)
	$(COPYTREE) fcl $(RPMSRCDIR)
	$(COPYTREE) packages $(RPMSRCDIR)
	$(COPYTREE) utils $(RPMSRCDIR)
	$(COPYTREE) demo $(RPMSRCDIR)
	$(COPYTREE) logs $(RPMSRCDIR)
	$(COPYTREE) Makefile* $(RPMSRCDIR)
	$(COPYTREE) $(CVSINSTALL)/man $(RPMSRCDIR)
	$(COPYTREE) $(CVSINSTALL)/doc $(RPMSRCDIR)
	find $(RPMSRCDIR) -name 'CVS*' | xargs -n1 rm -rf
	cd $(RPMSRCDIR) ; tar cvz * > $(RPMSOURCESDIR)/fpc-$(RPMFPCVERSION)-src.tar.gz
	rm -rf $(DOCSRCDIR)
	cp $(CVSINSTALL)/fpc-docs.spec $(RPMSPECDIR)/fpc-docs-$(RPMFPCVERSION).spec
	install -d $(DOCSRCDIR)
	$(COPYTREE) docs $(DOCSRCDIR)
	find $(DOCSRCDIR) -name 'CVS*' | xargs -n1 rm -rf
	cd $(DOCSRCDIR) ; tar cvz * > $(RPMSOURCESDIR)/fpc-docs-$(RPMFPCVERSION)-src.tar.gz
rpm: checkfpcdir rpmcopy
	cd $(RPMSPECDIR) ; rpm --nodeps -ba fpc-$(RPMFPCVERSION).spec
	cd $(RPMSPECDIR) ; rpm --nodeps -ba fpc-docs-$(RPMFPCVERSION).spec
endif   # spec found
endif
