Makefile 29 KB

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