Makefile 31 KB

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