Makefile 32 KB

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