Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
fpc-src / usr / share / fpcsrc / 3.2.0 / tests / tstunits / Makefile.fpc
Size: Mime:
#
#  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=
override BUILDFULLNATIVE=
endif

#############################
# RTL
#

DUMMYINSTALLDIR=$(BASEDIR)/tmp
INSTALLOPT=INSTALL_PREFIX=$(DUMMYINSTALLDIR) INSTALL_UNITDIR=$(BASEDIR)/$(COMPILER_TARGETDIR)

rtl-stamp.$(FULL_TARGET):
ifneq ($(inOS2),)
        $(MAKE) -C ../../rtl all "OPT=$(OPT) -n" "CROSSOPT=$(CROSSOPT)"
else
        $(MAKE) -C ../../rtl all 'OPT=$(OPT) -n' 'CROSSOPT=$(CROSSOPT)'
endif
        $(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=$(FPCDIR)/packages/fcl-fpcunit/src

fpcunit-stamp.$(FULL_TARGET):
ifneq ($(OS_TARGET),msdos)
ifneq ($(CPU_TARGET),avr)
ifneq ($(CPU_TARGET),jvm)
 	$(TESTCOMPILER) -Fu$(BASEDIR)/$(COMPILER_TARGETDIR) $(FPCUNITDIR)/testutils
        $(TESTCOMPILER) -Fu$(BASEDIR)/$(COMPILER_TARGETDIR) $(FPCUNITDIR)/fpcunit
endif
endif
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=$(FPCDIR)/packages

packages-stamp.$(FULL_TARGET):
ifneq ($(inOS2),)
        $(MAKE) -C ../../packages all "OPT=$(OPT) -n" "CROSSOPT=$(CROSSOPT)"
else
        $(MAKE) -C ../../packages all 'OPT=$(OPT) -n' 'CROSSOPT=$(CROSSOPT)'
endif
        $(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)


#####################################################################
# PPU testing targets
#####################################################################

PPULIST:=$(wildcard */*.ppu) $(wildcard units/*/*.ppu)
PPULOGLIST:=$(subst .ppu,.log-ppu,$(PPULIST))
RMPPULOGLIST:=$(subst .ppu,.rm-log-ppu,$(PPULIST))

.PHONY : ppulogs cleanppulogs testppudump $(RMPPULOGLIST)

ppulogs : $(PPULOGLIST)

vpath %.ppu $(ALLPPUDIRS)
vpath %.log-ppu $(ALLPPUDIRS)
vpath %.rm-log-ppu $(ALLPPUDIRS)

%.log-ppu : %.ppu ../../compiler/utils/ppudump$(EXEEXT)
	..$(PATHSEP)..$(PATHSEP)compiler$(PATHSEP)utils$(PATHSEP)ppudump -VA -M $< > $@

%.rm-log-ppu : %.ppu ../../compiler/utils/ppudump$(EXEEXT)
	-$(RMPROG) $<


../../compiler/utils/ppudump$(EXEEXT):
	$(MAKE) -C $(COMPILERDIR)/utils ppudump$(EXEEXT)

ppuinfo :
	echo PPU list is "$(PPULIST)"
	echo PPULOG list is "$(PPULOGLIST)"

cleanppulogs : $(RMPPULOGLIST)

testppudump :
        $(MAKE) cleanppulogs ppulogs

#############################
# 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)
	-$(DELTREE) $(BASEDIR)/units
	-$(DEL) $(STAMPFILES)

clean_ctest :
        -$(DEL) ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)/ctest.o