Makefile 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408
  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 RTLDIR
  19. RTLDIR=rtl
  20. endif
  21. ifndef FCLDIR
  22. FCLDIR=fcl
  23. endif
  24. ifndef GTKDIR
  25. GTKDIR=gtk
  26. endif
  27. ifndef APIDIR
  28. APIDIR=api
  29. endif
  30. ifndef FVDIR
  31. FVDIR=fv
  32. endif
  33. ifndef GDBDIR
  34. GDBDIR=gdbint
  35. endif
  36. ifndef FPINSTDIR
  37. FPINSTDIR=fpinst
  38. endif
  39. ifndef IDEDIR
  40. IDEDIR=ide
  41. endif
  42. #####################################################################
  43. # Defaults
  44. #####################################################################
  45. RELEASE=1
  46. #####################################################################
  47. # Main targets
  48. #####################################################################
  49. .PHONY: all clean install staticinstall sharedinstall \
  50. $(addsuffix _all,$(MODULES)) \
  51. $(addsuffix _clean,$(MODULES)) \
  52. $(addsuffix _install,$(MODULES)) \
  53. $(addsuffix _staticinstall,$(MODULES)) \
  54. $(addsuffix _sharedinstall,$(MODULES))
  55. info:
  56. @echo
  57. @echo Please use one of the following targets:
  58. @echo
  59. @echo $(MODULES)
  60. @echo
  61. @echo All targets can follow after a _ with:
  62. @echo all,clean,install,staticinstall,sharedinstall
  63. @echo
  64. @echo example: make api_staticinstall
  65. @exit
  66. all: $(addsuffix _all,$(MODULES))
  67. clean: $(addsuffix _clean,$(MODULES))
  68. install: $(addsuffix _install,$(MODULES))
  69. staticinstall: $(addsuffix _staticinstall,$(MODULES))
  70. sharedinstall: $(addsuffix _sharedinstall,$(MODULES))
  71. #####################################################################
  72. # Include default makefile
  73. #####################################################################
  74. # test if FPCMAKE is still valid
  75. ifndef FPCMAKE
  76. ifdef FPCDIR
  77. FPCMAKE=$(FPCDIR)/makefile.fpc
  78. endif
  79. endif
  80. ifdef FPCMAKE
  81. ifeq ($(strip $(wildcard $(FPCMAKE))),)
  82. FPCDIR=
  83. FPCMAKE=
  84. endif
  85. endif
  86. ifndef FPCDIR
  87. ifdef DEFAULTFPCDIR
  88. FPCDIR=$(DEFAULTFPCDIR)
  89. endif
  90. endif
  91. ifndef FPCMAKE
  92. ifdef FPCDIR
  93. FPCMAKE=$(FPCDIR)/makefile.fpc
  94. else
  95. FPCMAKE=makefile.fpc
  96. endif
  97. endif
  98. override FPCMAKE:=$(strip $(wildcard $(FPCMAKE)))
  99. ifndef FPCMAKE
  100. testfpcmake:
  101. @echo makefile.fpc not found!
  102. @echo Check the FPCMAKE and FPCDIR environment variables.
  103. @stopnow
  104. ifndef NODEFAULTALL
  105. all: testfpcmake
  106. endif
  107. install: testfpcmake
  108. clean: testfpcmake
  109. else
  110. include $(FPCMAKE)
  111. testfpcmake:
  112. endif
  113. #####################################################################
  114. # Dependencies
  115. #####################################################################
  116. #######################################
  117. # Compiler
  118. #######################################
  119. compiler_all:
  120. $(MAKE) -C compiler cycle
  121. compiler_clean:
  122. $(MAKE) -C compiler clean
  123. compiler_install:
  124. $(MAKE) -C compiler install
  125. compiler_installlib:
  126. $(MAKE) -C compiler installlib
  127. compiler_staticinstall:
  128. compiler_sharedinstall:
  129. #######################################
  130. # RTL
  131. #######################################
  132. override RTLDIR:=$(RTLDIR)/$(OS_TARGET)
  133. rtl_all:
  134. $(MAKE) -C $(RTLDIR) all
  135. rtl_clean:
  136. $(MAKE) -C $(RTLDIR) clean
  137. rtl_install:
  138. $(MAKE) -C $(RTLDIR) install
  139. rtl_staticinstall:
  140. $(MAKE) -C $(RTLDIR) staticlibinstall
  141. rtl_sharedinstall:
  142. $(MAKE) -C $(RTLDIR) sharedlibinstall
  143. #######################################
  144. # FCL
  145. #######################################
  146. override FCLDIR:=$(FCLDIR)/$(OS_TARGET)
  147. fcl_all: rtl_all
  148. $(MAKE) -C $(FCLDIR) all
  149. fcl_clean:
  150. $(MAKE) -C $(FCLDIR) clean
  151. fcl_install:
  152. $(MAKE) -C $(FCLDIR) install
  153. fcl_staticinstall:
  154. $(MAKE) -C $(FCLDIR) staticlibinstall
  155. fcl_sharedinstall:
  156. $(MAKE) -C $(FCLDIR) sharedlibinstall
  157. #######################################
  158. # GTK
  159. #######################################
  160. gtk_all: rtl_all
  161. $(MAKE) -C $(GTKDIR) all
  162. gtk_clean:
  163. $(MAKE) -C $(GTKDIR) clean
  164. gtk_install:
  165. $(MAKE) -C $(GTKDIR) install
  166. gtk_staticinstall:
  167. $(MAKE) -C $(GTKDIR) staticlibinstall
  168. gtk_sharedinstall:
  169. $(MAKE) -C $(GTKDIR) sharedlibinstall
  170. #######################################
  171. # API
  172. #######################################
  173. api_all: rtl_all
  174. $(MAKE) -C $(APIDIR) all
  175. api_clean:
  176. $(MAKE) -C $(APIDIR) clean
  177. api_install:
  178. $(MAKE) -C $(APIDIR) install
  179. api_staticinstall:
  180. $(MAKE) -C $(APIDIR) staticlibinstall
  181. api_sharedinstall:
  182. $(MAKE) -C $(APIDIR) sharedlibinstall
  183. #######################################
  184. # FV
  185. #######################################
  186. fv_all: rtl_all api_all
  187. $(MAKE) -C $(FVDIR) all
  188. fv_clean:
  189. $(MAKE) -C $(FVDIR) clean
  190. fv_install:
  191. $(MAKE) -C $(FVDIR) install
  192. fv_staticinstall:
  193. $(MAKE) -C $(FVDIR) staticlibinstall
  194. fv_sharedinstall:
  195. $(MAKE) -C $(FVDIR) sharedlibinstall
  196. #######################################
  197. # GDB
  198. #######################################
  199. gdb_all: rtl_all
  200. $(MAKE) -C $(GDBDIR) all
  201. gdb_clean:
  202. $(MAKE) -C $(GDBDIR) clean
  203. gdb_install:
  204. $(MAKE) -C $(GDBDIR) install
  205. gdb_staticinstall:
  206. $(MAKE) -C $(GDBDIR) staticlibinstall
  207. gdb_sharedinstall:
  208. $(MAKE) -C $(GDBDIR) sharedlibinstall
  209. #######################################
  210. # FPC fpinst
  211. #######################################
  212. fpinst_all: rtl_all api_all fv_all
  213. $(MAKE) -C $(FPINSTDIR) all
  214. fpinst_clean:
  215. $(MAKE) -C $(FPINSTDIR) clean
  216. fpinst_install:
  217. $(MAKE) -C $(FPINSTDIR) install
  218. fpinst_staticinstall:
  219. $(MAKE) -C $(FPINSTDIR) staticlibinstall
  220. fpinst_sharedinstall:
  221. $(MAKE) -C $(FPINSTDIR) sharedlibinstall
  222. #######################################
  223. # IDE
  224. #######################################
  225. ide_all: rtl_all api_all fv_all
  226. $(MAKE) -C $(IDEDIR) all
  227. ide_gdb: rtl_all api_all fv_all gdb_all
  228. $(MAKE) -C $(IDEDIR) gdb
  229. ide_full: rtl_all api_all fv_all
  230. $(MAKE) -C $(IDEDIR) full
  231. ide_fullgdb: rtl_all api_all fv_all gdb_all
  232. $(MAKE) -C $(IDEDIR) fullgdb
  233. ide_clean:
  234. $(MAKE) -C $(IDEDIR) clean
  235. ide_install:
  236. $(MAKE) -C $(IDEDIR) install
  237. ide_staticinstall:
  238. $(MAKE) -C $(IDEDIR) staticlibinstall
  239. ide_sharedinstall:
  240. $(MAKE) -C $(IDEDIR) sharedlibinstall
  241. #######################################
  242. # Packaging targets
  243. #######################################
  244. ifndef ZIPTARGET
  245. ZIPTARGET=install
  246. endif
  247. export ZIPTARGET
  248. export PACKAGEDIR=$(BASEDIR)
  249. idezips: clean
  250. $(MAKE) ide_all
  251. $(MAKE) -C $(IDEDIR)/text fpc_zipinstall ZIPNAME=ide-fake-$(PACKAGESUFFIX)
  252. $(MAKE) ide_clean
  253. $(MAKE) ide_gdb
  254. $(MAKE) -C $(IDEDIR)/text fpc_zipinstall ZIPNAME=ide-gdb-$(PACKAGESUFFIX)
  255. $(MAKE) ide_clean
  256. $(MAKE) ide_full
  257. $(MAKE) -C $(IDEDIR)/text fpc_zipinstall ZIPNAME=ide-comp-$(PACKAGESUFFIX)
  258. $(MAKE) ide_clean
  259. $(MAKE) ide_fullgdb
  260. $(MAKE) -C $(IDEDIR)/text fpc_zipinstall ZIPNAME=ide-full-$(PACKAGESUFFIX)
  261. fvzip: rtl_clean api_clean fv_clean
  262. $(MAKE) api_all
  263. $(MAKE) -C $(APIDIR) fpc_zipinstall ZIPNAME=fv-$(PACKAGESUFFIX)
  264. $(MAKE) fv_all
  265. $(MAKE) -C $(FVDIR) fpc_zipinstalladd ZIPNAME=fv-$(PACKAGESUFFIX)
  266. fclzip: rtl_clean fcl_clean
  267. $(MAKE) fcl_all
  268. $(MAKE) -C $(FCLDIR) fpc_zipinstall ZIPNAME=fcl-$(PACKAGESUFFIX)
  269. gtkzip: rtl_clean gtk_clean
  270. $(MAKE) gtk_all
  271. $(MAKE) -C $(GTKDIR) fpc_zipinstall ZIPNAME=gtk-$(PACKAGESUFFIX)
  272. compilerzip: compiler_clean rtl_clean
  273. $(MAKE) compiler_all
  274. $(MAKE) -C compiler fpc_zipinstall ZIPTARGET=quickinstall ZIPNAME=compiler-$(PACKAGESUFFIX)
  275. $(MAKE) -C $(RTLDIR) fpc_zipinstalladd ZIPNAME=compiler-$(PACKAGESUFFIX)
  276. #
  277. # $Log$
  278. # Revision 1.13 1999-04-19 12:53:02 peter
  279. # * fixed idezips target
  280. #
  281. # Revision 1.12 1999/04/16 20:15:41 michael
  282. # + Adapted ide Makefiles
  283. #
  284. # Revision 1.11 1999/04/08 10:16:16 peter
  285. # * zipinstall for linux with .tar.gz
  286. #
  287. # Revision 1.10 1999/04/01 22:16:02 peter
  288. # * renamed ide zips
  289. #
  290. # Revision 1.9 1999/03/18 11:19:31 peter
  291. # * fixed zipinstall
  292. #
  293. # Revision 1.8 1999/03/16 00:46:54 peter
  294. # * makefile.fpc targets start with fpc_
  295. # * small updates for install scripts
  296. #
  297. # Revision 1.7 1999/03/09 01:35:46 peter
  298. # * makefile.fpc updates and defaultfpcdir var
  299. #
  300. #