Makefile.fpc 3.3 KB

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