Makefile 28 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211
  1. #
  2. # Don't edit, this file is generated by FPCMake Version 1.1 [2002/01/06]
  3. #
  4. default: all
  5. override PATH:=$(subst \,/,$(PATH))
  6. ifeq ($(findstring ;,$(PATH)),)
  7. inUnix=1
  8. SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
  9. else
  10. SEARCHPATH:=$(subst ;, ,$(PATH))
  11. endif
  12. PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
  13. ifeq ($(PWD),)
  14. PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
  15. ifeq ($(PWD),)
  16. nopwd:
  17. @echo You need the GNU utils package to use this Makefile!
  18. @echo Get ftp://ftp.freepascal.org/pub/fpc/dist/go32v2/utilgo32.zip
  19. @exit
  20. else
  21. PWD:=$(firstword $(PWD))
  22. SRCEXEEXT=
  23. endif
  24. else
  25. PWD:=$(firstword $(PWD))
  26. SRCEXEEXT=.exe
  27. endif
  28. ifndef inUnix
  29. ifeq ($(OS),Windows_NT)
  30. inWinNT=1
  31. else
  32. ifdef OS2_SHELL
  33. inOS2=1
  34. endif
  35. endif
  36. else
  37. ifneq ($(findstring cygwin,$(MACHTYPE)),)
  38. inCygWin=1
  39. endif
  40. endif
  41. ifeq ($(OS_TARGET),freebsd)
  42. BSDhier=1
  43. endif
  44. ifeq ($(OS_TARGET),netbsd)
  45. BSDhier=1
  46. endif
  47. ifdef inUnix
  48. BATCHEXT=.sh
  49. else
  50. ifdef inOS2
  51. BATCHEXT=.cmd
  52. else
  53. BATCHEXT=.bat
  54. endif
  55. endif
  56. ifdef inUnix
  57. PATHSEP=/
  58. else
  59. PATHSEP:=$(subst /,\,/)
  60. endif
  61. ifdef PWD
  62. BASEDIR:=$(subst \,/,$(shell $(PWD)))
  63. ifdef inCygWin
  64. ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
  65. BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
  66. BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
  67. BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
  68. endif
  69. endif
  70. else
  71. BASEDIR=.
  72. endif
  73. override DEFAULT_FPCDIR=../../..
  74. ifndef FPC
  75. ifdef PP
  76. FPC=$(PP)
  77. endif
  78. endif
  79. ifndef FPC
  80. FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
  81. ifneq ($(FPCPROG),)
  82. FPCPROG:=$(firstword $(FPCPROG))
  83. FPC:=$(shell $(FPCPROG) -PB)
  84. ifneq ($(findstring Error,$(FPC)),)
  85. override FPC=ppc386
  86. endif
  87. else
  88. override FPC=ppc386
  89. endif
  90. endif
  91. override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
  92. override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
  93. ifndef FPC_VERSION
  94. FPC_VERSION:=$(shell $(FPC) -iV)
  95. endif
  96. export FPC FPC_VERSION
  97. ifndef CPU_TARGET
  98. CPU_TARGET:=$(shell $(FPC) -iTP)
  99. endif
  100. ifndef CPU_SOURCE
  101. CPU_SOURCE:=$(shell $(FPC) -iSP)
  102. endif
  103. ifndef OS_TARGET
  104. OS_TARGET:=$(shell $(FPC) -iTO)
  105. endif
  106. ifndef OS_SOURCE
  107. OS_SOURCE:=$(shell $(FPC) -iSO)
  108. endif
  109. FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
  110. FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
  111. ifneq ($(FULL_TARGET),$(FULL_SOURCE))
  112. CROSSCOMPILE=1
  113. endif
  114. export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE CROSSCOMPILE
  115. ifdef FPCDIR
  116. override FPCDIR:=$(subst \,/,$(FPCDIR))
  117. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  118. override FPCDIR=wrong
  119. endif
  120. else
  121. override FPCDIR=wrong
  122. endif
  123. ifdef DEFAULT_FPCDIR
  124. ifeq ($(FPCDIR),wrong)
  125. override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
  126. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  127. override FPCDIR=wrong
  128. endif
  129. endif
  130. endif
  131. ifeq ($(FPCDIR),wrong)
  132. ifdef inUnix
  133. override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
  134. ifeq ($(wildcard $(FPCDIR)/units),)
  135. override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
  136. endif
  137. else
  138. override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
  139. override FPCDIR:=$(FPCDIR)/..
  140. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  141. override FPCDIR:=$(FPCDIR)/..
  142. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  143. override FPCDIR=c:/pp
  144. endif
  145. endif
  146. endif
  147. endif
  148. ifndef CROSSDIR
  149. CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
  150. endif
  151. ifndef CROSSTARGETDIR
  152. CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
  153. endif
  154. ifdef CROSSCOMPILE
  155. UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
  156. ifeq ($(UNITSDIR),)
  157. UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
  158. endif
  159. else
  160. UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
  161. endif
  162. PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages)
  163. 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
  164. override INSTALL_FPCPACKAGE=y
  165. ifdef REQUIRE_UNITSDIR
  166. override UNITSDIR+=$(REQUIRE_UNITSDIR)
  167. endif
  168. ifdef REQUIRE_PACKAGESDIR
  169. override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
  170. endif
  171. ifdef ZIPINSTALL
  172. ifeq ($(OS_TARGET),linux)
  173. UNIXINSTALLDIR=1
  174. endif
  175. ifeq ($(OS_TARGET),freebsd)
  176. UNIXINSTALLDIR=1
  177. endif
  178. ifeq ($(OS_TARGET),netbsd)
  179. UNIXINSTALLDIR=1
  180. endif
  181. ifeq ($(OS_TARGET),sunos)
  182. UNIXINSTALLDIR=1
  183. endif
  184. else
  185. ifeq ($(OS_SOURCE),linux)
  186. UNIXINSTALLDIR=1
  187. endif
  188. ifeq ($(OS_SOURCE),freebsd)
  189. UNIXINSTALLDIR=1
  190. endif
  191. ifeq ($(OS_SOURCE),netbsd)
  192. UNIXINSTALLDIR=1
  193. endif
  194. ifeq ($(OS_TARGET),sunos)
  195. UNIXINSTALLDIR=1
  196. endif
  197. endif
  198. ifndef INSTALL_PREFIX
  199. ifdef PREFIX
  200. INSTALL_PREFIX=$(PREFIX)
  201. endif
  202. endif
  203. ifndef INSTALL_PREFIX
  204. ifdef UNIXINSTALLDIR
  205. INSTALL_PREFIX=/usr/local
  206. else
  207. ifdef INSTALL_FPCPACKAGE
  208. INSTALL_BASEDIR:=/pp
  209. else
  210. INSTALL_BASEDIR:=/$(PACKAGE_NAME)
  211. endif
  212. endif
  213. endif
  214. export INSTALL_PREFIX
  215. ifndef DIST_DESTDIR
  216. DIST_DESTDIR:=$(BASEDIR)
  217. endif
  218. export DIST_DESTDIR
  219. ifndef INSTALL_BASEDIR
  220. ifdef UNIXINSTALLDIR
  221. ifdef INSTALL_FPCPACKAGE
  222. INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
  223. else
  224. INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
  225. endif
  226. else
  227. INSTALL_BASEDIR:=$(INSTALL_PREFIX)
  228. endif
  229. endif
  230. ifndef INSTALL_BINDIR
  231. ifdef UNIXINSTALLDIR
  232. INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
  233. else
  234. INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
  235. ifdef INSTALL_FPCPACKAGE
  236. INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
  237. endif
  238. endif
  239. endif
  240. ifndef INSTALL_UNITDIR
  241. ifdef CROSSCOMPILE
  242. INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
  243. else
  244. INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
  245. endif
  246. ifdef INSTALL_FPCPACKAGE
  247. ifdef PACKAGE_NAME
  248. INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
  249. endif
  250. endif
  251. endif
  252. ifndef INSTALL_LIBDIR
  253. ifdef UNIXINSTALLDIR
  254. INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
  255. else
  256. INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
  257. endif
  258. endif
  259. ifndef INSTALL_SOURCEDIR
  260. ifdef UNIXINSTALLDIR
  261. ifdef INSTALL_FPCPACKAGE
  262. ifdef BSDhier
  263. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/share/src/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  264. else
  265. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/src/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  266. endif
  267. else
  268. ifdef BSDhier
  269. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/share/src/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  270. else
  271. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/src/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  272. endif
  273. endif
  274. else
  275. ifdef INSTALL_FPCPACKAGE
  276. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
  277. else
  278. INSTALL_SOURCEDIRL:=$(INSTALL_BASEDIR)/source
  279. endif
  280. endif
  281. endif
  282. ifndef INSTALL_DOCDIR
  283. ifdef UNIXINSTALLDIR
  284. ifdef INSTALL_FPCPACKAGE
  285. ifdef BSDhier
  286. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/share/doc/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  287. else
  288. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  289. endif
  290. else
  291. ifdef BSDhier
  292. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/share/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  293. else
  294. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  295. endif
  296. endif
  297. else
  298. ifdef INSTALL_FPCPACKAGE
  299. INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
  300. else
  301. INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
  302. endif
  303. endif
  304. endif
  305. ifndef INSTALL_EXAMPLEDIR
  306. ifdef UNIXINSTALLDIR
  307. ifdef INSTALL_FPCPACKAGE
  308. ifdef BSDhier
  309. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  310. else
  311. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
  312. endif
  313. else
  314. ifdef BSDhier
  315. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  316. else
  317. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  318. endif
  319. endif
  320. else
  321. ifdef INSTALL_FPCPACKAGE
  322. INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
  323. else
  324. INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
  325. endif
  326. endif
  327. endif
  328. ifndef INSTALL_DATADIR
  329. INSTALL_DATADIR=$(INSTALL_BASEDIR)
  330. endif
  331. ifdef CROSSCOMPILE
  332. ifndef CROSSBINDIR
  333. CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(FULL_SOURCE))
  334. ifeq ($(CROSSBINDIR),)
  335. CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin/$(FULL_SOURCE))
  336. endif
  337. endif
  338. else
  339. CROSSBINDIR=
  340. endif
  341. ifdef inUnix
  342. ifndef GCCLIBDIR
  343. GCCLIBDIR:=$(shell dirname `(gcc -v 2>&1)| head -n 1| awk '{ print $$4 } '`)
  344. endif
  345. ifeq ($(OS_TARGET),linux)
  346. ifndef OTHERLIBDIR
  347. OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }')
  348. endif
  349. endif
  350. ifeq ($(OS_TARGET),netbsd)
  351. OTHERLIBDIR+=/usr/pkg/lib
  352. endif
  353. export GCCLIBDIR OTHERLIB
  354. endif
  355. LOADEREXT=.as
  356. EXEEXT=.exe
  357. PPLEXT=.ppl
  358. PPUEXT=.ppu
  359. OEXT=.o
  360. ASMEXT=.s
  361. SMARTEXT=.sl
  362. STATICLIBEXT=.a
  363. SHAREDLIBEXT=.so
  364. STATICLIBPREFIX=libp
  365. RSTEXT=.rst
  366. FPCMADE=fpcmade
  367. ifeq ($(OS_TARGET),go32v1)
  368. PPUEXT=.pp1
  369. OEXT=.o1
  370. ASMEXT=.s1
  371. SMARTEXT=.sl1
  372. STATICLIBEXT=.a1
  373. SHAREDLIBEXT=.so1
  374. STATICLIBPREFIX=
  375. FPCMADE=fpcmade.v1
  376. PACKAGESUFFIX=v1
  377. endif
  378. ifeq ($(OS_TARGET),go32v2)
  379. STATICLIBPREFIX=
  380. FPCMADE=fpcmade.dos
  381. ZIPSUFFIX=go32
  382. endif
  383. ifeq ($(OS_TARGET),linux)
  384. EXEEXT=
  385. HASSHAREDLIB=1
  386. FPCMADE=fpcmade.lnx
  387. ZIPSUFFIX=linux
  388. endif
  389. ifeq ($(OS_TARGET),freebsd)
  390. EXEEXT=
  391. HASSHAREDLIB=1
  392. FPCMADE=fpcmade.freebsd
  393. ZIPSUFFIX=freebsd
  394. endif
  395. ifeq ($(OS_TARGET),netbsd)
  396. EXEEXT=
  397. HASSHAREDLIB=1
  398. FPCMADE=fpcmade.netbsd
  399. ZIPSUFFIX=netbsd
  400. endif
  401. ifeq ($(OS_TARGET),win32)
  402. PPUEXT=.ppw
  403. OEXT=.ow
  404. ASMEXT=.sw
  405. SMARTEXT=.slw
  406. STATICLIBEXT=.aw
  407. SHAREDLIBEXT=.dll
  408. FPCMADE=fpcmade.w32
  409. ZIPSUFFIX=w32
  410. endif
  411. ifeq ($(OS_TARGET),os2)
  412. PPUEXT=.ppo
  413. ASMEXT=.so2
  414. OEXT=.oo2
  415. AOUTEXT=.out
  416. SMARTEXT=.so
  417. STATICLIBEXT=.ao2
  418. SHAREDLIBEXT=.dll
  419. FPCMADE=fpcmade.os2
  420. ZIPSUFFIX=emx
  421. endif
  422. ifeq ($(OS_TARGET),amiga)
  423. EXEEXT=
  424. PPUEXT=.ppa
  425. ASMEXT=.asm
  426. OEXT=.o
  427. SMARTEXT=.sl
  428. STATICLIBEXT=.a
  429. SHAREDLIBEXT=.library
  430. FPCMADE=fpcmade.amg
  431. endif
  432. ifeq ($(OS_TARGET),atari)
  433. PPUEXT=.ppt
  434. ASMEXT=.s
  435. OEXT=.o
  436. SMARTEXT=.sl
  437. STATICLIBEXT=.a
  438. EXEEXT=.ttp
  439. FPCMADE=fpcmade.ata
  440. endif
  441. ifeq ($(OS_TARGET),beos)
  442. PPUEXT=.ppu
  443. ASMEXT=.s
  444. OEXT=.o
  445. SMARTEXT=.sl
  446. STATICLIBEXT=.a
  447. EXEEXT=
  448. FPCMADE=fpcmade.be
  449. ZIPSUFFIX=be
  450. endif
  451. ifeq ($(OS_TARGET),sunos)
  452. PPUEXT=.ppu
  453. ASMEXT=.s
  454. OEXT=.o
  455. SMARTEXT=.sl
  456. STATICLIBEXT=.a
  457. EXEEXT=
  458. FPCMADE=fpcmade.sun
  459. ZIPSUFFIX=sun
  460. endif
  461. ifeq ($(OS_TARGET),qnx)
  462. PPUEXT=.ppu
  463. ASMEXT=.s
  464. OEXT=.o
  465. SMARTEXT=.sl
  466. STATICLIBEXT=.a
  467. EXEEXT=
  468. FPCMADE=fpcmade.qnx
  469. ZIPSUFFIX=qnx
  470. endif
  471. ifndef ECHO
  472. ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
  473. ifeq ($(ECHO),)
  474. ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
  475. ifeq ($(ECHO),)
  476. ECHO=
  477. else
  478. ECHO:=$(firstword $(ECHO))
  479. endif
  480. else
  481. ECHO:=$(firstword $(ECHO))
  482. endif
  483. endif
  484. export ECHO
  485. ifndef DATE
  486. DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
  487. ifeq ($(DATE),)
  488. DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
  489. ifeq ($(DATE),)
  490. DATE=
  491. else
  492. DATE:=$(firstword $(DATE))
  493. endif
  494. else
  495. DATE:=$(firstword $(DATE))
  496. endif
  497. endif
  498. export DATE
  499. ifndef GINSTALL
  500. GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
  501. ifeq ($(GINSTALL),)
  502. GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
  503. ifeq ($(GINSTALL),)
  504. GINSTALL=
  505. else
  506. GINSTALL:=$(firstword $(GINSTALL))
  507. endif
  508. else
  509. GINSTALL:=$(firstword $(GINSTALL))
  510. endif
  511. endif
  512. export GINSTALL
  513. ifndef CPPROG
  514. CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
  515. ifeq ($(CPPROG),)
  516. CPPROG=
  517. else
  518. CPPROG:=$(firstword $(CPPROG))
  519. endif
  520. endif
  521. export CPPROG
  522. ifndef RMPROG
  523. RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
  524. ifeq ($(RMPROG),)
  525. RMPROG=
  526. else
  527. RMPROG:=$(firstword $(RMPROG))
  528. endif
  529. endif
  530. export RMPROG
  531. ifndef MVPROG
  532. MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
  533. ifeq ($(MVPROG),)
  534. MVPROG=
  535. else
  536. MVPROG:=$(firstword $(MVPROG))
  537. endif
  538. endif
  539. export MVPROG
  540. ifndef ECHOREDIR
  541. ECHOREDIR:=$(subst /,$(PATHSEP),$(ECHO))
  542. endif
  543. ifndef COPY
  544. COPY:=$(CPPROG) -fp
  545. endif
  546. ifndef COPYTREE
  547. COPYTREE:=$(CPPROG) -rfp
  548. endif
  549. ifndef MOVE
  550. MOVE:=$(MVPROG) -f
  551. endif
  552. ifndef DEL
  553. DEL:=$(RMPROG) -f
  554. endif
  555. ifndef DELTREE
  556. DELTREE:=$(RMPROG) -rf
  557. endif
  558. ifndef INSTALL
  559. ifdef inUnix
  560. INSTALL:=$(GINSTALL) -c -m 644
  561. else
  562. INSTALL:=$(COPY)
  563. endif
  564. endif
  565. ifndef INSTALLEXE
  566. ifdef inUnix
  567. INSTALLEXE:=$(GINSTALL) -c -m 755
  568. else
  569. INSTALLEXE:=$(COPY)
  570. endif
  571. endif
  572. ifndef MKDIR
  573. MKDIR:=$(GINSTALL) -m 755 -d
  574. endif
  575. export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
  576. ifndef PPUMOVE
  577. PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
  578. ifeq ($(PPUMOVE),)
  579. PPUMOVE=
  580. else
  581. PPUMOVE:=$(firstword $(PPUMOVE))
  582. endif
  583. endif
  584. export PPUMOVE
  585. ifndef FPCMAKE
  586. FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
  587. ifeq ($(FPCMAKE),)
  588. FPCMAKE=
  589. else
  590. FPCMAKE:=$(firstword $(FPCMAKE))
  591. endif
  592. endif
  593. export FPCMAKE
  594. ifndef ZIPPROG
  595. ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
  596. ifeq ($(ZIPPROG),)
  597. ZIPPROG=
  598. else
  599. ZIPPROG:=$(firstword $(ZIPPROG))
  600. endif
  601. endif
  602. export ZIPPROG
  603. ifndef TARPROG
  604. TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
  605. ifeq ($(TARPROG),)
  606. TARPROG=
  607. else
  608. TARPROG:=$(firstword $(TARPROG))
  609. endif
  610. endif
  611. export TARPROG
  612. ASNAME=as
  613. LDNAME=ld
  614. ARNAME=ar
  615. RCNAME=rc
  616. ifeq ($(OS_TARGET),win32)
  617. ASNAME=asw
  618. LDNAME=ldw
  619. ARNAME=arw
  620. endif
  621. ifndef ASPROG
  622. ifdef CROSSBINDIR
  623. ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
  624. else
  625. ASPROG=$(ASNAME)
  626. endif
  627. endif
  628. ifndef LDPROG
  629. ifdef CROSSBINDIR
  630. LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
  631. else
  632. LDPROG=$(LDNAME)
  633. endif
  634. endif
  635. ifndef RCPROG
  636. ifdef CROSSBINDIR
  637. RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
  638. else
  639. RCPROG=$(RCNAME)
  640. endif
  641. endif
  642. ifndef ARPROG
  643. ifdef CROSSBINDIR
  644. ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
  645. else
  646. ARPROG=$(ARNAME)
  647. endif
  648. endif
  649. AS=$(ASPROG)
  650. LD=$(LDPROG)
  651. RC=$(RCPROG)
  652. AR=$(ARPROG)
  653. PPAS=ppas$(BATCHEXT)
  654. ifdef inUnix
  655. LDCONFIG=ldconfig
  656. else
  657. LDCONFIG=
  658. endif
  659. ifdef DATE
  660. DATESTR:=$(shell $(DATE) +%Y%m%d)
  661. else
  662. DATESTR=
  663. endif
  664. ifndef UPXPROG
  665. ifeq ($(OS_TARGET),go32v2)
  666. UPXPROG:=1
  667. endif
  668. ifeq ($(OS_TARGET),win32)
  669. UPXPROG:=1
  670. endif
  671. ifdef UPXPROG
  672. UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
  673. ifeq ($(UPXPROG),)
  674. UPXPROG=
  675. else
  676. UPXPROG:=$(firstword $(UPXPROG))
  677. endif
  678. else
  679. UPXPROG=
  680. endif
  681. endif
  682. export UPXPROG
  683. ZIPOPT=-9
  684. ZIPEXT=.zip
  685. ifeq ($(USETAR),bz2)
  686. TAROPT=vI
  687. TAREXT=.tar.bz2
  688. else
  689. TAROPT=vz
  690. TAREXT=.tar.gz
  691. endif
  692. ifeq ($(OS_TARGET),linux)
  693. REQUIRE_PACKAGES_RTL=1
  694. REQUIRE_PACKAGES_X11=1
  695. REQUIRE_PACKAGES_FORMS=1
  696. endif
  697. ifeq ($(OS_TARGET),go32v2)
  698. REQUIRE_PACKAGES_RTL=1
  699. REQUIRE_PACKAGES_X11=1
  700. REQUIRE_PACKAGES_FORMS=1
  701. endif
  702. ifeq ($(OS_TARGET),win32)
  703. REQUIRE_PACKAGES_RTL=1
  704. REQUIRE_PACKAGES_X11=1
  705. REQUIRE_PACKAGES_FORMS=1
  706. endif
  707. ifeq ($(OS_TARGET),os2)
  708. REQUIRE_PACKAGES_RTL=1
  709. REQUIRE_PACKAGES_X11=1
  710. REQUIRE_PACKAGES_FORMS=1
  711. endif
  712. ifeq ($(OS_TARGET),freebsd)
  713. REQUIRE_PACKAGES_RTL=1
  714. REQUIRE_PACKAGES_X11=1
  715. REQUIRE_PACKAGES_FORMS=1
  716. endif
  717. ifeq ($(OS_TARGET),beos)
  718. REQUIRE_PACKAGES_RTL=1
  719. REQUIRE_PACKAGES_X11=1
  720. REQUIRE_PACKAGES_FORMS=1
  721. endif
  722. ifeq ($(OS_TARGET),netbsd)
  723. REQUIRE_PACKAGES_RTL=1
  724. REQUIRE_PACKAGES_X11=1
  725. REQUIRE_PACKAGES_FORMS=1
  726. endif
  727. ifeq ($(OS_TARGET),amiga)
  728. REQUIRE_PACKAGES_RTL=1
  729. REQUIRE_PACKAGES_X11=1
  730. REQUIRE_PACKAGES_FORMS=1
  731. endif
  732. ifeq ($(OS_TARGET),atari)
  733. REQUIRE_PACKAGES_RTL=1
  734. REQUIRE_PACKAGES_X11=1
  735. REQUIRE_PACKAGES_FORMS=1
  736. endif
  737. ifeq ($(OS_TARGET),sunos)
  738. REQUIRE_PACKAGES_RTL=1
  739. REQUIRE_PACKAGES_X11=1
  740. REQUIRE_PACKAGES_FORMS=1
  741. endif
  742. ifeq ($(OS_TARGET),qnx)
  743. REQUIRE_PACKAGES_RTL=1
  744. REQUIRE_PACKAGES_X11=1
  745. REQUIRE_PACKAGES_FORMS=1
  746. endif
  747. ifdef REQUIRE_PACKAGES_RTL
  748. PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/$(OS_TARGET)/Makefile.fpc,$(PACKAGESDIR))))))
  749. ifneq ($(PACKAGEDIR_RTL),)
  750. override COMPILEPACKAGES+=$(PACKAGEDIR_RTL)/$(FPCMADE)
  751. $(PACKAGEDIR_RTL)/$(FPCMADE):
  752. $(MAKE) -C $(PACKAGEDIR_RTL) all
  753. ifneq ($(wildcard $(PACKAGEDIR_RTL)/$(OS_TARGET)),)
  754. UNITDIR_RTL=$(PACKAGEDIR_RTL)/$(OS_TARGET)
  755. else
  756. UNITDIR_RTL=$(PACKAGEDIR_RTL)
  757. endif
  758. else
  759. PACKAGEDIR_RTL=
  760. UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR)))))
  761. ifneq ($(UNITDIR_RTL),)
  762. UNITDIR_RTL:=$(firstword $(UNITDIR_RTL))
  763. else
  764. UNITDIR_RTL=
  765. endif
  766. endif
  767. ifdef UNITDIR_RTL
  768. override COMPILER_UNITDIR+=$(UNITDIR_RTL)
  769. endif
  770. endif
  771. ifdef REQUIRE_PACKAGES_X11
  772. PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
  773. ifneq ($(PACKAGEDIR_X11),)
  774. override COMPILEPACKAGES+=$(PACKAGEDIR_X11)/$(FPCMADE)
  775. $(PACKAGEDIR_X11)/$(FPCMADE):
  776. $(MAKE) -C $(PACKAGEDIR_X11) all
  777. ifneq ($(wildcard $(PACKAGEDIR_X11)/$(OS_TARGET)),)
  778. UNITDIR_X11=$(PACKAGEDIR_X11)/$(OS_TARGET)
  779. else
  780. UNITDIR_X11=$(PACKAGEDIR_X11)
  781. endif
  782. else
  783. PACKAGEDIR_X11=
  784. UNITDIR_X11:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /x11/Package.fpc,$(UNITSDIR)))))
  785. ifneq ($(UNITDIR_X11),)
  786. UNITDIR_X11:=$(firstword $(UNITDIR_X11))
  787. else
  788. UNITDIR_X11=
  789. endif
  790. endif
  791. ifdef UNITDIR_X11
  792. override COMPILER_UNITDIR+=$(UNITDIR_X11)
  793. endif
  794. endif
  795. ifdef REQUIRE_PACKAGES_FORMS
  796. PACKAGEDIR_FORMS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /forms/Makefile.fpc,$(PACKAGESDIR))))))
  797. ifneq ($(PACKAGEDIR_FORMS),)
  798. override COMPILEPACKAGES+=$(PACKAGEDIR_FORMS)/$(FPCMADE)
  799. $(PACKAGEDIR_FORMS)/$(FPCMADE):
  800. $(MAKE) -C $(PACKAGEDIR_FORMS) all
  801. ifneq ($(wildcard $(PACKAGEDIR_FORMS)/$(OS_TARGET)),)
  802. UNITDIR_FORMS=$(PACKAGEDIR_FORMS)/$(OS_TARGET)
  803. else
  804. UNITDIR_FORMS=$(PACKAGEDIR_FORMS)
  805. endif
  806. else
  807. PACKAGEDIR_FORMS=
  808. UNITDIR_FORMS:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /forms/Package.fpc,$(UNITSDIR)))))
  809. ifneq ($(UNITDIR_FORMS),)
  810. UNITDIR_FORMS:=$(firstword $(UNITDIR_FORMS))
  811. else
  812. UNITDIR_FORMS=
  813. endif
  814. endif
  815. ifdef UNITDIR_FORMS
  816. override COMPILER_UNITDIR+=$(UNITDIR_FORMS)
  817. endif
  818. endif
  819. ifndef NOCPUDEF
  820. override FPCOPTDEF=$(CPU_TARGET)
  821. endif
  822. ifneq ($(OS_TARGET),$(OS_SOURCE))
  823. override FPCOPT+=-T$(OS_TARGET)
  824. endif
  825. ifdef UNITDIR
  826. override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
  827. endif
  828. ifdef LIBDIR
  829. override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
  830. endif
  831. ifdef OBJDIR
  832. override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
  833. endif
  834. ifdef INCDIR
  835. override FPCOPT+=$(addprefix -Fi,$(INCDIR))
  836. endif
  837. ifdef LINKSMART
  838. override FPCOPT+=-XX
  839. endif
  840. ifdef CREATESMART
  841. override FPCOPT+=-CX
  842. endif
  843. ifdef DEBUG
  844. override FPCOPT+=-gl
  845. override FPCOPTDEF+=DEBUG
  846. endif
  847. ifdef RELEASE
  848. ifeq ($(CPU_TARGET),i386)
  849. FPCCPUOPT:=-OG2p3
  850. else
  851. FPCCPUOPT:=
  852. endif
  853. override FPCOPT+=-Xs $(FPCCPUOPT) -n
  854. override FPCOPTDEF+=RELEASE
  855. endif
  856. ifdef STRIP
  857. override FPCOPT+=-Xs
  858. endif
  859. ifdef OPTIMIZE
  860. ifeq ($(CPU_TARGET),i386)
  861. override FPCOPT+=-OG2p3
  862. endif
  863. endif
  864. ifdef VERBOSE
  865. override FPCOPT+=-vwni
  866. endif
  867. ifdef COMPILER_OPTIONS
  868. override FPCOPT+=$(COMPILER_OPTIONS)
  869. endif
  870. ifdef COMPILER_UNITDIR
  871. override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
  872. endif
  873. ifdef COMPILER_LIBRARYDIR
  874. override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
  875. endif
  876. ifdef COMPILER_OBJECTDIR
  877. override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
  878. endif
  879. ifdef COMPILER_INCLUDEDIR
  880. override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
  881. endif
  882. ifdef CROSSBINDIR
  883. override FPCOPT+=-FD$(CROSSBINDIR)
  884. endif
  885. ifdef COMPILER_TARGETDIR
  886. override FPCOPT+=-FE$(COMPILER_TARGETDIR)
  887. ifeq ($(COMPILER_TARGETDIR),.)
  888. override TARGETDIRPREFIX=
  889. else
  890. override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
  891. endif
  892. endif
  893. ifdef COMPILER_UNITTARGETDIR
  894. override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
  895. ifeq ($(COMPILER_UNITTARGETDIR),.)
  896. override UNITTARGETDIRPREFIX=
  897. else
  898. override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
  899. endif
  900. else
  901. ifdef COMPILER_TARGETDIR
  902. override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
  903. override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
  904. endif
  905. endif
  906. ifdef GCCLIBDIR
  907. override FPCOPT+=-Fl$(GCCLIBDIR)
  908. endif
  909. ifdef OTHERLIBDIR
  910. override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR))
  911. endif
  912. ifdef OPT
  913. override FPCOPT+=$(OPT)
  914. endif
  915. ifdef FPCOPTDEF
  916. override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
  917. endif
  918. ifdef CFGFILE
  919. override FPCOPT+=@$(CFGFILE)
  920. endif
  921. ifdef USEENV
  922. override FPCEXTCMD:=$(FPCOPT)
  923. override FPCOPT:=!FPCEXTCMD
  924. export FPCEXTCMD
  925. endif
  926. override COMPILER:=$(FPC) $(FPCOPT)
  927. ifeq (,$(findstring -s ,$(COMPILER)))
  928. EXECPPAS=
  929. else
  930. ifeq ($(OS_SOURCE),$(OS_TARGET))
  931. EXECPPAS:=@$(PPAS)
  932. endif
  933. endif
  934. .PHONY: fpc_exes
  935. ifdef TARGET_PROGRAMS
  936. override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
  937. override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
  938. override ALLTARGET+=fpc_exes
  939. override INSTALLEXEFILES+=$(EXEFILES)
  940. override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
  941. ifeq ($(OS_TARGET),os2)
  942. override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
  943. endif
  944. endif
  945. fpc_exes: $(EXEFILES)
  946. ifdef TARGET_RSTS
  947. override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
  948. override CLEANRSTFILES+=$(RSTFILES)
  949. endif
  950. .PHONY: fpc_packages fpc_all fpc_smart fpc_debug
  951. $(FPCMADE): $(ALLTARGET)
  952. @$(ECHOREDIR) Compiled > $(FPCMADE)
  953. fpc_packages: $(COMPILEPACKAGES)
  954. fpc_all: fpc_packages $(FPCMADE)
  955. fpc_smart:
  956. $(MAKE) all LINKSMART=1 CREATESMART=1
  957. fpc_debug:
  958. $(MAKE) all DEBUG=1
  959. .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp .rc .res
  960. %$(PPUEXT): %.pp
  961. $(COMPILER) $<
  962. $(EXECPPAS)
  963. %$(PPUEXT): %.pas
  964. $(COMPILER) $<
  965. $(EXECPPAS)
  966. %$(EXEEXT): %.pp
  967. $(COMPILER) $<
  968. $(EXECPPAS)
  969. %$(EXEEXT): %.pas
  970. $(COMPILER) $<
  971. $(EXECPPAS)
  972. %.res: %.rc
  973. windres -i $< -o $@
  974. vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  975. vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  976. vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
  977. .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
  978. ifdef INSTALL_UNITS
  979. override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
  980. endif
  981. ifdef INSTALL_BUILDUNIT
  982. override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT),$(INSTALLPPUFILES))
  983. endif
  984. ifdef INSTALLPPUFILES
  985. override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
  986. override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
  987. override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES)))
  988. override INSTALL_CREATEPACKAGEFPC=1
  989. endif
  990. ifdef INSTALLEXEFILES
  991. override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
  992. endif
  993. fpc_install: all $(INSTALLTARGET)
  994. ifdef INSTALLEXEFILES
  995. $(MKDIR) $(INSTALL_BINDIR)
  996. ifdef UPXPROG
  997. -$(UPXPROG) $(INSTALLEXEFILES)
  998. endif
  999. $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
  1000. endif
  1001. ifdef INSTALL_CREATEPACKAGEFPC
  1002. ifdef FPCMAKE
  1003. ifdef PACKAGE_VERSION
  1004. ifneq ($(wildcard Makefile.fpc),)
  1005. $(FPCMAKE) -p -T$(OS_TARGET) Makefile.fpc
  1006. $(MKDIR) $(INSTALL_UNITDIR)
  1007. $(INSTALL) Package.fpc $(INSTALL_UNITDIR)
  1008. endif
  1009. endif
  1010. endif
  1011. endif
  1012. ifdef INSTALLPPUFILES
  1013. $(MKDIR) $(INSTALL_UNITDIR)
  1014. $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
  1015. ifneq ($(INSTALLPPULINKFILES),)
  1016. $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
  1017. endif
  1018. ifneq ($(wildcard $(LIB_FULLNAME)),)
  1019. $(MKDIR) $(INSTALL_LIBDIR)
  1020. $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
  1021. ifdef inUnix
  1022. ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
  1023. endif
  1024. endif
  1025. endif
  1026. ifdef INSTALL_FILES
  1027. $(MKDIR) $(INSTALL_DATADIR)
  1028. $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
  1029. endif
  1030. fpc_sourceinstall: distclean
  1031. $(MKDIR) $(INSTALL_SOURCEDIR)
  1032. $(COPYTREE) $(BASEDIR) $(INSTALL_SOURCEDIR)
  1033. fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
  1034. ifdef HASEXAMPLES
  1035. $(MKDIR) $(INSTALL_EXAMPLEDIR)
  1036. endif
  1037. ifdef EXAMPLESOURCEFILES
  1038. $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
  1039. endif
  1040. ifdef TARGET_EXAMPLEDIRS
  1041. $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
  1042. endif
  1043. .PHONY: fpc_clean fpc_cleanall fpc_distclean
  1044. ifdef EXEFILES
  1045. override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
  1046. endif
  1047. ifdef CLEAN_UNITS
  1048. override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
  1049. endif
  1050. ifdef CLEANPPUFILES
  1051. override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
  1052. override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
  1053. override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
  1054. endif
  1055. fpc_clean: $(CLEANTARGET)
  1056. ifdef CLEANEXEFILES
  1057. -$(DEL) $(CLEANEXEFILES)
  1058. endif
  1059. ifdef CLEANPPUFILES
  1060. -$(DEL) $(CLEANPPUFILES)
  1061. endif
  1062. ifneq ($(CLEANPPULINKFILES),)
  1063. -$(DEL) $(CLEANPPULINKFILES)
  1064. endif
  1065. ifdef CLEANRSTFILES
  1066. -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
  1067. endif
  1068. ifdef CLEAN_FILES
  1069. -$(DEL) $(CLEAN_FILES)
  1070. endif
  1071. ifdef LIB_NAME
  1072. -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
  1073. endif
  1074. -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
  1075. fpc_distclean: clean
  1076. ifdef COMPILER_UNITTARGETDIR
  1077. TARGETDIRCLEAN=fpc_clean
  1078. endif
  1079. fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
  1080. ifdef CLEANEXEFILES
  1081. -$(DEL) $(CLEANEXEFILES)
  1082. endif
  1083. -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
  1084. -$(DELTREE) *$(SMARTEXT)
  1085. -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
  1086. ifdef AOUTEXT
  1087. -$(DEL) *$(AOUTEXT)
  1088. endif
  1089. .PHONY: fpc_baseinfo
  1090. override INFORULES+=fpc_baseinfo
  1091. fpc_baseinfo:
  1092. @$(ECHO)
  1093. @$(ECHO) == Package info ==
  1094. @$(ECHO) Package Name..... $(PACKAGE_NAME)
  1095. @$(ECHO) Package Version.. $(PACKAGE_VERSION)
  1096. @$(ECHO)
  1097. @$(ECHO) == Configuration info ==
  1098. @$(ECHO)
  1099. @$(ECHO) FPC.......... $(FPC)
  1100. @$(ECHO) FPC Version.. $(FPC_VERSION)
  1101. @$(ECHO) Source CPU... $(CPU_SOURCE)
  1102. @$(ECHO) Target CPU... $(CPU_TARGET)
  1103. @$(ECHO) Source OS.... $(OS_SOURCE)
  1104. @$(ECHO) Target OS.... $(OS_TARGET)
  1105. @$(ECHO) Full Target.. $(FULL_SOURCE)
  1106. @$(ECHO) Full Source.. $(FULL_TARGET)
  1107. @$(ECHO)
  1108. @$(ECHO) == Directory info ==
  1109. @$(ECHO)
  1110. @$(ECHO) Basedir......... $(BASEDIR)
  1111. @$(ECHO) FPCDir.......... $(FPCDIR)
  1112. @$(ECHO) CrossBinDir..... $(CROSSBINDIR)
  1113. @$(ECHO) UnitsDir........ $(UNITSDIR)
  1114. @$(ECHO) PackagesDir..... $(PACKAGESDIR)
  1115. @$(ECHO)
  1116. @$(ECHO) GCC library..... $(GCCLIBDIR)
  1117. @$(ECHO) Other library... $(OTHERLIBDIR)
  1118. @$(ECHO)
  1119. @$(ECHO) == Tools info ==
  1120. @$(ECHO)
  1121. @$(ECHO) As........ $(AS)
  1122. @$(ECHO) Ld........ $(LD)
  1123. @$(ECHO) Ar........ $(AR)
  1124. @$(ECHO) Rc........ $(RC)
  1125. @$(ECHO)
  1126. @$(ECHO) Mv........ $(MVPROG)
  1127. @$(ECHO) Cp........ $(CPPROG)
  1128. @$(ECHO) Rm........ $(RMPROG)
  1129. @$(ECHO) GInstall.. $(GINSTALL)
  1130. @$(ECHO) Echo...... $(ECHO)
  1131. @$(ECHO) Date...... $(DATE)
  1132. @$(ECHO) FPCMake... $(FPCMAKE)
  1133. @$(ECHO) PPUMove... $(PPUMOVE)
  1134. @$(ECHO) Upx....... $(UPXPROG)
  1135. @$(ECHO) Zip....... $(ZIPPROG)
  1136. @$(ECHO)
  1137. @$(ECHO) == Object info ==
  1138. @$(ECHO)
  1139. @$(ECHO) Target Loaders........ $(TARGET_LOADERS)
  1140. @$(ECHO) Target Units.......... $(TARGET_UNITS)
  1141. @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)
  1142. @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)
  1143. @$(ECHO) Target Dirs........... $(TARGET_DIRS)
  1144. @$(ECHO) Target Examples....... $(TARGET_EXAMPLES)
  1145. @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
  1146. @$(ECHO)
  1147. @$(ECHO) Clean Units......... $(CLEAN_UNITS)
  1148. @$(ECHO) Clean Files......... $(CLEAN_FILES)
  1149. @$(ECHO)
  1150. @$(ECHO) Install Units....... $(INSTALL_UNITS)
  1151. @$(ECHO) Install Files....... $(INSTALL_FILES)
  1152. @$(ECHO)
  1153. @$(ECHO) == Install info ==
  1154. @$(ECHO)
  1155. @$(ECHO) DateStr.............. $(DATESTR)
  1156. @$(ECHO) ZipPrefix............ $(ZIPPREFIX)
  1157. @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
  1158. @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)
  1159. @$(ECHO)
  1160. @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)
  1161. @$(ECHO) Install binary dir... $(INSTALL_BINDIR)
  1162. @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)
  1163. @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)
  1164. @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)
  1165. @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)
  1166. @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)
  1167. @$(ECHO) Install data dir..... $(INSTALL_DATADIR)
  1168. @$(ECHO)
  1169. @$(ECHO) Dist destination dir. $(DIST_DESTDIR)
  1170. @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)
  1171. @$(ECHO)
  1172. .PHONY: fpc_info
  1173. fpc_info: $(INFORULES)
  1174. .PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
  1175. fpc_makefile_dirs
  1176. fpc_makefile:
  1177. $(FPCMAKE) -w Makefile.fpc
  1178. fpc_makefile_sub1:
  1179. ifdef TARGET_DIRS
  1180. $(FPCMAKE) -w $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
  1181. endif
  1182. ifdef TARGET_EXAMPLEDIRS
  1183. $(FPCMAKE) -w $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
  1184. endif
  1185. fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
  1186. fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
  1187. fpc_makefiles: fpc_makefile fpc_makefile_dirs
  1188. all: fpc_all
  1189. debug: fpc_debug
  1190. smart: fpc_smart
  1191. examples:
  1192. shared:
  1193. install: fpc_install
  1194. sourceinstall: fpc_sourceinstall
  1195. exampleinstall: fpc_exampleinstall
  1196. distinstall:
  1197. zipinstall:
  1198. zipsourceinstall:
  1199. zipexampleinstall:
  1200. zipdistinstall:
  1201. clean: fpc_clean
  1202. distclean: fpc_distclean
  1203. cleanall: fpc_cleanall
  1204. info: fpc_info
  1205. makefile: fpc_makefile
  1206. makefiles: fpc_makefiles
  1207. makefile_dirs: fpc_makefile_dirs
  1208. .PHONY: all debug smart examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefile makefiles makefile_dirs
  1209. ifneq ($(wildcard fpcmake.loc),)
  1210. include fpcmake.loc
  1211. endif