Makefile 33 KB

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