Makefile 30 KB

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