Makefile 30 KB

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