Makefile 30 KB

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