mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-06-03 19:38:29 +02:00

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 -
149 lines
3.3 KiB
Makefile
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
|