Makefile 33 KB

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