Makefile 32 KB

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