Makefile.fpc 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  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. #############################
  20. # RTL
  21. #
  22. DUMMYINSTALLDIR=$(BASEDIR)/tmp
  23. INSTALLOPT=INSTALL_PREFIX=$(DUMMYINSTALLDIR) INSTALL_UNITDIR=$(BASEDIR)/$(COMPILER_TARGETDIR)
  24. rtl-stamp.$(FULL_TARGET):
  25. $(MAKE) -C ../../rtl all 'OPT=$(OPT) -n'
  26. $(MAKE) -C ../../rtl install $(INSTALLOPT)
  27. $(ECHO) Compiled > rtl-stamp.$(FULL_TARGET)
  28. cleanrtl:
  29. $(DELTREE) $(COMPILER_TARGETDIR)
  30. $(DELTREE) $(DUMMYINSTALLDIR)
  31. -$(DEL) rtl-stamp.$(FULL_TARGET)
  32. distcleanrtl: cleanrtl
  33. rtl : rtl-stamp.$(FULL_TARGET)
  34. #############################
  35. # FPCUnit
  36. #
  37. DUMMYINSTALLDIR=$(BASEDIR)/tmp
  38. INSTALLOPT=INSTALL_PREFIX=$(DUMMYINSTALLDIR) INSTALL_UNITDIR=$(BASEDIR)/$(COMPILER_TARGETDIR)
  39. FPCUNITDIR=../../packages/fcl-fpcunit/src
  40. fpcunit-stamp.$(FULL_TARGET):
  41. $(TESTCOMPILER) -Fu$(BASEDIR)/$(COMPILER_TARGETDIR) $(FPCUNITDIR)/testutils
  42. $(TESTCOMPILER) -Fu$(BASEDIR)/$(COMPILER_TARGETDIR) $(FPCUNITDIR)/fpcunit
  43. $(ECHO) Compiled > fpcunit-stamp.$(FULL_TARGET)
  44. cleanfpcunit:
  45. $(DELTREE) $(COMPILER_TARGETDIR)
  46. $(DELTREE) $(DUMMYINSTALLDIR)
  47. -$(DEL) fpcunit-stamp.$(FULL_TARGET)
  48. distcleanfpcunit: cleanfpcunit
  49. $(MAKE) -C $(FPCUNITDIR)/.. clean
  50. fpcunit : fpcunit-stamp.$(FULL_TARGET)
  51. #############################
  52. # Packages
  53. #
  54. DUMMYINSTALLDIR=$(BASEDIR)/tmp
  55. INSTALLOPT=INSTALL_PREFIX=$(DUMMYINSTALLDIR) INSTALL_UNITDIR=$(BASEDIR)/$(COMPILER_TARGETDIR)
  56. PACKAGESDIR=../../packages
  57. packages-stamp.$(FULL_TARGET):
  58. $(MAKE) -C ../../packages all 'OPT=$(OPT) -n'
  59. $(MAKE) -C ../../packages install $(INSTALLOPT)
  60. $(ECHO) Compiled > packages-stamp.$(FULL_TARGET)
  61. cleanpackages:
  62. $(DELTREE) $(COMPILER_TARGETDIR)
  63. $(DELTREE) $(DUMMYINSTALLDIR)
  64. -$(DEL) packages-stamp.$(FULL_TARGET)
  65. distcleanpackages: cleanpackages
  66. packages : packages-stamp.$(FULL_TARGET)
  67. #############################
  68. # Extra units
  69. #
  70. TESTOPT=-n -FE$(COMPILER_TARGETDIR) -T$(OS_TARGET) $(OPT)
  71. ifeq ($(CPU_TARGET),armeb)
  72. override TESTOPT+=-Cb
  73. endif
  74. ifneq ($(BINUTILSPREFIX),)
  75. override TESTOPT+=-XP$(BINUTILSPREFIX) -Xc
  76. endif
  77. TESTCOMPILER=$(FPC) $(TESTOPT)
  78. erroru$(PPUEXT) : erroru.pp
  79. $(TESTCOMPILER) erroru.pp
  80. ptest$(PPUEXT) : ../test/cg/ptest.pp
  81. $(TESTCOMPILER) ../test/cg/ptest.pp
  82. popuperr$(PPUEXT) : popuperr.pp
  83. $(TESTCOMPILER) popuperr.pp
  84. ifdef CCOMPILER
  85. ctest: ../test/cg/obj/ctest.c
  86. $(CCOMPILER) -c -o ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)/ctest.o ../test/cg/obj/ctest.c
  87. else
  88. ctest:
  89. @$(ECHO) "No C compiler found"
  90. @exit 1
  91. endif
  92. extra : erroru$(PPUEXT) ptest$(PPUEXT) popuperr$(PPUEXT)
  93. #############################
  94. # Main rules
  95. #
  96. ifdef QUICKTEST
  97. all : rtl fpcunit extra
  98. else
  99. all : rtl fpcunit packages extra
  100. endif
  101. clean : cleanrtl cleanall cleanfpcunit cleanpackages
  102. distclean : clean distcleanrtl distcleanfpcunit distcleanpackages
  103. clean_ctest :
  104. -$(DEL) ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)/ctest.o