Makefile 28 KB

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