Makefile 32 KB

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