Makefile 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842
  1. #
  2. # Don't edit, this file is generated by FPCMake Version 1.1 [2002/03/11]
  3. #
  4. default: help
  5. MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx
  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. override DEFAULT_FPCDIR=.
  88. ifndef FPC
  89. ifdef PP
  90. FPC=$(PP)
  91. endif
  92. endif
  93. ifndef FPC
  94. FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
  95. ifneq ($(FPCPROG),)
  96. FPCPROG:=$(firstword $(FPCPROG))
  97. FPC:=$(shell $(FPCPROG) -PB)
  98. ifneq ($(findstring Error,$(FPC)),)
  99. override FPC=ppc386
  100. endif
  101. else
  102. override FPC=ppc386
  103. endif
  104. endif
  105. override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
  106. override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
  107. ifndef FPC_VERSION
  108. FPC_VERSION:=$(shell $(FPC) -iV)
  109. endif
  110. export FPC FPC_VERSION
  111. unexport CHECKDEPEND ALLDEPENDENCIES
  112. ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
  113. COMPILERINFO:=$(shell $(FPC) -iSP -iTP -iSO -iTO)
  114. ifndef CPU_SOURCE
  115. CPU_SOURCE:=$(word 1,$(COMPILERINFO))
  116. endif
  117. ifndef CPU_TARGET
  118. CPU_TARGET:=$(word 2,$(COMPILERINFO))
  119. endif
  120. ifndef OS_SOURCE
  121. OS_SOURCE:=$(word 3,$(COMPILERINFO))
  122. endif
  123. ifndef OS_TARGET
  124. OS_TARGET:=$(word 4,$(COMPILERINFO))
  125. endif
  126. else
  127. ifndef CPU_SOURCE
  128. CPU_SOURCE:=$(shell $(FPC) -iSP)
  129. endif
  130. ifndef CPU_TARGET
  131. CPU_TARGET:=$(shell $(FPC) -iTP)
  132. endif
  133. ifndef OS_SOURCE
  134. OS_SOURCE:=$(shell $(FPC) -iSO)
  135. endif
  136. ifndef OS_TARGET
  137. OS_TARGET:=$(shell $(FPC) -iTO)
  138. endif
  139. endif
  140. FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
  141. FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
  142. ifneq ($(FULL_TARGET),$(FULL_SOURCE))
  143. CROSSCOMPILE=1
  144. endif
  145. ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
  146. ifeq ($(findstring $(OS_TARGET),$(MAKEFILETARGETS)),)
  147. $(error The Makefile doesn't support target $(OS_TARGET), please run fpcmake first)
  148. endif
  149. endif
  150. export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE CROSSCOMPILE
  151. ifdef FPCDIR
  152. override FPCDIR:=$(subst \,/,$(FPCDIR))
  153. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  154. override FPCDIR=wrong
  155. endif
  156. else
  157. override FPCDIR=wrong
  158. endif
  159. ifdef DEFAULT_FPCDIR
  160. ifeq ($(FPCDIR),wrong)
  161. override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
  162. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  163. override FPCDIR=wrong
  164. endif
  165. endif
  166. endif
  167. ifeq ($(FPCDIR),wrong)
  168. ifdef inUnix
  169. override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
  170. ifeq ($(wildcard $(FPCDIR)/units),)
  171. override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
  172. endif
  173. else
  174. override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
  175. override FPCDIR:=$(FPCDIR)/..
  176. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  177. override FPCDIR:=$(FPCDIR)/..
  178. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  179. override FPCDIR=c:/pp
  180. endif
  181. endif
  182. endif
  183. endif
  184. ifndef CROSSDIR
  185. CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
  186. endif
  187. ifndef CROSSTARGETDIR
  188. CROSSTARGETDIR=$(CROSSDIR)/$(FULL_TARGET)
  189. endif
  190. ifdef CROSSCOMPILE
  191. UNITSDIR:=$(wildcard $(CROSSTARGETDIR)/units)
  192. ifeq ($(UNITSDIR),)
  193. UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
  194. endif
  195. else
  196. UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
  197. endif
  198. PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
  199. override PACKAGE_NAME=fpc
  200. override PACKAGE_VERSION=1.0.6
  201. ifndef inOS2
  202. override FPCDIR:=$(BASEDIR)
  203. export FPCDIR
  204. endif
  205. ifndef PPNEW
  206. ifeq ($(CPU_TARGET),m68k)
  207. PPSUF=68k
  208. endif
  209. ifeq ($(CPU_TARGET),i386)
  210. PPSUF=386
  211. endif
  212. ifeq ($(CPU_TARGET),powerpc)
  213. PPSUF=ppc
  214. endif
  215. ifeq ($(CPU_TARGET),alpha)
  216. PPSUF=axp
  217. endif
  218. ifneq ($(OS_TARGET),$(OS_SOURCE))
  219. PPPRE=ppcross
  220. else
  221. ifneq ($(CPU_TARGET),$(CPU_SOURCE))
  222. PPPRE=ppcross
  223. else
  224. PPPRE=ppc
  225. endif
  226. endif
  227. PPNEW=$(BASEDIR)/compiler/$(PPPRE)$(PPSUF)$(SRCEXEEXT)
  228. endif
  229. ifneq ($(wildcard install),)
  230. CVSINSTALL=install
  231. else
  232. CVSINSTALL=.
  233. endif
  234. ifdef SNAPSHOT
  235. INSTALLTARGET=install
  236. else
  237. INSTALLTARGET=distinstall
  238. endif
  239. ifdef SNAPSHOT
  240. ALLTARGET=all
  241. else
  242. ifndef ALLTARGET
  243. ifeq ($(OS_TARGET),win32)
  244. ALLTARGET=smart
  245. else
  246. ifeq ($(OS_TARGET),go32v2)
  247. ALLTARGET=smart
  248. else
  249. ifeq ($(OS_TARGET),linux)
  250. ALLTARGET=smart
  251. else
  252. ifeq ($(OS_TARGET),freebsd)
  253. ALLTARGET=smart
  254. else
  255. ALLTARGET=all
  256. endif
  257. endif
  258. endif
  259. endif
  260. endif
  261. endif
  262. ifdef SNAPSHOT
  263. NOSTOP=-
  264. else
  265. NOSTOP=
  266. endif
  267. ifeq ($(OS_TARGET),linux)
  268. PKGPRE=units
  269. else
  270. ifeq ($(OS_TARGET),freebsd)
  271. PKGPRE=units
  272. else
  273. PKGPRE=u
  274. endif
  275. endif
  276. override RELEASE=1
  277. export RELEASE
  278. ifndef DIST_DESTDIR
  279. export DIST_DESTDIR:=$(BASEDIR)
  280. endif
  281. BASEPACKDIR=$(BASEDIR)/basepack
  282. FPCMAKENEW=$(BASEDIR)/utils/fpcm/fpcmake$(EXEEXT)
  283. BUILDOPTS=FPC=$(PPNEW) RELEASE=1
  284. INSTALLOPTS=FPC=$(PPNEW) ZIPDESTDIR=$(BASEDIR) FPCMAKE=$(FPCMAKENEW)
  285. ifneq ($(wildcard ide),)
  286. ifneq ($(wildcard fv),)
  287. ifeq ($(OS_TARGET),go32v2)
  288. IDE=1
  289. endif
  290. ifeq ($(OS_TARGET),win32)
  291. IDE=1
  292. endif
  293. ifeq ($(OS_TARGET),linux)
  294. IDE=1
  295. endif
  296. endif
  297. endif
  298. override TARGET_DIRS+=compiler rtl utils fcl fv packages ide installer
  299. override INSTALL_FPCPACKAGE=y
  300. ifdef REQUIRE_UNITSDIR
  301. override UNITSDIR+=$(REQUIRE_UNITSDIR)
  302. endif
  303. ifdef REQUIRE_PACKAGESDIR
  304. override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
  305. endif
  306. ifdef ZIPINSTALL
  307. ifeq ($(OS_TARGET),linux)
  308. UNIXINSTALLDIR=1
  309. endif
  310. ifeq ($(OS_TARGET),freebsd)
  311. UNIXINSTALLDIR=1
  312. endif
  313. ifeq ($(OS_TARGET),netbsd)
  314. UNIXINSTALLDIR=1
  315. endif
  316. ifeq ($(OS_TARGET),sunos)
  317. UNIXINSTALLDIR=1
  318. endif
  319. else
  320. ifeq ($(OS_SOURCE),linux)
  321. UNIXINSTALLDIR=1
  322. endif
  323. ifeq ($(OS_SOURCE),freebsd)
  324. UNIXINSTALLDIR=1
  325. endif
  326. ifeq ($(OS_SOURCE),netbsd)
  327. UNIXINSTALLDIR=1
  328. endif
  329. ifeq ($(OS_TARGET),sunos)
  330. UNIXINSTALLDIR=1
  331. endif
  332. endif
  333. ifndef INSTALL_PREFIX
  334. ifdef PREFIX
  335. INSTALL_PREFIX=$(PREFIX)
  336. endif
  337. endif
  338. ifndef INSTALL_PREFIX
  339. ifdef UNIXINSTALLDIR
  340. INSTALL_PREFIX=/usr/local
  341. else
  342. ifdef INSTALL_FPCPACKAGE
  343. INSTALL_BASEDIR:=/pp
  344. else
  345. INSTALL_BASEDIR:=/$(PACKAGE_NAME)
  346. endif
  347. endif
  348. endif
  349. export INSTALL_PREFIX
  350. ifndef DIST_DESTDIR
  351. DIST_DESTDIR:=$(BASEDIR)
  352. endif
  353. export DIST_DESTDIR
  354. ifndef INSTALL_BASEDIR
  355. ifdef UNIXINSTALLDIR
  356. ifdef INSTALL_FPCPACKAGE
  357. INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
  358. else
  359. INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
  360. endif
  361. else
  362. INSTALL_BASEDIR:=$(INSTALL_PREFIX)
  363. endif
  364. endif
  365. ifndef INSTALL_BINDIR
  366. ifdef UNIXINSTALLDIR
  367. INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
  368. else
  369. INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
  370. ifdef INSTALL_FPCPACKAGE
  371. INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
  372. endif
  373. endif
  374. endif
  375. ifndef INSTALL_UNITDIR
  376. ifdef CROSSCOMPILE
  377. INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/units
  378. else
  379. INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
  380. endif
  381. ifdef INSTALL_FPCPACKAGE
  382. ifdef PACKAGE_NAME
  383. INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
  384. endif
  385. endif
  386. endif
  387. ifndef INSTALL_LIBDIR
  388. ifdef UNIXINSTALLDIR
  389. INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
  390. else
  391. INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
  392. endif
  393. endif
  394. ifndef INSTALL_SOURCEDIR
  395. ifdef UNIXINSTALLDIR
  396. ifdef INSTALL_FPCPACKAGE
  397. ifdef BSDhier
  398. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/share/src/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  399. else
  400. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/src/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  401. endif
  402. else
  403. ifdef BSDhier
  404. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/share/src/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  405. else
  406. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/src/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  407. endif
  408. endif
  409. else
  410. ifdef INSTALL_FPCPACKAGE
  411. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
  412. else
  413. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
  414. endif
  415. endif
  416. endif
  417. ifndef INSTALL_DOCDIR
  418. ifdef UNIXINSTALLDIR
  419. ifdef INSTALL_FPCPACKAGE
  420. ifdef BSDhier
  421. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/share/doc/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  422. else
  423. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  424. endif
  425. else
  426. ifdef BSDhier
  427. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/share/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  428. else
  429. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  430. endif
  431. endif
  432. else
  433. ifdef INSTALL_FPCPACKAGE
  434. INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
  435. else
  436. INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
  437. endif
  438. endif
  439. endif
  440. ifndef INSTALL_EXAMPLEDIR
  441. ifdef UNIXINSTALLDIR
  442. ifdef INSTALL_FPCPACKAGE
  443. ifdef BSDhier
  444. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  445. else
  446. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
  447. endif
  448. else
  449. ifdef BSDhier
  450. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  451. else
  452. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  453. endif
  454. endif
  455. else
  456. ifdef INSTALL_FPCPACKAGE
  457. INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
  458. else
  459. INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
  460. endif
  461. endif
  462. endif
  463. ifndef INSTALL_DATADIR
  464. INSTALL_DATADIR=$(INSTALL_BASEDIR)
  465. endif
  466. ifdef CROSSCOMPILE
  467. ifndef CROSSBINDIR
  468. CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(FULL_SOURCE))
  469. ifeq ($(CROSSBINDIR),)
  470. CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin/$(FULL_SOURCE))
  471. endif
  472. endif
  473. else
  474. CROSSBINDIR=
  475. endif
  476. LOADEREXT=.as
  477. EXEEXT=.exe
  478. PPLEXT=.ppl
  479. PPUEXT=.ppu
  480. OEXT=.o
  481. ASMEXT=.s
  482. SMARTEXT=.sl
  483. STATICLIBEXT=.a
  484. SHAREDLIBEXT=.so
  485. STATICLIBPREFIX=libp
  486. RSTEXT=.rst
  487. FPCMADE=fpcmade
  488. ifeq ($(OS_TARGET),go32v1)
  489. PPUEXT=.pp1
  490. OEXT=.o1
  491. ASMEXT=.s1
  492. SMARTEXT=.sl1
  493. STATICLIBEXT=.a1
  494. SHAREDLIBEXT=.so1
  495. STATICLIBPREFIX=
  496. FPCMADE=fpcmade.v1
  497. PACKAGESUFFIX=v1
  498. endif
  499. ifeq ($(OS_TARGET),go32v2)
  500. STATICLIBPREFIX=
  501. FPCMADE=fpcmade.dos
  502. ZIPSUFFIX=go32
  503. endif
  504. ifeq ($(OS_TARGET),linux)
  505. EXEEXT=
  506. HASSHAREDLIB=1
  507. FPCMADE=fpcmade.lnx
  508. ZIPSUFFIX=linux
  509. endif
  510. ifeq ($(OS_TARGET),freebsd)
  511. EXEEXT=
  512. HASSHAREDLIB=1
  513. FPCMADE=fpcmade.freebsd
  514. ZIPSUFFIX=freebsd
  515. endif
  516. ifeq ($(OS_TARGET),netbsd)
  517. EXEEXT=
  518. HASSHAREDLIB=1
  519. FPCMADE=fpcmade.netbsd
  520. ZIPSUFFIX=netbsd
  521. endif
  522. ifeq ($(OS_TARGET),win32)
  523. PPUEXT=.ppw
  524. OEXT=.ow
  525. ASMEXT=.sw
  526. SMARTEXT=.slw
  527. STATICLIBEXT=.aw
  528. SHAREDLIBEXT=.dll
  529. FPCMADE=fpcmade.w32
  530. ZIPSUFFIX=w32
  531. endif
  532. ifeq ($(OS_TARGET),os2)
  533. PPUEXT=.ppo
  534. ASMEXT=.so2
  535. OEXT=.oo2
  536. AOUTEXT=.out
  537. SMARTEXT=.sl2
  538. STATICLIBPREFIX=
  539. STATICLIBEXT=.ao2
  540. SHAREDLIBEXT=.dll
  541. FPCMADE=fpcmade.os2
  542. ZIPSUFFIX=emx
  543. ECHO=echo
  544. endif
  545. ifeq ($(OS_TARGET),amiga)
  546. EXEEXT=
  547. PPUEXT=.ppa
  548. ASMEXT=.asm
  549. OEXT=.o
  550. SMARTEXT=.sl
  551. STATICLIBEXT=.a
  552. SHAREDLIBEXT=.library
  553. FPCMADE=fpcmade.amg
  554. endif
  555. ifeq ($(OS_TARGET),atari)
  556. PPUEXT=.ppt
  557. ASMEXT=.s
  558. OEXT=.o
  559. SMARTEXT=.sl
  560. STATICLIBEXT=.a
  561. EXEEXT=.ttp
  562. FPCMADE=fpcmade.ata
  563. endif
  564. ifeq ($(OS_TARGET),beos)
  565. PPUEXT=.ppu
  566. ASMEXT=.s
  567. OEXT=.o
  568. SMARTEXT=.sl
  569. STATICLIBEXT=.a
  570. EXEEXT=
  571. FPCMADE=fpcmade.be
  572. ZIPSUFFIX=be
  573. endif
  574. ifeq ($(OS_TARGET),sunos)
  575. PPUEXT=.ppu
  576. ASMEXT=.s
  577. OEXT=.o
  578. SMARTEXT=.sl
  579. STATICLIBEXT=.a
  580. EXEEXT=
  581. FPCMADE=fpcmade.sun
  582. ZIPSUFFIX=sun
  583. endif
  584. ifeq ($(OS_TARGET),qnx)
  585. PPUEXT=.ppu
  586. ASMEXT=.s
  587. OEXT=.o
  588. SMARTEXT=.sl
  589. STATICLIBEXT=.a
  590. EXEEXT=
  591. FPCMADE=fpcmade.qnx
  592. ZIPSUFFIX=qnx
  593. endif
  594. ifndef ECHO
  595. ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
  596. ifeq ($(ECHO),)
  597. ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
  598. ifeq ($(ECHO),)
  599. ECHO=
  600. else
  601. ECHO:=$(firstword $(ECHO))
  602. endif
  603. else
  604. ECHO:=$(firstword $(ECHO))
  605. endif
  606. endif
  607. export ECHO
  608. ifndef DATE
  609. DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
  610. ifeq ($(DATE),)
  611. DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
  612. ifeq ($(DATE),)
  613. DATE=
  614. else
  615. DATE:=$(firstword $(DATE))
  616. endif
  617. else
  618. DATE:=$(firstword $(DATE))
  619. endif
  620. endif
  621. export DATE
  622. ifndef GINSTALL
  623. GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
  624. ifeq ($(GINSTALL),)
  625. GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
  626. ifeq ($(GINSTALL),)
  627. GINSTALL=
  628. else
  629. GINSTALL:=$(firstword $(GINSTALL))
  630. endif
  631. else
  632. GINSTALL:=$(firstword $(GINSTALL))
  633. endif
  634. endif
  635. export GINSTALL
  636. ifndef CPPROG
  637. CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
  638. ifeq ($(CPPROG),)
  639. CPPROG=
  640. else
  641. CPPROG:=$(firstword $(CPPROG))
  642. endif
  643. endif
  644. export CPPROG
  645. ifndef RMPROG
  646. RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
  647. ifeq ($(RMPROG),)
  648. RMPROG=
  649. else
  650. RMPROG:=$(firstword $(RMPROG))
  651. endif
  652. endif
  653. export RMPROG
  654. ifndef MVPROG
  655. MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
  656. ifeq ($(MVPROG),)
  657. MVPROG=
  658. else
  659. MVPROG:=$(firstword $(MVPROG))
  660. endif
  661. endif
  662. export MVPROG
  663. ifndef ECHOREDIR
  664. ECHOREDIR:=$(subst /,$(PATHSEP),$(ECHO))
  665. endif
  666. ifndef COPY
  667. COPY:=$(CPPROG) -fp
  668. endif
  669. ifndef COPYTREE
  670. COPYTREE:=$(CPPROG) -rfp
  671. endif
  672. ifndef MOVE
  673. MOVE:=$(MVPROG) -f
  674. endif
  675. ifndef DEL
  676. DEL:=$(RMPROG) -f
  677. endif
  678. ifndef DELTREE
  679. DELTREE:=$(RMPROG) -rf
  680. endif
  681. ifndef INSTALL
  682. ifdef inUnix
  683. INSTALL:=$(GINSTALL) -c -m 644
  684. else
  685. INSTALL:=$(COPY)
  686. endif
  687. endif
  688. ifndef INSTALLEXE
  689. ifdef inUnix
  690. INSTALLEXE:=$(GINSTALL) -c -m 755
  691. else
  692. INSTALLEXE:=$(COPY)
  693. endif
  694. endif
  695. ifndef MKDIR
  696. MKDIR:=$(GINSTALL) -m 755 -d
  697. endif
  698. export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
  699. ifndef PPUMOVE
  700. PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
  701. ifeq ($(PPUMOVE),)
  702. PPUMOVE=
  703. else
  704. PPUMOVE:=$(firstword $(PPUMOVE))
  705. endif
  706. endif
  707. export PPUMOVE
  708. ifndef FPCMAKE
  709. FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
  710. ifeq ($(FPCMAKE),)
  711. FPCMAKE=
  712. else
  713. FPCMAKE:=$(firstword $(FPCMAKE))
  714. endif
  715. endif
  716. export FPCMAKE
  717. ifndef ZIPPROG
  718. ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
  719. ifeq ($(ZIPPROG),)
  720. ZIPPROG=
  721. else
  722. ZIPPROG:=$(firstword $(ZIPPROG))
  723. endif
  724. endif
  725. export ZIPPROG
  726. ifndef TARPROG
  727. TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
  728. ifeq ($(TARPROG),)
  729. TARPROG=
  730. else
  731. TARPROG:=$(firstword $(TARPROG))
  732. endif
  733. endif
  734. export TARPROG
  735. ASNAME=as
  736. LDNAME=ld
  737. ARNAME=ar
  738. RCNAME=rc
  739. ifeq ($(OS_TARGET),win32)
  740. ASNAME=asw
  741. LDNAME=ldw
  742. ARNAME=arw
  743. endif
  744. ifndef ASPROG
  745. ifdef CROSSBINDIR
  746. ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
  747. else
  748. ASPROG=$(ASNAME)
  749. endif
  750. endif
  751. ifndef LDPROG
  752. ifdef CROSSBINDIR
  753. LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
  754. else
  755. LDPROG=$(LDNAME)
  756. endif
  757. endif
  758. ifndef RCPROG
  759. ifdef CROSSBINDIR
  760. RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
  761. else
  762. RCPROG=$(RCNAME)
  763. endif
  764. endif
  765. ifndef ARPROG
  766. ifdef CROSSBINDIR
  767. ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
  768. else
  769. ARPROG=$(ARNAME)
  770. endif
  771. endif
  772. AS=$(ASPROG)
  773. LD=$(LDPROG)
  774. RC=$(RCPROG)
  775. AR=$(ARPROG)
  776. PPAS=ppas$(BATCHEXT)
  777. ifdef inUnix
  778. LDCONFIG=ldconfig
  779. else
  780. LDCONFIG=
  781. endif
  782. ifdef DATE
  783. DATESTR:=$(shell $(DATE) +%Y%m%d)
  784. else
  785. DATESTR=
  786. endif
  787. ifndef UPXPROG
  788. ifeq ($(OS_TARGET),go32v2)
  789. UPXPROG:=1
  790. endif
  791. ifeq ($(OS_TARGET),win32)
  792. UPXPROG:=1
  793. endif
  794. ifdef UPXPROG
  795. UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
  796. ifeq ($(UPXPROG),)
  797. UPXPROG=
  798. else
  799. UPXPROG:=$(firstword $(UPXPROG))
  800. endif
  801. else
  802. UPXPROG=
  803. endif
  804. endif
  805. export UPXPROG
  806. ZIPOPT=-9
  807. ZIPEXT=.zip
  808. ifeq ($(USETAR),bz2)
  809. TAROPT=vI
  810. TAREXT=.tar.bz2
  811. else
  812. TAROPT=vz
  813. TAREXT=.tar.gz
  814. endif
  815. ifndef NOCPUDEF
  816. override FPCOPTDEF=$(CPU_TARGET)
  817. endif
  818. ifneq ($(OS_TARGET),$(OS_SOURCE))
  819. override FPCOPT+=-T$(OS_TARGET)
  820. endif
  821. ifdef UNITDIR
  822. override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
  823. endif
  824. ifdef LIBDIR
  825. override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
  826. endif
  827. ifdef OBJDIR
  828. override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
  829. endif
  830. ifdef INCDIR
  831. override FPCOPT+=$(addprefix -Fi,$(INCDIR))
  832. endif
  833. ifdef LINKSMART
  834. override FPCOPT+=-XX
  835. endif
  836. ifdef CREATESMART
  837. override FPCOPT+=-CX
  838. endif
  839. ifdef DEBUG
  840. override FPCOPT+=-gl
  841. override FPCOPTDEF+=DEBUG
  842. endif
  843. ifdef RELEASE
  844. ifeq ($(CPU_TARGET),i386)
  845. FPCCPUOPT:=-OG2p3
  846. else
  847. FPCCPUOPT:=
  848. endif
  849. override FPCOPT+=-Xs $(FPCCPUOPT) -n
  850. override FPCOPTDEF+=RELEASE
  851. endif
  852. ifdef STRIP
  853. override FPCOPT+=-Xs
  854. endif
  855. ifdef OPTIMIZE
  856. ifeq ($(CPU_TARGET),i386)
  857. override FPCOPT+=-OG2p3
  858. endif
  859. endif
  860. ifdef VERBOSE
  861. override FPCOPT+=-vwni
  862. endif
  863. ifdef COMPILER_OPTIONS
  864. override FPCOPT+=$(COMPILER_OPTIONS)
  865. endif
  866. ifdef COMPILER_UNITDIR
  867. override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
  868. endif
  869. ifdef COMPILER_LIBRARYDIR
  870. override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
  871. endif
  872. ifdef COMPILER_OBJECTDIR
  873. override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
  874. endif
  875. ifdef COMPILER_INCLUDEDIR
  876. override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
  877. endif
  878. ifdef CROSSBINDIR
  879. override FPCOPT+=-FD$(CROSSBINDIR)
  880. endif
  881. ifdef COMPILER_TARGETDIR
  882. override FPCOPT+=-FE$(COMPILER_TARGETDIR)
  883. ifeq ($(COMPILER_TARGETDIR),.)
  884. override TARGETDIRPREFIX=
  885. else
  886. override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
  887. endif
  888. endif
  889. ifdef COMPILER_UNITTARGETDIR
  890. override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
  891. ifeq ($(COMPILER_UNITTARGETDIR),.)
  892. override UNITTARGETDIRPREFIX=
  893. else
  894. override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
  895. endif
  896. else
  897. ifdef COMPILER_TARGETDIR
  898. override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
  899. override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
  900. endif
  901. endif
  902. ifdef OPT
  903. override FPCOPT+=$(OPT)
  904. endif
  905. ifdef FPCOPTDEF
  906. override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
  907. endif
  908. ifdef CFGFILE
  909. override FPCOPT+=@$(CFGFILE)
  910. endif
  911. ifdef USEENV
  912. override FPCEXTCMD:=$(FPCOPT)
  913. override FPCOPT:=!FPCEXTCMD
  914. export FPCEXTCMD
  915. endif
  916. override COMPILER:=$(FPC) $(FPCOPT)
  917. ifeq (,$(findstring -s ,$(COMPILER)))
  918. EXECPPAS=
  919. else
  920. ifeq ($(OS_SOURCE),$(OS_TARGET))
  921. EXECPPAS:=@$(PPAS)
  922. endif
  923. endif
  924. ifdef TARGET_RSTS
  925. override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
  926. override CLEANRSTFILES+=$(RSTFILES)
  927. endif
  928. .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
  929. ifdef INSTALL_UNITS
  930. override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
  931. endif
  932. ifdef INSTALL_BUILDUNIT
  933. override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
  934. endif
  935. ifdef INSTALLPPUFILES
  936. override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
  937. override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
  938. override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES)))
  939. override INSTALL_CREATEPACKAGEFPC=1
  940. endif
  941. ifdef INSTALLEXEFILES
  942. override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
  943. endif
  944. fpc_install: all $(INSTALLTARGET)
  945. ifdef INSTALLEXEFILES
  946. $(MKDIR) $(INSTALL_BINDIR)
  947. ifdef UPXPROG
  948. -$(UPXPROG) $(INSTALLEXEFILES)
  949. endif
  950. $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
  951. endif
  952. ifdef INSTALL_CREATEPACKAGEFPC
  953. ifdef FPCMAKE
  954. ifdef PACKAGE_VERSION
  955. ifneq ($(wildcard Makefile.fpc),)
  956. $(FPCMAKE) -p -T$(OS_TARGET) Makefile.fpc
  957. $(MKDIR) $(INSTALL_UNITDIR)
  958. $(INSTALL) Package.fpc $(INSTALL_UNITDIR)
  959. endif
  960. endif
  961. endif
  962. endif
  963. ifdef INSTALLPPUFILES
  964. $(MKDIR) $(INSTALL_UNITDIR)
  965. $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
  966. ifneq ($(INSTALLPPULINKFILES),)
  967. $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
  968. endif
  969. ifneq ($(wildcard $(LIB_FULLNAME)),)
  970. $(MKDIR) $(INSTALL_LIBDIR)
  971. $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
  972. ifdef inUnix
  973. ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
  974. endif
  975. endif
  976. endif
  977. ifdef INSTALL_FILES
  978. $(MKDIR) $(INSTALL_DATADIR)
  979. $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
  980. endif
  981. fpc_sourceinstall: distclean
  982. $(MKDIR) $(INSTALL_SOURCEDIR)
  983. $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
  984. fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
  985. ifdef HASEXAMPLES
  986. $(MKDIR) $(INSTALL_EXAMPLEDIR)
  987. endif
  988. ifdef EXAMPLESOURCEFILES
  989. $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
  990. endif
  991. ifdef TARGET_EXAMPLEDIRS
  992. $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
  993. endif
  994. .PHONY: fpc_distinstall
  995. fpc_distinstall: install exampleinstall
  996. .PHONY: fpc_zipinstall fpc_zipsourceinstall fpc_zipexampleinstall
  997. ifndef PACKDIR
  998. ifndef inUnix
  999. PACKDIR=$(BASEDIR)/../fpc-pack
  1000. else
  1001. PACKDIR=/tmp/fpc-pack
  1002. endif
  1003. endif
  1004. ifndef ZIPNAME
  1005. ifdef DIST_ZIPNAME
  1006. ZIPNAME=$(DIST_ZIPNAME)
  1007. else
  1008. ZIPNAME=$(ZIPPREFIX)$(PACKAGE_NAME)$(ZIPSUFFIX)
  1009. endif
  1010. endif
  1011. ifndef ZIPTARGET
  1012. ifdef DIST_ZIPTARGET
  1013. ZIPTARGET=DIST_ZIPTARGET
  1014. else
  1015. ZIPTARGET=install
  1016. endif
  1017. endif
  1018. ifndef USEZIP
  1019. ifdef inUnix
  1020. USETAR=1
  1021. endif
  1022. endif
  1023. ifndef inUnix
  1024. USEZIPWRAPPER=1
  1025. endif
  1026. ifdef USEZIPWRAPPER
  1027. ZIPPATHSEP=$(PATHSEP)
  1028. ZIPWRAPPER=$(subst /,$(PATHSEP),$(DIST_DESTDIR)/fpczip$(BATCHEXT))
  1029. else
  1030. ZIPPATHSEP=/
  1031. endif
  1032. ZIPCMD_CDPACK:=cd $(subst /,$(ZIPPATHSEP),$(PACKDIR))
  1033. ZIPCMD_CDBASE:=cd $(subst /,$(ZIPPATHSEP),$(BASEDIR))
  1034. ifdef USETAR
  1035. ZIPDESTFILE:=$(DIST_DESTDIR)/$(ZIPNAME)$(TAREXT)
  1036. ZIPCMD_ZIP:=$(TARPROG) cf$(TAROPT) $(ZIPDESTFILE) *
  1037. else
  1038. ZIPDESTFILE:=$(DIST_DESTDIR)/$(ZIPNAME)$(ZIPEXT)
  1039. ZIPCMD_ZIP:=$(subst /,$(ZIPPATHSEP),$(ZIPPROG)) -Dr $(ZIPOPT) $(ZIPDESTFILE) *
  1040. endif
  1041. fpc_zipinstall:
  1042. $(MAKE) $(ZIPTARGET) INSTALL_PREFIX=$(PACKDIR) ZIPINSTALL=1
  1043. $(MKDIR) $(DIST_DESTDIR)
  1044. $(DEL) $(ZIPDESTFILE)
  1045. ifdef USEZIPWRAPPER
  1046. ifneq ($(ECHOREDIR),echo)
  1047. $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDPACK))" > $(ZIPWRAPPER)
  1048. $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_ZIP))" >> $(ZIPWRAPPER)
  1049. $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDBASE))" >> $(ZIPWRAPPER)
  1050. else
  1051. echo $(ZIPCMD_CDPACK) > $(ZIPWRAPPER)
  1052. echo $(ZIPCMD_ZIP) >> $(ZIPWRAPPER)
  1053. echo $(ZIPCMD_CDBASE) >> $(ZIPWRAPPER)
  1054. endif
  1055. ifdef inUnix
  1056. /bin/sh $(ZIPWRAPPER)
  1057. else
  1058. $(ZIPWRAPPER)
  1059. endif
  1060. $(DEL) $(ZIPWRAPPER)
  1061. else
  1062. $(ZIPCMD_CDPACK) ; $(ZIPCMD_ZIP) ; $(ZIPCMD_CDBASE)
  1063. endif
  1064. $(DELTREE) $(PACKDIR)
  1065. fpc_zipsourceinstall:
  1066. $(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall ZIPSUFFIX=src
  1067. fpc_zipexampleinstall:
  1068. ifdef HASEXAMPLES
  1069. $(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall ZIPSUFFIX=exm
  1070. endif
  1071. fpc_zipdistinstall:
  1072. $(MAKE) fpc_zipinstall ZIPTARGET=distinstall
  1073. .PHONY: fpc_clean fpc_cleanall fpc_distclean
  1074. ifdef EXEFILES
  1075. override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
  1076. endif
  1077. ifdef CLEAN_UNITS
  1078. override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
  1079. endif
  1080. ifdef CLEANPPUFILES
  1081. override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
  1082. override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
  1083. override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
  1084. endif
  1085. fpc_clean: $(CLEANTARGET)
  1086. ifdef CLEANEXEFILES
  1087. -$(DEL) $(CLEANEXEFILES)
  1088. endif
  1089. ifdef CLEANPPUFILES
  1090. -$(DEL) $(CLEANPPUFILES)
  1091. endif
  1092. ifneq ($(CLEANPPULINKFILES),)
  1093. -$(DEL) $(CLEANPPULINKFILES)
  1094. endif
  1095. ifdef CLEANRSTFILES
  1096. -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
  1097. endif
  1098. ifdef CLEAN_FILES
  1099. -$(DEL) $(CLEAN_FILES)
  1100. endif
  1101. ifdef LIB_NAME
  1102. -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
  1103. endif
  1104. -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
  1105. fpc_distclean: clean
  1106. ifdef COMPILER_UNITTARGETDIR
  1107. TARGETDIRCLEAN=fpc_clean
  1108. endif
  1109. fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
  1110. ifdef CLEANEXEFILES
  1111. -$(DEL) $(CLEANEXEFILES)
  1112. endif
  1113. -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
  1114. -$(DELTREE) *$(SMARTEXT)
  1115. -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
  1116. ifdef AOUTEXT
  1117. -$(DEL) *$(AOUTEXT)
  1118. endif
  1119. .PHONY: fpc_baseinfo
  1120. override INFORULES+=fpc_baseinfo
  1121. fpc_baseinfo:
  1122. @$(ECHO)
  1123. @$(ECHO) == Package info ==
  1124. @$(ECHO) Package Name..... $(PACKAGE_NAME)
  1125. @$(ECHO) Package Version.. $(PACKAGE_VERSION)
  1126. @$(ECHO)
  1127. @$(ECHO) == Configuration info ==
  1128. @$(ECHO)
  1129. @$(ECHO) FPC.......... $(FPC)
  1130. @$(ECHO) FPC Version.. $(FPC_VERSION)
  1131. @$(ECHO) Source CPU... $(CPU_SOURCE)
  1132. @$(ECHO) Target CPU... $(CPU_TARGET)
  1133. @$(ECHO) Source OS.... $(OS_SOURCE)
  1134. @$(ECHO) Target OS.... $(OS_TARGET)
  1135. @$(ECHO) Full Source.. $(FULL_SOURCE)
  1136. @$(ECHO) Full Target.. $(FULL_TARGET)
  1137. @$(ECHO)
  1138. @$(ECHO) == Directory info ==
  1139. @$(ECHO)
  1140. @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)
  1141. @$(ECHO)
  1142. @$(ECHO) Basedir......... $(BASEDIR)
  1143. @$(ECHO) FPCDir.......... $(FPCDIR)
  1144. @$(ECHO) CrossBinDir..... $(CROSSBINDIR)
  1145. @$(ECHO) UnitsDir........ $(UNITSDIR)
  1146. @$(ECHO) PackagesDir..... $(PACKAGESDIR)
  1147. @$(ECHO)
  1148. @$(ECHO) GCC library..... $(GCCLIBDIR)
  1149. @$(ECHO) Other library... $(OTHERLIBDIR)
  1150. @$(ECHO)
  1151. @$(ECHO) == Tools info ==
  1152. @$(ECHO)
  1153. @$(ECHO) As........ $(AS)
  1154. @$(ECHO) Ld........ $(LD)
  1155. @$(ECHO) Ar........ $(AR)
  1156. @$(ECHO) Rc........ $(RC)
  1157. @$(ECHO)
  1158. @$(ECHO) Mv........ $(MVPROG)
  1159. @$(ECHO) Cp........ $(CPPROG)
  1160. @$(ECHO) Rm........ $(RMPROG)
  1161. @$(ECHO) GInstall.. $(GINSTALL)
  1162. @$(ECHO) Echo...... $(ECHO)
  1163. @$(ECHO) Date...... $(DATE)
  1164. @$(ECHO) FPCMake... $(FPCMAKE)
  1165. @$(ECHO) PPUMove... $(PPUMOVE)
  1166. @$(ECHO) Upx....... $(UPXPROG)
  1167. @$(ECHO) Zip....... $(ZIPPROG)
  1168. @$(ECHO)
  1169. @$(ECHO) == Object info ==
  1170. @$(ECHO)
  1171. @$(ECHO) Target Loaders........ $(TARGET_LOADERS)
  1172. @$(ECHO) Target Units.......... $(TARGET_UNITS)
  1173. @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)
  1174. @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)
  1175. @$(ECHO) Target Dirs........... $(TARGET_DIRS)
  1176. @$(ECHO) Target Examples....... $(TARGET_EXAMPLES)
  1177. @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
  1178. @$(ECHO)
  1179. @$(ECHO) Clean Units......... $(CLEAN_UNITS)
  1180. @$(ECHO) Clean Files......... $(CLEAN_FILES)
  1181. @$(ECHO)
  1182. @$(ECHO) Install Units....... $(INSTALL_UNITS)
  1183. @$(ECHO) Install Files....... $(INSTALL_FILES)
  1184. @$(ECHO)
  1185. @$(ECHO) == Install info ==
  1186. @$(ECHO)
  1187. @$(ECHO) DateStr.............. $(DATESTR)
  1188. @$(ECHO) ZipPrefix............ $(ZIPPREFIX)
  1189. @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
  1190. @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)
  1191. @$(ECHO)
  1192. @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)
  1193. @$(ECHO) Install binary dir... $(INSTALL_BINDIR)
  1194. @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)
  1195. @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)
  1196. @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)
  1197. @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)
  1198. @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)
  1199. @$(ECHO) Install data dir..... $(INSTALL_DATADIR)
  1200. @$(ECHO)
  1201. @$(ECHO) Dist destination dir. $(DIST_DESTDIR)
  1202. @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)
  1203. @$(ECHO)
  1204. .PHONY: fpc_info
  1205. fpc_info: $(INFORULES)
  1206. .PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
  1207. fpc_makefile_dirs
  1208. fpc_makefile:
  1209. $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
  1210. fpc_makefile_sub1:
  1211. ifdef TARGET_DIRS
  1212. $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
  1213. endif
  1214. ifdef TARGET_EXAMPLEDIRS
  1215. $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
  1216. endif
  1217. fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
  1218. fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
  1219. fpc_makefiles: fpc_makefile fpc_makefile_dirs
  1220. TARGET_DIRS_COMPILER=1
  1221. TARGET_DIRS_RTL=1
  1222. TARGET_DIRS_UTILS=1
  1223. TARGET_DIRS_FCL=1
  1224. TARGET_DIRS_FV=1
  1225. TARGET_DIRS_PACKAGES=1
  1226. TARGET_DIRS_IDE=1
  1227. TARGET_DIRS_INSTALLER=1
  1228. ifdef TARGET_DIRS_COMPILER
  1229. compiler_all:
  1230. $(MAKE) -C compiler all
  1231. compiler_debug:
  1232. $(MAKE) -C compiler debug
  1233. compiler_smart:
  1234. $(MAKE) -C compiler smart
  1235. compiler_release:
  1236. $(MAKE) -C compiler release
  1237. compiler_examples:
  1238. $(MAKE) -C compiler examples
  1239. compiler_shared:
  1240. $(MAKE) -C compiler shared
  1241. compiler_install:
  1242. $(MAKE) -C compiler install
  1243. compiler_sourceinstall:
  1244. $(MAKE) -C compiler sourceinstall
  1245. compiler_exampleinstall:
  1246. $(MAKE) -C compiler exampleinstall
  1247. compiler_distinstall:
  1248. $(MAKE) -C compiler distinstall
  1249. compiler_zipinstall:
  1250. $(MAKE) -C compiler zipinstall
  1251. compiler_zipsourceinstall:
  1252. $(MAKE) -C compiler zipsourceinstall
  1253. compiler_zipexampleinstall:
  1254. $(MAKE) -C compiler zipexampleinstall
  1255. compiler_zipdistinstall:
  1256. $(MAKE) -C compiler zipdistinstall
  1257. compiler_clean:
  1258. $(MAKE) -C compiler clean
  1259. compiler_distclean:
  1260. $(MAKE) -C compiler distclean
  1261. compiler_cleanall:
  1262. $(MAKE) -C compiler cleanall
  1263. compiler_info:
  1264. $(MAKE) -C compiler info
  1265. compiler_makefiles:
  1266. $(MAKE) -C compiler makefiles
  1267. compiler:
  1268. $(MAKE) -C compiler all
  1269. .PHONY: compiler_all compiler_debug compiler_smart compiler_release compiler_examples compiler_shared compiler_install compiler_sourceinstall compiler_exampleinstall compiler_distinstall compiler_zipinstall compiler_zipsourceinstall compiler_zipexampleinstall compiler_zipdistinstall compiler_clean compiler_distclean compiler_cleanall compiler_info compiler_makefiles compiler
  1270. endif
  1271. ifdef TARGET_DIRS_RTL
  1272. rtl_all:
  1273. $(MAKE) -C rtl all
  1274. rtl_debug:
  1275. $(MAKE) -C rtl debug
  1276. rtl_smart:
  1277. $(MAKE) -C rtl smart
  1278. rtl_release:
  1279. $(MAKE) -C rtl release
  1280. rtl_examples:
  1281. $(MAKE) -C rtl examples
  1282. rtl_shared:
  1283. $(MAKE) -C rtl shared
  1284. rtl_install:
  1285. $(MAKE) -C rtl install
  1286. rtl_sourceinstall:
  1287. $(MAKE) -C rtl sourceinstall
  1288. rtl_exampleinstall:
  1289. $(MAKE) -C rtl exampleinstall
  1290. rtl_distinstall:
  1291. $(MAKE) -C rtl distinstall
  1292. rtl_zipinstall:
  1293. $(MAKE) -C rtl zipinstall
  1294. rtl_zipsourceinstall:
  1295. $(MAKE) -C rtl zipsourceinstall
  1296. rtl_zipexampleinstall:
  1297. $(MAKE) -C rtl zipexampleinstall
  1298. rtl_zipdistinstall:
  1299. $(MAKE) -C rtl zipdistinstall
  1300. rtl_clean:
  1301. $(MAKE) -C rtl clean
  1302. rtl_distclean:
  1303. $(MAKE) -C rtl distclean
  1304. rtl_cleanall:
  1305. $(MAKE) -C rtl cleanall
  1306. rtl_info:
  1307. $(MAKE) -C rtl info
  1308. rtl_makefiles:
  1309. $(MAKE) -C rtl makefiles
  1310. rtl:
  1311. $(MAKE) -C rtl all
  1312. .PHONY: rtl_all rtl_debug rtl_smart rtl_release rtl_examples rtl_shared rtl_install rtl_sourceinstall rtl_exampleinstall rtl_distinstall rtl_zipinstall rtl_zipsourceinstall rtl_zipexampleinstall rtl_zipdistinstall rtl_clean rtl_distclean rtl_cleanall rtl_info rtl_makefiles rtl
  1313. endif
  1314. ifdef TARGET_DIRS_UTILS
  1315. utils_all:
  1316. $(MAKE) -C utils all
  1317. utils_debug:
  1318. $(MAKE) -C utils debug
  1319. utils_smart:
  1320. $(MAKE) -C utils smart
  1321. utils_release:
  1322. $(MAKE) -C utils release
  1323. utils_examples:
  1324. $(MAKE) -C utils examples
  1325. utils_shared:
  1326. $(MAKE) -C utils shared
  1327. utils_install:
  1328. $(MAKE) -C utils install
  1329. utils_sourceinstall:
  1330. $(MAKE) -C utils sourceinstall
  1331. utils_exampleinstall:
  1332. $(MAKE) -C utils exampleinstall
  1333. utils_distinstall:
  1334. $(MAKE) -C utils distinstall
  1335. utils_zipinstall:
  1336. $(MAKE) -C utils zipinstall
  1337. utils_zipsourceinstall:
  1338. $(MAKE) -C utils zipsourceinstall
  1339. utils_zipexampleinstall:
  1340. $(MAKE) -C utils zipexampleinstall
  1341. utils_zipdistinstall:
  1342. $(MAKE) -C utils zipdistinstall
  1343. utils_clean:
  1344. $(MAKE) -C utils clean
  1345. utils_distclean:
  1346. $(MAKE) -C utils distclean
  1347. utils_cleanall:
  1348. $(MAKE) -C utils cleanall
  1349. utils_info:
  1350. $(MAKE) -C utils info
  1351. utils_makefiles:
  1352. $(MAKE) -C utils makefiles
  1353. utils:
  1354. $(MAKE) -C utils all
  1355. .PHONY: utils_all utils_debug utils_smart utils_release utils_examples utils_shared utils_install utils_sourceinstall utils_exampleinstall utils_distinstall utils_zipinstall utils_zipsourceinstall utils_zipexampleinstall utils_zipdistinstall utils_clean utils_distclean utils_cleanall utils_info utils_makefiles utils
  1356. endif
  1357. ifdef TARGET_DIRS_FCL
  1358. fcl_all:
  1359. $(MAKE) -C fcl all
  1360. fcl_debug:
  1361. $(MAKE) -C fcl debug
  1362. fcl_smart:
  1363. $(MAKE) -C fcl smart
  1364. fcl_release:
  1365. $(MAKE) -C fcl release
  1366. fcl_examples:
  1367. $(MAKE) -C fcl examples
  1368. fcl_shared:
  1369. $(MAKE) -C fcl shared
  1370. fcl_install:
  1371. $(MAKE) -C fcl install
  1372. fcl_sourceinstall:
  1373. $(MAKE) -C fcl sourceinstall
  1374. fcl_exampleinstall:
  1375. $(MAKE) -C fcl exampleinstall
  1376. fcl_distinstall:
  1377. $(MAKE) -C fcl distinstall
  1378. fcl_zipinstall:
  1379. $(MAKE) -C fcl zipinstall
  1380. fcl_zipsourceinstall:
  1381. $(MAKE) -C fcl zipsourceinstall
  1382. fcl_zipexampleinstall:
  1383. $(MAKE) -C fcl zipexampleinstall
  1384. fcl_zipdistinstall:
  1385. $(MAKE) -C fcl zipdistinstall
  1386. fcl_clean:
  1387. $(MAKE) -C fcl clean
  1388. fcl_distclean:
  1389. $(MAKE) -C fcl distclean
  1390. fcl_cleanall:
  1391. $(MAKE) -C fcl cleanall
  1392. fcl_info:
  1393. $(MAKE) -C fcl info
  1394. fcl_makefiles:
  1395. $(MAKE) -C fcl makefiles
  1396. fcl:
  1397. $(MAKE) -C fcl all
  1398. .PHONY: fcl_all fcl_debug fcl_smart fcl_release fcl_examples fcl_shared fcl_install fcl_sourceinstall fcl_exampleinstall fcl_distinstall fcl_zipinstall fcl_zipsourceinstall fcl_zipexampleinstall fcl_zipdistinstall fcl_clean fcl_distclean fcl_cleanall fcl_info fcl_makefiles fcl
  1399. endif
  1400. ifdef TARGET_DIRS_FV
  1401. fv_all:
  1402. $(MAKE) -C fv all
  1403. fv_debug:
  1404. $(MAKE) -C fv debug
  1405. fv_smart:
  1406. $(MAKE) -C fv smart
  1407. fv_release:
  1408. $(MAKE) -C fv release
  1409. fv_examples:
  1410. $(MAKE) -C fv examples
  1411. fv_shared:
  1412. $(MAKE) -C fv shared
  1413. fv_install:
  1414. $(MAKE) -C fv install
  1415. fv_sourceinstall:
  1416. $(MAKE) -C fv sourceinstall
  1417. fv_exampleinstall:
  1418. $(MAKE) -C fv exampleinstall
  1419. fv_distinstall:
  1420. $(MAKE) -C fv distinstall
  1421. fv_zipinstall:
  1422. $(MAKE) -C fv zipinstall
  1423. fv_zipsourceinstall:
  1424. $(MAKE) -C fv zipsourceinstall
  1425. fv_zipexampleinstall:
  1426. $(MAKE) -C fv zipexampleinstall
  1427. fv_zipdistinstall:
  1428. $(MAKE) -C fv zipdistinstall
  1429. fv_clean:
  1430. $(MAKE) -C fv clean
  1431. fv_distclean:
  1432. $(MAKE) -C fv distclean
  1433. fv_cleanall:
  1434. $(MAKE) -C fv cleanall
  1435. fv_info:
  1436. $(MAKE) -C fv info
  1437. fv_makefiles:
  1438. $(MAKE) -C fv makefiles
  1439. fv:
  1440. $(MAKE) -C fv all
  1441. .PHONY: fv_all fv_debug fv_smart fv_release fv_examples fv_shared fv_install fv_sourceinstall fv_exampleinstall fv_distinstall fv_zipinstall fv_zipsourceinstall fv_zipexampleinstall fv_zipdistinstall fv_clean fv_distclean fv_cleanall fv_info fv_makefiles fv
  1442. endif
  1443. ifdef TARGET_DIRS_PACKAGES
  1444. packages_all:
  1445. $(MAKE) -C packages all
  1446. packages_debug:
  1447. $(MAKE) -C packages debug
  1448. packages_smart:
  1449. $(MAKE) -C packages smart
  1450. packages_release:
  1451. $(MAKE) -C packages release
  1452. packages_examples:
  1453. $(MAKE) -C packages examples
  1454. packages_shared:
  1455. $(MAKE) -C packages shared
  1456. packages_install:
  1457. $(MAKE) -C packages install
  1458. packages_sourceinstall:
  1459. $(MAKE) -C packages sourceinstall
  1460. packages_exampleinstall:
  1461. $(MAKE) -C packages exampleinstall
  1462. packages_distinstall:
  1463. $(MAKE) -C packages distinstall
  1464. packages_zipinstall:
  1465. $(MAKE) -C packages zipinstall
  1466. packages_zipsourceinstall:
  1467. $(MAKE) -C packages zipsourceinstall
  1468. packages_zipexampleinstall:
  1469. $(MAKE) -C packages zipexampleinstall
  1470. packages_zipdistinstall:
  1471. $(MAKE) -C packages zipdistinstall
  1472. packages_clean:
  1473. $(MAKE) -C packages clean
  1474. packages_distclean:
  1475. $(MAKE) -C packages distclean
  1476. packages_cleanall:
  1477. $(MAKE) -C packages cleanall
  1478. packages_info:
  1479. $(MAKE) -C packages info
  1480. packages_makefiles:
  1481. $(MAKE) -C packages makefiles
  1482. packages:
  1483. $(MAKE) -C packages all
  1484. .PHONY: packages_all packages_debug packages_smart packages_release packages_examples packages_shared packages_install packages_sourceinstall packages_exampleinstall packages_distinstall packages_zipinstall packages_zipsourceinstall packages_zipexampleinstall packages_zipdistinstall packages_clean packages_distclean packages_cleanall packages_info packages_makefiles packages
  1485. endif
  1486. ifdef TARGET_DIRS_IDE
  1487. ide_all:
  1488. $(MAKE) -C ide all
  1489. ide_debug:
  1490. $(MAKE) -C ide debug
  1491. ide_smart:
  1492. $(MAKE) -C ide smart
  1493. ide_release:
  1494. $(MAKE) -C ide release
  1495. ide_examples:
  1496. $(MAKE) -C ide examples
  1497. ide_shared:
  1498. $(MAKE) -C ide shared
  1499. ide_install:
  1500. $(MAKE) -C ide install
  1501. ide_sourceinstall:
  1502. $(MAKE) -C ide sourceinstall
  1503. ide_exampleinstall:
  1504. $(MAKE) -C ide exampleinstall
  1505. ide_distinstall:
  1506. $(MAKE) -C ide distinstall
  1507. ide_zipinstall:
  1508. $(MAKE) -C ide zipinstall
  1509. ide_zipsourceinstall:
  1510. $(MAKE) -C ide zipsourceinstall
  1511. ide_zipexampleinstall:
  1512. $(MAKE) -C ide zipexampleinstall
  1513. ide_zipdistinstall:
  1514. $(MAKE) -C ide zipdistinstall
  1515. ide_clean:
  1516. $(MAKE) -C ide clean
  1517. ide_distclean:
  1518. $(MAKE) -C ide distclean
  1519. ide_cleanall:
  1520. $(MAKE) -C ide cleanall
  1521. ide_info:
  1522. $(MAKE) -C ide info
  1523. ide_makefiles:
  1524. $(MAKE) -C ide makefiles
  1525. ide:
  1526. $(MAKE) -C ide all
  1527. .PHONY: ide_all ide_debug ide_smart ide_release ide_examples ide_shared ide_install ide_sourceinstall ide_exampleinstall ide_distinstall ide_zipinstall ide_zipsourceinstall ide_zipexampleinstall ide_zipdistinstall ide_clean ide_distclean ide_cleanall ide_info ide_makefiles ide
  1528. endif
  1529. ifdef TARGET_DIRS_INSTALLER
  1530. installer_all:
  1531. $(MAKE) -C installer all
  1532. installer_debug:
  1533. $(MAKE) -C installer debug
  1534. installer_smart:
  1535. $(MAKE) -C installer smart
  1536. installer_release:
  1537. $(MAKE) -C installer release
  1538. installer_examples:
  1539. $(MAKE) -C installer examples
  1540. installer_shared:
  1541. $(MAKE) -C installer shared
  1542. installer_install:
  1543. $(MAKE) -C installer install
  1544. installer_sourceinstall:
  1545. $(MAKE) -C installer sourceinstall
  1546. installer_exampleinstall:
  1547. $(MAKE) -C installer exampleinstall
  1548. installer_distinstall:
  1549. $(MAKE) -C installer distinstall
  1550. installer_zipinstall:
  1551. $(MAKE) -C installer zipinstall
  1552. installer_zipsourceinstall:
  1553. $(MAKE) -C installer zipsourceinstall
  1554. installer_zipexampleinstall:
  1555. $(MAKE) -C installer zipexampleinstall
  1556. installer_zipdistinstall:
  1557. $(MAKE) -C installer zipdistinstall
  1558. installer_clean:
  1559. $(MAKE) -C installer clean
  1560. installer_distclean:
  1561. $(MAKE) -C installer distclean
  1562. installer_cleanall:
  1563. $(MAKE) -C installer cleanall
  1564. installer_info:
  1565. $(MAKE) -C installer info
  1566. installer_makefiles:
  1567. $(MAKE) -C installer makefiles
  1568. installer:
  1569. $(MAKE) -C installer all
  1570. .PHONY: installer_all installer_debug installer_smart installer_release installer_examples installer_shared installer_install installer_sourceinstall installer_exampleinstall installer_distinstall installer_zipinstall installer_zipsourceinstall installer_zipexampleinstall installer_zipdistinstall installer_clean installer_distclean installer_cleanall installer_info installer_makefiles installer
  1571. endif
  1572. debug: $(addsuffix _debug,$(TARGET_DIRS))
  1573. smart: $(addsuffix _smart,$(TARGET_DIRS))
  1574. release: $(addsuffix _release,$(TARGET_DIRS))
  1575. examples: $(addsuffix _examples,$(TARGET_DIRS))
  1576. shared: $(addsuffix _shared,$(TARGET_DIRS))
  1577. sourceinstall: fpc_sourceinstall
  1578. exampleinstall: fpc_exampleinstall $(addsuffix _exampleinstall,$(TARGET_DIRS))
  1579. distinstall: fpc_distinstall
  1580. zipsourceinstall: fpc_zipsourceinstall
  1581. zipexampleinstall: fpc_zipexampleinstall $(addsuffix _zipexampleinstall,$(TARGET_DIRS))
  1582. zipdistinstall: fpc_zipdistinstall $(addsuffix _zipdistinstall,$(TARGET_DIRS))
  1583. cleanall: $(addsuffix _cleanall,$(TARGET_DIRS))
  1584. info: fpc_info
  1585. makefiles: fpc_makefiles
  1586. .PHONY: debug smart release examples shared sourceinstall exampleinstall distinstall zipsourceinstall zipexampleinstall zipdistinstall cleanall info makefiles
  1587. ifneq ($(wildcard fpcmake.loc),)
  1588. include fpcmake.loc
  1589. endif
  1590. unexport FPC_VERSION OS_SOURCE
  1591. override TARGET_DIRS:=$(wildcard $(TARGET_DIRS))
  1592. .PHONY: help checkfpcdir
  1593. help:
  1594. @$(ECHO)
  1595. @$(ECHO) Directory targets:
  1596. @$(ECHO)
  1597. @$(ECHO) $(TARGET_DIRS)
  1598. @$(ECHO)
  1599. @$(ECHO) Packing targets are:
  1600. @$(ECHO)
  1601. @$(ECHO) go32v2zip,win32zip,linuxzip,freebsdzip,sourcezip,os2zip
  1602. @$(ECHO)
  1603. @exit
  1604. .PHONY: compiler_cycle
  1605. compiler_cycle:
  1606. $(MAKE) -C compiler cycle
  1607. .PHONY: packages_base_all packages_extra_all \
  1608. packages_base_smart packages_extra_smart
  1609. packages_base_all:
  1610. $(MAKE) -C packages base_all
  1611. packages_base_smart:
  1612. $(MAKE) -C packages base_smart
  1613. packages_extra_all:
  1614. $(MAKE) -C packages extra_all
  1615. packages_extra_smart:
  1616. $(MAKE) -C packages extra_smart
  1617. demo_install:
  1618. $(MAKE) -C $(CVSINSTALL)/demo sourceinstall
  1619. man_install:
  1620. $(MAKE) -C $(CVSINSTALL)/man installman
  1621. doc_install:
  1622. $(MAKE) -C $(CVSINSTALL)/doc installdoc
  1623. optzips: optcompinstall optcompzip
  1624. optcompinstall:
  1625. $(MAKE) compiler_cycle OPT=-dNEWOPTIMIZATIONS
  1626. $(MAKE) compiler_install
  1627. $(MAKE) rtl_install
  1628. optcompzip:
  1629. $(MAKE) fpc_zipinstall PACKAGENAME=optcomp ZIPTARGET=optcompinstall
  1630. .PHONY: all clean distclean build install installbase zipinstall zipinstallbase zipinstallfcl \
  1631. zipinstallpackages
  1632. all: build
  1633. clean: $(addsuffix _distclean,$(TARGET_DIRS))
  1634. $(DEL) build-stamp.$(OS_TARGET)
  1635. distclean: clean
  1636. build: build-stamp.$(OS_TARGET)
  1637. build-stamp.$(OS_TARGET):
  1638. $(MAKE) compiler_cycle
  1639. $(MAKE) rtl_clean
  1640. $(MAKE) packages_clean
  1641. $(MAKE) fcl_clean
  1642. $(MAKE) utils_clean
  1643. ifdef IDE
  1644. $(MAKE) fv_clean
  1645. $(MAKE) ide_clean
  1646. endif
  1647. $(MAKE) rtl_$(ALLTARGET) $(BUILDOPTS)
  1648. $(MAKE) packages_base_$(ALLTARGET) $(BUILDOPTS)
  1649. $(MAKE) fcl_$(ALLTARGET) $(BUILDOPTS)
  1650. $(MAKE) packages_extra_$(ALLTARGET) $(BUILDOPTS)
  1651. $(MAKE) utils_all $(BUILDOPTS)
  1652. ifdef IDE
  1653. $(MAKE) fv_all $(BUILDOPTS)
  1654. $(MAKE) ide_all $(BUILDOPTS)
  1655. $(MAKE) installer_all $(BUILDOPTS)
  1656. endif
  1657. $(ECHOREDIR) Build > build-stamp.$(OS_TARGET)
  1658. installbase: build-stamp.$(OS_TARGET)
  1659. $(MKDIR) $(INSTALL_BASEDIR)
  1660. $(MKDIR) $(INSTALL_DOCDIR)
  1661. $(MKDIR) $(INSTALL_BINDIR)
  1662. ifndef SNAPSHOT
  1663. $(COPY) $(CVSINSTALL)/doc/*.txt $(CVSINSTALL)/doc/copying* $(CVSINSTALL)/doc/faq.* $(INSTALL_DOCDIR)
  1664. ifeq ($(OS_TARGET),go32v2)
  1665. $(COPY) $(CVSINSTALL)/bingo32/* $(INSTALL_BINDIR)
  1666. endif
  1667. ifeq ($(OS_TARGET),win32)
  1668. $(COPY) $(CVSINSTALL)/binw32/* $(INSTALL_BINDIR)
  1669. endif
  1670. ifeq ($(OS_TARGET),linux)
  1671. $(MAKE) -C $(CVSINSTALL)/man installman
  1672. endif
  1673. ifeq ($(OS_TARGET),freebsd)
  1674. $(MAKE) -C $(CVSINSTALL)/man installman
  1675. endif
  1676. ifeq ($(OS_TARGET),sunos)
  1677. $(MAKE) -C $(CVSINSTALL)/man installman
  1678. endif
  1679. endif
  1680. $(MAKE) compiler_$(INSTALLTARGET) $(INSTALLOPTS)
  1681. $(MAKE) rtl_$(INSTALLTARGET) $(INSTALLOPTS)
  1682. install: build-stamp.$(OS_TARGET)
  1683. $(MAKE) installbase $(INSTALLOPTS)
  1684. $(MAKE) packages_$(INSTALLTARGET) $(INSTALLOPTS)
  1685. $(MAKE) fcl_$(INSTALLTARGET) $(INSTALLOPTS)
  1686. $(MAKE) utils_$(INSTALLTARGET) $(INSTALLOPTS)
  1687. ifdef IDE
  1688. $(NOSTOP)$(MAKE) ide_$(INSTALLTARGET) $(BUILDOPTS)
  1689. endif
  1690. zipinstall: build-stamp.$(OS_TARGET)
  1691. $(MAKE) fpc_zipinstall ZIPTARGET=installbase ZIPNAME=base$(ZIPSUFFIX) $(INSTALLOPTS)
  1692. $(MAKE) packages_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPPREFIX=$(PKGPRE)
  1693. $(MAKE) fcl_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPPREFIX=$(PKGPRE)
  1694. $(MAKE) utils_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPNAME=util$(ZIPSUFFIX)
  1695. ifdef IDE
  1696. $(NOSTOP)$(MAKE) ide_zip$(INSTALLTARGET) $(INSTALLOPTS) ZIPNAME=ide$(ZIPSUFFIX)
  1697. endif
  1698. .PHONY: docspdf docs docsrcinstall docsrc
  1699. DOCSOURCEDIR=$(INSTALL_SOURCEDIR)/../docs
  1700. docspdf:
  1701. $(MAKE) -C docs pdfinstall DOCINSTALLDIR=$(PACKDIR)
  1702. docs:
  1703. $(MAKE) fpc_zipinstall ZIPTARGET=docspdf ZIPNAME=docs
  1704. docsrcinstall:
  1705. $(MAKE) -C docs clean
  1706. $(MKDIR) $(DOCSOURCEDIR)
  1707. $(COPYTREE) docs/* $(DOCSOURCEDIR)
  1708. docsrc:
  1709. $(MAKE) fpc_zipinstall ZIPTARGET=docsrcinstall ZIPNAME=docsrc
  1710. .PHONY: demozip
  1711. demozip:
  1712. $(MAKE) -C demo zipsourceinstall ZIPNAME=demo
  1713. .PHONY: sourcebase sourcezip
  1714. INSTALL_BASESOURCEDIR=$(INSTALL_SOURCEDIR)/..
  1715. sourcebase:
  1716. $(MKDIR) $(INSTALL_BASESOURCEDIR)
  1717. $(MKDIR) $(INSTALL_BASESOURCEDIR)/rtl
  1718. $(MKDIR) $(INSTALL_BASESOURCEDIR)/packages
  1719. $(MKDIR) $(INSTALL_BASESOURCEDIR)/packages/base
  1720. $(MKDIR) $(INSTALL_BASESOURCEDIR)/packages/extra
  1721. $(COPY) Makefile* $(INSTALL_BASESOURCEDIR)
  1722. $(COPY) rtl/Makefile* $(INSTALL_BASESOURCEDIR)/rtl
  1723. $(COPY) packages/Makefile* $(INSTALL_BASESOURCEDIR)/packages
  1724. $(COPY) packages/base/Makefile* $(INSTALL_BASESOURCEDIR)/packages/base
  1725. $(COPY) packages/extra/Makefile* $(INSTALL_BASESOURCEDIR)/packages/extra
  1726. sourcezip:
  1727. $(MAKE) fpc_zipinstall ZIPTARGET=sourcebase ZIPNAME=basesrc
  1728. $(MAKE) compiler_zipsourceinstall
  1729. $(MAKE) rtl_zipsourceinstall
  1730. $(MAKE) packages_zipsourceinstall ZIPPREFIX=$(PKGPRE)
  1731. $(MAKE) fcl_zipsourceinstall
  1732. $(MAKE) utils_zipsourceinstall
  1733. $(MAKE) ide_zipsourceinstall
  1734. $(MAKE) installer_zipsourceinstall
  1735. .PHONY: go32v2 win32 linux freebsd os2 go32v2zip win32zip linuxzip freebsdzip os2zip
  1736. go32v2: checkfpcdir
  1737. $(MAKE) install OS_TARGET=go32v2
  1738. win32: checkfpcdir
  1739. $(MAKE) install OS_TARGET=win32
  1740. linux: checkfpcdir
  1741. $(MAKE) install OS_TARGET=linux
  1742. freebsd: checkfpcdir
  1743. $(MAKE) install OS_TARGET=freebsd
  1744. os2: checkfpcdir
  1745. $(MAKE) install OS_TARGET=os2
  1746. sunos: checkfpcdir
  1747. $(MAKE) install OS_TARGET=sunos
  1748. go32v2zip: checkfpcdir
  1749. $(MAKE) zipinstall OS_TARGET=go32v2
  1750. win32zip: checkfpcdir
  1751. $(MAKE) zipinstall OS_TARGET=win32
  1752. linuxzip: checkfpcdir
  1753. $(MAKE) zipinstall OS_TARGET=linux
  1754. freebsdzip : checkfpcdir
  1755. $(MAKE) zipinstall OS_TARGET=freebsd
  1756. beoszip : checkfpcdir
  1757. $(MAKE) zipinstall OS_TARGET=beos USEZIP=1
  1758. os2zip: checkfpcdir
  1759. $(MAKE) zipinstall OS_TARGET=os2
  1760. sunoszip: checkfpcdir
  1761. $(MAKE) zipinstall OS_TARGET=sunos TARPROG=gtar
  1762. .PHONY: renametoshort shortsrc shortbin shortnames
  1763. renametoshort:
  1764. -mv compiler$(ZIPSUFFIX).zip comp$(ZIPSUFFIX).zip
  1765. -mv utils$(ZIPSUFFIX).zip util$(ZIPSUFFIX).zip
  1766. -mv installer$(ZIPSUFFIX).zip inst$(ZIPSUFFIX).zip
  1767. -mv ugdbint$(ZIPSUFFIX).zip ugdb$(ZIPSUFFIX).zip
  1768. -mv uregexpr$(ZIPSUFFIX).zip ureg$(ZIPSUFFIX).zip
  1769. -mv upaszlib$(ZIPSUFFIX).zip upzl$(ZIPSUFFIX).zip
  1770. -mv uuncgi$(ZIPSUFFIX).zip ucgi$(ZIPSUFFIX).zip
  1771. -mv uunzip$(ZIPSUFFIX).zip uzip$(ZIPSUFFIX).zip
  1772. shortsrc:
  1773. $(MAKE) renametoshort ZIPSUFFIX=src
  1774. shortbin:
  1775. $(MAKE) renametoshort
  1776. shortnames: shortsrc shortbin
  1777. ifdef inUnix
  1778. ifneq ($(wildcard $(CVSINSTALL)/debian/changelog),)
  1779. .PHONY: debcopy deb
  1780. DEBPACKAGEVERSION:=$(shell head -n 1 $(CVSINSTALL)/debian/changelog | awk '{ print $$2 }' | tr -d '[()]')
  1781. DEBFPCVERSION:=$(shell echo $(DEBPACKAGEVERSION) | awk -F '-' '{ print $$1 }')
  1782. DEBSRCDIR:=/usr/src/fpc-$(DEBFPCVERSION)
  1783. debcopy: distclean
  1784. rm -rf $(DEBSRCDIR)
  1785. install -d $(DEBSRCDIR)
  1786. $(COPYTREE) compiler $(DEBSRCDIR)
  1787. $(COPYTREE) rtl $(DEBSRCDIR)
  1788. $(COPYTREE) fcl $(DEBSRCDIR)
  1789. $(COPYTREE) packages $(DEBSRCDIR)
  1790. $(COPYTREE) utils $(DEBSRCDIR)
  1791. $(COPYTREE) demo $(DEBSRCDIR)
  1792. $(COPYTREE) logs $(DEBSRCDIR)
  1793. $(COPYTREE) docs $(DEBSRCDIR)
  1794. $(COPYTREE) Makefile* $(DEBSRCDIR)
  1795. $(COPYTREE) $(CVSINSTALL)/debian $(DEBSRCDIR)
  1796. $(COPYTREE) $(CVSINSTALL)/man $(DEBSRCDIR)
  1797. $(COPYTREE) $(CVSINSTALL)/doc $(DEBSRCDIR)
  1798. find $(DEBSRCDIR) -name 'CVS*' | xargs -n1 rm -rf
  1799. chmod 755 $(DEBSRCDIR)/debian/rules
  1800. deb: checkfpcdir debcopy
  1801. cd $(DEBSRCDIR) ; debian/rules binary
  1802. endif # changelog found
  1803. endif
  1804. ifdef inUnix
  1805. ifneq ($(wildcard $(CVSINSTALL)/fpc.spec),)
  1806. .PHONY: rpmcopy rpm
  1807. RPMFPCVERSION:=$(shell grep 'define fpcversion' $(CVSINSTALL)/fpc.spec | awk '{ print $$3 }')
  1808. REDHATDIR=/usr/src/packages
  1809. RPMSOURCESDIR:=$(REDHATDIR)/SOURCES
  1810. RPMSPECDIR:=$(REDHATDIR)/SPECS
  1811. RPMSRCDIR:=$(RPMSOURCESDIR)/fpc
  1812. DOCSRCDIR:=$(RPMSOURCESDIR)/fpcdoc
  1813. rpmcopy: distclean
  1814. install -d $(REDHATDIR)
  1815. install -d $(RPMSPECDIR)
  1816. install -d $(RPMSOURCESDIR)
  1817. rm -rf $(RPMSRCDIR)
  1818. cp $(CVSINSTALL)/fpc.spec $(RPMSPECDIR)/fpc-$(RPMFPCVERSION).spec
  1819. install -d $(RPMSRCDIR)
  1820. $(COPYTREE) compiler $(RPMSRCDIR)
  1821. $(COPYTREE) rtl $(RPMSRCDIR)
  1822. $(COPYTREE) fcl $(RPMSRCDIR)
  1823. $(COPYTREE) packages $(RPMSRCDIR)
  1824. $(COPYTREE) utils $(RPMSRCDIR)
  1825. $(COPYTREE) demo $(RPMSRCDIR)
  1826. $(COPYTREE) logs $(RPMSRCDIR)
  1827. $(COPYTREE) Makefile* $(RPMSRCDIR)
  1828. $(COPYTREE) $(CVSINSTALL)/man $(RPMSRCDIR)
  1829. $(COPYTREE) $(CVSINSTALL)/doc $(RPMSRCDIR)
  1830. find $(RPMSRCDIR) -name 'CVS*' | xargs -n1 rm -rf
  1831. cd $(RPMSRCDIR) ; tar cvz * > $(RPMSOURCESDIR)/fpc-$(RPMFPCVERSION)-src.tar.gz
  1832. rm -rf $(DOCSRCDIR)
  1833. cp $(CVSINSTALL)/fpc-docs.spec $(RPMSPECDIR)/fpc-docs-$(RPMFPCVERSION).spec
  1834. install -d $(DOCSRCDIR)
  1835. $(COPYTREE) docs $(DOCSRCDIR)
  1836. find $(DOCSRCDIR) -name 'CVS*' | xargs -n1 rm -rf
  1837. cd $(DOCSRCDIR) ; tar cvz * > $(RPMSOURCESDIR)/fpc-docs-$(RPMFPCVERSION)-src.tar.gz
  1838. rpm: checkfpcdir rpmcopy
  1839. cd $(RPMSPECDIR) ; rpm --nodeps -ba fpc-$(RPMFPCVERSION).spec
  1840. cd $(RPMSPECDIR) ; rpm --nodeps -ba fpc-docs-$(RPMFPCVERSION).spec
  1841. endif # spec found
  1842. endif