Makefile 32 KB

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