Makefile 28 KB

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