Makefile 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. #
  2. # $Id$
  3. # Copyright (c) 1999 by the Free Pascal Development Team
  4. #
  5. # Makefile for Free Pascal Source Tree
  6. #
  7. # See the file COPYING.FPC, included in this distribution,
  8. # for details about the copyright.
  9. #
  10. # This program is distributed in the hope that it will be useful,
  11. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  13. #
  14. #####################################################################
  15. # Config
  16. #####################################################################
  17. MODULES=compiler rtl api fv gdb ide
  18. ifndef APIDIR
  19. APIDIR=api
  20. endif
  21. ifndef FVDIR
  22. FVDIR=fv
  23. endif
  24. ifndef GDBDIR
  25. GDBDIR=gdbint
  26. endif
  27. ifndef FPINSTDIR
  28. FPINSTDIR=fpinst
  29. endif
  30. ifndef IDEDIR
  31. IDEDIR=ide/text
  32. endif
  33. #####################################################################
  34. # Defaults
  35. #####################################################################
  36. RELEASE=1
  37. NODEFAULTRULES=1
  38. #####################################################################
  39. # Include default makefile
  40. #####################################################################
  41. ifndef FPCMAKE
  42. ifdef FPCDIR
  43. FPCMAKE=$(FPCDIR)/makefile.fpc
  44. else
  45. FPCMAKE=makefile.fpc
  46. endif
  47. endif
  48. override FPCMAKE:=$(strip $(wildcard $(FPCMAKE)))
  49. ifeq ($(FPCMAKE),)
  50. nofpcmake:
  51. @echo
  52. @echo makefile.fpc not found!
  53. @echo Check the FPCMAKE and FPCDIR environment variables.
  54. @echo
  55. @exit
  56. else
  57. include $(FPCMAKE)
  58. endif
  59. #####################################################################
  60. # Dependencies
  61. #####################################################################
  62. .PHONY: all clean install staticinstall sharedinstall \
  63. $(addsuffix _all,$(MODULES)) \
  64. $(addsuffix _clean,$(MODULES)) \
  65. $(addsuffix _install,$(MODULES)) \
  66. $(addsuffix _staticinstall,$(MODULES)) \
  67. $(addsuffix _sharedinstall,$(MODULES))
  68. info:
  69. @echo
  70. @echo Please use one of the following targets:
  71. @echo
  72. @echo $(MODULES)
  73. @echo
  74. @echo All targets can follow after a _ with:
  75. @echo all,clean,install,staticinstall,sharedinstall
  76. @echo
  77. @echo example: make api_staticinstall
  78. @exit
  79. #######################################
  80. # Compiler
  81. #######################################
  82. compiler_all:
  83. $(MAKE) -C compiler cycle
  84. compiler_clean:
  85. $(MAKE) -C compiler clean
  86. compiler_install:
  87. $(MAKE) -C compiler install
  88. compiler_staticinstall:
  89. compiler_sharedinstall:
  90. #######################################
  91. # RTL
  92. #######################################
  93. RTLDIR=rtl/$(OS_TARGET)
  94. rtl_all:
  95. $(MAKE) -C $(RTLDIR) all
  96. rtl_clean:
  97. $(MAKE) -C $(RTLDIR) clean
  98. rtl_install:
  99. $(MAKE) -C $(RTLDIR) install
  100. rtl_staticinstall:
  101. $(MAKE) -C $(RTLDIR) staticlibinstall
  102. rtl_sharedinstall:
  103. $(MAKE) -C $(RTLDIR) sharedlibinstall
  104. #######################################
  105. # API
  106. #######################################
  107. api_all: rtl_all
  108. $(MAKE) -C $(APIDIR) all
  109. api_clean:
  110. $(MAKE) -C $(APIDIR) clean
  111. api_install:
  112. $(MAKE) -C $(APIDIR) install
  113. api_staticinstall:
  114. $(MAKE) -C $(APIDIR) staticlibinstall
  115. api_sharedinstall:
  116. $(MAKE) -C $(APIDIR) sharedlibinstall
  117. #######################################
  118. # FV
  119. #######################################
  120. fv_all: rtl_all api_all
  121. $(MAKE) -C $(FVDIR) all
  122. fv_clean:
  123. $(MAKE) -C $(FVDIR) clean
  124. fv_install:
  125. $(MAKE) -C $(FVDIR) install
  126. fv_staticinstall:
  127. $(MAKE) -C $(FVDIR) staticlibinstall
  128. fv_sharedinstall:
  129. $(MAKE) -C $(FVDIR) sharedlibinstall
  130. #######################################
  131. # GDB
  132. #######################################
  133. gdb_all: rtl_all
  134. $(MAKE) -C $(GDBDIR) all
  135. gdb_clean:
  136. $(MAKE) -C $(GDBDIR) clean
  137. gdb_install:
  138. $(MAKE) -C $(GDBDIR) install
  139. gdb_staticinstall:
  140. $(MAKE) -C $(GDBDIR) staticlibinstall
  141. gdb_sharedinstall:
  142. $(MAKE) -C $(GDBDIR) sharedlibinstall
  143. #######################################
  144. # FPC fpinst
  145. #######################################
  146. fpinst_all: rtl_all api_all fv_all
  147. $(MAKE) -C $(FPINSTDIR) all
  148. fpinst_clean:
  149. $(MAKE) -C $(FPINSTDIR) clean
  150. fpinst_install:
  151. $(MAKE) -C $(FPINSTDIR) install
  152. fpinst_staticinstall:
  153. $(MAKE) -C $(FPINSTDIR) staticlibinstall
  154. fpinst_sharedinstall:
  155. $(MAKE) -C $(FPINSTDIR) sharedlibinstall
  156. #######################################
  157. # IDE
  158. #######################################
  159. ide_all: rtl_all api_all fv_all
  160. $(MAKE) -C $(IDEDIR) all
  161. ide_gdb: rtl_all api_all fv_all gdb_all
  162. $(MAKE) -C $(IDEDIR) gdb
  163. ide_full: rtl_all api_all fv_all
  164. $(MAKE) -C $(IDEDIR) full
  165. ide_fullgdb: rtl_all api_all fv_all gdb_all
  166. $(MAKE) -C $(IDEDIR) fullgdb
  167. ide_clean:
  168. $(MAKE) -C $(IDEDIR) clean
  169. ide_install:
  170. $(MAKE) -C $(IDEDIR) install
  171. ide_staticinstall:
  172. $(MAKE) -C $(IDEDIR) staticlibinstall
  173. ide_sharedinstall:
  174. $(MAKE) -C $(IDEDIR) sharedlibinstall
  175. #######################################
  176. # Common targets all,install,clean
  177. #######################################
  178. all: $(addsuffix _all,$(MODULES))
  179. clean: $(addsuffix _clean,$(MODULES))
  180. install: $(addsuffix _install,$(MODULES))
  181. staticinstall: $(addsuffix _staticinstall,$(MODULES))
  182. sharedinstall: $(addsuffix _sharedinstall,$(MODULES))
  183. #######################################
  184. # Packaging targets
  185. #######################################
  186. ifndef ZIPTARGET
  187. ZIPTARGET=install
  188. endif
  189. export ZIPTARGET
  190. export PACKAGEDIR=$(BASEDIR)
  191. idezips: clean
  192. $(MAKE) ide_all
  193. $(MAKE) -C $(IDEDIR) zipinstall ZIPNAME=ide_fake
  194. $(MAKE) ide_clean
  195. $(MAKE) ide_gdb
  196. $(MAKE) -C $(IDEDIR) zipinstall ZIPNAME=ide_gdb
  197. $(MAKE) ide_clean
  198. $(MAKE) ide_full
  199. $(MAKE) -C $(IDEDIR) zipinstall ZIPNAME=ide_comp
  200. $(MAKE) ide_clean
  201. $(MAKE) ide_fullgdb
  202. $(MAKE) -C $(IDEDIR) zipinstall ZIPNAME=ide_full
  203. fvzip: rtl_clean api_clean fv_clean
  204. $(MAKE) api_all
  205. $(MAKE) -C $(APIDIR) zipinstall ZIPNAME=fv-$(PACKAGESUFFIX)
  206. $(MAKE) fv_all
  207. $(MAKE) -C $(FVDIR) zipinstalladd ZIPNAME=fv-$(PACKAGESUFFIX)
  208. compilerzip: #compiler_clean rtl_clean
  209. $(MAKE) compiler_all
  210. $(MAKE) -C compiler zipinstall ZIPTARGET=quickinstall ZIPNAME=compiler-$(PACKAGESUFFIX)
  211. $(MAKE) -C $(RTLDIR) zipinstalladd ZIPNAME=compiler-$(PACKAGESUFFIX)
  212. #
  213. # $Log$
  214. # Revision 1.7 1999-03-09 01:35:46 peter
  215. # * makefile.fpc updates and defaultfpcdir var
  216. #
  217. #