Makefile 29 KB

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