Makefile 32 KB

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