fpc/Makefile

2695 lines
67 KiB
Makefile

#
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/05/11]
#
default: help
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd arm-linux
BSDs = freebsd netbsd openbsd darwin
UNIXs = linux $(BSDs) solaris qnx
LIMIT83fs = go32v2 os2 emx watcom
FORCE:
.PHONY: FORCE
override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
ifneq ($(findstring darwin,$(OSTYPE)),)
inUnix=1 #darwin
SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
else
ifeq ($(findstring ;,$(PATH)),)
inUnix=1
SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
else
SEARCHPATH:=$(subst ;, ,$(PATH))
endif
endif
SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
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 cygdrive,$(PATH)),)
inCygWin=1
endif
endif
ifdef inUnix
SRCBATCHEXT=.sh
else
ifdef inOS2
SRCBATCHEXT=.cmd
else
SRCBATCHEXT=.bat
endif
endif
ifdef inUnix
PATHSEP=/
else
PATHSEP:=$(subst /,\,/)
ifdef inCygWin
PATHSEP=/
endif
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
ifdef inOS2
ifndef ECHO
ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ECHO),)
ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ECHO),)
ECHO=echo
else
ECHO:=$(firstword $(ECHO))
endif
else
ECHO:=$(firstword $(ECHO))
endif
endif
export ECHO
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=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
endif
else
override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
endif
endif
override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
FOUNDFPC:=$(strip $(wildcard $(FPC)))
ifeq ($(FOUNDFPC),)
FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
ifeq ($(FOUNDFPC),)
$(error Compiler $(FPC) not found)
endif
endif
ifndef FPC_COMPILERINFO
FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
endif
ifndef FPC_VERSION
FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
endif
export FPC FPC_VERSION FPC_COMPILERINFO
unexport CHECKDEPEND ALLDEPENDENCIES
ifndef CPU_TARGET
ifdef CPU_TARGET_DEFAULT
CPU_TARGET=$(CPU_TARGET_DEFAULT)
endif
endif
ifndef OS_TARGET
ifdef OS_TARGET_DEFAULT
OS_TARGET=$(OS_TARGET_DEFAULT)
endif
endif
ifneq ($(words $(FPC_COMPILERINFO)),5)
FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
endif
ifndef CPU_SOURCE
CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
endif
ifndef CPU_TARGET
CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
endif
ifndef OS_SOURCE
OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
endif
ifndef OS_TARGET
OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
endif
FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
else
TARGETSUFFIX=$(FULL_TARGET)
SOURCESUFFIX=$(FULL_SOURCE)
endif
ifneq ($(FULL_TARGET),$(FULL_SOURCE))
CROSSCOMPILE=1
endif
ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
endif
endif
ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
BSDhier=1
endif
ifeq ($(OS_TARGET),linux)
linuxHier=1
endif
export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX 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:=$(BASEDIR)
ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
override FPCDIR=c:/pp
endif
endif
endif
endif
endif
ifndef CROSSBINDIR
CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
endif
ifndef BINUTILSPREFIX
ifndef CROSSBINDIR
ifdef CROSSCOMPILE
BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
endif
endif
endif
UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
ifeq ($(UNITSDIR),)
UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
endif
PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
override PACKAGE_NAME=fpc
override PACKAGE_VERSION=2.0.0
ifndef inOS2
override FPCDIR:=$(BASEDIR)
export FPCDIR
endif
ifndef BUILDDIR
BUILDDIR=$(BASEDIR)/build
endif
ifndef PPNEW
ifeq ($(CPU_TARGET),m68k)
PPSUF=68k
endif
ifeq ($(CPU_TARGET),i386)
PPSUF=386
endif
ifeq ($(CPU_TARGET),x86_64)
PPSUF=x64
endif
ifeq ($(CPU_TARGET),sparc)
PPSUF=sparc
endif
ifeq ($(CPU_TARGET),powerpc)
PPSUF=ppc
endif
ifeq ($(CPU_TARGET),alpha)
PPSUF=axp
endif
ifeq ($(CPU_TARGET),arm)
PPSUF=arm
endif
ifdef CROSSCOMPILE
PPPRE=ppcross
else
PPPRE=ppc
endif
PPNEW=$(BASEDIR)/compiler/$(PPPRE)$(PPSUF)$(SRCEXEEXT)
endif
ifneq ($(wildcard install),)
CVSINSTALL=install
else
CVSINSTALL=.
endif
ifdef SNAPSHOT
INSTALLTARGET=install
else
ifdef CROSSINSTALL
INSTALLTARGET=install
else
INSTALLTARGET=distinstall
endif
endif
ifdef SNAPSHOT
ALLTARGET=all
else
ifndef ALLTARGET
SMARTTARGETS=win32 go32v2 linux freebsd netbsd openbsd netware netwlibc
ifneq ($(findstring $(OS_TARGET),$(SMARTTARGETS)),)
ALLTARGET=smart
else
ALLTARGET=all
endif
endif
endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
PKGUNITSPRE=u
else
PKGUNITSPRE=units-
endif
ifdef CROSSINSTALL
PKGPRE=$(FULL_TARGET)-
else
PKGPRE=
endif
override RELEASE=1
export RELEASE
ifndef DIST_DESTDIR
export DIST_DESTDIR:=$(BASEDIR)
endif
BASEPACKDIR=$(BASEDIR)/basepack
ifeq ($(FULL_SOURCE),$(FULL_TARGET))
FPCMAKENEW=$(BASEDIR)/utils/fpcm/fpcmake$(EXEEXT)
else
FPCMAKENEW=fpcmake
endif
CLEANOPTS=FPC=$(PPNEW)
BUILDOPTS=FPC=$(PPNEW) RELEASE=1
INSTALLOPTS=FPC=$(PPNEW) ZIPDESTDIR=$(BASEDIR) FPCMAKE=$(FPCMAKENEW)
ifndef CROSSCOMPILE
ifneq ($(wildcard ide),)
ifneq ($(wildcard fv),)
IDETARGETS=go32v2 win32 linux freebsd os2 emx
ifneq ($(findstring $(OS_TARGET),$(IDETARGETS)),)
IDE=1
endif
endif
endif
endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),i386-go32v2)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),i386-win32)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),i386-os2)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),i386-freebsd)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),i386-beos)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),i386-netbsd)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),i386-solaris)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),i386-qnx)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),i386-netware)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),i386-openbsd)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),i386-wdosx)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),i386-emx)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),i386-watcom)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),m68k-amiga)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),m68k-atari)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),m68k-palmos)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),powerpc-linux)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),powerpc-macos)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),sparc-linux)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),sparc-solaris)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),x86_64-linux)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
ifdef REQUIRE_PACKAGESDIR
override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
endif
ifdef ZIPINSTALL
ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
UNIXHier=1
endif
else
ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
UNIXHier=1
endif
endif
ifndef INSTALL_PREFIX
ifdef PREFIX
INSTALL_PREFIX=$(PREFIX)
endif
endif
ifndef INSTALL_PREFIX
ifdef UNIXHier
INSTALL_PREFIX=/usr/local
else
ifdef INSTALL_FPCPACKAGE
INSTALL_BASEDIR:=/pp
else
INSTALL_BASEDIR:=/$(PACKAGE_NAME)
endif
endif
endif
export INSTALL_PREFIX
ifdef INSTALL_FPCSUBDIR
export INSTALL_FPCSUBDIR
endif
ifndef DIST_DESTDIR
DIST_DESTDIR:=$(BASEDIR)
endif
export DIST_DESTDIR
ifndef COMPILER_UNITTARGETDIR
ifdef PACKAGEDIR_MAIN
COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
else
COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
endif
endif
ifndef COMPILER_TARGETDIR
COMPILER_TARGETDIR=.
endif
ifndef INSTALL_BASEDIR
ifdef UNIXHier
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 UNIXHier
INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
else
INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
ifdef INSTALL_FPCPACKAGE
ifdef CROSSCOMPILE
ifdef CROSSINSTALL
INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
else
INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
endif
else
INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
endif
endif
endif
endif
ifndef INSTALL_UNITDIR
INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
ifdef INSTALL_FPCPACKAGE
ifdef PACKAGE_NAME
INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
endif
endif
endif
ifndef INSTALL_LIBDIR
ifdef UNIXHier
INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
else
INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
endif
endif
ifndef INSTALL_SOURCEDIR
ifdef UNIXHier
ifdef BSDhier
SRCPREFIXDIR=share/src
else
ifdef linuxHier
SRCPREFIXDIR=share/src
else
SRCPREFIXDIR=src
endif
endif
ifdef INSTALL_FPCPACKAGE
ifdef INSTALL_FPCSUBDIR
INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
else
INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
endif
else
INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
endif
else
ifdef INSTALL_FPCPACKAGE
ifdef INSTALL_FPCSUBDIR
INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
else
INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
endif
else
INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
endif
endif
endif
ifndef INSTALL_DOCDIR
ifdef UNIXHier
ifdef BSDhier
DOCPREFIXDIR=share/doc
else
ifdef linuxHier
DOCPREFIXDIR=share/doc
else
DOCPREFIXDIR=doc
endif
endif
ifdef INSTALL_FPCPACKAGE
INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
else
INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
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 UNIXHier
ifdef INSTALL_FPCPACKAGE
ifdef BSDhier
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
else
ifdef linuxHier
INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
else
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
endif
endif
else
ifdef BSDhier
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
else
ifdef linuxHier
INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
else
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
endif
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/$(SOURCESUFFIX))
ifeq ($(CROSSBINDIR),)
CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
endif
endif
else
CROSSBINDIR=
endif
BATCHEXT=.bat
LOADEREXT=.as
EXEEXT=.exe
PPLEXT=.ppl
PPUEXT=.ppu
OEXT=.o
ASMEXT=.s
SMARTEXT=.sl
STATICLIBEXT=.a
SHAREDLIBEXT=.so
STATICLIBPREFIX=libp
RSTEXT=.rst
ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
ifeq ($(OS_TARGET),go32v1)
STATICLIBPREFIX=
SHORTSUFFIX=v1
endif
ifeq ($(OS_TARGET),go32v2)
STATICLIBPREFIX=
SHORTSUFFIX=dos
endif
ifeq ($(OS_TARGET),watcom)
STATICLIBPREFIX=
OEXT=.obj
ASMEXT=.asm
SHAREDLIBEXT=.dll
SHORTSUFFIX=wat
endif
ifeq ($(OS_TARGET),linux)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
SHORTSUFFIX=lnx
endif
ifeq ($(OS_TARGET),freebsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
SHORTSUFFIX=fbs
endif
ifeq ($(OS_TARGET),netbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
SHORTSUFFIX=nbs
endif
ifeq ($(OS_TARGET),openbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
SHORTSUFFIX=obs
endif
ifeq ($(OS_TARGET),win32)
SHAREDLIBEXT=.dll
SHORTSUFFIX=w32
endif
ifeq ($(OS_TARGET),os2)
BATCHEXT=.cmd
AOUTEXT=.out
STATICLIBPREFIX=
SHAREDLIBEXT=.dll
SHORTSUFFIX=os2
ECHO=echo
endif
ifeq ($(OS_TARGET),emx)
BATCHEXT=.cmd
AOUTEXT=.out
STATICLIBPREFIX=
SHAREDLIBEXT=.dll
SHORTSUFFIX=emx
ECHO=echo
endif
ifeq ($(OS_TARGET),amiga)
EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=mos
endif
ifeq ($(OS_TARGET),atari)
EXEEXT=.ttp
SHORTSUFFIX=ata
endif
ifeq ($(OS_TARGET),beos)
BATCHEXT=.sh
EXEEXT=
SHORTSUFFIX=be
endif
ifeq ($(OS_TARGET),solaris)
BATCHEXT=.sh
EXEEXT=
SHORTSUFFIX=sun
endif
ifeq ($(OS_TARGET),qnx)
BATCHEXT=.sh
EXEEXT=
SHORTSUFFIX=qnx
endif
ifeq ($(OS_TARGET),netware)
EXEEXT=.nlm
STATICLIBPREFIX=
SHORTSUFFIX=nw
endif
ifeq ($(OS_TARGET),netwlibc)
EXEEXT=.nlm
STATICLIBPREFIX=
SHORTSUFFIX=nwl
endif
ifeq ($(OS_TARGET),macos)
BATCHEXT=
EXEEXT=
DEBUGSYMEXT=.xcoff
SHORTSUFFIX=mac
endif
ifeq ($(OS_TARGET),darwin)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
SHORTSUFFIX=dwn
endif
else
ifeq ($(OS_TARGET),go32v1)
PPUEXT=.pp1
OEXT=.o1
ASMEXT=.s1
SMARTEXT=.sl1
STATICLIBEXT=.a1
SHAREDLIBEXT=.so1
STATICLIBPREFIX=
SHORTSUFFIX=v1
endif
ifeq ($(OS_TARGET),go32v2)
STATICLIBPREFIX=
SHORTSUFFIX=dos
endif
ifeq ($(OS_TARGET),watcom)
STATICLIBPREFIX=
SHORTSUFFIX=wat
endif
ifeq ($(OS_TARGET),linux)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
SHORTSUFFIX=lnx
endif
ifeq ($(OS_TARGET),freebsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
SHORTSUFFIX=fbs
endif
ifeq ($(OS_TARGET),netbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
SHORTSUFFIX=nbs
endif
ifeq ($(OS_TARGET),openbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
SHORTSUFFIX=obs
endif
ifeq ($(OS_TARGET),win32)
PPUEXT=.ppw
OEXT=.ow
ASMEXT=.sw
SMARTEXT=.slw
STATICLIBEXT=.aw
SHAREDLIBEXT=.dll
SHORTSUFFIX=w32
endif
ifeq ($(OS_TARGET),os2)
BATCHEXT=.cmd
PPUEXT=.ppo
ASMEXT=.so2
OEXT=.oo2
AOUTEXT=.out
SMARTEXT=.sl2
STATICLIBPREFIX=
STATICLIBEXT=.ao2
SHAREDLIBEXT=.dll
SHORTSUFFIX=os2
ECHO=echo
endif
ifeq ($(OS_TARGET),amiga)
EXEEXT=
PPUEXT=.ppu
ASMEXT=.asm
OEXT=.o
SMARTEXT=.sl
STATICLIBEXT=.a
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
ifeq ($(OS_TARGET),atari)
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
SMARTEXT=.sl
STATICLIBEXT=.a
EXEEXT=.ttp
SHORTSUFFIX=ata
endif
ifeq ($(OS_TARGET),beos)
BATCHEXT=.sh
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
SMARTEXT=.sl
STATICLIBEXT=.a
EXEEXT=
SHORTSUFFIX=be
endif
ifeq ($(OS_TARGET),solaris)
BATCHEXT=.sh
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
SMARTEXT=.sl
STATICLIBEXT=.a
EXEEXT=
SHORTSUFFIX=sun
endif
ifeq ($(OS_TARGET),qnx)
BATCHEXT=.sh
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
SMARTEXT=.sl
STATICLIBEXT=.a
EXEEXT=
SHORTSUFFIX=qnx
endif
ifeq ($(OS_TARGET),netware)
STATICLIBPREFIX=
PPUEXT=.ppu
OEXT=.o
ASMEXT=.s
SMARTEXT=.sl
STATICLIBEXT=.a
SHAREDLIBEXT=.nlm
EXEEXT=.nlm
SHORTSUFFIX=nw
endif
ifeq ($(OS_TARGET),netwlibc)
STATICLIBPREFIX=
PPUEXT=.ppu
OEXT=.o
ASMEXT=.s
SMARTEXT=.sl
STATICLIBEXT=.a
SHAREDLIBEXT=.nlm
EXEEXT=.nlm
SHORTSUFFIX=nwl
endif
ifeq ($(OS_TARGET),macos)
BATCHEXT=
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
SMARTEXT=.sl
STATICLIBEXT=.a
EXEEXT=
DEBUGSYMEXT=.xcoff
SHORTSUFFIX=mac
endif
endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
ZIPCROSSPREFIX=
ZIPSOURCESUFFIX=src
ZIPEXAMPLESUFFIX=exm
else
FPCMADE=fpcmade.$(TARGETSUFFIX)
ZIPSOURCESUFFIX=.source
ZIPEXAMPLESUFFIX=.examples
ifdef CROSSCOMPILE
ZIPSUFFIX=.$(SOURCESUFFIX)
ZIPCROSSPREFIX=$(TARGETSUFFIX)-
else
ZIPSUFFIX=.$(TARGETSUFFIX)
ZIPCROSSPREFIX=
endif
endif
ifndef ECHO
ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ECHO),)
ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ECHO),)
ECHO= __missing_command_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= __missing_command_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= __missing_command_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= __missing_command_CPPROG
else
CPPROG:=$(firstword $(CPPROG))
endif
endif
export CPPROG
ifndef RMPROG
RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(RMPROG),)
RMPROG= __missing_command_RMPROG
else
RMPROG:=$(firstword $(RMPROG))
endif
endif
export RMPROG
ifndef MVPROG
MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(MVPROG),)
MVPROG= __missing_command_MVPROG
else
MVPROG:=$(firstword $(MVPROG))
endif
endif
export MVPROG
ifndef MKDIRPROG
MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(MKDIRPROG),)
MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(MKDIRPROG),)
MKDIRPROG= __missing_command_MKDIRPROG
else
MKDIRPROG:=$(firstword $(MKDIRPROG))
endif
else
MKDIRPROG:=$(firstword $(MKDIRPROG))
endif
endif
export MKDIRPROG
ifndef ECHOREDIR
ifndef inUnix
ECHOREDIR=echo
else
ECHOREDIR=$(ECHO)
endif
endif
ifndef COPY
COPY:=$(CPPROG) -fp
endif
ifndef COPYTREE
COPYTREE:=$(CPPROG) -Rfp
endif
ifndef MKDIRTREE
MKDIRTREE:=$(MKDIRPROG) -p
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= __missing_command_PPUMOVE
else
PPUMOVE:=$(firstword $(PPUMOVE))
endif
endif
export PPUMOVE
ifndef FPCMAKE
FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(FPCMAKE),)
FPCMAKE= __missing_command_FPCMAKE
else
FPCMAKE:=$(firstword $(FPCMAKE))
endif
endif
export FPCMAKE
ifndef ZIPPROG
ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ZIPPROG),)
ZIPPROG= __missing_command_ZIPPROG
else
ZIPPROG:=$(firstword $(ZIPPROG))
endif
endif
export ZIPPROG
ifndef TARPROG
TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(TARPROG),)
TARPROG= __missing_command_TARPROG
else
TARPROG:=$(firstword $(TARPROG))
endif
endif
export TARPROG
ASNAME=$(BINUTILSPREFIX)as
LDNAME=$(BINUTILSPREFIX)ld
ARNAME=$(BINUTILSPREFIX)ar
RCNAME=$(BINUTILSPREFIX)rc
ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
ifeq ($(OS_TARGET),win32)
ifeq ($(CROSSBINDIR),)
ASNAME=asw
LDNAME=ldw
ARNAME=arw
endif
endif
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$(SRCBATCHEXT)
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=vj
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
ifeq ($(OS_SOURCE),openbsd)
override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
endif
ifndef CROSSBOOTSTRAP
ifneq ($(BINUTILSPREFIX),)
override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
endif
ifneq ($(BINUTILSPREFIX),)
override FPCOPT+=-Xr$(RLINKPATH)
endif
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
ifeq ($(CPU_TARGET),powerpc)
FPCCPUOPT:=-O1
else
FPCCPUOPT:=
endif
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
ifeq ($(OS_TARGET),linux)
ifeq ($(FPC_VERSION),1.0.6)
override FPCOPTDEF+=HASUNIX
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 ($(FULL_SOURCE),$(FULL_TARGET))
EXECPPAS:=@$(PPAS)
endif
endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
endif
.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
ifdef INSTALL_UNITS
override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
endif
ifdef INSTALL_BUILDUNIT
override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
endif
ifdef INSTALLPPUFILES
override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
ifneq ($(UNITTARGETDIRPREFIX),)
override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
endif
override INSTALL_CREATEPACKAGEFPC=1
endif
ifdef INSTALLEXEFILES
ifneq ($(TARGETDIRPREFIX),)
override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
endif
endif
fpc_install: all $(INSTALLTARGET)
ifdef INSTALLEXEFILES
$(MKDIR) $(INSTALL_BINDIR)
ifdef UPXPROG
-$(UPXPROG) $(INSTALLEXEFILES)
endif
$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
endif
ifdef INSTALL_CREATEPACKAGEFPC
ifdef FPCMAKE
ifdef PACKAGE_VERSION
ifneq ($(wildcard Makefile.fpc),)
$(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
$(MKDIR) $(INSTALL_UNITDIR)
$(INSTALL) Package.fpc $(INSTALL_UNITDIR)
endif
endif
endif
endif
ifdef INSTALLPPUFILES
$(MKDIR) $(INSTALL_UNITDIR)
$(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
ifneq ($(INSTALLPPULINKFILES),)
$(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
endif
ifneq ($(wildcard $(LIB_FULLNAME)),)
$(MKDIR) $(INSTALL_LIBDIR)
$(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
ifdef inUnix
ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
endif
endif
endif
ifdef INSTALL_FILES
$(MKDIR) $(INSTALL_DATADIR)
$(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
endif
fpc_sourceinstall: distclean
$(MKDIR) $(INSTALL_SOURCEDIR)
$(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
ifdef HASEXAMPLES
$(MKDIR) $(INSTALL_EXAMPLEDIR)
endif
ifdef EXAMPLESOURCEFILES
$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
endif
ifdef TARGET_EXAMPLEDIRS
$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
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=$(PACKAGE_NAME)
endif
endif
ifndef FULLZIPNAME
FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
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$(SRCBATCHEXT))
else
ZIPPATHSEP=/
endif
ZIPCMD_CDPACK:=cd $(subst /,$(ZIPPATHSEP),$(PACKDIR))
ZIPCMD_CDBASE:=cd $(subst /,$(ZIPPATHSEP),$(BASEDIR))
ifdef USETAR
ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(TAREXT)
ZIPCMD_ZIP:=$(TARPROG) cf$(TAROPT) $(ZIPDESTFILE) *
else
ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(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=$(ZIPSOURCESUFFIX)
fpc_zipexampleinstall:
ifdef HASEXAMPLES
$(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall ZIPSUFFIX=$(ZIPEXAMPLESUFFIX)
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)))
ifdef DEBUGSYMEXT
override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
endif
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)
-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
fpc_cleanall: $(CLEANTARGET)
ifdef CLEANEXEFILES
-$(DEL) $(CLEANEXEFILES)
endif
ifdef COMPILER_UNITTARGETDIR
ifdef CLEANPPUFILES
-$(DEL) $(CLEANPPUFILES)
endif
ifneq ($(CLEANPPULINKFILES),)
-$(DEL) $(CLEANPPULINKFILES)
endif
ifdef CLEANRSTFILES
-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
endif
endif
-$(DELTREE) units
-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
ifneq ($(PPUEXT),.ppu)
-$(DEL) *.o *.ppu *.a
endif
-$(DELTREE) *$(SMARTEXT)
-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-$(DEL) *_ppas$(BATCHEXT)
ifdef AOUTEXT
-$(DEL) *$(AOUTEXT)
endif
ifdef DEBUGSYMEXT
-$(DEL) *$(DEBUGSYMEXT)
endif
fpc_distclean: cleanall
.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 Source.. $(FULL_SOURCE)
@$(ECHO) Full Target.. $(FULL_TARGET)
@$(ECHO) SourceSuffix. $(SOURCESUFFIX)
@$(ECHO) TargetSuffix. $(TARGETSUFFIX)
@$(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) Shell..... $(SHELL)
@$(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) ZipName.............. $(ZIPNAME)
@$(ECHO) ZipPrefix............ $(ZIPPREFIX)
@$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX)
@$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
@$(ECHO) FullZipName.......... $(FULLZIPNAME)
@$(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
ifeq ($(FULL_TARGET),i386-linux)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),i386-go32v2)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),i386-win32)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),i386-os2)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),i386-freebsd)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),i386-beos)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),i386-netbsd)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),i386-solaris)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),i386-qnx)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),i386-netware)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),i386-openbsd)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),i386-wdosx)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),i386-emx)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),i386-watcom)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),m68k-linux)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),m68k-amiga)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),m68k-atari)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),m68k-palmos)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),powerpc-linux)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),powerpc-macos)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),sparc-linux)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),sparc-solaris)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),x86_64-linux)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
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
TARGET_DIRS_INSTALLER=1
endif
ifeq ($(FULL_TARGET),arm-linux)
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
TARGET_DIRS_INSTALLER=1
endif
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_units:
$(MAKE) -C compiler units
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_units 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_units:
$(MAKE) -C rtl units
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_units 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_units:
$(MAKE) -C utils units
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_units 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_units:
$(MAKE) -C fcl units
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_units 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_units:
$(MAKE) -C fv units
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_units 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_units:
$(MAKE) -C packages units
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_units 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_units:
$(MAKE) -C ide units
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_units 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
ifdef TARGET_DIRS_INSTALLER
installer_all:
$(MAKE) -C installer all
installer_debug:
$(MAKE) -C installer debug
installer_smart:
$(MAKE) -C installer smart
installer_release:
$(MAKE) -C installer release
installer_units:
$(MAKE) -C installer units
installer_examples:
$(MAKE) -C installer examples
installer_shared:
$(MAKE) -C installer shared
installer_install:
$(MAKE) -C installer install
installer_sourceinstall:
$(MAKE) -C installer sourceinstall
installer_exampleinstall:
$(MAKE) -C installer exampleinstall
installer_distinstall:
$(MAKE) -C installer distinstall
installer_zipinstall:
$(MAKE) -C installer zipinstall
installer_zipsourceinstall:
$(MAKE) -C installer zipsourceinstall
installer_zipexampleinstall:
$(MAKE) -C installer zipexampleinstall
installer_zipdistinstall:
$(MAKE) -C installer zipdistinstall
installer_clean:
$(MAKE) -C installer clean
installer_distclean:
$(MAKE) -C installer distclean
installer_cleanall:
$(MAKE) -C installer cleanall
installer_info:
$(MAKE) -C installer info
installer_makefiles:
$(MAKE) -C installer makefiles
installer:
$(MAKE) -C installer all
.PHONY: installer_all installer_debug installer_smart installer_release installer_units installer_examples installer_shared installer_install installer_sourceinstall installer_exampleinstall installer_distinstall installer_zipinstall installer_zipsourceinstall installer_zipexampleinstall installer_zipdistinstall installer_clean installer_distclean installer_cleanall installer_info installer_makefiles installer
endif
debug: $(addsuffix _debug,$(TARGET_DIRS))
smart: $(addsuffix _smart,$(TARGET_DIRS))
release: $(addsuffix _release,$(TARGET_DIRS))
units: $(addsuffix _units,$(TARGET_DIRS))
examples: $(addsuffix _examples,$(TARGET_DIRS))
shared: $(addsuffix _shared,$(TARGET_DIRS))
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall $(addsuffix _exampleinstall,$(TARGET_DIRS))
distinstall: fpc_distinstall
zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall $(addsuffix _zipexampleinstall,$(TARGET_DIRS))
zipdistinstall: fpc_zipdistinstall
cleanall: $(addsuffix _cleanall,$(TARGET_DIRS))
info: fpc_info
makefiles: fpc_makefiles
.PHONY: debug smart release units examples shared sourceinstall exampleinstall distinstall zipsourceinstall zipexampleinstall zipdistinstall cleanall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
unexport FPC_VERSION FPC_COMPILERINFO 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,emxzip,beoszip,sunoszip,qnxzip,amigazip
@$(ECHO)
@$(ECHO) Or type 'make all' to build everything
@$(ECHO)
@exit
.PHONY: compiler_cycle
compiler_cycle:
$(MAKE) -C compiler cycle
.PHONY: packages_base_all packages_extra_all \
packages_base_smart packages_extra_smart
packages_base_all:
$(MAKE) -C packages base_all
packages_base_smart:
$(MAKE) -C packages base_smart
packages_extra_all:
$(MAKE) -C packages extra_all
packages_extra_smart:
$(MAKE) -C packages extra_smart
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
BUILDSTAMP=build-stamp.$(FULL_TARGET)
.PHONY: all clean distclean build install installbase zipinstall singlezipinstall
all: build
clean: $(addsuffix _distclean,$(TARGET_DIRS))
$(DEL) build-stamp.*
distclean: clean
build: $(BUILDSTAMP)
$(BUILDSTAMP):
$(MAKE) compiler_cycle RELEASE=1
$(MAKE) rtl_clean $(CLEANOPTS)
$(MAKE) packages_clean $(CLEANOPTS)
$(MAKE) fcl_clean $(CLEANOPTS)
$(MAKE) fv_clean $(CLEANOPTS)
$(MAKE) utils_clean $(CLEANOPTS)
ifdef IDE
$(MAKE) ide_clean $(CLEANOPTS)
endif
$(MAKE) rtl_$(ALLTARGET) $(BUILDOPTS)
$(MAKE) packages_base_$(ALLTARGET) $(BUILDOPTS)
$(MAKE) fcl_$(ALLTARGET) $(BUILDOPTS)
$(MAKE) fv_$(ALLTARGET) $(BUILDOPTS)
$(MAKE) packages_extra_$(ALLTARGET) $(BUILDOPTS)
$(MAKE) utils_all $(BUILDOPTS)
ifdef IDE
$(MAKE) ide_all $(BUILDOPTS)
$(MAKE) installer_all $(BUILDOPTS)
endif
$(ECHOREDIR) Build > $(BUILDSTAMP)
installbase:
$(MKDIR) $(INSTALL_BASEDIR)
$(MKDIR) $(INSTALL_BINDIR)
ifndef SNAPSHOT
ifndef CROSSINSTALL
$(MKDIR) $(INSTALL_DOCDIR)
-$(COPY) $(addprefix $(CVSINSTALL)/doc/,*.txt copying* faq.*) $(INSTALL_DOCDIR)
ifeq ($(OS_TARGET),go32v2)
$(COPY) $(CVSINSTALL)/bingo32/*.dxe $(INSTALL_BINDIR)
$(COPY) $(CVSINSTALL)/bingo32/*.exe $(INSTALL_BINDIR)
endif
ifneq ($(patsubst %/,%,$(subst \,/,$(dir $(CPPROG)))),$(patsubst %/,%,$(subst \,/,$(INSTALL_BINDIR))))
ifeq ($(OS_TARGET),win32)
$(COPY) $(addprefix $(CVSINSTALL)/binw32/,*.ico *.exe *.dll *.h) $(INSTALL_BINDIR)
endif
endif
ifeq ($(OS_TARGET),os2)
$(COPY) $(addprefix $(CVSINSTALL)/binos2/,*.ico *.dll) $(INSTALL_BINDIR)
endif
ifeq ($(OS_TARGET),emx)
$(COPY) $(addprefix $(CVSINSTALL)/binos2/,*.ico *.dll) $(INSTALL_BINDIR)
endif
ifneq ($(findstring $(OS_TARGET),linux freebsd sunos qnx),)
$(MAKE) -C $(CVSINSTALL)/man installman
endif
endif
endif
$(MAKE) compiler_$(INSTALLTARGET) $(INSTALLOPTS)
$(MAKE) rtl_$(INSTALLTARGET) $(INSTALLOPTS)
install: $(BUILDSTAMP)
$(MAKE) installbase $(INSTALLOPTS)
$(MAKE) packages_$(INSTALLTARGET) $(INSTALLOPTS)
$(MAKE) fcl_$(INSTALLTARGET) $(INSTALLOPTS)
$(MAKE) fv_$(INSTALLTARGET) $(INSTALLOPTS)
$(MAKE) utils_$(INSTALLTARGET) $(INSTALLOPTS)
ifdef IDE
$(MAKE) ide_$(INSTALLTARGET) $(BUILDOPTS)
endif
zipinstall: $(BUILDSTAMP)
$(MAKE) fpc_zipinstall ZIPTARGET=installbase ZIPNAME=base $(INSTALLOPTS)
$(MAKE) packages_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPPREFIX=$(PKGUNITSPRE)
$(MAKE) fcl_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPPREFIX=$(PKGUNITSPRE)
$(MAKE) fv_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPPREFIX=$(PKGUNITSPRE)
$(MAKE) utils_zip$(INSTALLTARGET) $(INSTALLOPTS)
ifdef IDE
$(MAKE) ide_zip$(INSTALLTARGET) $(INSTALLOPTS)
endif
singlezipinstall: $(BUILDSTAMP)
$(MAKE) fpc_zipinstall ZIPTARGET=install ZIPNAME=fpc-$(PACKAGE_VERSION) $(INSTALLOPTS)
.PHONY: crossall crossinstall crosszipinstall crosssinglezipinstall
crossall:
$(MAKE) all CROSSINSTALL=1
crossinstall:
$(MAKE) install CROSSINSTALL=1
crosszipinstall:
$(MAKE) zipinstall CROSSINSTALL=1
crosssinglezipinstall:
$(MAKE) fpc_zipinstall ZIPTARGET=crossinstall ZIPNAME=fpc $(INSTALLOPTS)
.PHONY: docspdf makepackdocs docsrcinstall docsrc
DOCSOURCEDIR=$(INSTALL_SOURCEDIR)/../docs
docspdf:
$(MAKE) -C docs pdfinstall DOCINSTALLDIR=$(PACKDIR)
makepackdocs:
$(MAKE) fpc_zipinstall ZIPTARGET=docspdf FULLZIPNAME=docs
docsrcinstall:
$(MAKE) -C docs clean
$(MKDIR) $(DOCSOURCEDIR)
$(COPYTREE) docs/* $(DOCSOURCEDIR)
docsrc:
$(MAKE) fpc_zipinstall ZIPTARGET=docsrcinstall FULLZIPNAME=docsrc
.PHONY: demozip
ifdef UNIXHier
DEMOSOURCEDIR=$(INSTALL_DOCDIR)/../demo
else
DEMOSOURCEDIR=$(INSTALL_PREFIX)/demo
endif
demosrcinstall:
$(MAKE) -C demo clean
$(MKDIR) $(DEMOSOURCEDIR)
$(COPYTREE) demo/* $(DEMOSOURCEDIR)
find $(DEMOSOURCEDIR) -name 'CVS' | xargs -n1 rm -rf
demozip:
$(MAKE) fpc_zipinstall ZIPTARGET=demosrcinstall FULLZIPNAME=demo
.PHONY: sourcebase sourcezip
INSTALL_BASESOURCEDIR=$(INSTALL_SOURCEDIR)/..
sourcebase:
$(MKDIR) $(INSTALL_BASESOURCEDIR)
$(MKDIR) $(INSTALL_BASESOURCEDIR)/rtl
$(MKDIR) $(INSTALL_BASESOURCEDIR)/packages
$(MKDIR) $(INSTALL_BASESOURCEDIR)/packages/base
$(MKDIR) $(INSTALL_BASESOURCEDIR)/packages/extra
$(COPY) Makefile* $(INSTALL_BASESOURCEDIR)
$(COPY) rtl/Makefile* $(INSTALL_BASESOURCEDIR)/rtl
$(COPY) packages/Makefile* $(INSTALL_BASESOURCEDIR)/packages
$(COPY) packages/base/Makefile* $(INSTALL_BASESOURCEDIR)/packages/base
$(COPY) packages/extra/Makefile* $(INSTALL_BASESOURCEDIR)/packages/extra
sourcezip:
$(MAKE) fpc_zipinstall ZIPTARGET=sourcebase ZIPNAME=base ZIPSUFFIX=$(ZIPSOURCESUFFIX)
$(MAKE) compiler_zipsourceinstall
$(MAKE) rtl_zipsourceinstall
$(MAKE) packages_zipsourceinstall ZIPPREFIX=$(PKGUNITSPRE)
$(MAKE) fcl_zipsourceinstall
$(MAKE) fv_zipsourceinstall
$(MAKE) utils_zipsourceinstall
$(MAKE) ide_zipsourceinstall
$(MAKE) installer_zipsourceinstall
BUILDTARGETS=go32v2 win32 linux freebsd netbsd openbsd os2 emx sunos qnx beos
.PHONY: go32v2 win32 linux freebsd os2 emx netbsd openbsd go32v2zip win32zip linuxzip freebsdzip os2zip emxzip netbsdzip openbsdzip
$(BUILDTARGETS): checkfpcdir
$(MAKE) install OS_TARGET=$@
$(addsuffix zip,$(filter-out beos sunos,$(BUILDTARGETS))): checkfpcdir
$(MAKE) zipinstall OS_TARGET=$(subst zip,,$@)
beoszip : checkfpcdir
$(MAKE) zipinstall OS_TARGET=beos USEZIP=1
sunoszip: checkfpcdir
$(MAKE) zipinstall OS_TARGET=sunos TARPROG=gtar
.PHONY: renametoshort shortsrc shortbin shortnames
renametoshort:
-mv base$(ZIPSUFFIX).zip base$(ZIPSUFFIXSHORT).zip
-mv compiler$(ZIPSUFFIX).zip comp$(ZIPSUFFIXSHORT).zip
-mv utils$(ZIPSUFFIX).zip util$(ZIPSUFFIXSHORT).zip
-mv installer$(ZIPSUFFIX).zip inst$(ZIPSUFFIXSHORT).zip
-mv $(PKGUNITSPRE)fcl$(ZIPSUFFIX).zip ufcl$(ZIPSUFFIXSHORT).zip
-mv $(PKGUNITSPRE)gdbint$(ZIPSUFFIX).zip ugdb$(ZIPSUFFIXSHORT).zip
-mv $(PKGUNITSPRE)regexpr$(ZIPSUFFIX).zip ureg$(ZIPSUFFIXSHORT).zip
-mv $(PKGUNITSPRE)paszlib$(ZIPSUFFIX).zip upzl$(ZIPSUFFIXSHORT).zip
-mv $(PKGUNITSPRE)unzip$(ZIPSUFFIX).zip uzip$(ZIPSUFFIXSHORT).zip
-mv $(PKGUNITSPRE)netdb$(ZIPSUFFIX).zip undb$(ZIPSUFFIXSHORT).zip
-mv $(PKGUNITSPRE)ftpapi$(ZIPSUFFIX).zip uftp$(ZIPSUFFIXSHORT).zip
-mv $(PKGUNITSPRE)hwvideo$(ZIPSUFFIX).zip uhwv$(ZIPSUFFIXSHORT).zip
-mv $(PKGUNITSPRE)clkdll$(ZIPSUFFIX).zip uclk$(ZIPSUFFIXSHORT).zip
-mv $(PKGUNITSPRE)pasjpeg$(ZIPSUFFIX).zip upjp$(ZIPSUFFIXSHORT).zip
-mv $(PKGUNITSPRE)fv$(ZIPSUFFIX).zip ufv$(ZIPSUFFIXSHORT).zip
-mv $(PKGUNITSPRE)rexx$(ZIPSUFFIX).zip urexx$(ZIPSUFFIXSHORT).zip
-mv $(PKGUNITSPRE)zlib$(ZIPSUFFIX).zip uzlib$(ZIPSUFFIXSHORT).zip
-mv $(PKGUNITSPRE)mmtk$(ZIPSUFFIX).zip ummtk$(ZIPSUFFIXSHORT).zip
-mv $(PKGUNITSPRE)lvm$(ZIPSUFFIX).zip ulvm$(ZIPSUFFIXSHORT).zip
-mv $(PKGUNITSPRE)imlib$(ZIPSUFFIX).zip uimlb$(ZIPSUFFIXSHORT).zip
-mv $(PKGUNITSPRE)libpng$(ZIPSUFFIX).zip ulpng$(ZIPSUFFIXSHORT).zip
-mv $(PKGUNITSPRE)opengl$(ZIPSUFFIX).zip uogl$(ZIPSUFFIXSHORT).zip
shortsrc:
$(MAKE) renametoshort ZIPSUFFIX=$(ZIPSOURCESUFFIX) ZIPSUFFIXSHORT=src
shortbin:
$(MAKE) renametoshort ZIPSUFFIXSHORT=$(SHORTSUFFIX)
shortnames: shortsrc shortbin
.PHONY: dist
dist:
$(MAKE) sourcezip
$(MAKE) demozip
$(MAKE) zipinstall
ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),)
$(MAKE) shortnames
endif
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:=$(BUILDDIR)/fpc-$(DEBFPCVERSION)
debcheck:
ifneq ($(DEBFPCVERSION),$(PACKAGE_VERSION))
@$(ECHO) "Debian version ($(DEBFPCVERSION)) is not correct, expect $(PACKAGE_VERSION)"
@exit 1
endif
debcopy: distclean
rm -rf $(DEBSRCDIR)
install -d $(DEBSRCDIR)
$(COPYTREE) compiler $(DEBSRCDIR)
$(COPYTREE) rtl $(DEBSRCDIR)
$(COPYTREE) fcl $(DEBSRCDIR)
$(COPYTREE) fv $(DEBSRCDIR)
$(COPYTREE) ide $(DEBSRCDIR)
$(COPYTREE) packages $(DEBSRCDIR)
$(COPYTREE) utils $(DEBSRCDIR)
$(COPYTREE) demo $(DEBSRCDIR)
$(COPYTREE) logs $(DEBSRCDIR)
ifndef NODOCS
$(COPYTREE) docs $(DEBSRCDIR)
endif
$(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
debbuild:
ifdef NODOCS
cd $(DEBSRCDIR) ; fakeroot debian/rules binary-arch
else
cd $(DEBSRCDIR) ; fakeroot debian/rules binary
endif
mv $(DEBSRCDIR)/../*.deb .
debclean:
rm -rf $(DEBSRCDIR)
-rmdir $(BUILDDIR)
debtargz: checkfpcdir
$(MAKE) fpc_zipinstall USETAR=y ZIPTARGET=debcopy PACKDIR=$(DEBSRCDIR) FULLZIPNAME=fpc-$(DEBFPCVERSION).orig
deb: checkfpcdir debcheck debcopy debbuild debclean
endif # changelog found
endif
ifdef inUnix
RPM:=$(strip $(wildcard $(addsuffix /rpm$(SRCEXEEXT),$(SEARCHPATH))))
ifneq ($(RPM),)
ifneq ($(wildcard $(CVSINSTALL)/fpc.spec),)
.PHONY: rpmcopy rpm
RPMBUILD=$(strip $(wildcard $(addsuffix /rpmbuild,$(SEARCHPATH))))
ifeq ($(RPMBUILD),)
RPMBUILD=$(strip $(wildcard $(addsuffix /rpm,$(SEARCHPATH))))
endif
RPMDIR=$(BUILDDIR)/rpm
RPMSPECFILE:=$(RPMDIR)/SPECS/fpc-$(PACKAGE_VERSION).spec
RPMSOURCEFILE:=$(RPMDIR)/SOURCES/fpc-$(PACKAGE_VERSION)-src.tar.gz
RPMSRCDIR:=$(RPMDIR)/SOURCES/fpc
rpmcopy: distclean
false || [ -d $(RPMDIR) ] || install -d $(RPMDIR)
false || [ -d $(RPMDIR)/BUILD ] || install -d $(RPMDIR)/BUILD
false || [ -d $(RPMDIR)/SOURCES ] || install -d $(RPMDIR)/SOURCES
false || [ -d $(RPMDIR)/SPECS ] || install -d $(RPMDIR)/SPECS
false || [ -d $(RPMDIR)/RPMS ] || install -d $(RPMDIR)/RPMS
false || [ -d $(RPMDIR)/SRPMS ] || install -d $(RPMDIR)/SRPMS
rm -rf $(RPMSRCDIR)
echo "%define _topdir $(RPMDIR)" > $(RPMSPECFILE)
echo "%define _sourcedir $(RPMDIR)/SOURCES" >> $(RPMSPECFILE)
echo "%define _builddir $(RPMDIR)/BUILD" >> $(RPMSPECFILE)
echo "%define _rpmdir $(RPMDIR)/RPMS" >> $(RPMSPECFILE)
echo "%define _srcrpmdir $(RPMDIR)/SRPMS" >> $(RPMSPECFILE)
sed "s+%FPCVERSION%+$(PACKAGE_VERSION)+" $(CVSINSTALL)/fpc.spec >> $(RPMSPECFILE)
ifndef NODOCS
cat $(CVSINSTALL)/fpcdoc.spec >> $(RPMSPECFILE)
endif
install -d $(RPMSRCDIR)
$(COPYTREE) compiler $(RPMSRCDIR)
$(COPYTREE) rtl $(RPMSRCDIR)
$(COPYTREE) fcl $(RPMSRCDIR)
$(COPYTREE) fv $(RPMSRCDIR)
$(COPYTREE) ide $(RPMSRCDIR)
$(COPYTREE) packages $(RPMSRCDIR)
$(COPYTREE) utils $(RPMSRCDIR)
$(COPYTREE) demo $(RPMSRCDIR)
$(COPYTREE) logs $(RPMSRCDIR)
$(COPYTREE) Makefile* $(RPMSRCDIR)
$(COPYTREE) $(CVSINSTALL)/man $(RPMSRCDIR)
$(COPYTREE) $(CVSINSTALL)/doc $(RPMSRCDIR)
$(COPY) $(CVSINSTALL)/smart_strip.sh $(RPMSRCDIR)
chmod +x $(RPMSRCDIR)/smart_strip.sh
ifndef NODOCS
$(COPYTREE) docs $(RPMSRCDIR)
endif
find $(RPMSRCDIR) -name 'CVS*' | xargs -n1 rm -rf
cd $(RPMSRCDIR) ; tar cfvz $(RPMSOURCEFILE) *
rm -rf $(RPMSRCDIR)
rpmbuild: checkfpcdir
$(RPMBUILD) --nodeps -ba $(RPMSPECFILE)
mv `find $(RPMDIR)/RPMS/ -name '*.rpm'` .
mv `find $(RPMDIR)/SRPMS/ -name '*.rpm'` .
rpmclean:
rm -rf $(RPMDIR)
-rmdir $(BUILDDIR)
rpm: checkfpcdir rpmcopy rpmbuild rpmclean
endif # spec found
endif # rpm available
endif # inUnix
ISCCPROG=$(subst $(PATHSEP),/,$(ProgramFiles))/inno setup 5/iscc.exe
ifndef inUnix
USEINNOWRAPPER=1
endif
INNODIR=$(BUILDDIR)/inno
INNOWRAPPER=$(subst /,$(PATHSEP),$(DIST_DESTDIR)/fpcinno$(SRCBATCHEXT))
INNOCMD_CDINNO:=cd $(subst /,$(ZIPPATHSEP),$(INNODIR))
INNOCMD_CDBASE:=cd $(subst /,$(ZIPPATHSEP),$(BASEDIR))
INNOCMD_ISCC:=$(ISCCPROG) $(INNODIR)/fpc.iss
FPCISSSUBST=-d BUILDDIR=$(subst /,$(PATHSEP),$(INNODIR))
ifdef NODOCS
FPCISSSUBST+=-d DisableDocs=;
endif
innocheck:
ifndef NODOCS
ifeq ($(wildcard doc-pdf.zip),)
@$(ECHO) "No documentation available. Please copy the file doc-pdf.zip to this directory."
@exit 1
endif
endif
ifeq ($(wildcard libgdb/win32/libgdb.a),)
@$(ECHO) "Libgdb not available. Please get and unzip libgdb-<version>.i386-win32.zip in this directory."
@exit 1
endif
innobuild: innocheck build
$(DELTREE) $(INNODIR)
$(MKDIR) $(INNODIR)
ifndef NODOCS
unzip -d $(INNODIR) doc-pdf.zip
endif
$(MAKE) install INSTALL_PREFIX=$(INNODIR)
compiler/utils/fpcsubst -i install/fpc.ist -o $(INNODIR)/fpc.iss $(FPCISSSUBST)
$(INNOCMD_ISCC)
$(MOVE) $(INNODIR)/Output/setup.exe fpc-$(PACKAGE_VERSION).$(FULL_TARGET).exe
innoclean:
$(DELTREE) $(INNODIR)
inno: checkfpcdir innobuild innoclean