Makefile.fpc 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. #
  2. # Makefile.fpc for Free Pascal units, which participates in the tests
  3. #
  4. [target]
  5. [install]
  6. fpcpackage=y
  7. [clean]
  8. units = erroru popuperr ptest
  9. [compiler]
  10. targetdir=$(TARGETSUFFIX)
  11. [default]
  12. fpcdir=../..
  13. [rules]
  14. .NOTPARALLEL:
  15. .PHONY: rtl extra fpcunit packages all clean distclean clean_ctest
  16. .PHONY: cleanrtl distcleanrtl
  17. .PHONY: cleanfpcunit distcleanfpcunit
  18. .PHONY: cleanpackages distcleanpackages
  19. ifdef CROSSCOMPILE
  20. override CROSSOPT:=$(OPT)
  21. override OPT=
  22. endif
  23. #############################
  24. # RTL
  25. #
  26. DUMMYINSTALLDIR=$(BASEDIR)/tmp
  27. INSTALLOPT=INSTALL_PREFIX=$(DUMMYINSTALLDIR) INSTALL_UNITDIR=$(BASEDIR)/$(COMPILER_TARGETDIR)
  28. rtl-stamp.$(FULL_TARGET):
  29. $(MAKE) -C ../../rtl all 'OPT=$(OPT) -n' 'CROSSOPT=$(CROSSOPT)'
  30. $(MAKE) -C ../../rtl install $(INSTALLOPT) OPT= CROSSOPT=
  31. $(ECHO) Compiled > rtl-stamp.$(FULL_TARGET)
  32. cleanrtl:
  33. $(DELTREE) $(COMPILER_TARGETDIR)
  34. $(DELTREE) $(DUMMYINSTALLDIR)
  35. -$(DEL) rtl-stamp.$(FULL_TARGET)
  36. distcleanrtl: cleanrtl
  37. rtl : rtl-stamp.$(FULL_TARGET)
  38. #############################
  39. # FPCUnit
  40. #
  41. DUMMYINSTALLDIR=$(BASEDIR)/tmp
  42. INSTALLOPT=INSTALL_PREFIX=$(DUMMYINSTALLDIR) INSTALL_UNITDIR=$(BASEDIR)/$(COMPILER_TARGETDIR)
  43. FPCUNITDIR=../../packages/fcl-fpcunit/src
  44. fpcunit-stamp.$(FULL_TARGET):
  45. $(TESTCOMPILER) -Fu$(BASEDIR)/$(COMPILER_TARGETDIR) $(FPCUNITDIR)/testutils
  46. $(TESTCOMPILER) -Fu$(BASEDIR)/$(COMPILER_TARGETDIR) $(FPCUNITDIR)/fpcunit
  47. $(ECHO) Compiled > fpcunit-stamp.$(FULL_TARGET)
  48. cleanfpcunit:
  49. $(DELTREE) $(COMPILER_TARGETDIR)
  50. $(DELTREE) $(DUMMYINSTALLDIR)
  51. -$(DEL) fpcunit-stamp.$(FULL_TARGET)
  52. distcleanfpcunit: cleanfpcunit
  53. $(MAKE) -C $(FPCUNITDIR)/.. clean
  54. fpcunit : fpcunit-stamp.$(FULL_TARGET)
  55. #############################
  56. # Packages
  57. #
  58. DUMMYINSTALLDIR=$(BASEDIR)/tmp
  59. INSTALLOPT=INSTALL_PREFIX=$(DUMMYINSTALLDIR) INSTALL_UNITDIR=$(BASEDIR)/$(COMPILER_TARGETDIR)
  60. PACKAGESDIR=../../packages
  61. packages-stamp.$(FULL_TARGET):
  62. $(MAKE) -C ../../packages all 'OPT=$(OPT) -n' 'CROSSOPT=$(CROSSOPT)'
  63. $(MAKE) -C ../../packages install $(INSTALLOPT) OPT= CROSSOPT=
  64. $(ECHO) Compiled > packages-stamp.$(FULL_TARGET)
  65. cleanpackages:
  66. $(DELTREE) $(COMPILER_TARGETDIR)
  67. $(DELTREE) $(DUMMYINSTALLDIR)
  68. -$(DEL) packages-stamp.$(FULL_TARGET)
  69. distcleanpackages: cleanpackages
  70. packages : packages-stamp.$(FULL_TARGET)
  71. #############################
  72. # Extra units
  73. #
  74. TESTOPT=-n -FE$(COMPILER_TARGETDIR) -T$(OS_TARGET) $(OPT)
  75. ifeq ($(CPU_TARGET),armeb)
  76. override TESTOPT+=-Cb
  77. endif
  78. ifneq ($(BINUTILSPREFIX),)
  79. override TESTOPT+=-XP$(BINUTILSPREFIX) -Xc
  80. endif
  81. TESTCOMPILER=$(FPC) $(TESTOPT)
  82. erroru$(PPUEXT) : erroru.pp
  83. $(TESTCOMPILER) erroru.pp
  84. ptest$(PPUEXT) : ../test/cg/ptest.pp
  85. $(TESTCOMPILER) ../test/cg/ptest.pp
  86. popuperr$(PPUEXT) : popuperr.pp
  87. $(TESTCOMPILER) popuperr.pp
  88. ifdef CCOMPILER
  89. ctest: ../test/cg/obj/ctest.c
  90. $(CCOMPILER) -c -o ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)/ctest.o ../test/cg/obj/ctest.c
  91. else
  92. ctest:
  93. @$(ECHO) "No C compiler found"
  94. @exit 1
  95. endif
  96. extra : erroru$(PPUEXT) ptest$(PPUEXT) popuperr$(PPUEXT)
  97. #############################
  98. # Main rules
  99. #
  100. ifdef QUICKTEST
  101. all : rtl fpcunit extra
  102. else
  103. all : rtl fpcunit packages extra
  104. endif
  105. STAMPFILES=$(wildcard *stamp*)
  106. TEMPDIRS=$(wildcard $(MAKEFILETARGETS) tmp)
  107. clean : cleanrtl cleanall cleanfpcunit cleanpackages
  108. distclean : clean distcleanrtl distcleanfpcunit distcleanpackages
  109. -$(DELTREE) $(TEMPDIRS)
  110. -$(DEL) $(STAMPFILES)
  111. clean_ctest :
  112. -$(DEL) ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)/ctest.o