Makefile 22 KB

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