Makefile 33 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378
  1. #
  2. # Don't edit, this file is generated by FPCMake Version 1.1 [2003/06/27]
  3. #
  4. default: all
  5. MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx
  6. override PATH:=$(subst \,/,$(PATH))
  7. ifeq ($(findstring ;,$(PATH)),)
  8. inUnix=1
  9. SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
  10. else
  11. SEARCHPATH:=$(subst ;, ,$(PATH))
  12. endif
  13. PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
  14. ifeq ($(PWD),)
  15. PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
  16. ifeq ($(PWD),)
  17. $(error You need the GNU utils package to use this Makefile)
  18. else
  19. PWD:=$(firstword $(PWD))
  20. SRCEXEEXT=
  21. endif
  22. else
  23. PWD:=$(firstword $(PWD))
  24. SRCEXEEXT=.exe
  25. endif
  26. ifndef inUnix
  27. ifeq ($(OS),Windows_NT)
  28. inWinNT=1
  29. else
  30. ifdef OS2_SHELL
  31. inOS2=1
  32. endif
  33. endif
  34. else
  35. ifneq ($(findstring cygdrive,$(PATH)),)
  36. inCygWin=1
  37. endif
  38. endif
  39. ifeq ($(OS_TARGET),freebsd)
  40. BSDhier=1
  41. endif
  42. ifeq ($(OS_TARGET),netbsd)
  43. BSDhier=1
  44. endif
  45. ifeq ($(OS_TARGET),openbsd)
  46. BSDhier=1
  47. endif
  48. ifdef inUnix
  49. BATCHEXT=.sh
  50. else
  51. ifdef inOS2
  52. BATCHEXT=.cmd
  53. else
  54. BATCHEXT=.bat
  55. endif
  56. endif
  57. ifdef inUnix
  58. PATHSEP=/
  59. else
  60. PATHSEP:=$(subst /,\,/)
  61. ifdef inCygWin
  62. PATHSEP=/
  63. endif
  64. endif
  65. ifdef PWD
  66. BASEDIR:=$(subst \,/,$(shell $(PWD)))
  67. ifdef inCygWin
  68. ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
  69. BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
  70. BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
  71. BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
  72. endif
  73. endif
  74. else
  75. BASEDIR=.
  76. endif
  77. ifdef inOS2
  78. ifndef ECHO
  79. ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
  80. ifeq ($(ECHO),)
  81. ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
  82. ifeq ($(ECHO),)
  83. ECHO=echo
  84. else
  85. ECHO:=$(firstword $(ECHO))
  86. endif
  87. else
  88. ECHO:=$(firstword $(ECHO))
  89. endif
  90. endif
  91. export ECHO
  92. endif
  93. override OS_TARGET_DEFAULT=freebsd
  94. override DEFAULT_FPCDIR=../..
  95. ifndef FPC
  96. ifdef PP
  97. FPC=$(PP)
  98. endif
  99. endif
  100. ifndef FPC
  101. FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
  102. ifneq ($(FPCPROG),)
  103. FPCPROG:=$(firstword $(FPCPROG))
  104. FPC:=$(shell $(FPCPROG) -PB)
  105. ifneq ($(findstring Error,$(FPC)),)
  106. override FPC=ppc386
  107. endif
  108. else
  109. override FPC=ppc386
  110. endif
  111. endif
  112. override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
  113. override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
  114. ifndef FPC_VERSION
  115. FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
  116. FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
  117. endif
  118. export FPC FPC_VERSION FPC_COMPILERINFO
  119. unexport CHECKDEPEND ALLDEPENDENCIES
  120. ifndef CPU_TARGET
  121. ifdef CPU_TARGET_DEFAULT
  122. CPU_TARGET=$(CPU_TARGET_DEFAULT)
  123. endif
  124. endif
  125. ifndef OS_TARGET
  126. ifdef OS_TARGET_DEFAULT
  127. OS_TARGET=$(OS_TARGET_DEFAULT)
  128. endif
  129. endif
  130. ifneq ($(words $(FPC_COMPILERINFO)),5)
  131. FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
  132. FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
  133. FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
  134. FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
  135. endif
  136. ifndef CPU_SOURCE
  137. CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
  138. endif
  139. ifndef CPU_TARGET
  140. CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
  141. endif
  142. ifndef OS_SOURCE
  143. OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
  144. endif
  145. ifndef OS_TARGET
  146. OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
  147. endif
  148. FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
  149. FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
  150. ifneq ($(FULL_TARGET),$(FULL_SOURCE))
  151. CROSSCOMPILE=1
  152. endif
  153. ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
  154. ifeq ($(findstring $(OS_TARGET),$(MAKEFILETARGETS)),)
  155. $(error The Makefile doesn't support target $(OS_TARGET), please run fpcmake first)
  156. endif
  157. endif
  158. export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE CROSSCOMPILE
  159. ifdef FPCDIR
  160. override FPCDIR:=$(subst \,/,$(FPCDIR))
  161. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  162. override FPCDIR=wrong
  163. endif
  164. else
  165. override FPCDIR=wrong
  166. endif
  167. ifdef DEFAULT_FPCDIR
  168. ifeq ($(FPCDIR),wrong)
  169. override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
  170. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  171. override FPCDIR=wrong
  172. endif
  173. endif
  174. endif
  175. ifeq ($(FPCDIR),wrong)
  176. ifdef inUnix
  177. override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
  178. ifeq ($(wildcard $(FPCDIR)/units),)
  179. override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
  180. endif
  181. else
  182. override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
  183. override FPCDIR:=$(FPCDIR)/..
  184. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  185. override FPCDIR:=$(FPCDIR)/..
  186. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  187. override FPCDIR=c:/pp
  188. endif
  189. endif
  190. endif
  191. endif
  192. ifndef CROSSDIR
  193. CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
  194. endif
  195. ifndef CROSSTARGETDIR
  196. CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
  197. endif
  198. ifdef CROSSCOMPILE
  199. UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
  200. ifeq ($(UNITSDIR),)
  201. UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
  202. endif
  203. else
  204. UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
  205. endif
  206. PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
  207. override PACKAGE_NAME=rtl
  208. RTL=..
  209. INC=$(RTL)/inc
  210. PROCINC=$(RTL)/$(CPU_TARGET)
  211. OSPROCINC=$(RTL)/freebsd/$(CPU_TARGET)
  212. BSDINC=$(RTL)/bsd
  213. BSDPROCINC=$(BSDINC)/$(CPU_TARGET)
  214. UNIXINC=$(RTL)/unix
  215. UNITPREFIX=rtl
  216. ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
  217. SYSTEMUNIT=system
  218. PRT0=prt0
  219. override FPCOPT+=-dNOMOUSE
  220. loaders+=gprt0
  221. else
  222. SYSTEMUNIT=sysbsd
  223. override FPCOPT+=-dUNIX -dNOMOUSE
  224. PRT0=prt0_10
  225. endif
  226. ifdef RELEASE
  227. override FPCOPT+=-Ur
  228. endif
  229. OBJPASDIR=$(RTL)/objpas
  230. GRAPHDIR=$(INC)/graph
  231. ifndef USELIBGGI
  232. USELIBGGI=NO
  233. endif
  234. override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings syscall sysctl baseunix unixutil unix rtlconst initc dos dl termio objects printer sysutils typinfo systhrds types classes math varutils cpu mmx charset ucomplex crt getopts heaptrc lineinfo errors sockets gpm ipc terminfo video mouse keyboard console serial variants sysctl dateutils sysconst cthreads
  235. override TARGET_LOADERS+=prt0 cprt0 gprt0
  236. override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst
  237. override INSTALL_FPCPACKAGE=y y
  238. override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
  239. override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
  240. override COMPILER_TARGETDIR+=.
  241. ifdef REQUIRE_UNITSDIR
  242. override UNITSDIR+=$(REQUIRE_UNITSDIR)
  243. endif
  244. ifdef REQUIRE_PACKAGESDIR
  245. override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
  246. endif
  247. ifdef ZIPINSTALL
  248. ifeq ($(OS_TARGET),linux)
  249. UNIXINSTALLDIR=1
  250. endif
  251. ifeq ($(OS_TARGET),freebsd)
  252. UNIXINSTALLDIR=1
  253. endif
  254. ifeq ($(OS_TARGET),netbsd)
  255. UNIXINSTALLDIR=1
  256. endif
  257. ifeq ($(OS_TARGET),openbsd)
  258. UNIXINSTALLDIR=1
  259. endif
  260. ifeq ($(OS_TARGET),sunos)
  261. UNIXINSTALLDIR=1
  262. endif
  263. ifeq ($(OS_TARGET),qnx)
  264. UNIXINSTALLDIR=1
  265. endif
  266. else
  267. ifeq ($(OS_SOURCE),linux)
  268. UNIXINSTALLDIR=1
  269. endif
  270. ifeq ($(OS_SOURCE),freebsd)
  271. UNIXINSTALLDIR=1
  272. endif
  273. ifeq ($(OS_SOURCE),netbsd)
  274. UNIXINSTALLDIR=1
  275. endif
  276. ifeq ($(OS_SOURCE),openbsd)
  277. UNIXINSTALLDIR=1
  278. endif
  279. ifeq ($(OS_TARGET),sunos)
  280. UNIXINSTALLDIR=1
  281. endif
  282. ifeq ($(OS_TARGET),qnx)
  283. UNIXINSTALLDIR=1
  284. endif
  285. endif
  286. ifndef INSTALL_PREFIX
  287. ifdef PREFIX
  288. INSTALL_PREFIX=$(PREFIX)
  289. endif
  290. endif
  291. ifndef INSTALL_PREFIX
  292. ifdef UNIXINSTALLDIR
  293. INSTALL_PREFIX=/usr/local
  294. else
  295. ifdef INSTALL_FPCPACKAGE
  296. INSTALL_BASEDIR:=/pp
  297. else
  298. INSTALL_BASEDIR:=/$(PACKAGE_NAME)
  299. endif
  300. endif
  301. endif
  302. export INSTALL_PREFIX
  303. ifdef INSTALL_FPCSUBDIR
  304. export INSTALL_FPCSUBDIR
  305. endif
  306. ifndef DIST_DESTDIR
  307. DIST_DESTDIR:=$(BASEDIR)
  308. endif
  309. export DIST_DESTDIR
  310. ifndef INSTALL_BASEDIR
  311. ifdef UNIXINSTALLDIR
  312. ifdef INSTALL_FPCPACKAGE
  313. INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
  314. else
  315. INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
  316. endif
  317. else
  318. INSTALL_BASEDIR:=$(INSTALL_PREFIX)
  319. endif
  320. endif
  321. ifndef INSTALL_BINDIR
  322. ifdef UNIXINSTALLDIR
  323. INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
  324. else
  325. INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
  326. ifdef INSTALL_FPCPACKAGE
  327. INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
  328. endif
  329. endif
  330. endif
  331. ifndef INSTALL_UNITDIR
  332. ifdef CROSSCOMPILE
  333. INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
  334. else
  335. INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
  336. endif
  337. ifdef INSTALL_FPCPACKAGE
  338. ifdef PACKAGE_NAME
  339. INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
  340. endif
  341. endif
  342. endif
  343. ifndef INSTALL_LIBDIR
  344. ifdef UNIXINSTALLDIR
  345. INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
  346. else
  347. INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
  348. endif
  349. endif
  350. ifndef INSTALL_SOURCEDIR
  351. ifdef UNIXINSTALLDIR
  352. ifdef BSDhier
  353. SRCPREFIXDIR=share/src
  354. else
  355. SRCPREFIXDIR=src
  356. endif
  357. ifdef INSTALL_FPCPACKAGE
  358. ifdef INSTALL_FPCSUBDIR
  359. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
  360. else
  361. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  362. endif
  363. else
  364. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  365. endif
  366. else
  367. ifdef INSTALL_FPCPACKAGE
  368. ifdef INSTALL_FPCSUBDIR
  369. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
  370. else
  371. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
  372. endif
  373. else
  374. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
  375. endif
  376. endif
  377. endif
  378. ifndef INSTALL_DOCDIR
  379. ifdef UNIXINSTALLDIR
  380. ifdef BSDhier
  381. DOCPREFIXDIR=share/doc
  382. else
  383. DOCPREFIXDIR=doc
  384. endif
  385. ifdef INSTALL_FPCPACKAGE
  386. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  387. else
  388. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  389. endif
  390. else
  391. ifdef INSTALL_FPCPACKAGE
  392. INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
  393. else
  394. INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
  395. endif
  396. endif
  397. endif
  398. ifndef INSTALL_EXAMPLEDIR
  399. ifdef UNIXINSTALLDIR
  400. ifdef INSTALL_FPCPACKAGE
  401. ifdef BSDhier
  402. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  403. else
  404. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
  405. endif
  406. else
  407. ifdef BSDhier
  408. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  409. else
  410. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  411. endif
  412. endif
  413. else
  414. ifdef INSTALL_FPCPACKAGE
  415. INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
  416. else
  417. INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
  418. endif
  419. endif
  420. endif
  421. ifndef INSTALL_DATADIR
  422. INSTALL_DATADIR=$(INSTALL_BASEDIR)
  423. endif
  424. ifdef CROSSCOMPILE
  425. ifndef CROSSBINDIR
  426. CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(FULL_SOURCE))
  427. ifeq ($(CROSSBINDIR),)
  428. CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin/$(FULL_SOURCE))
  429. endif
  430. endif
  431. else
  432. CROSSBINDIR=
  433. endif
  434. LOADEREXT=.as
  435. EXEEXT=.exe
  436. PPLEXT=.ppl
  437. PPUEXT=.ppu
  438. OEXT=.o
  439. ASMEXT=.s
  440. SMARTEXT=.sl
  441. STATICLIBEXT=.a
  442. SHAREDLIBEXT=.so
  443. STATICLIBPREFIX=libp
  444. RSTEXT=.rst
  445. FPCMADE=fpcmade
  446. ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
  447. ifeq ($(OS_TARGET),go32v1)
  448. STATICLIBPREFIX=
  449. FPCMADE=fpcmade.v1
  450. PACKAGESUFFIX=v1
  451. endif
  452. ifeq ($(OS_TARGET),go32v2)
  453. STATICLIBPREFIX=
  454. FPCMADE=fpcmade.dos
  455. ZIPSUFFIX=go32
  456. endif
  457. ifeq ($(OS_TARGET),linux)
  458. EXEEXT=
  459. HASSHAREDLIB=1
  460. FPCMADE=fpcmade.lnx
  461. ZIPSUFFIX=linux
  462. endif
  463. ifeq ($(OS_TARGET),freebsd)
  464. EXEEXT=
  465. HASSHAREDLIB=1
  466. FPCMADE=fpcmade.freebsd
  467. ZIPSUFFIX=freebsd
  468. endif
  469. ifeq ($(OS_TARGET),netbsd)
  470. EXEEXT=
  471. HASSHAREDLIB=1
  472. FPCMADE=fpcmade.netbsd
  473. ZIPSUFFIX=netbsd
  474. endif
  475. ifeq ($(OS_TARGET),openbsd)
  476. EXEEXT=
  477. HASSHAREDLIB=1
  478. FPCMADE=fpcmade.openbsd
  479. ZIPSUFFIX=openbsd
  480. endif
  481. ifeq ($(OS_TARGET),win32)
  482. SHAREDLIBEXT=.dll
  483. FPCMADE=fpcmade.w32
  484. ZIPSUFFIX=w32
  485. endif
  486. ifeq ($(OS_TARGET),os2)
  487. AOUTEXT=.out
  488. STATICLIBPREFIX=
  489. SHAREDLIBEXT=.dll
  490. FPCMADE=fpcmade.os2
  491. ZIPSUFFIX=os2
  492. ECHO=echo
  493. endif
  494. ifeq ($(OS_TARGET),emx)
  495. AOUTEXT=.out
  496. STATICLIBPREFIX=
  497. SHAREDLIBEXT=.dll
  498. FPCMADE=fpcmade.emx
  499. ZIPSUFFIX=emx
  500. ECHO=echo
  501. endif
  502. ifeq ($(OS_TARGET),amiga)
  503. EXEEXT=
  504. SHAREDLIBEXT=.library
  505. FPCMADE=fpcmade.amg
  506. endif
  507. ifeq ($(OS_TARGET),atari)
  508. EXEEXT=.ttp
  509. FPCMADE=fpcmade.ata
  510. endif
  511. ifeq ($(OS_TARGET),beos)
  512. EXEEXT=
  513. FPCMADE=fpcmade.be
  514. ZIPSUFFIX=be
  515. endif
  516. ifeq ($(OS_TARGET),sunos)
  517. EXEEXT=
  518. FPCMADE=fpcmade.sun
  519. ZIPSUFFIX=sun
  520. endif
  521. ifeq ($(OS_TARGET),qnx)
  522. EXEEXT=
  523. FPCMADE=fpcmade.qnx
  524. ZIPSUFFIX=qnx
  525. endif
  526. ifeq ($(OS_TARGET),netware)
  527. EXEEXT=.nlm
  528. STATICLIBPREFIX=
  529. FPCMADE=fpcmade.nw
  530. ZIPSUFFIX=nw
  531. endif
  532. ifeq ($(OS_TARGET),macos)
  533. EXEEXT=
  534. FPCMADE=fpcmade.mcc
  535. endif
  536. ifeq ($(OS_TARGET),darwin)
  537. EXEEXT=
  538. HASSHAREDLIB=1
  539. FPCMADE=fpcmade.darwin
  540. ZIPSUFFIX=darwin
  541. endif
  542. else
  543. ifeq ($(OS_TARGET),go32v1)
  544. PPUEXT=.pp1
  545. OEXT=.o1
  546. ASMEXT=.s1
  547. SMARTEXT=.sl1
  548. STATICLIBEXT=.a1
  549. SHAREDLIBEXT=.so1
  550. STATICLIBPREFIX=
  551. FPCMADE=fpcmade.v1
  552. PACKAGESUFFIX=v1
  553. endif
  554. ifeq ($(OS_TARGET),go32v2)
  555. STATICLIBPREFIX=
  556. FPCMADE=fpcmade.dos
  557. ZIPSUFFIX=go32
  558. endif
  559. ifeq ($(OS_TARGET),linux)
  560. EXEEXT=
  561. HASSHAREDLIB=1
  562. FPCMADE=fpcmade.lnx
  563. ZIPSUFFIX=linux
  564. endif
  565. ifeq ($(OS_TARGET),freebsd)
  566. EXEEXT=
  567. HASSHAREDLIB=1
  568. FPCMADE=fpcmade.freebsd
  569. ZIPSUFFIX=freebsd
  570. endif
  571. ifeq ($(OS_TARGET),netbsd)
  572. EXEEXT=
  573. HASSHAREDLIB=1
  574. FPCMADE=fpcmade.netbsd
  575. ZIPSUFFIX=netbsd
  576. endif
  577. ifeq ($(OS_TARGET),openbsd)
  578. EXEEXT=
  579. HASSHAREDLIB=1
  580. FPCMADE=fpcmade.openbsd
  581. ZIPSUFFIX=openbsd
  582. endif
  583. ifeq ($(OS_TARGET),win32)
  584. PPUEXT=.ppw
  585. OEXT=.ow
  586. ASMEXT=.sw
  587. SMARTEXT=.slw
  588. STATICLIBEXT=.aw
  589. SHAREDLIBEXT=.dll
  590. FPCMADE=fpcmade.w32
  591. ZIPSUFFIX=w32
  592. endif
  593. ifeq ($(OS_TARGET),os2)
  594. PPUEXT=.ppo
  595. ASMEXT=.so2
  596. OEXT=.oo2
  597. AOUTEXT=.out
  598. SMARTEXT=.sl2
  599. STATICLIBPREFIX=
  600. STATICLIBEXT=.ao2
  601. SHAREDLIBEXT=.dll
  602. FPCMADE=fpcmade.os2
  603. ZIPSUFFIX=emx
  604. ECHO=echo
  605. endif
  606. ifeq ($(OS_TARGET),amiga)
  607. EXEEXT=
  608. PPUEXT=.ppu
  609. ASMEXT=.asm
  610. OEXT=.o
  611. SMARTEXT=.sl
  612. STATICLIBEXT=.a
  613. SHAREDLIBEXT=.library
  614. FPCMADE=fpcmade.amg
  615. endif
  616. ifeq ($(OS_TARGET),atari)
  617. PPUEXT=.ppu
  618. ASMEXT=.s
  619. OEXT=.o
  620. SMARTEXT=.sl
  621. STATICLIBEXT=.a
  622. EXEEXT=.ttp
  623. FPCMADE=fpcmade.ata
  624. endif
  625. ifeq ($(OS_TARGET),beos)
  626. PPUEXT=.ppu
  627. ASMEXT=.s
  628. OEXT=.o
  629. SMARTEXT=.sl
  630. STATICLIBEXT=.a
  631. EXEEXT=
  632. FPCMADE=fpcmade.be
  633. ZIPSUFFIX=be
  634. endif
  635. ifeq ($(OS_TARGET),sunos)
  636. PPUEXT=.ppu
  637. ASMEXT=.s
  638. OEXT=.o
  639. SMARTEXT=.sl
  640. STATICLIBEXT=.a
  641. EXEEXT=
  642. FPCMADE=fpcmade.sun
  643. ZIPSUFFIX=sun
  644. endif
  645. ifeq ($(OS_TARGET),qnx)
  646. PPUEXT=.ppu
  647. ASMEXT=.s
  648. OEXT=.o
  649. SMARTEXT=.sl
  650. STATICLIBEXT=.a
  651. EXEEXT=
  652. FPCMADE=fpcmade.qnx
  653. ZIPSUFFIX=qnx
  654. endif
  655. ifeq ($(OS_TARGET),netware)
  656. STATICLIBPREFIX=
  657. PPUEXT=.ppu
  658. OEXT=.o
  659. ASMEXT=.s
  660. SMARTEXT=.sl
  661. STATICLIBEXT=.a
  662. SHAREDLIBEXT=.nlm
  663. FPCMADE=fpcmade.nw
  664. ZIPSUFFIX=nw
  665. EXEEXT=.nlm
  666. endif
  667. ifeq ($(OS_TARGET),macos)
  668. PPUEXT=.ppu
  669. ASMEXT=.s
  670. OEXT=.o
  671. SMARTEXT=.sl
  672. STATICLIBEXT=.a
  673. EXEEXT=
  674. FPCMADE=fpcmade.mcc
  675. endif
  676. endif
  677. ifndef ECHO
  678. ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
  679. ifeq ($(ECHO),)
  680. ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
  681. ifeq ($(ECHO),)
  682. ECHO=
  683. else
  684. ECHO:=$(firstword $(ECHO))
  685. endif
  686. else
  687. ECHO:=$(firstword $(ECHO))
  688. endif
  689. endif
  690. export ECHO
  691. ifndef DATE
  692. DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
  693. ifeq ($(DATE),)
  694. DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
  695. ifeq ($(DATE),)
  696. DATE=
  697. else
  698. DATE:=$(firstword $(DATE))
  699. endif
  700. else
  701. DATE:=$(firstword $(DATE))
  702. endif
  703. endif
  704. export DATE
  705. ifndef GINSTALL
  706. GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
  707. ifeq ($(GINSTALL),)
  708. GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
  709. ifeq ($(GINSTALL),)
  710. GINSTALL=
  711. else
  712. GINSTALL:=$(firstword $(GINSTALL))
  713. endif
  714. else
  715. GINSTALL:=$(firstword $(GINSTALL))
  716. endif
  717. endif
  718. export GINSTALL
  719. ifndef CPPROG
  720. CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
  721. ifeq ($(CPPROG),)
  722. CPPROG=
  723. else
  724. CPPROG:=$(firstword $(CPPROG))
  725. endif
  726. endif
  727. export CPPROG
  728. ifndef RMPROG
  729. RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
  730. ifeq ($(RMPROG),)
  731. RMPROG=
  732. else
  733. RMPROG:=$(firstword $(RMPROG))
  734. endif
  735. endif
  736. export RMPROG
  737. ifndef MVPROG
  738. MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
  739. ifeq ($(MVPROG),)
  740. MVPROG=
  741. else
  742. MVPROG:=$(firstword $(MVPROG))
  743. endif
  744. endif
  745. export MVPROG
  746. ifndef ECHOREDIR
  747. ECHOREDIR:=$(subst /,$(PATHSEP),$(ECHO))
  748. endif
  749. ifndef COPY
  750. COPY:=$(CPPROG) -fp
  751. endif
  752. ifndef COPYTREE
  753. COPYTREE:=$(CPPROG) -rfp
  754. endif
  755. ifndef MOVE
  756. MOVE:=$(MVPROG) -f
  757. endif
  758. ifndef DEL
  759. DEL:=$(RMPROG) -f
  760. endif
  761. ifndef DELTREE
  762. DELTREE:=$(RMPROG) -rf
  763. endif
  764. ifndef INSTALL
  765. ifdef inUnix
  766. INSTALL:=$(GINSTALL) -c -m 644
  767. else
  768. INSTALL:=$(COPY)
  769. endif
  770. endif
  771. ifndef INSTALLEXE
  772. ifdef inUnix
  773. INSTALLEXE:=$(GINSTALL) -c -m 755
  774. else
  775. INSTALLEXE:=$(COPY)
  776. endif
  777. endif
  778. ifndef MKDIR
  779. MKDIR:=$(GINSTALL) -m 755 -d
  780. endif
  781. export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
  782. ifndef PPUMOVE
  783. PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
  784. ifeq ($(PPUMOVE),)
  785. PPUMOVE=
  786. else
  787. PPUMOVE:=$(firstword $(PPUMOVE))
  788. endif
  789. endif
  790. export PPUMOVE
  791. ifndef FPCMAKE
  792. FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
  793. ifeq ($(FPCMAKE),)
  794. FPCMAKE=
  795. else
  796. FPCMAKE:=$(firstword $(FPCMAKE))
  797. endif
  798. endif
  799. export FPCMAKE
  800. ifndef ZIPPROG
  801. ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
  802. ifeq ($(ZIPPROG),)
  803. ZIPPROG=
  804. else
  805. ZIPPROG:=$(firstword $(ZIPPROG))
  806. endif
  807. endif
  808. export ZIPPROG
  809. ifndef TARPROG
  810. TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
  811. ifeq ($(TARPROG),)
  812. TARPROG=
  813. else
  814. TARPROG:=$(firstword $(TARPROG))
  815. endif
  816. endif
  817. export TARPROG
  818. ASNAME=as
  819. LDNAME=ld
  820. ARNAME=ar
  821. RCNAME=rc
  822. ifeq ($(OS_TARGET),win32)
  823. ASNAME=asw
  824. LDNAME=ldw
  825. ARNAME=arw
  826. endif
  827. ifndef ASPROG
  828. ifdef CROSSBINDIR
  829. ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
  830. else
  831. ASPROG=$(ASNAME)
  832. endif
  833. endif
  834. ifndef LDPROG
  835. ifdef CROSSBINDIR
  836. LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
  837. else
  838. LDPROG=$(LDNAME)
  839. endif
  840. endif
  841. ifndef RCPROG
  842. ifdef CROSSBINDIR
  843. RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
  844. else
  845. RCPROG=$(RCNAME)
  846. endif
  847. endif
  848. ifndef ARPROG
  849. ifdef CROSSBINDIR
  850. ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
  851. else
  852. ARPROG=$(ARNAME)
  853. endif
  854. endif
  855. AS=$(ASPROG)
  856. LD=$(LDPROG)
  857. RC=$(RCPROG)
  858. AR=$(ARPROG)
  859. PPAS=ppas$(BATCHEXT)
  860. ifdef inUnix
  861. LDCONFIG=ldconfig
  862. else
  863. LDCONFIG=
  864. endif
  865. ifdef DATE
  866. DATESTR:=$(shell $(DATE) +%Y%m%d)
  867. else
  868. DATESTR=
  869. endif
  870. ifndef UPXPROG
  871. ifeq ($(OS_TARGET),go32v2)
  872. UPXPROG:=1
  873. endif
  874. ifeq ($(OS_TARGET),win32)
  875. UPXPROG:=1
  876. endif
  877. ifdef UPXPROG
  878. UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
  879. ifeq ($(UPXPROG),)
  880. UPXPROG=
  881. else
  882. UPXPROG:=$(firstword $(UPXPROG))
  883. endif
  884. else
  885. UPXPROG=
  886. endif
  887. endif
  888. export UPXPROG
  889. ZIPOPT=-9
  890. ZIPEXT=.zip
  891. ifeq ($(USETAR),bz2)
  892. TAROPT=vI
  893. TAREXT=.tar.bz2
  894. else
  895. TAROPT=vz
  896. TAREXT=.tar.gz
  897. endif
  898. ifndef NOCPUDEF
  899. override FPCOPTDEF=$(CPU_TARGET)
  900. endif
  901. ifneq ($(OS_TARGET),$(OS_SOURCE))
  902. override FPCOPT+=-T$(OS_TARGET)
  903. endif
  904. ifeq ($(OS_SOURCE),openbsd)
  905. override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
  906. endif
  907. ifdef UNITDIR
  908. override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
  909. endif
  910. ifdef LIBDIR
  911. override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
  912. endif
  913. ifdef OBJDIR
  914. override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
  915. endif
  916. ifdef INCDIR
  917. override FPCOPT+=$(addprefix -Fi,$(INCDIR))
  918. endif
  919. ifdef LINKSMART
  920. override FPCOPT+=-XX
  921. endif
  922. ifdef CREATESMART
  923. override FPCOPT+=-CX
  924. endif
  925. ifdef DEBUG
  926. override FPCOPT+=-gl
  927. override FPCOPTDEF+=DEBUG
  928. endif
  929. ifdef RELEASE
  930. ifeq ($(CPU_TARGET),i386)
  931. FPCCPUOPT:=-OG2p3
  932. else
  933. FPCCPUOPT:=
  934. endif
  935. override FPCOPT+=-Xs $(FPCCPUOPT) -n
  936. override FPCOPTDEF+=RELEASE
  937. endif
  938. ifdef STRIP
  939. override FPCOPT+=-Xs
  940. endif
  941. ifdef OPTIMIZE
  942. ifeq ($(CPU_TARGET),i386)
  943. override FPCOPT+=-OG2p3
  944. endif
  945. endif
  946. ifdef VERBOSE
  947. override FPCOPT+=-vwni
  948. endif
  949. ifdef COMPILER_OPTIONS
  950. override FPCOPT+=$(COMPILER_OPTIONS)
  951. endif
  952. ifdef COMPILER_UNITDIR
  953. override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
  954. endif
  955. ifdef COMPILER_LIBRARYDIR
  956. override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
  957. endif
  958. ifdef COMPILER_OBJECTDIR
  959. override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
  960. endif
  961. ifdef COMPILER_INCLUDEDIR
  962. override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
  963. endif
  964. ifdef CROSSBINDIR
  965. override FPCOPT+=-FD$(CROSSBINDIR)
  966. endif
  967. ifdef COMPILER_TARGETDIR
  968. override FPCOPT+=-FE$(COMPILER_TARGETDIR)
  969. ifeq ($(COMPILER_TARGETDIR),.)
  970. override TARGETDIRPREFIX=
  971. else
  972. override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
  973. endif
  974. endif
  975. ifdef COMPILER_UNITTARGETDIR
  976. override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
  977. ifeq ($(COMPILER_UNITTARGETDIR),.)
  978. override UNITTARGETDIRPREFIX=
  979. else
  980. override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
  981. endif
  982. else
  983. ifdef COMPILER_TARGETDIR
  984. override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
  985. override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
  986. endif
  987. endif
  988. ifeq ($(OS_TARGET),linux)
  989. ifeq ($(FPC_VERSION),1.0.6)
  990. override FPCOPTDEF+=HASUNIX
  991. endif
  992. endif
  993. ifdef OPT
  994. override FPCOPT+=$(OPT)
  995. endif
  996. ifdef FPCOPTDEF
  997. override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
  998. endif
  999. ifdef CFGFILE
  1000. override FPCOPT+=@$(CFGFILE)
  1001. endif
  1002. ifdef USEENV
  1003. override FPCEXTCMD:=$(FPCOPT)
  1004. override FPCOPT:=!FPCEXTCMD
  1005. export FPCEXTCMD
  1006. endif
  1007. override COMPILER:=$(FPC) $(FPCOPT)
  1008. ifeq (,$(findstring -s ,$(COMPILER)))
  1009. EXECPPAS=
  1010. else
  1011. ifeq ($(FULL_SOURCE),$(FULL_TARGET))
  1012. EXECPPAS:=@$(PPAS)
  1013. endif
  1014. endif
  1015. .PHONY: fpc_loaders
  1016. ifdef TARGET_LOADERS
  1017. override ALLTARGET+=fpc_loaders
  1018. override CLEANTARGET+=fpc_loaders_clean
  1019. override INSTALLTARGET+=fpc_loaders_install
  1020. override LOADEROFILES:=$(addsuffix $(OEXT),$(TARGET_LOADERS))
  1021. endif
  1022. %$(OEXT): %$(LOADEREXT)
  1023. $(AS) -o $*$(OEXT) $<
  1024. fpc_loaders: $(LOADEROFILES)
  1025. fpc_loaders_clean:
  1026. -$(DEL) $(LOADEROFILES)
  1027. fpc_loaders_install:
  1028. $(MKDIR) $(INSTALL_UNITDIR)
  1029. $(INSTALL) $(LOADEROFILES) $(INSTALL_UNITDIR)
  1030. .PHONY: fpc_units
  1031. ifdef TARGET_UNITS
  1032. override ALLTARGET+=fpc_units
  1033. override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
  1034. override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
  1035. override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
  1036. override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
  1037. endif
  1038. fpc_units: $(UNITPPUFILES)
  1039. ifdef TARGET_RSTS
  1040. override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
  1041. override CLEANRSTFILES+=$(RSTFILES)
  1042. endif
  1043. .PHONY: fpc_all fpc_smart fpc_debug fpc_release
  1044. $(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
  1045. @$(ECHOREDIR) Compiled > $(FPCMADE)
  1046. fpc_all: $(FPCMADE)
  1047. fpc_smart:
  1048. $(MAKE) all LINKSMART=1 CREATESMART=1
  1049. fpc_debug:
  1050. $(MAKE) all DEBUG=1
  1051. fpc_release:
  1052. $(MAKE) all RELEASE=1
  1053. .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp .rc .res
  1054. %$(PPUEXT): %.pp
  1055. $(COMPILER) $<
  1056. $(EXECPPAS)
  1057. %$(PPUEXT): %.pas
  1058. $(COMPILER) $<
  1059. $(EXECPPAS)
  1060. %$(EXEEXT): %.pp
  1061. $(COMPILER) $<
  1062. $(EXECPPAS)
  1063. %$(EXEEXT): %.pas
  1064. $(COMPILER) $<
  1065. $(EXECPPAS)
  1066. %.res: %.rc
  1067. windres -i $< -o $@
  1068. vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  1069. vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  1070. vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
  1071. .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
  1072. ifdef INSTALL_UNITS
  1073. override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
  1074. endif
  1075. ifdef INSTALL_BUILDUNIT
  1076. override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
  1077. endif
  1078. ifdef INSTALLPPUFILES
  1079. override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
  1080. override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
  1081. override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES)))
  1082. override INSTALL_CREATEPACKAGEFPC=1
  1083. endif
  1084. ifdef INSTALLEXEFILES
  1085. override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
  1086. endif
  1087. fpc_install: all $(INSTALLTARGET)
  1088. ifdef INSTALLEXEFILES
  1089. $(MKDIR) $(INSTALL_BINDIR)
  1090. ifdef UPXPROG
  1091. -$(UPXPROG) $(INSTALLEXEFILES)
  1092. endif
  1093. $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
  1094. endif
  1095. ifdef INSTALL_CREATEPACKAGEFPC
  1096. ifdef FPCMAKE
  1097. ifdef PACKAGE_VERSION
  1098. ifneq ($(wildcard Makefile.fpc),)
  1099. $(FPCMAKE) -p -T$(OS_TARGET) Makefile.fpc
  1100. $(MKDIR) $(INSTALL_UNITDIR)
  1101. $(INSTALL) Package.fpc $(INSTALL_UNITDIR)
  1102. endif
  1103. endif
  1104. endif
  1105. endif
  1106. ifdef INSTALLPPUFILES
  1107. $(MKDIR) $(INSTALL_UNITDIR)
  1108. $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
  1109. ifneq ($(INSTALLPPULINKFILES),)
  1110. $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
  1111. endif
  1112. ifneq ($(wildcard $(LIB_FULLNAME)),)
  1113. $(MKDIR) $(INSTALL_LIBDIR)
  1114. $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
  1115. ifdef inUnix
  1116. ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
  1117. endif
  1118. endif
  1119. endif
  1120. ifdef INSTALL_FILES
  1121. $(MKDIR) $(INSTALL_DATADIR)
  1122. $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
  1123. endif
  1124. fpc_sourceinstall: distclean
  1125. $(MKDIR) $(INSTALL_SOURCEDIR)
  1126. $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
  1127. fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
  1128. ifdef HASEXAMPLES
  1129. $(MKDIR) $(INSTALL_EXAMPLEDIR)
  1130. endif
  1131. ifdef EXAMPLESOURCEFILES
  1132. $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
  1133. endif
  1134. ifdef TARGET_EXAMPLEDIRS
  1135. $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
  1136. endif
  1137. .PHONY: fpc_clean fpc_cleanall fpc_distclean
  1138. ifdef EXEFILES
  1139. override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
  1140. endif
  1141. ifdef CLEAN_UNITS
  1142. override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
  1143. endif
  1144. ifdef CLEANPPUFILES
  1145. override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
  1146. override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
  1147. override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
  1148. endif
  1149. fpc_clean: $(CLEANTARGET)
  1150. ifdef CLEANEXEFILES
  1151. -$(DEL) $(CLEANEXEFILES)
  1152. endif
  1153. ifdef CLEANPPUFILES
  1154. -$(DEL) $(CLEANPPUFILES)
  1155. endif
  1156. ifneq ($(CLEANPPULINKFILES),)
  1157. -$(DEL) $(CLEANPPULINKFILES)
  1158. endif
  1159. ifdef CLEANRSTFILES
  1160. -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
  1161. endif
  1162. ifdef CLEAN_FILES
  1163. -$(DEL) $(CLEAN_FILES)
  1164. endif
  1165. ifdef LIB_NAME
  1166. -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
  1167. endif
  1168. -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
  1169. fpc_distclean: clean
  1170. ifdef COMPILER_UNITTARGETDIR
  1171. TARGETDIRCLEAN=fpc_clean
  1172. endif
  1173. fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
  1174. ifdef CLEANEXEFILES
  1175. -$(DEL) $(CLEANEXEFILES)
  1176. endif
  1177. -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
  1178. -$(DELTREE) *$(SMARTEXT)
  1179. -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
  1180. ifdef AOUTEXT
  1181. -$(DEL) *$(AOUTEXT)
  1182. endif
  1183. .PHONY: fpc_baseinfo
  1184. override INFORULES+=fpc_baseinfo
  1185. fpc_baseinfo:
  1186. @$(ECHO)
  1187. @$(ECHO) == Package info ==
  1188. @$(ECHO) Package Name..... $(PACKAGE_NAME)
  1189. @$(ECHO) Package Version.. $(PACKAGE_VERSION)
  1190. @$(ECHO)
  1191. @$(ECHO) == Configuration info ==
  1192. @$(ECHO)
  1193. @$(ECHO) FPC.......... $(FPC)
  1194. @$(ECHO) FPC Version.. $(FPC_VERSION)
  1195. @$(ECHO) Source CPU... $(CPU_SOURCE)
  1196. @$(ECHO) Target CPU... $(CPU_TARGET)
  1197. @$(ECHO) Source OS.... $(OS_SOURCE)
  1198. @$(ECHO) Target OS.... $(OS_TARGET)
  1199. @$(ECHO) Full Source.. $(FULL_SOURCE)
  1200. @$(ECHO) Full Target.. $(FULL_TARGET)
  1201. @$(ECHO)
  1202. @$(ECHO) == Directory info ==
  1203. @$(ECHO)
  1204. @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)
  1205. @$(ECHO)
  1206. @$(ECHO) Basedir......... $(BASEDIR)
  1207. @$(ECHO) FPCDir.......... $(FPCDIR)
  1208. @$(ECHO) CrossBinDir..... $(CROSSBINDIR)
  1209. @$(ECHO) UnitsDir........ $(UNITSDIR)
  1210. @$(ECHO) PackagesDir..... $(PACKAGESDIR)
  1211. @$(ECHO)
  1212. @$(ECHO) GCC library..... $(GCCLIBDIR)
  1213. @$(ECHO) Other library... $(OTHERLIBDIR)
  1214. @$(ECHO)
  1215. @$(ECHO) == Tools info ==
  1216. @$(ECHO)
  1217. @$(ECHO) As........ $(AS)
  1218. @$(ECHO) Ld........ $(LD)
  1219. @$(ECHO) Ar........ $(AR)
  1220. @$(ECHO) Rc........ $(RC)
  1221. @$(ECHO)
  1222. @$(ECHO) Mv........ $(MVPROG)
  1223. @$(ECHO) Cp........ $(CPPROG)
  1224. @$(ECHO) Rm........ $(RMPROG)
  1225. @$(ECHO) GInstall.. $(GINSTALL)
  1226. @$(ECHO) Echo...... $(ECHO)
  1227. @$(ECHO) Shell..... $(SHELL)
  1228. @$(ECHO) Date...... $(DATE)
  1229. @$(ECHO) FPCMake... $(FPCMAKE)
  1230. @$(ECHO) PPUMove... $(PPUMOVE)
  1231. @$(ECHO) Upx....... $(UPXPROG)
  1232. @$(ECHO) Zip....... $(ZIPPROG)
  1233. @$(ECHO)
  1234. @$(ECHO) == Object info ==
  1235. @$(ECHO)
  1236. @$(ECHO) Target Loaders........ $(TARGET_LOADERS)
  1237. @$(ECHO) Target Units.......... $(TARGET_UNITS)
  1238. @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)
  1239. @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)
  1240. @$(ECHO) Target Dirs........... $(TARGET_DIRS)
  1241. @$(ECHO) Target Examples....... $(TARGET_EXAMPLES)
  1242. @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
  1243. @$(ECHO)
  1244. @$(ECHO) Clean Units......... $(CLEAN_UNITS)
  1245. @$(ECHO) Clean Files......... $(CLEAN_FILES)
  1246. @$(ECHO)
  1247. @$(ECHO) Install Units....... $(INSTALL_UNITS)
  1248. @$(ECHO) Install Files....... $(INSTALL_FILES)
  1249. @$(ECHO)
  1250. @$(ECHO) == Install info ==
  1251. @$(ECHO)
  1252. @$(ECHO) DateStr.............. $(DATESTR)
  1253. @$(ECHO) ZipPrefix............ $(ZIPPREFIX)
  1254. @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
  1255. @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)
  1256. @$(ECHO)
  1257. @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)
  1258. @$(ECHO) Install binary dir... $(INSTALL_BINDIR)
  1259. @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)
  1260. @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)
  1261. @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)
  1262. @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)
  1263. @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)
  1264. @$(ECHO) Install data dir..... $(INSTALL_DATADIR)
  1265. @$(ECHO)
  1266. @$(ECHO) Dist destination dir. $(DIST_DESTDIR)
  1267. @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)
  1268. @$(ECHO)
  1269. .PHONY: fpc_info
  1270. fpc_info: $(INFORULES)
  1271. .PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
  1272. fpc_makefile_dirs
  1273. fpc_makefile:
  1274. $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
  1275. fpc_makefile_sub1:
  1276. ifdef TARGET_DIRS
  1277. $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
  1278. endif
  1279. ifdef TARGET_EXAMPLEDIRS
  1280. $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
  1281. endif
  1282. fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
  1283. fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
  1284. fpc_makefiles: fpc_makefile fpc_makefile_dirs
  1285. all: fpc_all
  1286. debug: fpc_debug
  1287. smart: fpc_smart
  1288. release: fpc_release
  1289. examples:
  1290. shared:
  1291. install: fpc_install
  1292. sourceinstall: fpc_sourceinstall
  1293. exampleinstall: fpc_exampleinstall
  1294. distinstall:
  1295. zipinstall:
  1296. zipsourceinstall:
  1297. zipexampleinstall:
  1298. zipdistinstall:
  1299. clean: fpc_clean
  1300. distclean: fpc_distclean
  1301. cleanall: fpc_cleanall
  1302. info: fpc_info
  1303. makefiles: fpc_makefiles
  1304. .PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
  1305. ifneq ($(wildcard fpcmake.loc),)
  1306. include fpcmake.loc
  1307. endif
  1308. include $(INC)/makefile.inc
  1309. SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
  1310. include $(PROCINC)/makefile.cpu
  1311. SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
  1312. SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
  1313. prt0$(OEXT) : $(CPU_TARGET)/$(PRT0).as
  1314. $(AS) -o prt0$(OEXT) $(CPU_TARGET)/$(PRT0).as
  1315. cprt0$(OEXT) : $(CPU_TARGET)/cprt0.as
  1316. $(AS) -o cprt0$(OEXT) $(CPU_TARGET)/cprt0.as
  1317. gprt0$(OEXT) : $(CPU_TARGET)/gprt0.as
  1318. $(AS) -o gprt0$(OEXT) $(CPU_TARGET)/gprt0.as
  1319. $(SYSTEMUNIT)$(PPUEXT) : $(BSDINC)/$(SYSTEMUNIT).pp sysconst.inc systypes.inc syscalls.inc $(SYSDEPS)
  1320. $(COMPILER) -Us -Sg $(BSDINC)/$(SYSTEMUNIT).pp
  1321. objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
  1322. $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp
  1323. dateutils$(PPUEXT): $(OBJPASDIR)/dateutils.pp baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1324. $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/dateutils.pp
  1325. strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc\
  1326. $(PROCINC)/strings.inc $(PROCINC)/stringss.inc\
  1327. $(SYSTEMUNIT)$(PPUEXT)
  1328. baseunix$(PPUEXT) : errno.inc $(BSDINC)/bunxtype.inc ptypes.inc $(BSDINC)/ctypes.inc \
  1329. signal.inc $(UNIXINC)/bunxh.inc $(BSDINC)/bunxmain.inc $(BSDINC)/ostypes.inc \
  1330. $(BSDINC)/bunxfunc.inc $(BSDPROCINC)/syscallh.inc sysnr.inc \
  1331. $(BSDINC)/ostypes.inc $(BSDINC)/ossysch.inc $(BSDINC)/bunxmacr.inc $(UNIXINC)/gensigset.inc \
  1332. $(UNIXINC)/genfuncs.inc $(SYSTEMUNIT)$(PPUEXT)
  1333. unix$(PPUEXT) : $(UNIXINC)/unix.pp strings$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \
  1334. syscalls.inc systypes.inc sysconst.inc $(UNIXINC)/timezone.inc \
  1335. unixsysc.inc baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1336. linux$(PPUEXT) : baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1337. dos$(PPUEXT) : $(UNIXINC)/dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
  1338. unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1339. crt$(PPUEXT) : $(UNIXINC)/crt.pp $(INC)/textrec.inc unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1340. objects$(PPUEXT) : $(INC)/objects.pp $(SYSTEMUNIT)$(PPUEXT)
  1341. printer$(PPUEXT) : $(UNIXINC)/printer.pp $(INC)/textrec.inc unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1342. sysutils$(PPUEXT) : $(UNIXINC)/sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
  1343. objpas$(PPUEXT) unix$(PPUEXT) errors$(PPUEXT) $(OBJPASDIR)/sysconst$(PPUEXT)
  1344. $(COMPILER) -Fi$(OBJPASDIR)/sysutils $(UNIXINC)/sysutils.pp
  1345. rtlconst$(PPUEXT) : $(OBJPASDIR)/rtlconst.pp
  1346. $(COMPILER): $(OBJPASDIR)/rtlconst.pp
  1347. classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
  1348. sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconst$(PPUEXT)
  1349. $(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp
  1350. typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
  1351. $(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
  1352. math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)
  1353. $(COMPILER) $(OBJPASDIR)/math.pp
  1354. gettext$(PPUEXT): $(OBJPASDIR)/gettext.pp objpas$(PPUEXT) sysutils$(PPUEXT)
  1355. $(COMPILER) $(OBJPASDIR)/gettext.pp
  1356. varutils$(PPUEXT) : $(OBJPASDIR)/cvarutil.inc $(OBJPASDIR)/varutils.inc \
  1357. $(OBJPASDIR)/varutilh.inc varutils.pp
  1358. $(COMPILER) -I$(OBJPASDIR) $(UNIXINC)/varutils.pp
  1359. types$(PPUEXT) : $(OBJPASDIR)/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1360. $(COMPILER) $(OBJPASDIR)/types.pp
  1361. sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1362. $(COMPILER) $(OBJPASDIR)/sysconst.pp
  1363. cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
  1364. mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1365. getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
  1366. heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
  1367. $(COMPILER) -Sg $(INC)/heaptrc.pp
  1368. lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMUNIT)$(PPUEXT)
  1369. charset$(PPUEXT) : $(INC)/charset.pp $(SYSTEMUNIT)$(PPUEXT)
  1370. ucomplex$(PPUEXT) : $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1371. sockets$(PPUEXT) : $(UNIXINC)/sockets.pp $(INC)/textrec.inc $(INC)/filerec.inc \
  1372. unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1373. errors$(PPUEXT) : $(UNIXINC)/errors.pp strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1374. ipc$(PPUEXT) : $(UNIXINC)/ipc.pp unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1375. terminfo$(PPUEXT) : terminfo.pp unix$(PPUEXT)
  1376. callspec$(PPUEXT) : $(INC)/callspec.pp $(SYSTEMUNIT)$(PPUEXT)
  1377. sysctl$(PPUEXT) : $(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT)
  1378. cthreads$(PPUEXT) : $(UNIXINC)/cthreads.pp systhrds$(PPUEXT)