2
0

Makefile.fpc 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  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 win32err ptest
  9. [default]
  10. fpcdir=../..
  11. [rules]
  12. # Only 1.1 has Classes in the RTL
  13. ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
  14. FCL=fcl
  15. endif
  16. .PHONY: rtl $(FCL) extra all clean cleanrtlfcl clean_ctest
  17. #############################
  18. # RTL and FCL
  19. #
  20. DUMMYINSTALLDIR=$(BASEDIR)/tmp
  21. INSTALLOPT=INSTALL_PREFIX=$(DUMMYINSTALLDIR) INSTALL_UNITDIR=$(BASEDIR)
  22. ifndef USEUNITDIR
  23. rtl-stamp:
  24. $(MAKE) -C ../../rtl all "OPT=$(OPT) -n"
  25. $(MAKE) -C ../../rtl install $(INSTALLOPT)
  26. $(ECHO) Compiled > rtl-stamp
  27. ifdef FCL
  28. fcl-stamp:
  29. $(MAKE) -C ../../packages/base all "OPT=$(OPT) -n"
  30. $(MAKE) -C ../../fcl all "OPT=$(OPT) -n"
  31. $(MAKE) -C ../../fcl install $(INSTALLOPT)
  32. $(ECHO) Compiled > fcl-stamp
  33. endif
  34. cleanrtlfcl : cleanall
  35. # $(MAKE) -C ../../rtl clean
  36. # $(MAKE) -C ../../fcl clean
  37. $(DELTREE) $(DUMMYINSTALLDIR)
  38. -$(DEL) rtl-stamp fcl-stamp
  39. else
  40. rtl-stamp:
  41. # Just copying everything doesn't work, because then the Makefile will be overwritten
  42. -$(COPY) $(USEUNITDIR)/*$(PPUEXT) .
  43. -$(COPY) $(USEUNITDIR)/*$(OEXT) .
  44. -$(COPY) $(USEUNITDIR)/*$(ASMEXT) .
  45. -$(COPY) $(USEUNITDIR)/*_ppas$(BATCHEXT) .
  46. $(ECHO) Copied > rtl-stamp
  47. ifdef FCL
  48. fcl-stamp: rtl-stamp
  49. $(ECHO) Copied > fcl-stamp
  50. endif
  51. cleanrtlfcl :
  52. -$(DEL) *$(PPUEXT)
  53. -$(DEL) *$(OEXT)
  54. -$(DEL) *$(ASMEXT)
  55. -$(DEL) *_ppas$(BATCHEXT)
  56. -$(DEL) rtl-stamp fcl-stamp
  57. endif
  58. rtl : rtl-stamp
  59. ifdef FCL
  60. fcl : fcl-stamp
  61. endif
  62. #############################
  63. # Extra units
  64. #
  65. TESTOPT=-n -FE. -Fu. -T$(OS_TARGET) $(OPT)
  66. ifneq ($(BINUTILSPREFIX),)
  67. override TESTOPT+=-XP$(BINUTILSPREFIX) -Xc
  68. endif
  69. TESTCOMPILER=$(FPC) $(TESTOPT)
  70. erroru$(PPUEXT) : erroru.pp
  71. $(TESTCOMPILER) erroru.pp
  72. ptest$(PPUEXT) : ../test/cg/ptest.pp
  73. $(TESTCOMPILER) ../test/cg/ptest.pp
  74. ifeq ($(OS_TARGET),win32)
  75. win32err$(PPUEXT) : win32err.pp
  76. $(TESTCOMPILER) win32err.pp
  77. endif
  78. ifdef CCOMPILER
  79. ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)/ctest.o : ../test/cg/obj/ctest.c
  80. $(CCOMPILER) -c -o ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)/ctest.o ../test/cg/obj/ctest.c
  81. endif
  82. extra : erroru$(PPUEXT) ptest$(PPUEXT) ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)/ctest.o
  83. ifeq ($(OS_TARGET),win32)
  84. extra : win32err$(PPUEXT)
  85. endif
  86. #############################
  87. # Main rules
  88. #
  89. all : rtl $(FCL) extra
  90. clean : cleanrtlfcl fpc_clean
  91. clean_ctest :
  92. -$(DEL) ../test/cg/obj/$(OS_TARGET)/$(CPU_TARGET)/ctest.o