Makefile 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437
  1. #
  2. # Makefile generated by fpcmake v0.99.13 [2000/02/09]
  3. #
  4. defaultrule: all
  5. #####################################################################
  6. # Autodetect OS (Linux or Dos or Windows NT)
  7. # define inlinux when running under linux
  8. # define inWinNT when running under WinNT
  9. #####################################################################
  10. # We need only / in the path
  11. override PATH:=$(subst \,/,$(PATH))
  12. # Search for PWD and determine also if we are under linux
  13. PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH)))))
  14. ifeq ($(PWD),)
  15. PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH)))))
  16. ifeq ($(PWD),)
  17. nopwd:
  18. @echo You need the GNU utils package to use this Makefile!
  19. @echo Get ftp://ftp.freepascal.org/pub/fpc/dist/go32v2/utilgo32.zip
  20. @exit
  21. else
  22. inlinux=1
  23. endif
  24. else
  25. PWD:=$(firstword $(PWD))
  26. endif
  27. # Detect NT - NT sets OS to Windows_NT
  28. ifndef inlinux
  29. ifeq ($(OS),Windows_NT)
  30. inWinNT=1
  31. endif
  32. endif
  33. # Detect OS/2 - OS/2 has OS2_SHELL defined
  34. ifndef inlinux
  35. ifndef inWinNT
  36. ifdef OS2_SHELL
  37. inOS2=1
  38. endif
  39. endif
  40. endif
  41. # The extension of executables
  42. ifdef inlinux
  43. EXEEXT=
  44. else
  45. EXEEXT=.exe
  46. endif
  47. # The path which is searched separated by spaces
  48. ifdef inlinux
  49. SEARCHPATH=$(subst :, ,$(PATH))
  50. else
  51. SEARCHPATH=$(subst ;, ,$(PATH))
  52. endif
  53. # Base dir
  54. ifdef PWD
  55. BASEDIR:=$(shell $(PWD))
  56. else
  57. BASEDIR=.
  58. endif
  59. #####################################################################
  60. # FPC version/target Detection
  61. #####################################################################
  62. # What compiler to use ?
  63. ifndef FPC
  64. # Compatibility with old makefiles
  65. ifdef PP
  66. FPC=$(PP)
  67. else
  68. ifdef inOS2
  69. FPC=ppos2
  70. else
  71. FPC=ppc386
  72. endif
  73. endif
  74. endif
  75. override FPC:=$(subst $(EXEEXT),,$(FPC))
  76. override FPC:=$(subst \,/,$(FPC))$(EXEEXT)
  77. # Target OS
  78. ifndef OS_TARGET
  79. OS_TARGET:=$(shell $(FPC) -iTO)
  80. endif
  81. # Source OS
  82. ifndef OS_SOURCE
  83. OS_SOURCE:=$(shell $(FPC) -iSO)
  84. endif
  85. # Target CPU
  86. ifndef CPU_TARGET
  87. CPU_TARGET:=$(shell $(FPC) -iTP)
  88. endif
  89. # Source CPU
  90. ifndef CPU_SOURCE
  91. CPU_SOURCE:=$(shell $(FPC) -iSP)
  92. endif
  93. # FPC version
  94. ifndef FPC_VERSION
  95. FPC_VERSION:=$(shell $(FPC) -iV)
  96. endif
  97. export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
  98. #####################################################################
  99. # FPCDIR Setting
  100. #####################################################################
  101. # Test FPCDIR to look if the RTL dir exists
  102. ifdef FPCDIR
  103. override FPCDIR:=$(subst \,/,$(FPCDIR))
  104. ifeq ($(wildcard $(FPCDIR)/rtl),)
  105. ifeq ($(wildcard $(FPCDIR)/units),)
  106. override FPCDIR=wrong
  107. endif
  108. endif
  109. else
  110. override FPCDIR=wrong
  111. endif
  112. # Detect FPCDIR
  113. ifeq ($(FPCDIR),wrong)
  114. ifdef inlinux
  115. override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
  116. ifeq ($(wildcard $(FPCDIR)/units),)
  117. override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
  118. endif
  119. else
  120. override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
  121. override FPCDIR:=$(FPCDIR)/..
  122. ifeq ($(wildcard $(FPCDIR)/rtl),)
  123. ifeq ($(wildcard $(FPCDIR)/units),)
  124. override FPCDIR:=$(FPCDIR)/..
  125. ifeq ($(wildcard $(FPCDIR)/rtl),)
  126. ifeq ($(wildcard $(FPCDIR)/units),)
  127. override FPCDIR=c:/pp
  128. endif
  129. endif
  130. endif
  131. endif
  132. endif
  133. endif
  134. #####################################################################
  135. # User Settings
  136. #####################################################################
  137. # Targets
  138. override DIROBJECTS+=$(wildcard linux examples build)
  139. # Clean
  140. # Install
  141. ZIPTARGET=install
  142. # Defaults
  143. # Directories
  144. # Packages
  145. # Libraries
  146. #####################################################################
  147. # Default Directories
  148. #####################################################################
  149. # set the prefix directory where to install everything
  150. ifndef PREFIXINSTALLDIR
  151. ifdef inlinux
  152. PREFIXINSTALLDIR=/usr
  153. else
  154. PREFIXINSTALLDIR=/pp
  155. endif
  156. endif
  157. export PREFIXINSTALLDIR
  158. # Where to place the resulting zip files
  159. ifndef DESTZIPDIR
  160. DESTZIPDIR:=$(BASEDIR)
  161. endif
  162. export DESTZIPDIR
  163. #####################################################################
  164. # Redirection
  165. #####################################################################
  166. ifndef REDIRFILE
  167. REDIRFILE=log
  168. endif
  169. ifdef REDIR
  170. ifndef inlinux
  171. override FPC=redir -eo $(FPC)
  172. endif
  173. # set the verbosity to max
  174. override FPCOPT+=-va
  175. override REDIR:= >> $(REDIRFILE)
  176. endif
  177. #####################################################################
  178. # Standard rules
  179. #####################################################################
  180. all: $(addsuffix _all,$(OS_TARGET))
  181. debug: $(addsuffix _debug,$(OS_TARGET))
  182. test: $(addsuffix _test,$(OS_TARGET))
  183. smart: $(addsuffix _smart,$(OS_TARGET))
  184. shared: $(addsuffix _shared,$(OS_TARGET))
  185. showinstall: $(addsuffix _showinstall,$(OS_TARGET))
  186. install: $(addsuffix _install,$(OS_TARGET))
  187. sourceinstall: $(addsuffix _sourceinstall,$(OS_TARGET))
  188. clean: $(addsuffix _clean,$(DIROBJECTS))
  189. distclean: $(addsuffix _distclean,$(DIROBJECTS))
  190. cleanall: $(addsuffix _cleanall,$(DIROBJECTS))
  191. require: $(addsuffix _require,$(DIROBJECTS))
  192. .PHONY: all debug test smart shared showinstall install sourceinstall clean distclean cleanall require
  193. #####################################################################
  194. # Directories
  195. #####################################################################
  196. OBJECTDIRLINUX=1
  197. OBJECTDIREXAMPLES=1
  198. OBJECTDIRBUILD=1
  199. # Dir linux
  200. ifdef OBJECTDIRLINUX
  201. .PHONY: linux_all linux_debug linux_examples linux_test linux_smart linux_shared linux_showinstall linux_install linux_sourceinstall linux_zipinstall linux_zipsourceinstall linux_clean linux_distclean linux_cleanall linux_require linux_info
  202. linux_all:
  203. $(MAKE) -C linux all
  204. linux_debug:
  205. $(MAKE) -C linux debug
  206. linux_examples:
  207. $(MAKE) -C linux examples
  208. linux_test:
  209. $(MAKE) -C linux test
  210. linux_smart:
  211. $(MAKE) -C linux smart
  212. linux_shared:
  213. $(MAKE) -C linux shared
  214. linux_showinstall:
  215. $(MAKE) -C linux showinstall
  216. linux_install:
  217. $(MAKE) -C linux install
  218. linux_sourceinstall:
  219. $(MAKE) -C linux sourceinstall
  220. linux_zipinstall:
  221. $(MAKE) -C linux zipinstall
  222. linux_zipsourceinstall:
  223. $(MAKE) -C linux zipsourceinstall
  224. linux_clean:
  225. $(MAKE) -C linux clean
  226. linux_distclean:
  227. $(MAKE) -C linux distclean
  228. linux_cleanall:
  229. $(MAKE) -C linux cleanall
  230. linux_require:
  231. $(MAKE) -C linux require
  232. linux_info:
  233. $(MAKE) -C linux info
  234. endif
  235. # Dir examples
  236. ifdef OBJECTDIREXAMPLES
  237. .PHONY: examples_all examples_debug examples_examples examples_test examples_smart examples_shared examples_showinstall examples_install examples_sourceinstall examples_zipinstall examples_zipsourceinstall examples_clean examples_distclean examples_cleanall examples_require examples_info
  238. examples_all:
  239. $(MAKE) -C examples all
  240. examples_debug:
  241. $(MAKE) -C examples debug
  242. examples_examples:
  243. $(MAKE) -C examples examples
  244. examples_test:
  245. $(MAKE) -C examples test
  246. examples_smart:
  247. $(MAKE) -C examples smart
  248. examples_shared:
  249. $(MAKE) -C examples shared
  250. examples_showinstall:
  251. $(MAKE) -C examples showinstall
  252. examples_install:
  253. $(MAKE) -C examples install
  254. examples_sourceinstall:
  255. $(MAKE) -C examples sourceinstall
  256. examples_zipinstall:
  257. $(MAKE) -C examples zipinstall
  258. examples_zipsourceinstall:
  259. $(MAKE) -C examples zipsourceinstall
  260. examples_clean:
  261. $(MAKE) -C examples clean
  262. examples_distclean:
  263. $(MAKE) -C examples distclean
  264. examples_cleanall:
  265. $(MAKE) -C examples cleanall
  266. examples_require:
  267. $(MAKE) -C examples require
  268. examples_info:
  269. $(MAKE) -C examples info
  270. endif
  271. # Dir build
  272. ifdef OBJECTDIRBUILD
  273. .PHONY: build_all build_debug build_examples build_test build_smart build_shared build_showinstall build_install build_sourceinstall build_zipinstall build_zipsourceinstall build_clean build_distclean build_cleanall build_require build_info
  274. build_all:
  275. $(MAKE) -C build all
  276. build_debug:
  277. $(MAKE) -C build debug
  278. build_examples:
  279. $(MAKE) -C build examples
  280. build_test:
  281. $(MAKE) -C build test
  282. build_smart:
  283. $(MAKE) -C build smart
  284. build_shared:
  285. $(MAKE) -C build shared
  286. build_showinstall:
  287. $(MAKE) -C build showinstall
  288. build_install:
  289. $(MAKE) -C build install
  290. build_sourceinstall:
  291. $(MAKE) -C build sourceinstall
  292. build_zipinstall:
  293. $(MAKE) -C build zipinstall
  294. build_zipsourceinstall:
  295. $(MAKE) -C build zipsourceinstall
  296. build_clean:
  297. $(MAKE) -C build clean
  298. build_distclean:
  299. $(MAKE) -C build distclean
  300. build_cleanall:
  301. $(MAKE) -C build cleanall
  302. build_require:
  303. $(MAKE) -C build require
  304. build_info:
  305. $(MAKE) -C build info
  306. endif
  307. #####################################################################
  308. # Local Makefile
  309. #####################################################################
  310. ifneq ($(wildcard fpcmake.loc),)
  311. include fpcmake.loc
  312. endif
  313. #####################################################################
  314. # Users rules
  315. #####################################################################
  316. .PHONY: examples
  317. examples:
  318. $(MAKE) examples_all