Makefile 22 KB

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