Makefile 32 KB

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