Makefile 33 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396
  1. #
  2. # Don't edit, this file is generated by FPCMake Version 1.1 [2003/10/05]
  3. #
  4. default: all
  5. MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom
  6. override PATH:=$(subst \,/,$(PATH))
  7. ifeq ($(findstring ;,$(PATH)),)
  8. inUnix=1
  9. SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
  10. else
  11. SEARCHPATH:=$(subst ;, ,$(PATH))
  12. endif
  13. 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=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) -QB)
  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 classes typinfo math varutils variants cpu mmx charset ucomplex getopts wincrt winmouse winevent sockets printer dynlibs video mouse keyboard types comobj dateutils rtlconst sysconst
  229. override TARGET_LOADERS+=wprt0 wdllprt0 gprt0
  230. override TARGET_RSTS+=math varutils typinfo variants classes dateutils
  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),watcom)
  452. STATICLIBPREFIX=
  453. FPCMADE=fpcmade.dos
  454. ZIPSUFFIX=watcom
  455. endif
  456. ifeq ($(OS_TARGET),linux)
  457. EXEEXT=
  458. HASSHAREDLIB=1
  459. FPCMADE=fpcmade.lnx
  460. ZIPSUFFIX=linux
  461. endif
  462. ifeq ($(OS_TARGET),freebsd)
  463. EXEEXT=
  464. HASSHAREDLIB=1
  465. FPCMADE=fpcmade.freebsd
  466. ZIPSUFFIX=freebsd
  467. endif
  468. ifeq ($(OS_TARGET),netbsd)
  469. EXEEXT=
  470. HASSHAREDLIB=1
  471. FPCMADE=fpcmade.netbsd
  472. ZIPSUFFIX=netbsd
  473. endif
  474. ifeq ($(OS_TARGET),openbsd)
  475. EXEEXT=
  476. HASSHAREDLIB=1
  477. FPCMADE=fpcmade.openbsd
  478. ZIPSUFFIX=openbsd
  479. endif
  480. ifeq ($(OS_TARGET),win32)
  481. SHAREDLIBEXT=.dll
  482. FPCMADE=fpcmade.w32
  483. ZIPSUFFIX=w32
  484. endif
  485. ifeq ($(OS_TARGET),os2)
  486. AOUTEXT=.out
  487. STATICLIBPREFIX=
  488. SHAREDLIBEXT=.dll
  489. FPCMADE=fpcmade.os2
  490. ZIPSUFFIX=os2
  491. ECHO=echo
  492. endif
  493. ifeq ($(OS_TARGET),emx)
  494. AOUTEXT=.out
  495. STATICLIBPREFIX=
  496. SHAREDLIBEXT=.dll
  497. FPCMADE=fpcmade.emx
  498. ZIPSUFFIX=emx
  499. ECHO=echo
  500. endif
  501. ifeq ($(OS_TARGET),amiga)
  502. EXEEXT=
  503. SHAREDLIBEXT=.library
  504. FPCMADE=fpcmade.amg
  505. endif
  506. ifeq ($(OS_TARGET),atari)
  507. EXEEXT=.ttp
  508. FPCMADE=fpcmade.ata
  509. endif
  510. ifeq ($(OS_TARGET),beos)
  511. EXEEXT=
  512. FPCMADE=fpcmade.be
  513. ZIPSUFFIX=be
  514. endif
  515. ifeq ($(OS_TARGET),sunos)
  516. EXEEXT=
  517. FPCMADE=fpcmade.sun
  518. ZIPSUFFIX=sun
  519. endif
  520. ifeq ($(OS_TARGET),qnx)
  521. EXEEXT=
  522. FPCMADE=fpcmade.qnx
  523. ZIPSUFFIX=qnx
  524. endif
  525. ifeq ($(OS_TARGET),netware)
  526. EXEEXT=.nlm
  527. STATICLIBPREFIX=
  528. FPCMADE=fpcmade.nw
  529. ZIPSUFFIX=nw
  530. endif
  531. ifeq ($(OS_TARGET),macos)
  532. EXEEXT=
  533. FPCMADE=fpcmade.mcc
  534. endif
  535. ifeq ($(OS_TARGET),darwin)
  536. EXEEXT=
  537. HASSHAREDLIB=1
  538. FPCMADE=fpcmade.darwin
  539. ZIPSUFFIX=darwin
  540. endif
  541. else
  542. ifeq ($(OS_TARGET),go32v1)
  543. PPUEXT=.pp1
  544. OEXT=.o1
  545. ASMEXT=.s1
  546. SMARTEXT=.sl1
  547. STATICLIBEXT=.a1
  548. SHAREDLIBEXT=.so1
  549. STATICLIBPREFIX=
  550. FPCMADE=fpcmade.v1
  551. PACKAGESUFFIX=v1
  552. endif
  553. ifeq ($(OS_TARGET),go32v2)
  554. STATICLIBPREFIX=
  555. FPCMADE=fpcmade.dos
  556. ZIPSUFFIX=go32
  557. endif
  558. ifeq ($(OS_TARGET),watcom)
  559. STATICLIBPREFIX=
  560. FPCMADE=fpcmade.dos
  561. ZIPSUFFIX=watcom
  562. endif
  563. ifeq ($(OS_TARGET),linux)
  564. EXEEXT=
  565. HASSHAREDLIB=1
  566. FPCMADE=fpcmade.lnx
  567. ZIPSUFFIX=linux
  568. endif
  569. ifeq ($(OS_TARGET),freebsd)
  570. EXEEXT=
  571. HASSHAREDLIB=1
  572. FPCMADE=fpcmade.freebsd
  573. ZIPSUFFIX=freebsd
  574. endif
  575. ifeq ($(OS_TARGET),netbsd)
  576. EXEEXT=
  577. HASSHAREDLIB=1
  578. FPCMADE=fpcmade.netbsd
  579. ZIPSUFFIX=netbsd
  580. endif
  581. ifeq ($(OS_TARGET),openbsd)
  582. EXEEXT=
  583. HASSHAREDLIB=1
  584. FPCMADE=fpcmade.openbsd
  585. ZIPSUFFIX=openbsd
  586. endif
  587. ifeq ($(OS_TARGET),win32)
  588. PPUEXT=.ppw
  589. OEXT=.ow
  590. ASMEXT=.sw
  591. SMARTEXT=.slw
  592. STATICLIBEXT=.aw
  593. SHAREDLIBEXT=.dll
  594. FPCMADE=fpcmade.w32
  595. ZIPSUFFIX=w32
  596. endif
  597. ifeq ($(OS_TARGET),os2)
  598. PPUEXT=.ppo
  599. ASMEXT=.so2
  600. OEXT=.oo2
  601. AOUTEXT=.out
  602. SMARTEXT=.sl2
  603. STATICLIBPREFIX=
  604. STATICLIBEXT=.ao2
  605. SHAREDLIBEXT=.dll
  606. FPCMADE=fpcmade.os2
  607. ZIPSUFFIX=emx
  608. ECHO=echo
  609. endif
  610. ifeq ($(OS_TARGET),amiga)
  611. EXEEXT=
  612. PPUEXT=.ppu
  613. ASMEXT=.asm
  614. OEXT=.o
  615. SMARTEXT=.sl
  616. STATICLIBEXT=.a
  617. SHAREDLIBEXT=.library
  618. FPCMADE=fpcmade.amg
  619. endif
  620. ifeq ($(OS_TARGET),atari)
  621. PPUEXT=.ppu
  622. ASMEXT=.s
  623. OEXT=.o
  624. SMARTEXT=.sl
  625. STATICLIBEXT=.a
  626. EXEEXT=.ttp
  627. FPCMADE=fpcmade.ata
  628. endif
  629. ifeq ($(OS_TARGET),beos)
  630. PPUEXT=.ppu
  631. ASMEXT=.s
  632. OEXT=.o
  633. SMARTEXT=.sl
  634. STATICLIBEXT=.a
  635. EXEEXT=
  636. FPCMADE=fpcmade.be
  637. ZIPSUFFIX=be
  638. endif
  639. ifeq ($(OS_TARGET),sunos)
  640. PPUEXT=.ppu
  641. ASMEXT=.s
  642. OEXT=.o
  643. SMARTEXT=.sl
  644. STATICLIBEXT=.a
  645. EXEEXT=
  646. FPCMADE=fpcmade.sun
  647. ZIPSUFFIX=sun
  648. endif
  649. ifeq ($(OS_TARGET),qnx)
  650. PPUEXT=.ppu
  651. ASMEXT=.s
  652. OEXT=.o
  653. SMARTEXT=.sl
  654. STATICLIBEXT=.a
  655. EXEEXT=
  656. FPCMADE=fpcmade.qnx
  657. ZIPSUFFIX=qnx
  658. endif
  659. ifeq ($(OS_TARGET),netware)
  660. STATICLIBPREFIX=
  661. PPUEXT=.ppu
  662. OEXT=.o
  663. ASMEXT=.s
  664. SMARTEXT=.sl
  665. STATICLIBEXT=.a
  666. SHAREDLIBEXT=.nlm
  667. FPCMADE=fpcmade.nw
  668. ZIPSUFFIX=nw
  669. EXEEXT=.nlm
  670. endif
  671. ifeq ($(OS_TARGET),macos)
  672. PPUEXT=.ppu
  673. ASMEXT=.s
  674. OEXT=.o
  675. SMARTEXT=.sl
  676. STATICLIBEXT=.a
  677. EXEEXT=
  678. FPCMADE=fpcmade.mcc
  679. endif
  680. endif
  681. ifndef ECHO
  682. ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
  683. ifeq ($(ECHO),)
  684. ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
  685. ifeq ($(ECHO),)
  686. ECHO=
  687. else
  688. ECHO:=$(firstword $(ECHO))
  689. endif
  690. else
  691. ECHO:=$(firstword $(ECHO))
  692. endif
  693. endif
  694. export ECHO
  695. ifndef DATE
  696. DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
  697. ifeq ($(DATE),)
  698. DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
  699. ifeq ($(DATE),)
  700. DATE=
  701. else
  702. DATE:=$(firstword $(DATE))
  703. endif
  704. else
  705. DATE:=$(firstword $(DATE))
  706. endif
  707. endif
  708. export DATE
  709. ifndef GINSTALL
  710. GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
  711. ifeq ($(GINSTALL),)
  712. GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
  713. ifeq ($(GINSTALL),)
  714. GINSTALL=
  715. else
  716. GINSTALL:=$(firstword $(GINSTALL))
  717. endif
  718. else
  719. GINSTALL:=$(firstword $(GINSTALL))
  720. endif
  721. endif
  722. export GINSTALL
  723. ifndef CPPROG
  724. CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
  725. ifeq ($(CPPROG),)
  726. CPPROG=
  727. else
  728. CPPROG:=$(firstword $(CPPROG))
  729. endif
  730. endif
  731. export CPPROG
  732. ifndef RMPROG
  733. RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
  734. ifeq ($(RMPROG),)
  735. RMPROG=
  736. else
  737. RMPROG:=$(firstword $(RMPROG))
  738. endif
  739. endif
  740. export RMPROG
  741. ifndef MVPROG
  742. MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
  743. ifeq ($(MVPROG),)
  744. MVPROG=
  745. else
  746. MVPROG:=$(firstword $(MVPROG))
  747. endif
  748. endif
  749. export MVPROG
  750. ifndef ECHOREDIR
  751. ECHOREDIR:=$(subst /,$(PATHSEP),$(ECHO))
  752. endif
  753. ifndef COPY
  754. COPY:=$(CPPROG) -fp
  755. endif
  756. ifndef COPYTREE
  757. COPYTREE:=$(CPPROG) -rfp
  758. endif
  759. ifndef MOVE
  760. MOVE:=$(MVPROG) -f
  761. endif
  762. ifndef DEL
  763. DEL:=$(RMPROG) -f
  764. endif
  765. ifndef DELTREE
  766. DELTREE:=$(RMPROG) -rf
  767. endif
  768. ifndef INSTALL
  769. ifdef inUnix
  770. INSTALL:=$(GINSTALL) -c -m 644
  771. else
  772. INSTALL:=$(COPY)
  773. endif
  774. endif
  775. ifndef INSTALLEXE
  776. ifdef inUnix
  777. INSTALLEXE:=$(GINSTALL) -c -m 755
  778. else
  779. INSTALLEXE:=$(COPY)
  780. endif
  781. endif
  782. ifndef MKDIR
  783. MKDIR:=$(GINSTALL) -m 755 -d
  784. endif
  785. export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
  786. ifndef PPUMOVE
  787. PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
  788. ifeq ($(PPUMOVE),)
  789. PPUMOVE=
  790. else
  791. PPUMOVE:=$(firstword $(PPUMOVE))
  792. endif
  793. endif
  794. export PPUMOVE
  795. ifndef FPCMAKE
  796. FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
  797. ifeq ($(FPCMAKE),)
  798. FPCMAKE=
  799. else
  800. FPCMAKE:=$(firstword $(FPCMAKE))
  801. endif
  802. endif
  803. export FPCMAKE
  804. ifndef ZIPPROG
  805. ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
  806. ifeq ($(ZIPPROG),)
  807. ZIPPROG=
  808. else
  809. ZIPPROG:=$(firstword $(ZIPPROG))
  810. endif
  811. endif
  812. export ZIPPROG
  813. ifndef TARPROG
  814. TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
  815. ifeq ($(TARPROG),)
  816. TARPROG=
  817. else
  818. TARPROG:=$(firstword $(TARPROG))
  819. endif
  820. endif
  821. export TARPROG
  822. ASNAME=$(BINUTILSPREFIX)as
  823. LDNAME=$(BINUTILSPREFIX)ld
  824. ARNAME=$(BINUTILSPREFIX)ar
  825. RCNAME=$(BINUTILSPREFIX)rc
  826. ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
  827. ifeq ($(OS_TARGET),win32)
  828. ASNAME=asw
  829. LDNAME=ldw
  830. ARNAME=arw
  831. endif
  832. endif
  833. ifndef ASPROG
  834. ifdef CROSSBINDIR
  835. ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
  836. else
  837. ASPROG=$(ASNAME)
  838. endif
  839. endif
  840. ifndef LDPROG
  841. ifdef CROSSBINDIR
  842. LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
  843. else
  844. LDPROG=$(LDNAME)
  845. endif
  846. endif
  847. ifndef RCPROG
  848. ifdef CROSSBINDIR
  849. RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
  850. else
  851. RCPROG=$(RCNAME)
  852. endif
  853. endif
  854. ifndef ARPROG
  855. ifdef CROSSBINDIR
  856. ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
  857. else
  858. ARPROG=$(ARNAME)
  859. endif
  860. endif
  861. AS=$(ASPROG)
  862. LD=$(LDPROG)
  863. RC=$(RCPROG)
  864. AR=$(ARPROG)
  865. PPAS=ppas$(BATCHEXT)
  866. ifdef inUnix
  867. LDCONFIG=ldconfig
  868. else
  869. LDCONFIG=
  870. endif
  871. ifdef DATE
  872. DATESTR:=$(shell $(DATE) +%Y%m%d)
  873. else
  874. DATESTR=
  875. endif
  876. ifndef UPXPROG
  877. ifeq ($(OS_TARGET),go32v2)
  878. UPXPROG:=1
  879. endif
  880. ifeq ($(OS_TARGET),win32)
  881. UPXPROG:=1
  882. endif
  883. ifdef UPXPROG
  884. UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
  885. ifeq ($(UPXPROG),)
  886. UPXPROG=
  887. else
  888. UPXPROG:=$(firstword $(UPXPROG))
  889. endif
  890. else
  891. UPXPROG=
  892. endif
  893. endif
  894. export UPXPROG
  895. ZIPOPT=-9
  896. ZIPEXT=.zip
  897. ifeq ($(USETAR),bz2)
  898. TAROPT=vI
  899. TAREXT=.tar.bz2
  900. else
  901. TAROPT=vz
  902. TAREXT=.tar.gz
  903. endif
  904. ifndef NOCPUDEF
  905. override FPCOPTDEF=$(CPU_TARGET)
  906. endif
  907. ifneq ($(OS_TARGET),$(OS_SOURCE))
  908. override FPCOPT+=-T$(OS_TARGET)
  909. endif
  910. ifeq ($(OS_SOURCE),openbsd)
  911. override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
  912. endif
  913. ifndef CROSSBOOTSTRAP
  914. ifneq ($(BINUTILSPREFIX),)
  915. override FPCOPT+=-XP$(BINUTILSPREFIX)
  916. endif
  917. endif
  918. ifdef UNITDIR
  919. override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
  920. endif
  921. ifdef LIBDIR
  922. override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
  923. endif
  924. ifdef OBJDIR
  925. override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
  926. endif
  927. ifdef INCDIR
  928. override FPCOPT+=$(addprefix -Fi,$(INCDIR))
  929. endif
  930. ifdef LINKSMART
  931. override FPCOPT+=-XX
  932. endif
  933. ifdef CREATESMART
  934. override FPCOPT+=-CX
  935. endif
  936. ifdef DEBUG
  937. override FPCOPT+=-gl
  938. override FPCOPTDEF+=DEBUG
  939. endif
  940. ifdef RELEASE
  941. ifeq ($(CPU_TARGET),i386)
  942. FPCCPUOPT:=-OG2p3
  943. else
  944. FPCCPUOPT:=
  945. endif
  946. override FPCOPT+=-Xs $(FPCCPUOPT) -n
  947. override FPCOPTDEF+=RELEASE
  948. endif
  949. ifdef STRIP
  950. override FPCOPT+=-Xs
  951. endif
  952. ifdef OPTIMIZE
  953. ifeq ($(CPU_TARGET),i386)
  954. override FPCOPT+=-OG2p3
  955. endif
  956. endif
  957. ifdef VERBOSE
  958. override FPCOPT+=-vwni
  959. endif
  960. ifdef COMPILER_OPTIONS
  961. override FPCOPT+=$(COMPILER_OPTIONS)
  962. endif
  963. ifdef COMPILER_UNITDIR
  964. override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
  965. endif
  966. ifdef COMPILER_LIBRARYDIR
  967. override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
  968. endif
  969. ifdef COMPILER_OBJECTDIR
  970. override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
  971. endif
  972. ifdef COMPILER_INCLUDEDIR
  973. override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
  974. endif
  975. ifdef CROSSBINDIR
  976. override FPCOPT+=-FD$(CROSSBINDIR)
  977. endif
  978. ifdef COMPILER_TARGETDIR
  979. override FPCOPT+=-FE$(COMPILER_TARGETDIR)
  980. ifeq ($(COMPILER_TARGETDIR),.)
  981. override TARGETDIRPREFIX=
  982. else
  983. override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
  984. endif
  985. endif
  986. ifdef COMPILER_UNITTARGETDIR
  987. override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
  988. ifeq ($(COMPILER_UNITTARGETDIR),.)
  989. override UNITTARGETDIRPREFIX=
  990. else
  991. override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
  992. endif
  993. else
  994. ifdef COMPILER_TARGETDIR
  995. override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
  996. override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
  997. endif
  998. endif
  999. ifeq ($(OS_TARGET),linux)
  1000. ifeq ($(FPC_VERSION),1.0.6)
  1001. override FPCOPTDEF+=HASUNIX
  1002. endif
  1003. endif
  1004. ifdef OPT
  1005. override FPCOPT+=$(OPT)
  1006. endif
  1007. ifdef FPCOPTDEF
  1008. override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
  1009. endif
  1010. ifdef CFGFILE
  1011. override FPCOPT+=@$(CFGFILE)
  1012. endif
  1013. ifdef USEENV
  1014. override FPCEXTCMD:=$(FPCOPT)
  1015. override FPCOPT:=!FPCEXTCMD
  1016. export FPCEXTCMD
  1017. endif
  1018. override COMPILER:=$(FPC) $(FPCOPT)
  1019. ifeq (,$(findstring -s ,$(COMPILER)))
  1020. EXECPPAS=
  1021. else
  1022. ifeq ($(FULL_SOURCE),$(FULL_TARGET))
  1023. EXECPPAS:=@$(PPAS)
  1024. endif
  1025. endif
  1026. .PHONY: fpc_loaders
  1027. ifdef TARGET_LOADERS
  1028. override ALLTARGET+=fpc_loaders
  1029. override CLEANTARGET+=fpc_loaders_clean
  1030. override INSTALLTARGET+=fpc_loaders_install
  1031. override LOADEROFILES:=$(addsuffix $(OEXT),$(TARGET_LOADERS))
  1032. endif
  1033. %$(OEXT): %$(LOADEREXT)
  1034. $(AS) -o $*$(OEXT) $<
  1035. fpc_loaders: $(LOADEROFILES)
  1036. fpc_loaders_clean:
  1037. -$(DEL) $(LOADEROFILES)
  1038. fpc_loaders_install:
  1039. $(MKDIR) $(INSTALL_UNITDIR)
  1040. $(INSTALL) $(LOADEROFILES) $(INSTALL_UNITDIR)
  1041. .PHONY: fpc_units
  1042. ifdef TARGET_UNITS
  1043. override ALLTARGET+=fpc_units
  1044. override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
  1045. override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
  1046. override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
  1047. override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
  1048. endif
  1049. fpc_units: $(UNITPPUFILES)
  1050. ifdef TARGET_RSTS
  1051. override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
  1052. override CLEANRSTFILES+=$(RSTFILES)
  1053. endif
  1054. .PHONY: fpc_all fpc_smart fpc_debug fpc_release
  1055. $(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
  1056. @$(ECHOREDIR) Compiled > $(FPCMADE)
  1057. fpc_all: $(FPCMADE)
  1058. fpc_smart:
  1059. $(MAKE) all LINKSMART=1 CREATESMART=1
  1060. fpc_debug:
  1061. $(MAKE) all DEBUG=1
  1062. fpc_release:
  1063. $(MAKE) all RELEASE=1
  1064. .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .dpr .pp .rc .res
  1065. %$(PPUEXT): %.pp
  1066. $(COMPILER) $<
  1067. $(EXECPPAS)
  1068. %$(PPUEXT): %.pas
  1069. $(COMPILER) $<
  1070. $(EXECPPAS)
  1071. %$(EXEEXT): %.pp
  1072. $(COMPILER) $<
  1073. $(EXECPPAS)
  1074. %$(EXEEXT): %.pas
  1075. $(COMPILER) $<
  1076. $(EXECPPAS)
  1077. %$(EXEEXT): %.dpr
  1078. $(COMPILER) $<
  1079. $(EXECPPAS)
  1080. %.res: %.rc
  1081. windres -i $< -o $@
  1082. vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  1083. vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  1084. vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  1085. vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
  1086. .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
  1087. ifdef INSTALL_UNITS
  1088. override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
  1089. endif
  1090. ifdef INSTALL_BUILDUNIT
  1091. override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
  1092. endif
  1093. ifdef INSTALLPPUFILES
  1094. override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
  1095. override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
  1096. override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES)))
  1097. override INSTALL_CREATEPACKAGEFPC=1
  1098. endif
  1099. ifdef INSTALLEXEFILES
  1100. override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
  1101. endif
  1102. fpc_install: all $(INSTALLTARGET)
  1103. ifdef INSTALLEXEFILES
  1104. $(MKDIR) $(INSTALL_BINDIR)
  1105. ifdef UPXPROG
  1106. -$(UPXPROG) $(INSTALLEXEFILES)
  1107. endif
  1108. $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
  1109. endif
  1110. ifdef INSTALL_CREATEPACKAGEFPC
  1111. ifdef FPCMAKE
  1112. ifdef PACKAGE_VERSION
  1113. ifneq ($(wildcard Makefile.fpc),)
  1114. $(FPCMAKE) -p -T$(OS_TARGET) Makefile.fpc
  1115. $(MKDIR) $(INSTALL_UNITDIR)
  1116. $(INSTALL) Package.fpc $(INSTALL_UNITDIR)
  1117. endif
  1118. endif
  1119. endif
  1120. endif
  1121. ifdef INSTALLPPUFILES
  1122. $(MKDIR) $(INSTALL_UNITDIR)
  1123. $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
  1124. ifneq ($(INSTALLPPULINKFILES),)
  1125. $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
  1126. endif
  1127. ifneq ($(wildcard $(LIB_FULLNAME)),)
  1128. $(MKDIR) $(INSTALL_LIBDIR)
  1129. $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
  1130. ifdef inUnix
  1131. ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
  1132. endif
  1133. endif
  1134. endif
  1135. ifdef INSTALL_FILES
  1136. $(MKDIR) $(INSTALL_DATADIR)
  1137. $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
  1138. endif
  1139. fpc_sourceinstall: distclean
  1140. $(MKDIR) $(INSTALL_SOURCEDIR)
  1141. $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
  1142. fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
  1143. ifdef HASEXAMPLES
  1144. $(MKDIR) $(INSTALL_EXAMPLEDIR)
  1145. endif
  1146. ifdef EXAMPLESOURCEFILES
  1147. $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
  1148. endif
  1149. ifdef TARGET_EXAMPLEDIRS
  1150. $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
  1151. endif
  1152. .PHONY: fpc_clean fpc_cleanall fpc_distclean
  1153. ifdef EXEFILES
  1154. override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
  1155. endif
  1156. ifdef CLEAN_UNITS
  1157. override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
  1158. endif
  1159. ifdef CLEANPPUFILES
  1160. override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
  1161. override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
  1162. override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
  1163. endif
  1164. fpc_clean: $(CLEANTARGET)
  1165. ifdef CLEANEXEFILES
  1166. -$(DEL) $(CLEANEXEFILES)
  1167. endif
  1168. ifdef CLEANPPUFILES
  1169. -$(DEL) $(CLEANPPUFILES)
  1170. endif
  1171. ifneq ($(CLEANPPULINKFILES),)
  1172. -$(DEL) $(CLEANPPULINKFILES)
  1173. endif
  1174. ifdef CLEANRSTFILES
  1175. -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
  1176. endif
  1177. ifdef CLEAN_FILES
  1178. -$(DEL) $(CLEAN_FILES)
  1179. endif
  1180. ifdef LIB_NAME
  1181. -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
  1182. endif
  1183. -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
  1184. fpc_distclean: clean
  1185. ifdef COMPILER_UNITTARGETDIR
  1186. TARGETDIRCLEAN=fpc_clean
  1187. endif
  1188. fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
  1189. ifdef CLEANEXEFILES
  1190. -$(DEL) $(CLEANEXEFILES)
  1191. endif
  1192. -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
  1193. -$(DELTREE) *$(SMARTEXT)
  1194. -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
  1195. ifdef AOUTEXT
  1196. -$(DEL) *$(AOUTEXT)
  1197. endif
  1198. .PHONY: fpc_baseinfo
  1199. override INFORULES+=fpc_baseinfo
  1200. fpc_baseinfo:
  1201. @$(ECHO)
  1202. @$(ECHO) == Package info ==
  1203. @$(ECHO) Package Name..... $(PACKAGE_NAME)
  1204. @$(ECHO) Package Version.. $(PACKAGE_VERSION)
  1205. @$(ECHO)
  1206. @$(ECHO) == Configuration info ==
  1207. @$(ECHO)
  1208. @$(ECHO) FPC.......... $(FPC)
  1209. @$(ECHO) FPC Version.. $(FPC_VERSION)
  1210. @$(ECHO) Source CPU... $(CPU_SOURCE)
  1211. @$(ECHO) Target CPU... $(CPU_TARGET)
  1212. @$(ECHO) Source OS.... $(OS_SOURCE)
  1213. @$(ECHO) Target OS.... $(OS_TARGET)
  1214. @$(ECHO) Full Source.. $(FULL_SOURCE)
  1215. @$(ECHO) Full Target.. $(FULL_TARGET)
  1216. @$(ECHO)
  1217. @$(ECHO) == Directory info ==
  1218. @$(ECHO)
  1219. @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)
  1220. @$(ECHO)
  1221. @$(ECHO) Basedir......... $(BASEDIR)
  1222. @$(ECHO) FPCDir.......... $(FPCDIR)
  1223. @$(ECHO) CrossBinDir..... $(CROSSBINDIR)
  1224. @$(ECHO) UnitsDir........ $(UNITSDIR)
  1225. @$(ECHO) PackagesDir..... $(PACKAGESDIR)
  1226. @$(ECHO)
  1227. @$(ECHO) GCC library..... $(GCCLIBDIR)
  1228. @$(ECHO) Other library... $(OTHERLIBDIR)
  1229. @$(ECHO)
  1230. @$(ECHO) == Tools info ==
  1231. @$(ECHO)
  1232. @$(ECHO) As........ $(AS)
  1233. @$(ECHO) Ld........ $(LD)
  1234. @$(ECHO) Ar........ $(AR)
  1235. @$(ECHO) Rc........ $(RC)
  1236. @$(ECHO)
  1237. @$(ECHO) Mv........ $(MVPROG)
  1238. @$(ECHO) Cp........ $(CPPROG)
  1239. @$(ECHO) Rm........ $(RMPROG)
  1240. @$(ECHO) GInstall.. $(GINSTALL)
  1241. @$(ECHO) Echo...... $(ECHO)
  1242. @$(ECHO) Shell..... $(SHELL)
  1243. @$(ECHO) Date...... $(DATE)
  1244. @$(ECHO) FPCMake... $(FPCMAKE)
  1245. @$(ECHO) PPUMove... $(PPUMOVE)
  1246. @$(ECHO) Upx....... $(UPXPROG)
  1247. @$(ECHO) Zip....... $(ZIPPROG)
  1248. @$(ECHO)
  1249. @$(ECHO) == Object info ==
  1250. @$(ECHO)
  1251. @$(ECHO) Target Loaders........ $(TARGET_LOADERS)
  1252. @$(ECHO) Target Units.......... $(TARGET_UNITS)
  1253. @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)
  1254. @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)
  1255. @$(ECHO) Target Dirs........... $(TARGET_DIRS)
  1256. @$(ECHO) Target Examples....... $(TARGET_EXAMPLES)
  1257. @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
  1258. @$(ECHO)
  1259. @$(ECHO) Clean Units......... $(CLEAN_UNITS)
  1260. @$(ECHO) Clean Files......... $(CLEAN_FILES)
  1261. @$(ECHO)
  1262. @$(ECHO) Install Units....... $(INSTALL_UNITS)
  1263. @$(ECHO) Install Files....... $(INSTALL_FILES)
  1264. @$(ECHO)
  1265. @$(ECHO) == Install info ==
  1266. @$(ECHO)
  1267. @$(ECHO) DateStr.............. $(DATESTR)
  1268. @$(ECHO) ZipPrefix............ $(ZIPPREFIX)
  1269. @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
  1270. @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)
  1271. @$(ECHO)
  1272. @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)
  1273. @$(ECHO) Install binary dir... $(INSTALL_BINDIR)
  1274. @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)
  1275. @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)
  1276. @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)
  1277. @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)
  1278. @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)
  1279. @$(ECHO) Install data dir..... $(INSTALL_DATADIR)
  1280. @$(ECHO)
  1281. @$(ECHO) Dist destination dir. $(DIST_DESTDIR)
  1282. @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)
  1283. @$(ECHO)
  1284. .PHONY: fpc_info
  1285. fpc_info: $(INFORULES)
  1286. .PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
  1287. fpc_makefile_dirs
  1288. fpc_makefile:
  1289. $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
  1290. fpc_makefile_sub1:
  1291. ifdef TARGET_DIRS
  1292. $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
  1293. endif
  1294. ifdef TARGET_EXAMPLEDIRS
  1295. $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
  1296. endif
  1297. fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
  1298. fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
  1299. fpc_makefiles: fpc_makefile fpc_makefile_dirs
  1300. all: fpc_all
  1301. debug: fpc_debug
  1302. smart: fpc_smart
  1303. release: fpc_release
  1304. examples:
  1305. shared:
  1306. install: fpc_install
  1307. sourceinstall: fpc_sourceinstall
  1308. exampleinstall: fpc_exampleinstall
  1309. distinstall:
  1310. zipinstall:
  1311. zipsourceinstall:
  1312. zipexampleinstall:
  1313. zipdistinstall:
  1314. clean: fpc_clean
  1315. distclean: fpc_distclean
  1316. cleanall: fpc_cleanall
  1317. info: fpc_info
  1318. makefiles: fpc_makefiles
  1319. .PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
  1320. ifneq ($(wildcard fpcmake.loc),)
  1321. include fpcmake.loc
  1322. endif
  1323. SYSTEMPPU=$(addsuffix $(PPUEXT),$(SYSTEMUNIT))
  1324. include $(INC)/makefile.inc
  1325. SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
  1326. include $(PROCINC)/makefile.cpu
  1327. SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
  1328. SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
  1329. wprt0$(OEXT) : $(PRT0).as
  1330. $(AS) -o wprt0$(OEXT) $(PRT0).as
  1331. gprt0$(OEXT) : gprt0.as
  1332. $(AS) -o gprt0$(OEXT) gprt0.as
  1333. wdllprt0$(OEXT) : wdllprt0.as
  1334. $(AS) -o wdllprt0$(OEXT) wdllprt0.as
  1335. $(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp win32.inc $(SYSDEPS)
  1336. $(COMPILER) -Us -Sg $(SYSTEMUNIT).pp
  1337. systhrds$(PPUEXT): systhrds.pp $(INC)/threadh.inc $(SYSTEMUNIT)$(PPUEXT)
  1338. objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
  1339. $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp
  1340. strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc\
  1341. $(PROCINC)/strings.inc $(PROCINC)/stringss.inc\
  1342. $(SYSTEMUNIT)$(PPUEXT)
  1343. windows$(PPUEXT) : windows.pp $(WINDOWS_SOURCE_FILES) $(SYSTEMUNIT)$(PPUEXT)
  1344. $(COMPILER) -I$(WININC) windows.pp
  1345. messages$(PPUEXT): messages.pp $(SYSTEMUNIT)$(PPUEXT)
  1346. $(COMPILER) -I$(WININC) messages.pp
  1347. ole2$(PPUEXT) : ole2.pp windows$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1348. activex$(PPUEXT) : activex.pp $(WININC)/objbase.inc windows$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) types$(PPUEXT)
  1349. opengl32$(PPUEXT) : opengl32.pp windows$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1350. winsock$(PPUEXT) : winsock.pp windows$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1351. sockets$(PPUEXT) : sockets.pp windows$(PPUEXT) winsock$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  1352. $(INC)/sockets.inc $(INC)/socketsh.inc
  1353. initc$(PPUEXT) : initc.pp $(SYSTEMUNIT)$(PPUEXT)
  1354. wincrt$(PPUEXT) : wincrt.pp $(SYSTEMUNIT)$(PPUEXT) windows$(PPUEXT) graph$(PPUEXT)
  1355. winmouse$(PPUEXT) : winmouse.pp $(SYSTEMUNIT)$(PPUEXT) windows$(PPUEXT) graph$(PPUEXT)
  1356. dynlibs$(PPUEXT) : $(INC)/dynlibs.pp windows$(PPUEXT)
  1357. dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1358. crt$(PPUEXT) : crt.pp $(INC)/textrec.inc $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) dos$(PPUEXT) windows$(PPUEXT)
  1359. objects$(PPUEXT) : $(INC)/objects.pp $(SYSTEMUNIT)$(PPUEXT)
  1360. include $(GRAPHDIR)/makefile.inc
  1361. GRAPHINCDEPS=$(addprefix $(GRAPHDIR)/,$(GRAPHINCNAMES))
  1362. graph$(PPUEXT) : graph.pp strings$(PPUEXT) windows$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  1363. $(GRAPHINCDEPS)
  1364. $(COMPILER) -I$(GRAPHDIR) graph.pp
  1365. sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
  1366. objpas$(PPUEXT) dos$(PPUEXT) windows$(PPUEXT)
  1367. $(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp
  1368. classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
  1369. sysutils$(PPUEXT) typinfo$(PPUEXT)
  1370. $(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp
  1371. typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
  1372. $(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
  1373. math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)
  1374. $(COMPILER) $(OBJPASDIR)/math.pp
  1375. varutils$(PPUEXT) : varutils.pp $(OBJPASDIR)/cvarutil.inc \
  1376. objpas$(PPUEXT) $(OBJPASDIR)/varutilh.inc
  1377. $(COMPILER) -I$(OBJPASDIR) varutils.pp
  1378. types$(PPUEXT) : $(OBJPASDIR)/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1379. $(COMPILER) $(OBJPASDIR)/types.pp
  1380. comobj$(PPUEXT) : comobj.pp activex$(PPUEXT) sysutils$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) $(OBJPASDIR)/comobjh.inc $(OBJPASDIR)/comobj.inc
  1381. $(COMPILER) -I$(OBJPASDIR) comobj.pp
  1382. rtlconst$(PPUEXT) : $(OBJPASDIR)/rtlconst.pp
  1383. $(COMPILER) $(OBJPASDIR)/rtlconst.pp
  1384. sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp
  1385. $(COMPILER) $(OBJPASDIR)/sysconst.pp
  1386. dateutils$(PPUEXT) : $(OBJPASDIR)/dateutils.pp
  1387. $(COMPILER) $(OBJPASDIR)/dateutils.pp
  1388. cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
  1389. mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1390. getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
  1391. heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
  1392. $(COMPILER) -Sg $(INC)/heaptrc.pp
  1393. lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMUNIT)$(PPUEXT)
  1394. charset$(PPUEXT) : $(INC)/charset.pp $(SYSTEMUNIT)$(PPUEXT)
  1395. ucomplex$(PPUEXT) : $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1396. callspec$(PPUEXT) : $(INC)/callspec.pp $(SYSTEMUNIT)$(PPUEXT)