Makefile 30 KB

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