Makefile 30 KB

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