Repository URL to install this package:
Version:
3.0.0 ▾
|
#
# Makefile.fpc for Free Pascal units, which participates in the tests
#
[target]
[install]
fpcpackage=y
[clean]
units = erroru popuperr ptest
[compiler]
targetdir=$(TARGETSUFFIX)
[default]
fpcdir=../..
[rules]
.NOTPARALLEL:
.PHONY: rtl extra fpcunit packages all clean distclean clean_ctest
.PHONY: cleanrtl distcleanrtl
.PHONY: cleanfpcunit distcleanfpcunit
.PHONY: cleanpackages distcleanpackages
TESTOPT:=-n -FE$(COMPILER_TARGETDIR) -T$(OS_TARGET) $(OPT)
ifeq ($(CPU_TARGET),armeb)
override TESTOPT+=-Cb
endif
ifneq ($(BINUTILSPREFIX),)
override TESTOPT+=-XP$(BINUTILSPREFIX) -Xc
endif
ifeq ($(OS_TARGET),msdos)
override TESTOPT+=-CX
endif
TESTCOMPILER:=$(FPC) $(TESTOPT)
ifdef CROSSCOMPILE
override CROSSOPT:=$(OPT)
override OPT=
endif
#############################
# RTL
#
DUMMYINSTALLDIR=$(BASEDIR)/tmp
INSTALLOPT=INSTALL_PREFIX=$(DUMMYINSTALLDIR) INSTALL_UNITDIR=$(BASEDIR)/$(COMPILER_TARGETDIR)
rtl-stamp.$(FULL_TARGET):
$(MAKE) -C ../../rtl all 'OPT=$(OPT) -n' 'CROSSOPT=$(CROSSOPT)'
$(MAKE) -C ../../rtl install $(INSTALLOPT) OPT= CROSSOPT=
$(ECHO) Compiled > rtl-stamp.$(FULL_TARGET)
cleanrtl:
$(DELTREE) $(COMPILER_TARGETDIR)
$(DELTREE) $(DUMMYINSTALLDIR)
-$(DEL) rtl-stamp.$(FULL_TARGET)
distcleanrtl: cleanrtl
rtl : rtl-stamp.$(FULL_TARGET)
#############################
# FPCUnit
#
DUMMYINSTALLDIR=$(BASEDIR)/tmp
INSTALLOPT=INSTALL_PREFIX=$(DUMMYINSTALLDIR) INSTALL_UNITDIR=$(BASEDIR)/$(COMPILER_TARGETDIR)
FPCUNITDIR=../../packages/fcl-fpcunit/src
fpcunit-stamp.$(FULL_TARGET):
ifneq ($(OS_TARGET),msdos)
$(TESTCOMPILER) -Fu$(BASEDIR)/$(COMPILER_TARGETDIR) $(FPCUNITDIR)/testutils
$(TESTCOMPILER) -Fu$(BASEDIR)/$(COMPILER_TARGETDIR) $(FPCUNITDIR)/fpcunit
endif
$(ECHO) Compiled > fpcunit-stamp.$(FULL_TARGET)
cleanfpcunit:
$(DELTREE) $(COMPILER_TARGETDIR)
$(DELTREE) $(DUMMYINSTALLDIR)
-$(DEL) fpcunit-stamp.$(FULL_TARGET)
distcleanfpcunit: cleanfpcunit
$(MAKE) -C $(FPCUNITDIR)/.. clean
fpcunit : fpcunit-stamp.$(FULL_TARGET)
#############################
# Packages
#
DUMMYINSTALLDIR=$(BASEDIR)/tmp
INSTALLOPT=INSTALL_PREFIX=$(DUMMYINSTALLDIR) INSTALL_UNITDIR=$(BASEDIR)/$(COMPILER_TARGETDIR)
PACKAGESDIR=../../packages
packages-stamp.$(FULL_TARGET):
$(MAKE) -C ../../packages all 'OPT=$(OPT) -n' 'CROSSOPT=$(CROSSOPT)'
$(MAKE) -C ../../packages install $(INSTALLOPT) OPT= CROSSOPT=
$(ECHO) Compiled > packages-stamp.$(FULL_TARGET)
cleanpackages:
$(DELTREE) $(COMPILER_TARGETDIR)
$(DELTREE) $(DUMMYINSTALLDIR)
-$(DEL) packages-stamp.$(FULL_TARGET)
distcleanpackages: cleanpackages
packages : packages-stamp.$(FULL_TARGET)
#############################
# Extra units
#
erroru$(PPUEXT) : erroru.pp
$(TESTCOMPILER) erroru.pp
ptest$(PPUEXT) : ../test/cg/ptest.pp
ifneq ($(OS_TARGET),msdos)
$(TESTCOMPILER) ../test/cg/ptest.pp
endif
popuperr$(PPUEXT) : popuperr.pp
$(TESTCOMPILER) popuperr.pp
ifdef CCOMPILER
ctest: ../test/cg/obj/ctest.c
$(CCOMPILER) -c -o ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)/ctest.o ../test/cg/obj/ctest.c
else
ctest:
@$(ECHO) "No C compiler found"
@exit 1
endif
extra : erroru$(PPUEXT) ptest$(PPUEXT) popuperr$(PPUEXT)
#############################
# Main rules
#
ifdef QUICKTEST
all : rtl fpcunit extra
else
all : rtl fpcunit packages extra
endif
STAMPFILES=$(wildcard *stamp*)
TEMPDIRS=$(wildcard $(MAKEFILETARGETS) tmp)
clean : cleanrtl cleanall cleanfpcunit cleanpackages
distclean : clean distcleanrtl distcleanfpcunit distcleanpackages
-$(DELTREE) $(TEMPDIRS)
-$(DEL) $(STAMPFILES)
clean_ctest :
-$(DEL) ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)/ctest.o