Makefile 32 KB

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