Makefile 33 KB

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