Makefile 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359
  1. #
  2. # Don't edit, this file is generated by FPCMake Version 1.1 [2003/04/01]
  3. #
  4. default: all
  5. MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos macosx 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 cygwin,$(MACHTYPE)),)
  36. inCygWin=1
  37. endif
  38. endif
  39. ifeq ($(OS_TARGET),freebsd)
  40. BSDhier=1
  41. endif
  42. ifeq ($(OS_TARGET),netbsd)
  43. BSDhier=1
  44. endif
  45. ifeq ($(OS_TARGET),openbsd)
  46. BSDhier=1
  47. endif
  48. ifdef inUnix
  49. BATCHEXT=.sh
  50. else
  51. ifdef inOS2
  52. BATCHEXT=.cmd
  53. else
  54. BATCHEXT=.bat
  55. endif
  56. endif
  57. ifdef inUnix
  58. PATHSEP=/
  59. else
  60. PATHSEP:=$(subst /,\,/)
  61. ifdef inCygWin
  62. PATHSEP=/
  63. endif
  64. endif
  65. ifdef PWD
  66. BASEDIR:=$(subst \,/,$(shell $(PWD)))
  67. ifdef inCygWin
  68. ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
  69. BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
  70. BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
  71. BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
  72. endif
  73. endif
  74. else
  75. BASEDIR=.
  76. endif
  77. ifdef inOS2
  78. ifndef ECHO
  79. ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
  80. ifeq ($(ECHO),)
  81. ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
  82. ifeq ($(ECHO),)
  83. ECHO=echo
  84. else
  85. ECHO:=$(firstword $(ECHO))
  86. endif
  87. else
  88. ECHO:=$(firstword $(ECHO))
  89. endif
  90. endif
  91. export ECHO
  92. endif
  93. override OS_TARGET_DEFAULT=netbsd
  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. else
  536. ifeq ($(OS_TARGET),go32v1)
  537. PPUEXT=.pp1
  538. OEXT=.o1
  539. ASMEXT=.s1
  540. SMARTEXT=.sl1
  541. STATICLIBEXT=.a1
  542. SHAREDLIBEXT=.so1
  543. STATICLIBPREFIX=
  544. FPCMADE=fpcmade.v1
  545. PACKAGESUFFIX=v1
  546. endif
  547. ifeq ($(OS_TARGET),go32v2)
  548. STATICLIBPREFIX=
  549. FPCMADE=fpcmade.dos
  550. ZIPSUFFIX=go32
  551. endif
  552. ifeq ($(OS_TARGET),linux)
  553. EXEEXT=
  554. HASSHAREDLIB=1
  555. FPCMADE=fpcmade.lnx
  556. ZIPSUFFIX=linux
  557. endif
  558. ifeq ($(OS_TARGET),freebsd)
  559. EXEEXT=
  560. HASSHAREDLIB=1
  561. FPCMADE=fpcmade.freebsd
  562. ZIPSUFFIX=freebsd
  563. endif
  564. ifeq ($(OS_TARGET),netbsd)
  565. EXEEXT=
  566. HASSHAREDLIB=1
  567. FPCMADE=fpcmade.netbsd
  568. ZIPSUFFIX=netbsd
  569. endif
  570. ifeq ($(OS_TARGET),openbsd)
  571. EXEEXT=
  572. HASSHAREDLIB=1
  573. FPCMADE=fpcmade.openbsd
  574. ZIPSUFFIX=openbsd
  575. endif
  576. ifeq ($(OS_TARGET),win32)
  577. PPUEXT=.ppw
  578. OEXT=.ow
  579. ASMEXT=.sw
  580. SMARTEXT=.slw
  581. STATICLIBEXT=.aw
  582. SHAREDLIBEXT=.dll
  583. FPCMADE=fpcmade.w32
  584. ZIPSUFFIX=w32
  585. endif
  586. ifeq ($(OS_TARGET),os2)
  587. PPUEXT=.ppo
  588. ASMEXT=.so2
  589. OEXT=.oo2
  590. AOUTEXT=.out
  591. SMARTEXT=.sl2
  592. STATICLIBPREFIX=
  593. STATICLIBEXT=.ao2
  594. SHAREDLIBEXT=.dll
  595. FPCMADE=fpcmade.os2
  596. ZIPSUFFIX=emx
  597. ECHO=echo
  598. endif
  599. ifeq ($(OS_TARGET),amiga)
  600. EXEEXT=
  601. PPUEXT=.ppu
  602. ASMEXT=.asm
  603. OEXT=.o
  604. SMARTEXT=.sl
  605. STATICLIBEXT=.a
  606. SHAREDLIBEXT=.library
  607. FPCMADE=fpcmade.amg
  608. endif
  609. ifeq ($(OS_TARGET),atari)
  610. PPUEXT=.ppu
  611. ASMEXT=.s
  612. OEXT=.o
  613. SMARTEXT=.sl
  614. STATICLIBEXT=.a
  615. EXEEXT=.ttp
  616. FPCMADE=fpcmade.ata
  617. endif
  618. ifeq ($(OS_TARGET),beos)
  619. PPUEXT=.ppu
  620. ASMEXT=.s
  621. OEXT=.o
  622. SMARTEXT=.sl
  623. STATICLIBEXT=.a
  624. EXEEXT=
  625. FPCMADE=fpcmade.be
  626. ZIPSUFFIX=be
  627. endif
  628. ifeq ($(OS_TARGET),sunos)
  629. PPUEXT=.ppu
  630. ASMEXT=.s
  631. OEXT=.o
  632. SMARTEXT=.sl
  633. STATICLIBEXT=.a
  634. EXEEXT=
  635. FPCMADE=fpcmade.sun
  636. ZIPSUFFIX=sun
  637. endif
  638. ifeq ($(OS_TARGET),qnx)
  639. PPUEXT=.ppu
  640. ASMEXT=.s
  641. OEXT=.o
  642. SMARTEXT=.sl
  643. STATICLIBEXT=.a
  644. EXEEXT=
  645. FPCMADE=fpcmade.qnx
  646. ZIPSUFFIX=qnx
  647. endif
  648. ifeq ($(OS_TARGET),netware)
  649. STATICLIBPREFIX=
  650. PPUEXT=.ppu
  651. OEXT=.o
  652. ASMEXT=.s
  653. SMARTEXT=.sl
  654. STATICLIBEXT=.a
  655. SHAREDLIBEXT=.nlm
  656. FPCMADE=fpcmade.nw
  657. ZIPSUFFIX=nw
  658. EXEEXT=.nlm
  659. endif
  660. ifeq ($(OS_TARGET),macos)
  661. PPUEXT=.ppu
  662. ASMEXT=.s
  663. OEXT=.o
  664. SMARTEXT=.sl
  665. STATICLIBEXT=.a
  666. EXEEXT=
  667. FPCMADE=fpcmade.mcc
  668. endif
  669. endif
  670. ifndef ECHO
  671. ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
  672. ifeq ($(ECHO),)
  673. ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
  674. ifeq ($(ECHO),)
  675. ECHO=
  676. else
  677. ECHO:=$(firstword $(ECHO))
  678. endif
  679. else
  680. ECHO:=$(firstword $(ECHO))
  681. endif
  682. endif
  683. export ECHO
  684. ifndef DATE
  685. DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
  686. ifeq ($(DATE),)
  687. DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
  688. ifeq ($(DATE),)
  689. DATE=
  690. else
  691. DATE:=$(firstword $(DATE))
  692. endif
  693. else
  694. DATE:=$(firstword $(DATE))
  695. endif
  696. endif
  697. export DATE
  698. ifndef GINSTALL
  699. GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
  700. ifeq ($(GINSTALL),)
  701. GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
  702. ifeq ($(GINSTALL),)
  703. GINSTALL=
  704. else
  705. GINSTALL:=$(firstword $(GINSTALL))
  706. endif
  707. else
  708. GINSTALL:=$(firstword $(GINSTALL))
  709. endif
  710. endif
  711. export GINSTALL
  712. ifndef CPPROG
  713. CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
  714. ifeq ($(CPPROG),)
  715. CPPROG=
  716. else
  717. CPPROG:=$(firstword $(CPPROG))
  718. endif
  719. endif
  720. export CPPROG
  721. ifndef RMPROG
  722. RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
  723. ifeq ($(RMPROG),)
  724. RMPROG=
  725. else
  726. RMPROG:=$(firstword $(RMPROG))
  727. endif
  728. endif
  729. export RMPROG
  730. ifndef MVPROG
  731. MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
  732. ifeq ($(MVPROG),)
  733. MVPROG=
  734. else
  735. MVPROG:=$(firstword $(MVPROG))
  736. endif
  737. endif
  738. export MVPROG
  739. ifndef ECHOREDIR
  740. ECHOREDIR:=$(subst /,$(PATHSEP),$(ECHO))
  741. endif
  742. ifndef COPY
  743. COPY:=$(CPPROG) -fp
  744. endif
  745. ifndef COPYTREE
  746. COPYTREE:=$(CPPROG) -rfp
  747. endif
  748. ifndef MOVE
  749. MOVE:=$(MVPROG) -f
  750. endif
  751. ifndef DEL
  752. DEL:=$(RMPROG) -f
  753. endif
  754. ifndef DELTREE
  755. DELTREE:=$(RMPROG) -rf
  756. endif
  757. ifndef INSTALL
  758. ifdef inUnix
  759. INSTALL:=$(GINSTALL) -c -m 644
  760. else
  761. INSTALL:=$(COPY)
  762. endif
  763. endif
  764. ifndef INSTALLEXE
  765. ifdef inUnix
  766. INSTALLEXE:=$(GINSTALL) -c -m 755
  767. else
  768. INSTALLEXE:=$(COPY)
  769. endif
  770. endif
  771. ifndef MKDIR
  772. MKDIR:=$(GINSTALL) -m 755 -d
  773. endif
  774. export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
  775. ifndef PPUMOVE
  776. PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
  777. ifeq ($(PPUMOVE),)
  778. PPUMOVE=
  779. else
  780. PPUMOVE:=$(firstword $(PPUMOVE))
  781. endif
  782. endif
  783. export PPUMOVE
  784. ifndef FPCMAKE
  785. FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
  786. ifeq ($(FPCMAKE),)
  787. FPCMAKE=
  788. else
  789. FPCMAKE:=$(firstword $(FPCMAKE))
  790. endif
  791. endif
  792. export FPCMAKE
  793. ifndef ZIPPROG
  794. ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
  795. ifeq ($(ZIPPROG),)
  796. ZIPPROG=
  797. else
  798. ZIPPROG:=$(firstword $(ZIPPROG))
  799. endif
  800. endif
  801. export ZIPPROG
  802. ifndef TARPROG
  803. TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
  804. ifeq ($(TARPROG),)
  805. TARPROG=
  806. else
  807. TARPROG:=$(firstword $(TARPROG))
  808. endif
  809. endif
  810. export TARPROG
  811. ASNAME=as
  812. LDNAME=ld
  813. ARNAME=ar
  814. RCNAME=rc
  815. ifeq ($(OS_TARGET),win32)
  816. ASNAME=asw
  817. LDNAME=ldw
  818. ARNAME=arw
  819. endif
  820. ifndef ASPROG
  821. ifdef CROSSBINDIR
  822. ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
  823. else
  824. ASPROG=$(ASNAME)
  825. endif
  826. endif
  827. ifndef LDPROG
  828. ifdef CROSSBINDIR
  829. LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
  830. else
  831. LDPROG=$(LDNAME)
  832. endif
  833. endif
  834. ifndef RCPROG
  835. ifdef CROSSBINDIR
  836. RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
  837. else
  838. RCPROG=$(RCNAME)
  839. endif
  840. endif
  841. ifndef ARPROG
  842. ifdef CROSSBINDIR
  843. ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
  844. else
  845. ARPROG=$(ARNAME)
  846. endif
  847. endif
  848. AS=$(ASPROG)
  849. LD=$(LDPROG)
  850. RC=$(RCPROG)
  851. AR=$(ARPROG)
  852. PPAS=ppas$(BATCHEXT)
  853. ifdef inUnix
  854. LDCONFIG=ldconfig
  855. else
  856. LDCONFIG=
  857. endif
  858. ifdef DATE
  859. DATESTR:=$(shell $(DATE) +%Y%m%d)
  860. else
  861. DATESTR=
  862. endif
  863. ifndef UPXPROG
  864. ifeq ($(OS_TARGET),go32v2)
  865. UPXPROG:=1
  866. endif
  867. ifeq ($(OS_TARGET),win32)
  868. UPXPROG:=1
  869. endif
  870. ifdef UPXPROG
  871. UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
  872. ifeq ($(UPXPROG),)
  873. UPXPROG=
  874. else
  875. UPXPROG:=$(firstword $(UPXPROG))
  876. endif
  877. else
  878. UPXPROG=
  879. endif
  880. endif
  881. export UPXPROG
  882. ZIPOPT=-9
  883. ZIPEXT=.zip
  884. ifeq ($(USETAR),bz2)
  885. TAROPT=vI
  886. TAREXT=.tar.bz2
  887. else
  888. TAROPT=vz
  889. TAREXT=.tar.gz
  890. endif
  891. ifndef NOCPUDEF
  892. override FPCOPTDEF=$(CPU_TARGET)
  893. endif
  894. ifneq ($(OS_TARGET),$(OS_SOURCE))
  895. override FPCOPT+=-T$(OS_TARGET)
  896. endif
  897. ifeq ($(OS_SOURCE),openbsd)
  898. override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
  899. endif
  900. ifdef UNITDIR
  901. override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
  902. endif
  903. ifdef LIBDIR
  904. override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
  905. endif
  906. ifdef OBJDIR
  907. override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
  908. endif
  909. ifdef INCDIR
  910. override FPCOPT+=$(addprefix -Fi,$(INCDIR))
  911. endif
  912. ifdef LINKSMART
  913. override FPCOPT+=-XX
  914. endif
  915. ifdef CREATESMART
  916. override FPCOPT+=-CX
  917. endif
  918. ifdef DEBUG
  919. override FPCOPT+=-gl
  920. override FPCOPTDEF+=DEBUG
  921. endif
  922. ifdef RELEASE
  923. ifeq ($(CPU_TARGET),i386)
  924. FPCCPUOPT:=-OG2p3
  925. else
  926. FPCCPUOPT:=
  927. endif
  928. override FPCOPT+=-Xs $(FPCCPUOPT) -n
  929. override FPCOPTDEF+=RELEASE
  930. endif
  931. ifdef STRIP
  932. override FPCOPT+=-Xs
  933. endif
  934. ifdef OPTIMIZE
  935. ifeq ($(CPU_TARGET),i386)
  936. override FPCOPT+=-OG2p3
  937. endif
  938. endif
  939. ifdef VERBOSE
  940. override FPCOPT+=-vwni
  941. endif
  942. ifdef COMPILER_OPTIONS
  943. override FPCOPT+=$(COMPILER_OPTIONS)
  944. endif
  945. ifdef COMPILER_UNITDIR
  946. override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
  947. endif
  948. ifdef COMPILER_LIBRARYDIR
  949. override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
  950. endif
  951. ifdef COMPILER_OBJECTDIR
  952. override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
  953. endif
  954. ifdef COMPILER_INCLUDEDIR
  955. override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
  956. endif
  957. ifdef CROSSBINDIR
  958. override FPCOPT+=-FD$(CROSSBINDIR)
  959. endif
  960. ifdef COMPILER_TARGETDIR
  961. override FPCOPT+=-FE$(COMPILER_TARGETDIR)
  962. ifeq ($(COMPILER_TARGETDIR),.)
  963. override TARGETDIRPREFIX=
  964. else
  965. override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
  966. endif
  967. endif
  968. ifdef COMPILER_UNITTARGETDIR
  969. override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
  970. ifeq ($(COMPILER_UNITTARGETDIR),.)
  971. override UNITTARGETDIRPREFIX=
  972. else
  973. override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
  974. endif
  975. else
  976. ifdef COMPILER_TARGETDIR
  977. override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
  978. override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
  979. endif
  980. endif
  981. ifeq ($(OS_TARGET),linux)
  982. ifeq ($(FPC_VERSION),1.0.6)
  983. override FPCOPTDEF+=HASUNIX
  984. endif
  985. endif
  986. ifdef OPT
  987. override FPCOPT+=$(OPT)
  988. endif
  989. ifdef FPCOPTDEF
  990. override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
  991. endif
  992. ifdef CFGFILE
  993. override FPCOPT+=@$(CFGFILE)
  994. endif
  995. ifdef USEENV
  996. override FPCEXTCMD:=$(FPCOPT)
  997. override FPCOPT:=!FPCEXTCMD
  998. export FPCEXTCMD
  999. endif
  1000. override COMPILER:=$(FPC) $(FPCOPT)
  1001. ifeq (,$(findstring -s ,$(COMPILER)))
  1002. EXECPPAS=
  1003. else
  1004. ifeq ($(OS_SOURCE),$(OS_TARGET))
  1005. EXECPPAS:=@$(PPAS)
  1006. endif
  1007. endif
  1008. .PHONY: fpc_loaders
  1009. ifdef TARGET_LOADERS
  1010. override ALLTARGET+=fpc_loaders
  1011. override CLEANTARGET+=fpc_loaders_clean
  1012. override INSTALLTARGET+=fpc_loaders_install
  1013. override LOADEROFILES:=$(addsuffix $(OEXT),$(TARGET_LOADERS))
  1014. endif
  1015. %$(OEXT): %$(LOADEREXT)
  1016. $(AS) -o $*$(OEXT) $<
  1017. fpc_loaders: $(LOADEROFILES)
  1018. fpc_loaders_clean:
  1019. -$(DEL) $(LOADEROFILES)
  1020. fpc_loaders_install:
  1021. $(MKDIR) $(INSTALL_UNITDIR)
  1022. $(INSTALL) $(LOADEROFILES) $(INSTALL_UNITDIR)
  1023. .PHONY: fpc_units
  1024. ifdef TARGET_UNITS
  1025. override ALLTARGET+=fpc_units
  1026. override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
  1027. override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
  1028. override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
  1029. override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
  1030. endif
  1031. fpc_units: $(UNITPPUFILES)
  1032. ifdef TARGET_RSTS
  1033. override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
  1034. override CLEANRSTFILES+=$(RSTFILES)
  1035. endif
  1036. .PHONY: fpc_all fpc_smart fpc_debug fpc_release
  1037. $(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
  1038. @$(ECHOREDIR) Compiled > $(FPCMADE)
  1039. fpc_all: $(FPCMADE)
  1040. fpc_smart:
  1041. $(MAKE) all LINKSMART=1 CREATESMART=1
  1042. fpc_debug:
  1043. $(MAKE) all DEBUG=1
  1044. fpc_release:
  1045. $(MAKE) all RELEASE=1
  1046. .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp .rc .res
  1047. %$(PPUEXT): %.pp
  1048. $(COMPILER) $<
  1049. $(EXECPPAS)
  1050. %$(PPUEXT): %.pas
  1051. $(COMPILER) $<
  1052. $(EXECPPAS)
  1053. %$(EXEEXT): %.pp
  1054. $(COMPILER) $<
  1055. $(EXECPPAS)
  1056. %$(EXEEXT): %.pas
  1057. $(COMPILER) $<
  1058. $(EXECPPAS)
  1059. %.res: %.rc
  1060. windres -i $< -o $@
  1061. vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  1062. vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  1063. vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
  1064. .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
  1065. ifdef INSTALL_UNITS
  1066. override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
  1067. endif
  1068. ifdef INSTALL_BUILDUNIT
  1069. override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
  1070. endif
  1071. ifdef INSTALLPPUFILES
  1072. override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
  1073. override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
  1074. override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES)))
  1075. override INSTALL_CREATEPACKAGEFPC=1
  1076. endif
  1077. ifdef INSTALLEXEFILES
  1078. override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
  1079. endif
  1080. fpc_install: all $(INSTALLTARGET)
  1081. ifdef INSTALLEXEFILES
  1082. $(MKDIR) $(INSTALL_BINDIR)
  1083. ifdef UPXPROG
  1084. -$(UPXPROG) $(INSTALLEXEFILES)
  1085. endif
  1086. $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
  1087. endif
  1088. ifdef INSTALL_CREATEPACKAGEFPC
  1089. ifdef FPCMAKE
  1090. ifdef PACKAGE_VERSION
  1091. ifneq ($(wildcard Makefile.fpc),)
  1092. $(FPCMAKE) -p -T$(OS_TARGET) Makefile.fpc
  1093. $(MKDIR) $(INSTALL_UNITDIR)
  1094. $(INSTALL) Package.fpc $(INSTALL_UNITDIR)
  1095. endif
  1096. endif
  1097. endif
  1098. endif
  1099. ifdef INSTALLPPUFILES
  1100. $(MKDIR) $(INSTALL_UNITDIR)
  1101. $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
  1102. ifneq ($(INSTALLPPULINKFILES),)
  1103. $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
  1104. endif
  1105. ifneq ($(wildcard $(LIB_FULLNAME)),)
  1106. $(MKDIR) $(INSTALL_LIBDIR)
  1107. $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
  1108. ifdef inUnix
  1109. ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
  1110. endif
  1111. endif
  1112. endif
  1113. ifdef INSTALL_FILES
  1114. $(MKDIR) $(INSTALL_DATADIR)
  1115. $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
  1116. endif
  1117. fpc_sourceinstall: distclean
  1118. $(MKDIR) $(INSTALL_SOURCEDIR)
  1119. $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
  1120. fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
  1121. ifdef HASEXAMPLES
  1122. $(MKDIR) $(INSTALL_EXAMPLEDIR)
  1123. endif
  1124. ifdef EXAMPLESOURCEFILES
  1125. $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
  1126. endif
  1127. ifdef TARGET_EXAMPLEDIRS
  1128. $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
  1129. endif
  1130. .PHONY: fpc_clean fpc_cleanall fpc_distclean
  1131. ifdef EXEFILES
  1132. override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
  1133. endif
  1134. ifdef CLEAN_UNITS
  1135. override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
  1136. endif
  1137. ifdef CLEANPPUFILES
  1138. override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
  1139. override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
  1140. override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
  1141. endif
  1142. fpc_clean: $(CLEANTARGET)
  1143. ifdef CLEANEXEFILES
  1144. -$(DEL) $(CLEANEXEFILES)
  1145. endif
  1146. ifdef CLEANPPUFILES
  1147. -$(DEL) $(CLEANPPUFILES)
  1148. endif
  1149. ifneq ($(CLEANPPULINKFILES),)
  1150. -$(DEL) $(CLEANPPULINKFILES)
  1151. endif
  1152. ifdef CLEANRSTFILES
  1153. -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
  1154. endif
  1155. ifdef CLEAN_FILES
  1156. -$(DEL) $(CLEAN_FILES)
  1157. endif
  1158. ifdef LIB_NAME
  1159. -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
  1160. endif
  1161. -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
  1162. fpc_distclean: clean
  1163. ifdef COMPILER_UNITTARGETDIR
  1164. TARGETDIRCLEAN=fpc_clean
  1165. endif
  1166. fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
  1167. ifdef CLEANEXEFILES
  1168. -$(DEL) $(CLEANEXEFILES)
  1169. endif
  1170. -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
  1171. -$(DELTREE) *$(SMARTEXT)
  1172. -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
  1173. ifdef AOUTEXT
  1174. -$(DEL) *$(AOUTEXT)
  1175. endif
  1176. .PHONY: fpc_baseinfo
  1177. override INFORULES+=fpc_baseinfo
  1178. fpc_baseinfo:
  1179. @$(ECHO)
  1180. @$(ECHO) == Package info ==
  1181. @$(ECHO) Package Name..... $(PACKAGE_NAME)
  1182. @$(ECHO) Package Version.. $(PACKAGE_VERSION)
  1183. @$(ECHO)
  1184. @$(ECHO) == Configuration info ==
  1185. @$(ECHO)
  1186. @$(ECHO) FPC.......... $(FPC)
  1187. @$(ECHO) FPC Version.. $(FPC_VERSION)
  1188. @$(ECHO) Source CPU... $(CPU_SOURCE)
  1189. @$(ECHO) Target CPU... $(CPU_TARGET)
  1190. @$(ECHO) Source OS.... $(OS_SOURCE)
  1191. @$(ECHO) Target OS.... $(OS_TARGET)
  1192. @$(ECHO) Full Source.. $(FULL_SOURCE)
  1193. @$(ECHO) Full Target.. $(FULL_TARGET)
  1194. @$(ECHO)
  1195. @$(ECHO) == Directory info ==
  1196. @$(ECHO)
  1197. @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)
  1198. @$(ECHO)
  1199. @$(ECHO) Basedir......... $(BASEDIR)
  1200. @$(ECHO) FPCDir.......... $(FPCDIR)
  1201. @$(ECHO) CrossBinDir..... $(CROSSBINDIR)
  1202. @$(ECHO) UnitsDir........ $(UNITSDIR)
  1203. @$(ECHO) PackagesDir..... $(PACKAGESDIR)
  1204. @$(ECHO)
  1205. @$(ECHO) GCC library..... $(GCCLIBDIR)
  1206. @$(ECHO) Other library... $(OTHERLIBDIR)
  1207. @$(ECHO)
  1208. @$(ECHO) == Tools info ==
  1209. @$(ECHO)
  1210. @$(ECHO) As........ $(AS)
  1211. @$(ECHO) Ld........ $(LD)
  1212. @$(ECHO) Ar........ $(AR)
  1213. @$(ECHO) Rc........ $(RC)
  1214. @$(ECHO)
  1215. @$(ECHO) Mv........ $(MVPROG)
  1216. @$(ECHO) Cp........ $(CPPROG)
  1217. @$(ECHO) Rm........ $(RMPROG)
  1218. @$(ECHO) GInstall.. $(GINSTALL)
  1219. @$(ECHO) Echo...... $(ECHO)
  1220. @$(ECHO) Shell..... $(SHELL)
  1221. @$(ECHO) Date...... $(DATE)
  1222. @$(ECHO) FPCMake... $(FPCMAKE)
  1223. @$(ECHO) PPUMove... $(PPUMOVE)
  1224. @$(ECHO) Upx....... $(UPXPROG)
  1225. @$(ECHO) Zip....... $(ZIPPROG)
  1226. @$(ECHO)
  1227. @$(ECHO) == Object info ==
  1228. @$(ECHO)
  1229. @$(ECHO) Target Loaders........ $(TARGET_LOADERS)
  1230. @$(ECHO) Target Units.......... $(TARGET_UNITS)
  1231. @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)
  1232. @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)
  1233. @$(ECHO) Target Dirs........... $(TARGET_DIRS)
  1234. @$(ECHO) Target Examples....... $(TARGET_EXAMPLES)
  1235. @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
  1236. @$(ECHO)
  1237. @$(ECHO) Clean Units......... $(CLEAN_UNITS)
  1238. @$(ECHO) Clean Files......... $(CLEAN_FILES)
  1239. @$(ECHO)
  1240. @$(ECHO) Install Units....... $(INSTALL_UNITS)
  1241. @$(ECHO) Install Files....... $(INSTALL_FILES)
  1242. @$(ECHO)
  1243. @$(ECHO) == Install info ==
  1244. @$(ECHO)
  1245. @$(ECHO) DateStr.............. $(DATESTR)
  1246. @$(ECHO) ZipPrefix............ $(ZIPPREFIX)
  1247. @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
  1248. @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)
  1249. @$(ECHO)
  1250. @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)
  1251. @$(ECHO) Install binary dir... $(INSTALL_BINDIR)
  1252. @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)
  1253. @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)
  1254. @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)
  1255. @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)
  1256. @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)
  1257. @$(ECHO) Install data dir..... $(INSTALL_DATADIR)
  1258. @$(ECHO)
  1259. @$(ECHO) Dist destination dir. $(DIST_DESTDIR)
  1260. @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)
  1261. @$(ECHO)
  1262. .PHONY: fpc_info
  1263. fpc_info: $(INFORULES)
  1264. .PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
  1265. fpc_makefile_dirs
  1266. fpc_makefile:
  1267. $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
  1268. fpc_makefile_sub1:
  1269. ifdef TARGET_DIRS
  1270. $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
  1271. endif
  1272. ifdef TARGET_EXAMPLEDIRS
  1273. $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
  1274. endif
  1275. fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
  1276. fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
  1277. fpc_makefiles: fpc_makefile fpc_makefile_dirs
  1278. all: fpc_all
  1279. debug: fpc_debug
  1280. smart: fpc_smart
  1281. release: fpc_release
  1282. examples:
  1283. shared:
  1284. install: fpc_install
  1285. sourceinstall: fpc_sourceinstall
  1286. exampleinstall: fpc_exampleinstall
  1287. distinstall:
  1288. zipinstall:
  1289. zipsourceinstall:
  1290. zipexampleinstall:
  1291. zipdistinstall:
  1292. clean: fpc_clean
  1293. distclean: fpc_distclean
  1294. cleanall: fpc_cleanall
  1295. info: fpc_info
  1296. makefiles: fpc_makefiles
  1297. .PHONY: all debug smart release examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
  1298. ifneq ($(wildcard fpcmake.loc),)
  1299. include fpcmake.loc
  1300. endif
  1301. include $(INC)/makefile.inc
  1302. SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
  1303. include $(PROCINC)/makefile.cpu
  1304. SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
  1305. SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
  1306. prt0$(OEXT) : $(CPU_TARGET)/$(PRT0).as
  1307. $(AS) -o prt0$(OEXT) $(CPU_TARGET)/$(PRT0).as
  1308. cprt0$(OEXT) : $(CPU_TARGET)/cprt0.as
  1309. $(AS) -o cprt0$(OEXT) $(CPU_TARGET)/cprt0.as
  1310. $(SYSTEMUNIT)$(PPUEXT) : $(BSDINC)/$(SYSTEMUNIT).pp sysconst.inc systypes.inc syscalls.inc $(SYSDEPS)
  1311. $(COMPILER) -Us -Sg $(BSDINC)/$(SYSTEMUNIT).pp
  1312. objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
  1313. $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp
  1314. strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc\
  1315. $(PROCINC)/strings.inc $(PROCINC)/stringss.inc\
  1316. $(SYSTEMUNIT)$(PPUEXT)
  1317. baseunix$(PPUEXT) : $(UNIXINC)/errno.inc $(BSDINC)/bunxtype.inc ptypes.inc $(BSDINC)/ctypes.inc \
  1318. signal.inc $(UNIXINC)/bunxh.inc $(BSDINC)/bunxmain.inc $(BSDINC)/ostypes.inc \
  1319. $(BSDINC)/bunxfunc.inc $(BSDPROCINC)/syscallh.inc sysnr.inc \
  1320. $(BSDINC)/ostypes.inc $(BSDINC)/ossysch.inc $(BSDINC)/bunxmacr.inc $(UNIXINC)/gensigset.inc \
  1321. $(UNIXINC)/genfuncs.inc $(SYSTEMUNIT)$(PPUEXT)
  1322. unix$(PPUEXT) : $(UNIXINC)/unix.pp strings$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \
  1323. syscalls.inc systypes.inc sysconst.inc $(UNIXINC)/timezone.inc \
  1324. unixsysc.inc baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1325. linux$(PPUEXT) : baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1326. dos$(PPUEXT) : $(UNIXINC)/dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
  1327. unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1328. crt$(PPUEXT) : $(UNIXINC)/crt.pp $(INC)/textrec.inc unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1329. objects$(PPUEXT) : $(INC)/objects.pp $(SYSTEMUNIT)$(PPUEXT)
  1330. printer$(PPUEXT) : $(UNIXINC)/printer.pp $(INC)/textrec.inc unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1331. sysutils$(PPUEXT) : $(UNIXINC)/sysutils.pp $(wildcard $(OBJPASDIR)/*.inc) \
  1332. objpas$(PPUEXT) unix$(PPUEXT) errors$(PPUEXT)
  1333. $(COMPILER) -I$(OBJPASDIR) $(UNIXINC)/sysutils.pp
  1334. typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
  1335. $(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
  1336. math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)
  1337. $(COMPILER) $(OBJPASDIR)/math.pp
  1338. gettext$(PPUEXT): $(OBJPASDIR)/gettext.pp objpas$(PPUEXT) sysutils$(PPUEXT)
  1339. $(COMPILER) $(OBJPASDIR)/gettext.pp
  1340. varutils$(PPUEXT) : $(OBJPASDIR)/cvarutil.inc $(OBJPASDIR)/varutils.inc \
  1341. $(OBJPASDIR)/varutilh.inc varutils.pp
  1342. $(COMPILER) -I$(OBJPASDIR) $(UNIXINC)/varutils.pp
  1343. types$(PPUEXT) : $(OBJPASDIR/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1344. $(COMPILER) $(OBJPASDIR)/types.pp
  1345. cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
  1346. mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1347. getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
  1348. heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
  1349. $(COMPILER) -Sg $(INC)/heaptrc.pp
  1350. lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMUNIT)$(PPUEXT)
  1351. charset$(PPUEXT) : $(INC)/charset.pp $(SYSTEMUNIT)$(PPUEXT)
  1352. ucomplex$(PPUEXT) : $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1353. sockets$(PPUEXT) : $(UNIXINC)/sockets.pp $(INC)/textrec.inc $(INC)/filerec.inc \
  1354. unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1355. errors$(PPUEXT) : $(UNIXINC)/errors.pp strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1356. ipc$(PPUEXT) : $(UNIXINC)/ipc.pp unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1357. terminfo$(PPUEXT) : terminfo.pp unix$(PPUEXT)
  1358. callspec$(PPUEXT) : $(INC)/callspec.pp $(SYSTEMUNIT)$(PPUEXT)
  1359. sysctl$(PPUEXT) : $(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT)