Makefile.fpc 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. #
  2. # Makefile.fpc for FP IDE
  3. #
  4. [target]
  5. # this will be undefined when the fake compiler is used
  6. dirs=compiler
  7. programs=fp
  8. rst=fpstrings
  9. [install]
  10. datadir=$(INSTALL_BASEDIR)/ide
  11. fpcpackage=y
  12. [compiler]
  13. options=-Sg
  14. targetdir=.
  15. unitdir=$(COMPILERDIR)
  16. [require]
  17. packages=fv gdbint
  18. [default]
  19. fpcdir=../..
  20. [prerules]
  21. ifeq ($(OS_TARGET),linux)
  22. ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
  23. override FPCOPT+=-dUNIX
  24. endif
  25. endif
  26. ifeq ($(OS_TARGET),freebsd)
  27. ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
  28. override FPCOPT+=-dUNIX
  29. endif
  30. endif
  31. # Compiler dir
  32. #ifdef FAKE
  33. #COMPILERDIR=../fake/compiler
  34. #else
  35. COMPILERDIR=compiler
  36. #endif
  37. # when including debugger include the gdbinterface
  38. ifndef GDBINT
  39. GDBINT=gdbint
  40. endif
  41. # Try to find GDB library
  42. ifeq ($(GDB),1)
  43. ifeq ($(DEBUG),1)
  44. # First test if a debug version exists in a specific dir
  45. ifneq ($(strip $(wildcard $(PACKAGESDIR)/$(GDBINT)/libgdb/d$(OS_TARGET)/libgdb.a)),)
  46. OSGDBDIR=d$(OS_TARGET)
  47. else
  48. OSGDBDIR=$(OS_TARGET)
  49. endif
  50. else
  51. OSGDBDIR=$(OS_TARGET)
  52. endif
  53. GDBLIBDIR+=$(wildcard $(addsuffix /$(GDBINT)/libgdb/$(OSGDBDIR),$(PACKAGESDIR)))
  54. GDBOBJDIR+=$(wildcard $(addsuffix /$(GDBINT)/libgdb/$(OSGDBDIR),$(PACKAGESDIR)))
  55. ifeq ($(OS_TARGET),go32v2)
  56. ifneq ($(DJDIR),)
  57. GDBLIBDIR+=$(DJDIR)/lib
  58. endif
  59. endif
  60. ifeq ($(strip $(wildcard $(addsuffix /libgdb.a,$(GDBLIBDIR)))),)
  61. override GDB=0
  62. GDBFOUND=0
  63. else
  64. override LIBGDB=$(firstword $(wildcard $(addsuffix /libgdb.a,$(GDBLIBDIR))))
  65. GDBFOUND=1
  66. endif
  67. endif
  68. ifeq ($(GDB),1)
  69. # The gdbint is already included due the gdbint package dependency
  70. override LIBDIR+=$(GDBLIBDIR)
  71. override OBJDIR+=$(GDBOBJDIR)
  72. else
  73. override UNITDIR+=../fake/gdb
  74. endif
  75. [rules]
  76. .PHONY: compilerunits compilerclean \
  77. fake fakegdb gdb full fullgdb \
  78. clean_compiler clean testgdb postgdbinfo
  79. clean: fpc_cleanall
  80. distclean: clean compilerclean
  81. fp$(EXEEXT): $(wildcard *.pas) $(wildcard *.inc)
  82. testgdb:
  83. ifneq ($(GDBFOUND),0)
  84. @$(ECHO) LibGDB found in $(LIBGDB)
  85. else
  86. @$(ECHO) LibGDB not found
  87. @$(ECHO) LIBGDB=$(LIBGDB)
  88. @$(ECHO) GDBLIBDIR=$(GDBLIBDIR)
  89. @$(ECHO) $(wildcard $(addsuffix /libgdb.a,$(GDBLIBDIR)))
  90. endif
  91. postgdbinfo:
  92. ifeq ($(GDBFOUND),0)
  93. @$(ECHO) LibGDB was not found, IDE has no Debugger support
  94. endif
  95. #
  96. # Compiler
  97. #
  98. compilerunits : $(COMPILERDIR)/$(FPCMADE)
  99. $(COMPILERDIR)/$(FPCMADE):
  100. $(MAKE) -C $(COMPILERDIR) all
  101. compilerclean :
  102. $(MAKE) -C $(COMPILERDIR) clean
  103. #
  104. # Default targets
  105. #
  106. all: compilerunits fpc_all
  107. gdb:
  108. $(MAKE) testgdb all GDB=1 postgdbinfo
  109. #
  110. # Fake targets
  111. #
  112. fakegdb:
  113. $(MAKE) testgdb all FAKE=1 GDB=1 postgdbinfo
  114. fake:
  115. $(MAKE) all FAKE=1
  116. #
  117. # Compatibility targets
  118. #
  119. full: all
  120. fullgdb: gdb
  121. # This is necessary because we don't have all units separate in the
  122. # units targets
  123. clean: cleanall
  124. #
  125. # Installation
  126. #
  127. ifndef UNIXINSTALLDIR
  128. override INSTALL_DATADIR=$(INSTALL_BINDIR)
  129. endif
  130. install: fpc_install
  131. $(MKDIR) $(INSTALL_DATADIR)
  132. $(MKDIR) $(INSTALL_DOCDIR)
  133. $(INSTALL) fp.ans $(wildcard *.pt) $(wildcard *.tdf) $(INSTALL_DATADIR)
  134. $(INSTALL) readme.ide $(INSTALL_DOCDIR)
  135. #
  136. # Misc
  137. #
  138. clean_compiler:
  139. $(MAKE) -C ../../compiler clean