fpc/tests/units/Makefile.fpc
Jonas Maebe 252483ffd8 + support for running the testsuite in parallel. Note that only the "all"
target can be run in parallel, so "clean", "digest" and/or "dbdigest"
    have to be run in separate make invocations if you wish to use -j for
    running the testsuite

git-svn-id: trunk@21406 -
2012-05-28 09:14:56 +00:00

149 lines
3.3 KiB
Makefile

#
# 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
#############################
# RTL
#
DUMMYINSTALLDIR=$(BASEDIR)/tmp
INSTALLOPT=INSTALL_PREFIX=$(DUMMYINSTALLDIR) INSTALL_UNITDIR=$(BASEDIR)/$(COMPILER_TARGETDIR)
rtl-stamp.$(FULL_TARGET):
$(MAKE) -C ../../rtl all 'OPT=$(OPT) -n'
$(MAKE) -C ../../rtl install $(INSTALLOPT)
$(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):
$(TESTCOMPILER) -Fu$(BASEDIR)/$(COMPILER_TARGETDIR) $(FPCUNITDIR)/testutils
$(TESTCOMPILER) -Fu$(BASEDIR)/$(COMPILER_TARGETDIR) $(FPCUNITDIR)/fpcunit
$(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'
$(MAKE) -C ../../packages install $(INSTALLOPT)
$(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
#
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
TESTCOMPILER=$(FPC) $(TESTOPT)
erroru$(PPUEXT) : erroru.pp
$(TESTCOMPILER) erroru.pp
ptest$(PPUEXT) : ../test/cg/ptest.pp
$(TESTCOMPILER) ../test/cg/ptest.pp
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
clean : cleanrtl cleanall cleanfpcunit cleanpackages
distclean : clean distcleanrtl distcleanfpcunit distcleanpackages
clean_ctest :
-$(DEL) ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)/ctest.o