Makefile 43 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777
  1. #
  2. # Don't edit, this file is generated by FPCMake Version 1.9.8 [2005/01/10]
  3. #
  4. default: help
  5. MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-sunos i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-sunos x86_64-linux x86_64-freebsd arm-linux
  6. BSDs = freebsd netbsd openbsd darwin
  7. UNIXs = linux $(BSDs) sunos qnx
  8. LIMIT83fs = go32v2 os2 emx watcom
  9. FORCE:
  10. .PHONY: FORCE
  11. override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
  12. ifneq ($(findstring darwin,$(OSTYPE)),)
  13. inUnix=1 #darwin
  14. SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
  15. else
  16. ifeq ($(findstring ;,$(PATH)),)
  17. inUnix=1
  18. SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
  19. else
  20. SEARCHPATH:=$(subst ;, ,$(PATH))
  21. endif
  22. endif
  23. SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
  24. PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
  25. ifeq ($(PWD),)
  26. PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
  27. ifeq ($(PWD),)
  28. $(error You need the GNU utils package to use this Makefile)
  29. else
  30. PWD:=$(firstword $(PWD))
  31. SRCEXEEXT=
  32. endif
  33. else
  34. PWD:=$(firstword $(PWD))
  35. SRCEXEEXT=.exe
  36. endif
  37. ifndef inUnix
  38. ifeq ($(OS),Windows_NT)
  39. inWinNT=1
  40. else
  41. ifdef OS2_SHELL
  42. inOS2=1
  43. endif
  44. endif
  45. else
  46. ifneq ($(findstring cygdrive,$(PATH)),)
  47. inCygWin=1
  48. endif
  49. endif
  50. ifdef inUnix
  51. SRCBATCHEXT=.sh
  52. else
  53. ifdef inOS2
  54. SRCBATCHEXT=.cmd
  55. else
  56. SRCBATCHEXT=.bat
  57. endif
  58. endif
  59. ifdef inUnix
  60. PATHSEP=/
  61. else
  62. PATHSEP:=$(subst /,\,/)
  63. ifdef inCygWin
  64. PATHSEP=/
  65. endif
  66. endif
  67. ifdef PWD
  68. BASEDIR:=$(subst \,/,$(shell $(PWD)))
  69. ifdef inCygWin
  70. ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
  71. BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
  72. BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
  73. BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
  74. endif
  75. endif
  76. else
  77. BASEDIR=.
  78. endif
  79. ifdef inOS2
  80. ifndef ECHO
  81. ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
  82. ifeq ($(ECHO),)
  83. ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
  84. ifeq ($(ECHO),)
  85. ECHO=echo
  86. else
  87. ECHO:=$(firstword $(ECHO))
  88. endif
  89. else
  90. ECHO:=$(firstword $(ECHO))
  91. endif
  92. endif
  93. export ECHO
  94. endif
  95. override DEFAULT_FPCDIR=..
  96. ifndef FPC
  97. ifdef PP
  98. FPC=$(PP)
  99. endif
  100. endif
  101. ifndef FPC
  102. FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
  103. ifneq ($(FPCPROG),)
  104. FPCPROG:=$(firstword $(FPCPROG))
  105. FPC:=$(shell $(FPCPROG) -PB)
  106. ifneq ($(findstring Error,$(FPC)),)
  107. override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
  108. endif
  109. else
  110. override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
  111. endif
  112. endif
  113. override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
  114. override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
  115. FOUNDFPC:=$(strip $(wildcard $(FPC)))
  116. ifeq ($(FOUNDFPC),)
  117. $(error Compiler $(FPC) not found)
  118. endif
  119. ifndef FPC_COMPILERINFO
  120. FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
  121. endif
  122. ifndef FPC_VERSION
  123. FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
  124. endif
  125. export FPC FPC_VERSION FPC_COMPILERINFO
  126. unexport CHECKDEPEND ALLDEPENDENCIES
  127. ifndef CPU_TARGET
  128. ifdef CPU_TARGET_DEFAULT
  129. CPU_TARGET=$(CPU_TARGET_DEFAULT)
  130. endif
  131. endif
  132. ifndef OS_TARGET
  133. ifdef OS_TARGET_DEFAULT
  134. OS_TARGET=$(OS_TARGET_DEFAULT)
  135. endif
  136. endif
  137. ifneq ($(words $(FPC_COMPILERINFO)),5)
  138. FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
  139. FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
  140. FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
  141. FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
  142. endif
  143. ifndef CPU_SOURCE
  144. CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
  145. endif
  146. ifndef CPU_TARGET
  147. CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
  148. endif
  149. ifndef OS_SOURCE
  150. OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
  151. endif
  152. ifndef OS_TARGET
  153. OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
  154. endif
  155. FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
  156. FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
  157. ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
  158. TARGETSUFFIX=$(OS_TARGET)
  159. SOURCESUFFIX=$(OS_SOURCE)
  160. else
  161. TARGETSUFFIX=$(FULL_TARGET)
  162. SOURCESUFFIX=$(FULL_SOURCE)
  163. endif
  164. ifneq ($(FULL_TARGET),$(FULL_SOURCE))
  165. CROSSCOMPILE=1
  166. endif
  167. ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
  168. ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
  169. $(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
  170. endif
  171. endif
  172. ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
  173. BSDhier=1
  174. endif
  175. ifeq ($(OS_TARGET),linux)
  176. linuxHier=1
  177. endif
  178. export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
  179. ifdef FPCDIR
  180. override FPCDIR:=$(subst \,/,$(FPCDIR))
  181. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  182. override FPCDIR=wrong
  183. endif
  184. else
  185. override FPCDIR=wrong
  186. endif
  187. ifdef DEFAULT_FPCDIR
  188. ifeq ($(FPCDIR),wrong)
  189. override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
  190. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  191. override FPCDIR=wrong
  192. endif
  193. endif
  194. endif
  195. ifeq ($(FPCDIR),wrong)
  196. ifdef inUnix
  197. override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
  198. ifeq ($(wildcard $(FPCDIR)/units),)
  199. override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
  200. endif
  201. else
  202. override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
  203. override FPCDIR:=$(FPCDIR)/..
  204. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  205. override FPCDIR:=$(FPCDIR)/..
  206. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  207. override FPCDIR:=$(BASEDIR)
  208. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  209. override FPCDIR=c:/pp
  210. endif
  211. endif
  212. endif
  213. endif
  214. endif
  215. ifndef CROSSBINDIR
  216. CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
  217. endif
  218. ifndef BINUTILSPREFIX
  219. ifndef CROSSBINDIR
  220. ifdef CROSSCOMPILE
  221. BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
  222. endif
  223. endif
  224. endif
  225. UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
  226. ifeq ($(UNITSDIR),)
  227. UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
  228. endif
  229. PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
  230. override PACKAGE_NAME=fpdocs
  231. override PACKAGE_VERSION=1.9.6
  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. ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
  240. UNIXHier=1
  241. endif
  242. else
  243. ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
  244. UNIXHier=1
  245. endif
  246. endif
  247. ifndef INSTALL_PREFIX
  248. ifdef PREFIX
  249. INSTALL_PREFIX=$(PREFIX)
  250. endif
  251. endif
  252. ifndef INSTALL_PREFIX
  253. ifdef UNIXHier
  254. INSTALL_PREFIX=/usr/local
  255. else
  256. ifdef INSTALL_FPCPACKAGE
  257. INSTALL_BASEDIR:=/pp
  258. else
  259. INSTALL_BASEDIR:=/$(PACKAGE_NAME)
  260. endif
  261. endif
  262. endif
  263. export INSTALL_PREFIX
  264. ifdef INSTALL_FPCSUBDIR
  265. export INSTALL_FPCSUBDIR
  266. endif
  267. ifndef DIST_DESTDIR
  268. DIST_DESTDIR:=$(BASEDIR)
  269. endif
  270. export DIST_DESTDIR
  271. ifndef COMPILER_UNITTARGETDIR
  272. ifdef PACKAGEDIR_MAIN
  273. COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
  274. else
  275. COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
  276. endif
  277. endif
  278. ifndef COMPILER_TARGETDIR
  279. COMPILER_TARGETDIR=.
  280. endif
  281. ifndef INSTALL_BASEDIR
  282. ifdef UNIXHier
  283. ifdef INSTALL_FPCPACKAGE
  284. INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
  285. else
  286. INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
  287. endif
  288. else
  289. INSTALL_BASEDIR:=$(INSTALL_PREFIX)
  290. endif
  291. endif
  292. ifndef INSTALL_BINDIR
  293. ifdef UNIXHier
  294. INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
  295. else
  296. INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
  297. ifdef INSTALL_FPCPACKAGE
  298. ifdef CROSSCOMPILE
  299. ifdef CROSSINSTALL
  300. INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
  301. else
  302. INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
  303. endif
  304. else
  305. INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
  306. endif
  307. endif
  308. endif
  309. endif
  310. ifndef INSTALL_UNITDIR
  311. INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
  312. ifdef INSTALL_FPCPACKAGE
  313. ifdef PACKAGE_NAME
  314. INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
  315. endif
  316. endif
  317. endif
  318. ifndef INSTALL_LIBDIR
  319. ifdef UNIXHier
  320. INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
  321. else
  322. INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
  323. endif
  324. endif
  325. ifndef INSTALL_SOURCEDIR
  326. ifdef UNIXHier
  327. ifdef BSDhier
  328. SRCPREFIXDIR=share/src
  329. else
  330. ifdef linuxHier
  331. SRCPREFIXDIR=share/src
  332. else
  333. SRCPREFIXDIR=src
  334. endif
  335. endif
  336. ifdef INSTALL_FPCPACKAGE
  337. ifdef INSTALL_FPCSUBDIR
  338. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
  339. else
  340. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  341. endif
  342. else
  343. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  344. endif
  345. else
  346. ifdef INSTALL_FPCPACKAGE
  347. ifdef INSTALL_FPCSUBDIR
  348. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
  349. else
  350. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
  351. endif
  352. else
  353. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
  354. endif
  355. endif
  356. endif
  357. ifndef INSTALL_DOCDIR
  358. ifdef UNIXHier
  359. ifdef BSDhier
  360. DOCPREFIXDIR=share/doc
  361. else
  362. ifdef linuxHier
  363. DOCPREFIXDIR=share/doc
  364. else
  365. DOCPREFIXDIR=doc
  366. endif
  367. endif
  368. ifdef INSTALL_FPCPACKAGE
  369. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  370. else
  371. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  372. endif
  373. else
  374. ifdef INSTALL_FPCPACKAGE
  375. INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
  376. else
  377. INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
  378. endif
  379. endif
  380. endif
  381. ifndef INSTALL_EXAMPLEDIR
  382. ifdef UNIXHier
  383. ifdef INSTALL_FPCPACKAGE
  384. ifdef BSDhier
  385. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  386. else
  387. ifdef linuxHier
  388. INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
  389. else
  390. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
  391. endif
  392. endif
  393. else
  394. ifdef BSDhier
  395. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  396. else
  397. ifdef linuxHier
  398. INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  399. else
  400. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  401. endif
  402. endif
  403. endif
  404. else
  405. ifdef INSTALL_FPCPACKAGE
  406. INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
  407. else
  408. INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
  409. endif
  410. endif
  411. endif
  412. ifndef INSTALL_DATADIR
  413. INSTALL_DATADIR=$(INSTALL_BASEDIR)
  414. endif
  415. ifdef CROSSCOMPILE
  416. ifndef CROSSBINDIR
  417. CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
  418. ifeq ($(CROSSBINDIR),)
  419. CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
  420. endif
  421. endif
  422. else
  423. CROSSBINDIR=
  424. endif
  425. BATCHEXT=.bat
  426. LOADEREXT=.as
  427. EXEEXT=.exe
  428. PPLEXT=.ppl
  429. PPUEXT=.ppu
  430. OEXT=.o
  431. ASMEXT=.s
  432. SMARTEXT=.sl
  433. STATICLIBEXT=.a
  434. SHAREDLIBEXT=.so
  435. STATICLIBPREFIX=libp
  436. RSTEXT=.rst
  437. ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
  438. ifeq ($(OS_TARGET),go32v1)
  439. STATICLIBPREFIX=
  440. SHORTSUFFIX=v1
  441. endif
  442. ifeq ($(OS_TARGET),go32v2)
  443. STATICLIBPREFIX=
  444. SHORTSUFFIX=dos
  445. endif
  446. ifeq ($(OS_TARGET),watcom)
  447. STATICLIBPREFIX=
  448. OEXT=.obj
  449. ASMEXT=.asm
  450. SHAREDLIBEXT=.dll
  451. SHORTSUFFIX=wat
  452. endif
  453. ifeq ($(OS_TARGET),linux)
  454. BATCHEXT=.sh
  455. EXEEXT=
  456. HASSHAREDLIB=1
  457. SHORTSUFFIX=lnx
  458. endif
  459. ifeq ($(OS_TARGET),freebsd)
  460. BATCHEXT=.sh
  461. EXEEXT=
  462. HASSHAREDLIB=1
  463. SHORTSUFFIX=fbs
  464. endif
  465. ifeq ($(OS_TARGET),netbsd)
  466. BATCHEXT=.sh
  467. EXEEXT=
  468. HASSHAREDLIB=1
  469. SHORTSUFFIX=nbs
  470. endif
  471. ifeq ($(OS_TARGET),openbsd)
  472. BATCHEXT=.sh
  473. EXEEXT=
  474. HASSHAREDLIB=1
  475. SHORTSUFFIX=obs
  476. endif
  477. ifeq ($(OS_TARGET),win32)
  478. SHAREDLIBEXT=.dll
  479. SHORTSUFFIX=w32
  480. endif
  481. ifeq ($(OS_TARGET),os2)
  482. BATCHEXT=.cmd
  483. AOUTEXT=.out
  484. STATICLIBPREFIX=
  485. SHAREDLIBEXT=.dll
  486. SHORTSUFFIX=os2
  487. ECHO=echo
  488. endif
  489. ifeq ($(OS_TARGET),emx)
  490. BATCHEXT=.cmd
  491. AOUTEXT=.out
  492. STATICLIBPREFIX=
  493. SHAREDLIBEXT=.dll
  494. SHORTSUFFIX=emx
  495. ECHO=echo
  496. endif
  497. ifeq ($(OS_TARGET),amiga)
  498. EXEEXT=
  499. SHAREDLIBEXT=.library
  500. SHORTSUFFIX=amg
  501. endif
  502. ifeq ($(OS_TARGET),morphos)
  503. EXEEXT=
  504. SHAREDLIBEXT=.library
  505. SHORTSUFFIX=mos
  506. endif
  507. ifeq ($(OS_TARGET),atari)
  508. EXEEXT=.ttp
  509. SHORTSUFFIX=ata
  510. endif
  511. ifeq ($(OS_TARGET),beos)
  512. BATCHEXT=.sh
  513. EXEEXT=
  514. SHORTSUFFIX=be
  515. endif
  516. ifeq ($(OS_TARGET),sunos)
  517. BATCHEXT=.sh
  518. EXEEXT=
  519. SHORTSUFFIX=sun
  520. endif
  521. ifeq ($(OS_TARGET),qnx)
  522. BATCHEXT=.sh
  523. EXEEXT=
  524. SHORTSUFFIX=qnx
  525. endif
  526. ifeq ($(OS_TARGET),netware)
  527. EXEEXT=.nlm
  528. STATICLIBPREFIX=
  529. SHORTSUFFIX=nw
  530. endif
  531. ifeq ($(OS_TARGET),netwlibc)
  532. EXEEXT=.nlm
  533. STATICLIBPREFIX=
  534. SHORTSUFFIX=nwl
  535. endif
  536. ifeq ($(OS_TARGET),macos)
  537. BATCHEXT=
  538. EXEEXT=
  539. DEBUGSYMEXT=.xcoff
  540. SHORTSUFFIX=mac
  541. endif
  542. ifeq ($(OS_TARGET),darwin)
  543. BATCHEXT=.sh
  544. EXEEXT=
  545. HASSHAREDLIB=1
  546. SHORTSUFFIX=dwn
  547. endif
  548. else
  549. ifeq ($(OS_TARGET),go32v1)
  550. PPUEXT=.pp1
  551. OEXT=.o1
  552. ASMEXT=.s1
  553. SMARTEXT=.sl1
  554. STATICLIBEXT=.a1
  555. SHAREDLIBEXT=.so1
  556. STATICLIBPREFIX=
  557. SHORTSUFFIX=v1
  558. endif
  559. ifeq ($(OS_TARGET),go32v2)
  560. STATICLIBPREFIX=
  561. SHORTSUFFIX=dos
  562. endif
  563. ifeq ($(OS_TARGET),watcom)
  564. STATICLIBPREFIX=
  565. SHORTSUFFIX=wat
  566. endif
  567. ifeq ($(OS_TARGET),linux)
  568. BATCHEXT=.sh
  569. EXEEXT=
  570. HASSHAREDLIB=1
  571. SHORTSUFFIX=lnx
  572. endif
  573. ifeq ($(OS_TARGET),freebsd)
  574. BATCHEXT=.sh
  575. EXEEXT=
  576. HASSHAREDLIB=1
  577. SHORTSUFFIX=fbs
  578. endif
  579. ifeq ($(OS_TARGET),netbsd)
  580. BATCHEXT=.sh
  581. EXEEXT=
  582. HASSHAREDLIB=1
  583. SHORTSUFFIX=nbs
  584. endif
  585. ifeq ($(OS_TARGET),openbsd)
  586. BATCHEXT=.sh
  587. EXEEXT=
  588. HASSHAREDLIB=1
  589. SHORTSUFFIX=obs
  590. endif
  591. ifeq ($(OS_TARGET),win32)
  592. PPUEXT=.ppw
  593. OEXT=.ow
  594. ASMEXT=.sw
  595. SMARTEXT=.slw
  596. STATICLIBEXT=.aw
  597. SHAREDLIBEXT=.dll
  598. SHORTSUFFIX=w32
  599. endif
  600. ifeq ($(OS_TARGET),os2)
  601. BATCHEXT=.cmd
  602. PPUEXT=.ppo
  603. ASMEXT=.so2
  604. OEXT=.oo2
  605. AOUTEXT=.out
  606. SMARTEXT=.sl2
  607. STATICLIBPREFIX=
  608. STATICLIBEXT=.ao2
  609. SHAREDLIBEXT=.dll
  610. SHORTSUFFIX=os2
  611. ECHO=echo
  612. endif
  613. ifeq ($(OS_TARGET),amiga)
  614. EXEEXT=
  615. PPUEXT=.ppu
  616. ASMEXT=.asm
  617. OEXT=.o
  618. SMARTEXT=.sl
  619. STATICLIBEXT=.a
  620. SHAREDLIBEXT=.library
  621. SHORTSUFFIX=amg
  622. endif
  623. ifeq ($(OS_TARGET),atari)
  624. PPUEXT=.ppu
  625. ASMEXT=.s
  626. OEXT=.o
  627. SMARTEXT=.sl
  628. STATICLIBEXT=.a
  629. EXEEXT=.ttp
  630. SHORTSUFFIX=ata
  631. endif
  632. ifeq ($(OS_TARGET),beos)
  633. BATCHEXT=.sh
  634. PPUEXT=.ppu
  635. ASMEXT=.s
  636. OEXT=.o
  637. SMARTEXT=.sl
  638. STATICLIBEXT=.a
  639. EXEEXT=
  640. SHORTSUFFIX=be
  641. endif
  642. ifeq ($(OS_TARGET),sunos)
  643. BATCHEXT=.sh
  644. PPUEXT=.ppu
  645. ASMEXT=.s
  646. OEXT=.o
  647. SMARTEXT=.sl
  648. STATICLIBEXT=.a
  649. EXEEXT=
  650. SHORTSUFFIX=sun
  651. endif
  652. ifeq ($(OS_TARGET),qnx)
  653. BATCHEXT=.sh
  654. PPUEXT=.ppu
  655. ASMEXT=.s
  656. OEXT=.o
  657. SMARTEXT=.sl
  658. STATICLIBEXT=.a
  659. EXEEXT=
  660. SHORTSUFFIX=qnx
  661. endif
  662. ifeq ($(OS_TARGET),netware)
  663. STATICLIBPREFIX=
  664. PPUEXT=.ppu
  665. OEXT=.o
  666. ASMEXT=.s
  667. SMARTEXT=.sl
  668. STATICLIBEXT=.a
  669. SHAREDLIBEXT=.nlm
  670. EXEEXT=.nlm
  671. SHORTSUFFIX=nw
  672. endif
  673. ifeq ($(OS_TARGET),netwlibc)
  674. STATICLIBPREFIX=
  675. PPUEXT=.ppu
  676. OEXT=.o
  677. ASMEXT=.s
  678. SMARTEXT=.sl
  679. STATICLIBEXT=.a
  680. SHAREDLIBEXT=.nlm
  681. EXEEXT=.nlm
  682. SHORTSUFFIX=nwl
  683. endif
  684. ifeq ($(OS_TARGET),macos)
  685. BATCHEXT=
  686. PPUEXT=.ppu
  687. ASMEXT=.s
  688. OEXT=.o
  689. SMARTEXT=.sl
  690. STATICLIBEXT=.a
  691. EXEEXT=
  692. DEBUGSYMEXT=.xcoff
  693. SHORTSUFFIX=mac
  694. endif
  695. endif
  696. ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
  697. FPCMADE=fpcmade.$(SHORTSUFFIX)
  698. ZIPSUFFIX=$(SHORTSUFFIX)
  699. ZIPCROSSPREFIX=
  700. ZIPSOURCESUFFIX=src
  701. ZIPEXAMPLESUFFIX=exm
  702. else
  703. FPCMADE=fpcmade.$(TARGETSUFFIX)
  704. ZIPSOURCESUFFIX=.source
  705. ZIPEXAMPLESUFFIX=.examples
  706. ifdef CROSSCOMPILE
  707. ZIPSUFFIX=.$(SOURCESUFFIX)
  708. ZIPCROSSPREFIX=$(TARGETSUFFIX)-
  709. else
  710. ZIPSUFFIX=.$(TARGETSUFFIX)
  711. ZIPCROSSPREFIX=
  712. endif
  713. endif
  714. ifndef ECHO
  715. ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
  716. ifeq ($(ECHO),)
  717. ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
  718. ifeq ($(ECHO),)
  719. ECHO= __missing_command_ECHO
  720. else
  721. ECHO:=$(firstword $(ECHO))
  722. endif
  723. else
  724. ECHO:=$(firstword $(ECHO))
  725. endif
  726. endif
  727. export ECHO
  728. ifndef DATE
  729. DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
  730. ifeq ($(DATE),)
  731. DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
  732. ifeq ($(DATE),)
  733. DATE= __missing_command_DATE
  734. else
  735. DATE:=$(firstword $(DATE))
  736. endif
  737. else
  738. DATE:=$(firstword $(DATE))
  739. endif
  740. endif
  741. export DATE
  742. ifndef GINSTALL
  743. GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
  744. ifeq ($(GINSTALL),)
  745. GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
  746. ifeq ($(GINSTALL),)
  747. GINSTALL= __missing_command_GINSTALL
  748. else
  749. GINSTALL:=$(firstword $(GINSTALL))
  750. endif
  751. else
  752. GINSTALL:=$(firstword $(GINSTALL))
  753. endif
  754. endif
  755. export GINSTALL
  756. ifndef CPPROG
  757. CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
  758. ifeq ($(CPPROG),)
  759. CPPROG= __missing_command_CPPROG
  760. else
  761. CPPROG:=$(firstword $(CPPROG))
  762. endif
  763. endif
  764. export CPPROG
  765. ifndef RMPROG
  766. RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
  767. ifeq ($(RMPROG),)
  768. RMPROG= __missing_command_RMPROG
  769. else
  770. RMPROG:=$(firstword $(RMPROG))
  771. endif
  772. endif
  773. export RMPROG
  774. ifndef MVPROG
  775. MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
  776. ifeq ($(MVPROG),)
  777. MVPROG= __missing_command_MVPROG
  778. else
  779. MVPROG:=$(firstword $(MVPROG))
  780. endif
  781. endif
  782. export MVPROG
  783. ifndef MKDIRPROG
  784. MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
  785. ifeq ($(MKDIRPROG),)
  786. MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
  787. ifeq ($(MKDIRPROG),)
  788. MKDIRPROG= __missing_command_MKDIRPROG
  789. else
  790. MKDIRPROG:=$(firstword $(MKDIRPROG))
  791. endif
  792. else
  793. MKDIRPROG:=$(firstword $(MKDIRPROG))
  794. endif
  795. endif
  796. export MKDIRPROG
  797. ifndef ECHOREDIR
  798. ifndef inUnix
  799. ECHOREDIR=echo
  800. else
  801. ECHOREDIR=$(ECHO)
  802. endif
  803. endif
  804. ifndef COPY
  805. COPY:=$(CPPROG) -fp
  806. endif
  807. ifndef COPYTREE
  808. COPYTREE:=$(CPPROG) -Rfp
  809. endif
  810. ifndef MKDIRTREE
  811. MKDIRTREE:=$(MKDIRPROG) -p
  812. endif
  813. ifndef MOVE
  814. MOVE:=$(MVPROG) -f
  815. endif
  816. ifndef DEL
  817. DEL:=$(RMPROG) -f
  818. endif
  819. ifndef DELTREE
  820. DELTREE:=$(RMPROG) -rf
  821. endif
  822. ifndef INSTALL
  823. ifdef inUnix
  824. INSTALL:=$(GINSTALL) -c -m 644
  825. else
  826. INSTALL:=$(COPY)
  827. endif
  828. endif
  829. ifndef INSTALLEXE
  830. ifdef inUnix
  831. INSTALLEXE:=$(GINSTALL) -c -m 755
  832. else
  833. INSTALLEXE:=$(COPY)
  834. endif
  835. endif
  836. ifndef MKDIR
  837. MKDIR:=$(GINSTALL) -m 755 -d
  838. endif
  839. export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
  840. ifndef PPUMOVE
  841. PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
  842. ifeq ($(PPUMOVE),)
  843. PPUMOVE= __missing_command_PPUMOVE
  844. else
  845. PPUMOVE:=$(firstword $(PPUMOVE))
  846. endif
  847. endif
  848. export PPUMOVE
  849. ifndef FPCMAKE
  850. FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
  851. ifeq ($(FPCMAKE),)
  852. FPCMAKE= __missing_command_FPCMAKE
  853. else
  854. FPCMAKE:=$(firstword $(FPCMAKE))
  855. endif
  856. endif
  857. export FPCMAKE
  858. ifndef ZIPPROG
  859. ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
  860. ifeq ($(ZIPPROG),)
  861. ZIPPROG= __missing_command_ZIPPROG
  862. else
  863. ZIPPROG:=$(firstword $(ZIPPROG))
  864. endif
  865. endif
  866. export ZIPPROG
  867. ifndef TARPROG
  868. TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
  869. ifeq ($(TARPROG),)
  870. TARPROG= __missing_command_TARPROG
  871. else
  872. TARPROG:=$(firstword $(TARPROG))
  873. endif
  874. endif
  875. export TARPROG
  876. ASNAME=$(BINUTILSPREFIX)as
  877. LDNAME=$(BINUTILSPREFIX)ld
  878. ARNAME=$(BINUTILSPREFIX)ar
  879. RCNAME=$(BINUTILSPREFIX)rc
  880. ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
  881. ifeq ($(OS_TARGET),win32)
  882. ifeq ($(CROSSBINDIR),)
  883. ASNAME=asw
  884. LDNAME=ldw
  885. ARNAME=arw
  886. endif
  887. endif
  888. endif
  889. ifndef ASPROG
  890. ifdef CROSSBINDIR
  891. ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
  892. else
  893. ASPROG=$(ASNAME)
  894. endif
  895. endif
  896. ifndef LDPROG
  897. ifdef CROSSBINDIR
  898. LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
  899. else
  900. LDPROG=$(LDNAME)
  901. endif
  902. endif
  903. ifndef RCPROG
  904. ifdef CROSSBINDIR
  905. RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
  906. else
  907. RCPROG=$(RCNAME)
  908. endif
  909. endif
  910. ifndef ARPROG
  911. ifdef CROSSBINDIR
  912. ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
  913. else
  914. ARPROG=$(ARNAME)
  915. endif
  916. endif
  917. AS=$(ASPROG)
  918. LD=$(LDPROG)
  919. RC=$(RCPROG)
  920. AR=$(ARPROG)
  921. PPAS=ppas$(SRCBATCHEXT)
  922. ifdef inUnix
  923. LDCONFIG=ldconfig
  924. else
  925. LDCONFIG=
  926. endif
  927. ifdef DATE
  928. DATESTR:=$(shell $(DATE) +%Y%m%d)
  929. else
  930. DATESTR=
  931. endif
  932. ifndef UPXPROG
  933. ifeq ($(OS_TARGET),go32v2)
  934. UPXPROG:=1
  935. endif
  936. ifeq ($(OS_TARGET),win32)
  937. UPXPROG:=1
  938. endif
  939. ifdef UPXPROG
  940. UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
  941. ifeq ($(UPXPROG),)
  942. UPXPROG=
  943. else
  944. UPXPROG:=$(firstword $(UPXPROG))
  945. endif
  946. else
  947. UPXPROG=
  948. endif
  949. endif
  950. export UPXPROG
  951. ZIPOPT=-9
  952. ZIPEXT=.zip
  953. ifeq ($(USETAR),bz2)
  954. TAROPT=vI
  955. TAREXT=.tar.bz2
  956. else
  957. TAROPT=vz
  958. TAREXT=.tar.gz
  959. endif
  960. ifndef NOCPUDEF
  961. override FPCOPTDEF=$(CPU_TARGET)
  962. endif
  963. ifneq ($(OS_TARGET),$(OS_SOURCE))
  964. override FPCOPT+=-T$(OS_TARGET)
  965. endif
  966. ifeq ($(OS_SOURCE),openbsd)
  967. override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
  968. endif
  969. ifndef CROSSBOOTSTRAP
  970. ifneq ($(BINUTILSPREFIX),)
  971. override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
  972. endif
  973. ifneq ($(BINUTILSPREFIX),)
  974. override FPCOPT+=-Xr$(RLINKPATH)
  975. endif
  976. endif
  977. ifdef UNITDIR
  978. override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
  979. endif
  980. ifdef LIBDIR
  981. override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
  982. endif
  983. ifdef OBJDIR
  984. override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
  985. endif
  986. ifdef INCDIR
  987. override FPCOPT+=$(addprefix -Fi,$(INCDIR))
  988. endif
  989. ifdef LINKSMART
  990. override FPCOPT+=-XX
  991. endif
  992. ifdef CREATESMART
  993. override FPCOPT+=-CX
  994. endif
  995. ifdef DEBUG
  996. override FPCOPT+=-gl
  997. override FPCOPTDEF+=DEBUG
  998. endif
  999. ifdef RELEASE
  1000. ifeq ($(CPU_TARGET),i386)
  1001. FPCCPUOPT:=-OG2p3
  1002. else
  1003. ifeq ($(CPU_TARGET),powerpc)
  1004. FPCCPUOPT:=-O1
  1005. else
  1006. FPCCPUOPT:=
  1007. endif
  1008. endif
  1009. override FPCOPT+=-Xs $(FPCCPUOPT) -n
  1010. override FPCOPTDEF+=RELEASE
  1011. endif
  1012. ifdef STRIP
  1013. override FPCOPT+=-Xs
  1014. endif
  1015. ifdef OPTIMIZE
  1016. ifeq ($(CPU_TARGET),i386)
  1017. override FPCOPT+=-OG2p3
  1018. endif
  1019. endif
  1020. ifdef VERBOSE
  1021. override FPCOPT+=-vwni
  1022. endif
  1023. ifdef COMPILER_OPTIONS
  1024. override FPCOPT+=$(COMPILER_OPTIONS)
  1025. endif
  1026. ifdef COMPILER_UNITDIR
  1027. override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
  1028. endif
  1029. ifdef COMPILER_LIBRARYDIR
  1030. override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
  1031. endif
  1032. ifdef COMPILER_OBJECTDIR
  1033. override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
  1034. endif
  1035. ifdef COMPILER_INCLUDEDIR
  1036. override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
  1037. endif
  1038. ifdef CROSSBINDIR
  1039. override FPCOPT+=-FD$(CROSSBINDIR)
  1040. endif
  1041. ifdef COMPILER_TARGETDIR
  1042. override FPCOPT+=-FE$(COMPILER_TARGETDIR)
  1043. ifeq ($(COMPILER_TARGETDIR),.)
  1044. override TARGETDIRPREFIX=
  1045. else
  1046. override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
  1047. endif
  1048. endif
  1049. ifdef COMPILER_UNITTARGETDIR
  1050. override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
  1051. ifeq ($(COMPILER_UNITTARGETDIR),.)
  1052. override UNITTARGETDIRPREFIX=
  1053. else
  1054. override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
  1055. endif
  1056. else
  1057. ifdef COMPILER_TARGETDIR
  1058. override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
  1059. override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
  1060. endif
  1061. endif
  1062. ifeq ($(OS_TARGET),linux)
  1063. ifeq ($(FPC_VERSION),1.0.6)
  1064. override FPCOPTDEF+=HASUNIX
  1065. endif
  1066. endif
  1067. ifdef OPT
  1068. override FPCOPT+=$(OPT)
  1069. endif
  1070. ifdef FPCOPTDEF
  1071. override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
  1072. endif
  1073. ifdef CFGFILE
  1074. override FPCOPT+=@$(CFGFILE)
  1075. endif
  1076. ifdef USEENV
  1077. override FPCEXTCMD:=$(FPCOPT)
  1078. override FPCOPT:=!FPCEXTCMD
  1079. export FPCEXTCMD
  1080. endif
  1081. override COMPILER:=$(FPC) $(FPCOPT)
  1082. ifeq (,$(findstring -s ,$(COMPILER)))
  1083. EXECPPAS=
  1084. else
  1085. ifeq ($(FULL_SOURCE),$(FULL_TARGET))
  1086. EXECPPAS:=@$(PPAS)
  1087. endif
  1088. endif
  1089. ifdef TARGET_RSTS
  1090. override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
  1091. override CLEANRSTFILES+=$(RSTFILES)
  1092. endif
  1093. .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
  1094. ifdef INSTALL_UNITS
  1095. override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
  1096. endif
  1097. ifdef INSTALL_BUILDUNIT
  1098. override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
  1099. endif
  1100. ifdef INSTALLPPUFILES
  1101. override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
  1102. override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
  1103. override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES)))
  1104. override INSTALL_CREATEPACKAGEFPC=1
  1105. endif
  1106. ifdef INSTALLEXEFILES
  1107. override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
  1108. endif
  1109. fpc_install: all $(INSTALLTARGET)
  1110. ifdef INSTALLEXEFILES
  1111. $(MKDIR) $(INSTALL_BINDIR)
  1112. ifdef UPXPROG
  1113. -$(UPXPROG) $(INSTALLEXEFILES)
  1114. endif
  1115. $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
  1116. endif
  1117. ifdef INSTALL_CREATEPACKAGEFPC
  1118. ifdef FPCMAKE
  1119. ifdef PACKAGE_VERSION
  1120. ifneq ($(wildcard Makefile.fpc),)
  1121. $(FPCMAKE) -p -T$(OS_TARGET) Makefile.fpc
  1122. $(MKDIR) $(INSTALL_UNITDIR)
  1123. $(INSTALL) Package.fpc $(INSTALL_UNITDIR)
  1124. endif
  1125. endif
  1126. endif
  1127. endif
  1128. ifdef INSTALLPPUFILES
  1129. $(MKDIR) $(INSTALL_UNITDIR)
  1130. $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
  1131. ifneq ($(INSTALLPPULINKFILES),)
  1132. $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
  1133. endif
  1134. ifneq ($(wildcard $(LIB_FULLNAME)),)
  1135. $(MKDIR) $(INSTALL_LIBDIR)
  1136. $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
  1137. ifdef inUnix
  1138. ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
  1139. endif
  1140. endif
  1141. endif
  1142. ifdef INSTALL_FILES
  1143. $(MKDIR) $(INSTALL_DATADIR)
  1144. $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
  1145. endif
  1146. fpc_sourceinstall: distclean
  1147. $(MKDIR) $(INSTALL_SOURCEDIR)
  1148. $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
  1149. fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
  1150. ifdef HASEXAMPLES
  1151. $(MKDIR) $(INSTALL_EXAMPLEDIR)
  1152. endif
  1153. ifdef EXAMPLESOURCEFILES
  1154. $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
  1155. endif
  1156. ifdef TARGET_EXAMPLEDIRS
  1157. $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
  1158. endif
  1159. .PHONY: fpc_distinstall
  1160. fpc_distinstall: install exampleinstall
  1161. .PHONY: fpc_zipinstall fpc_zipsourceinstall fpc_zipexampleinstall
  1162. ifndef PACKDIR
  1163. ifndef inUnix
  1164. PACKDIR=$(BASEDIR)/../fpc-pack
  1165. else
  1166. PACKDIR=/tmp/fpc-pack
  1167. endif
  1168. endif
  1169. ifndef ZIPNAME
  1170. ifdef DIST_ZIPNAME
  1171. ZIPNAME=$(DIST_ZIPNAME)
  1172. else
  1173. ZIPNAME=$(PACKAGE_NAME)
  1174. endif
  1175. endif
  1176. ifndef FULLZIPNAME
  1177. FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
  1178. endif
  1179. ifndef ZIPTARGET
  1180. ifdef DIST_ZIPTARGET
  1181. ZIPTARGET=DIST_ZIPTARGET
  1182. else
  1183. ZIPTARGET=install
  1184. endif
  1185. endif
  1186. ifndef USEZIP
  1187. ifdef inUnix
  1188. USETAR=1
  1189. endif
  1190. endif
  1191. ifndef inUnix
  1192. USEZIPWRAPPER=1
  1193. endif
  1194. ifdef USEZIPWRAPPER
  1195. ZIPPATHSEP=$(PATHSEP)
  1196. ZIPWRAPPER=$(subst /,$(PATHSEP),$(DIST_DESTDIR)/fpczip$(SRCBATCHEXT))
  1197. else
  1198. ZIPPATHSEP=/
  1199. endif
  1200. ZIPCMD_CDPACK:=cd $(subst /,$(ZIPPATHSEP),$(PACKDIR))
  1201. ZIPCMD_CDBASE:=cd $(subst /,$(ZIPPATHSEP),$(BASEDIR))
  1202. ifdef USETAR
  1203. ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(TAREXT)
  1204. ZIPCMD_ZIP:=$(TARPROG) cf$(TAROPT) $(ZIPDESTFILE) *
  1205. else
  1206. ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(ZIPEXT)
  1207. ZIPCMD_ZIP:=$(subst /,$(ZIPPATHSEP),$(ZIPPROG)) -Dr $(ZIPOPT) $(ZIPDESTFILE) *
  1208. endif
  1209. fpc_zipinstall:
  1210. $(MAKE) $(ZIPTARGET) INSTALL_PREFIX=$(PACKDIR) ZIPINSTALL=1
  1211. $(MKDIR) $(DIST_DESTDIR)
  1212. $(DEL) $(ZIPDESTFILE)
  1213. ifdef USEZIPWRAPPER
  1214. ifneq ($(ECHOREDIR),echo)
  1215. $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDPACK))" > $(ZIPWRAPPER)
  1216. $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_ZIP))" >> $(ZIPWRAPPER)
  1217. $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDBASE))" >> $(ZIPWRAPPER)
  1218. else
  1219. echo $(ZIPCMD_CDPACK) > $(ZIPWRAPPER)
  1220. echo $(ZIPCMD_ZIP) >> $(ZIPWRAPPER)
  1221. echo $(ZIPCMD_CDBASE) >> $(ZIPWRAPPER)
  1222. endif
  1223. ifdef inUnix
  1224. /bin/sh $(ZIPWRAPPER)
  1225. else
  1226. $(ZIPWRAPPER)
  1227. endif
  1228. $(DEL) $(ZIPWRAPPER)
  1229. else
  1230. $(ZIPCMD_CDPACK) ; $(ZIPCMD_ZIP) ; $(ZIPCMD_CDBASE)
  1231. endif
  1232. $(DELTREE) $(PACKDIR)
  1233. fpc_zipsourceinstall:
  1234. $(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall ZIPSUFFIX=$(ZIPSOURCESUFFIX)
  1235. fpc_zipexampleinstall:
  1236. ifdef HASEXAMPLES
  1237. $(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall ZIPSUFFIX=$(ZIPEXAMPLESUFFIX)
  1238. endif
  1239. fpc_zipdistinstall:
  1240. $(MAKE) fpc_zipinstall ZIPTARGET=distinstall
  1241. .PHONY: fpc_clean fpc_cleanall fpc_distclean
  1242. ifdef EXEFILES
  1243. override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
  1244. endif
  1245. ifdef CLEAN_UNITS
  1246. override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
  1247. endif
  1248. ifdef CLEANPPUFILES
  1249. override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
  1250. ifdef DEBUGSYMEXT
  1251. override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
  1252. endif
  1253. override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
  1254. override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
  1255. endif
  1256. fpc_clean: $(CLEANTARGET)
  1257. ifdef CLEANEXEFILES
  1258. -$(DEL) $(CLEANEXEFILES)
  1259. endif
  1260. ifdef CLEANPPUFILES
  1261. -$(DEL) $(CLEANPPUFILES)
  1262. endif
  1263. ifneq ($(CLEANPPULINKFILES),)
  1264. -$(DEL) $(CLEANPPULINKFILES)
  1265. endif
  1266. ifdef CLEANRSTFILES
  1267. -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
  1268. endif
  1269. ifdef CLEAN_FILES
  1270. -$(DEL) $(CLEAN_FILES)
  1271. endif
  1272. ifdef LIB_NAME
  1273. -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
  1274. endif
  1275. -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
  1276. -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
  1277. fpc_cleanall: $(CLEANTARGET)
  1278. ifdef CLEANEXEFILES
  1279. -$(DEL) $(CLEANEXEFILES)
  1280. endif
  1281. ifdef COMPILER_UNITTARGETDIR
  1282. ifdef CLEANPPUFILES
  1283. -$(DEL) $(CLEANPPUFILES)
  1284. endif
  1285. ifneq ($(CLEANPPULINKFILES),)
  1286. -$(DEL) $(CLEANPPULINKFILES)
  1287. endif
  1288. ifdef CLEANRSTFILES
  1289. -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
  1290. endif
  1291. endif
  1292. -$(DELTREE) units
  1293. -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
  1294. ifneq ($(PPUEXT),.ppu)
  1295. -$(DEL) *.o *.ppu *.a
  1296. endif
  1297. -$(DELTREE) *$(SMARTEXT)
  1298. -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
  1299. -$(DEL) *_ppas$(BATCHEXT)
  1300. ifdef AOUTEXT
  1301. -$(DEL) *$(AOUTEXT)
  1302. endif
  1303. ifdef DEBUGSYMEXT
  1304. -$(DEL) *$(DEBUGSYMEXT)
  1305. endif
  1306. fpc_distclean: cleanall
  1307. .PHONY: fpc_baseinfo
  1308. override INFORULES+=fpc_baseinfo
  1309. fpc_baseinfo:
  1310. @$(ECHO)
  1311. @$(ECHO) == Package info ==
  1312. @$(ECHO) Package Name..... $(PACKAGE_NAME)
  1313. @$(ECHO) Package Version.. $(PACKAGE_VERSION)
  1314. @$(ECHO)
  1315. @$(ECHO) == Configuration info ==
  1316. @$(ECHO)
  1317. @$(ECHO) FPC.......... $(FPC)
  1318. @$(ECHO) FPC Version.. $(FPC_VERSION)
  1319. @$(ECHO) Source CPU... $(CPU_SOURCE)
  1320. @$(ECHO) Target CPU... $(CPU_TARGET)
  1321. @$(ECHO) Source OS.... $(OS_SOURCE)
  1322. @$(ECHO) Target OS.... $(OS_TARGET)
  1323. @$(ECHO) Full Source.. $(FULL_SOURCE)
  1324. @$(ECHO) Full Target.. $(FULL_TARGET)
  1325. @$(ECHO) SourceSuffix. $(SOURCESUFFIX)
  1326. @$(ECHO) TargetSuffix. $(TARGETSUFFIX)
  1327. @$(ECHO)
  1328. @$(ECHO) == Directory info ==
  1329. @$(ECHO)
  1330. @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)
  1331. @$(ECHO)
  1332. @$(ECHO) Basedir......... $(BASEDIR)
  1333. @$(ECHO) FPCDir.......... $(FPCDIR)
  1334. @$(ECHO) CrossBinDir..... $(CROSSBINDIR)
  1335. @$(ECHO) UnitsDir........ $(UNITSDIR)
  1336. @$(ECHO) PackagesDir..... $(PACKAGESDIR)
  1337. @$(ECHO)
  1338. @$(ECHO) GCC library..... $(GCCLIBDIR)
  1339. @$(ECHO) Other library... $(OTHERLIBDIR)
  1340. @$(ECHO)
  1341. @$(ECHO) == Tools info ==
  1342. @$(ECHO)
  1343. @$(ECHO) As........ $(AS)
  1344. @$(ECHO) Ld........ $(LD)
  1345. @$(ECHO) Ar........ $(AR)
  1346. @$(ECHO) Rc........ $(RC)
  1347. @$(ECHO)
  1348. @$(ECHO) Mv........ $(MVPROG)
  1349. @$(ECHO) Cp........ $(CPPROG)
  1350. @$(ECHO) Rm........ $(RMPROG)
  1351. @$(ECHO) GInstall.. $(GINSTALL)
  1352. @$(ECHO) Echo...... $(ECHO)
  1353. @$(ECHO) Shell..... $(SHELL)
  1354. @$(ECHO) Date...... $(DATE)
  1355. @$(ECHO) FPCMake... $(FPCMAKE)
  1356. @$(ECHO) PPUMove... $(PPUMOVE)
  1357. @$(ECHO) Upx....... $(UPXPROG)
  1358. @$(ECHO) Zip....... $(ZIPPROG)
  1359. @$(ECHO)
  1360. @$(ECHO) == Object info ==
  1361. @$(ECHO)
  1362. @$(ECHO) Target Loaders........ $(TARGET_LOADERS)
  1363. @$(ECHO) Target Units.......... $(TARGET_UNITS)
  1364. @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)
  1365. @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)
  1366. @$(ECHO) Target Dirs........... $(TARGET_DIRS)
  1367. @$(ECHO) Target Examples....... $(TARGET_EXAMPLES)
  1368. @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
  1369. @$(ECHO)
  1370. @$(ECHO) Clean Units......... $(CLEAN_UNITS)
  1371. @$(ECHO) Clean Files......... $(CLEAN_FILES)
  1372. @$(ECHO)
  1373. @$(ECHO) Install Units....... $(INSTALL_UNITS)
  1374. @$(ECHO) Install Files....... $(INSTALL_FILES)
  1375. @$(ECHO)
  1376. @$(ECHO) == Install info ==
  1377. @$(ECHO)
  1378. @$(ECHO) DateStr.............. $(DATESTR)
  1379. @$(ECHO) ZipName.............. $(ZIPNAME)
  1380. @$(ECHO) ZipPrefix............ $(ZIPPREFIX)
  1381. @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX)
  1382. @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
  1383. @$(ECHO) FullZipName.......... $(FULLZIPNAME)
  1384. @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)
  1385. @$(ECHO)
  1386. @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)
  1387. @$(ECHO) Install binary dir... $(INSTALL_BINDIR)
  1388. @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)
  1389. @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)
  1390. @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)
  1391. @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)
  1392. @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)
  1393. @$(ECHO) Install data dir..... $(INSTALL_DATADIR)
  1394. @$(ECHO)
  1395. @$(ECHO) Dist destination dir. $(DIST_DESTDIR)
  1396. @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)
  1397. @$(ECHO)
  1398. .PHONY: fpc_info
  1399. fpc_info: $(INFORULES)
  1400. .PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
  1401. fpc_makefile_dirs
  1402. fpc_makefile:
  1403. $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
  1404. fpc_makefile_sub1:
  1405. ifdef TARGET_DIRS
  1406. $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
  1407. endif
  1408. ifdef TARGET_EXAMPLEDIRS
  1409. $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
  1410. endif
  1411. fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
  1412. fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
  1413. fpc_makefiles: fpc_makefile fpc_makefile_dirs
  1414. debug:
  1415. smart:
  1416. release:
  1417. units:
  1418. shared:
  1419. sourceinstall: fpc_sourceinstall
  1420. exampleinstall: fpc_exampleinstall
  1421. distinstall: fpc_distinstall
  1422. zipinstall: fpc_zipinstall
  1423. zipsourceinstall: fpc_zipsourceinstall
  1424. zipexampleinstall: fpc_zipexampleinstall
  1425. zipdistinstall: fpc_zipdistinstall
  1426. cleanall:
  1427. info: fpc_info
  1428. makefiles: fpc_makefiles
  1429. .PHONY: debug smart release units shared sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall cleanall info makefiles
  1430. ifneq ($(wildcard fpcmake.loc),)
  1431. include fpcmake.loc
  1432. endif
  1433. ifndef DOCS
  1434. DOCS = user rtl ref prog fpdoc chart
  1435. endif
  1436. ifdef USEHEVEA
  1437. PREAMBLETYPE = hevea
  1438. else
  1439. ifdef USEL2H
  1440. PREAMBLETYPE = html
  1441. else
  1442. PREAMBLETYPE = report
  1443. endif
  1444. endif
  1445. ifndef CROSSCOMPILE
  1446. ifndef FPDOC
  1447. ifneq ($(wildcard ../utils/fpdoc/fpdoc),)
  1448. FPDOC=../utils/fpdoc/fpdoc
  1449. else
  1450. FPDOC=fpdoc
  1451. endif
  1452. endif
  1453. endif
  1454. ifndef FPCSRCDIR
  1455. FPCSRCDIR=..
  1456. endif
  1457. ifndef ASCIIMODE
  1458. ASCIIMODE=NO
  1459. endif
  1460. ifndef LATEX
  1461. LATEX = latex
  1462. endif
  1463. ifndef DVIPS
  1464. DVIPS=dvips
  1465. endif
  1466. ifndef DVITXT
  1467. DVITXT=dvi2tty -w132
  1468. endif
  1469. ifndef PDFLATEX
  1470. PDFLATEX=pdflatex
  1471. endif
  1472. ifndef MAKEINDEX
  1473. MAKEINDEX=makeindex
  1474. endif
  1475. ifdef USEL2H
  1476. ifndef LATEX2HTML
  1477. LATEX2HTML = /usr/bin/latex2html
  1478. endif
  1479. ifndef LATEX2HTMLOPTS
  1480. LATEX2HTMLOPTS = -no_reuse -up_url "../fpctoc.html"\
  1481. -up_title "Free Pascal manuals"\
  1482. -html_version 4.0 -split 3
  1483. endif
  1484. ifeq ($(ASCIIMODE),YES)
  1485. LATEX2HTMLOPTS+=-ascii_mode
  1486. endif
  1487. endif # USEL2H
  1488. ifdef USEHEVEA
  1489. ifndef HEVEA
  1490. HEVEA = /usr/bin/hevea
  1491. endif
  1492. ifeq ($(ASCIIMODE),YES)
  1493. HEVEAOPTS+=-text
  1494. endif
  1495. endif # USEHEVEA
  1496. export TMP=/tmp
  1497. PS = $(addsuffix .ps, $(DOCS))
  1498. HTML = $(addsuffix .html, $(DOCS))
  1499. DVI = $(addsuffix .dvi, $(DOCS))
  1500. TXT = $(addsuffix .txt, $(DOCS))
  1501. PDF = $(addsuffix .pdf, $(DOCS))
  1502. TOC = $(addsuffix .toc, $(DOCS))
  1503. AUX = $(addsuffix .aux, $(DOCS))
  1504. LOG = $(addsuffix .log, $(DOCS))
  1505. LOT = $(addsuffix .lot, $(DOCS))
  1506. OUT = $(addsuffix .out, $(DOCS))
  1507. .PHONY: clean dvi help html ps psdist htmldist htmdist htdist pdfdist \
  1508. txtdist htm txt pdf refex alldist messages onechap gtk \
  1509. user ref prog rtl
  1510. .SUFFIXES: .dvi .tex .ps .txt .pdf
  1511. .dvi.ps:
  1512. $(DVIPS) $<
  1513. .tex.dvi:
  1514. -rm $*.aux $*.idx $*.ilg $*.ind $*.log $*.out $*.toc $*.tmp $*.xref $*.4ht
  1515. $(LATEX) $*
  1516. -$(MAKEINDEX) $*
  1517. $(LATEX) $*
  1518. -$(MAKEINDEX) $*
  1519. $(LATEX) $*
  1520. .dvi.txt:
  1521. $(DVITXT) -o $*.txt $*.dvi
  1522. .tex.pdf:
  1523. -rm $*.aux $*.idx $*.ilg $*.ind $*.log $*.out $*.toc $*.tmp $*.xref $*.4ht
  1524. $(PDFLATEX) $*
  1525. -$(MAKEINDEX) $*
  1526. $(PDFLATEX) $*
  1527. -$(MAKEINDEX) $*
  1528. $(PDFLATEX) $*
  1529. $(TXT) : %.txt: %.dvi
  1530. $(DVI) : %.dvi: %.tex
  1531. $(PDF) : %.pdf: %.tex
  1532. help:
  1533. @echo 'Possible targets :'
  1534. @echo ' dvi : Make documentation using latex.'
  1535. @echo ' ps : Make documentation using latex and dvips.'
  1536. @echo ' html : Make HTML documentation using default converter.'
  1537. @echo ' hevea : Make HTML documentation using hevea'
  1538. @echo ' l2h : Make HTML documentation using latex2html'
  1539. @echo ' 4ht : Make HTML documentation using tex4ht'
  1540. @echo ' pdf : Make documentation using pdflatex'
  1541. @echo ' txt : dvi, convert to text using dvi2tty'
  1542. @echo ' htm : Convert .html to .htm files, zip result'
  1543. @echo ' clean : Clean up the mess.'
  1544. @echo ' examples : Comple all generic examples'
  1545. @echo ' linuxexamples : Compile all examples for linux'
  1546. @echo ' dosexamples : Compile all examples for dos'
  1547. @echo ' execute : Execute examples (DOS/Windows/OS/2 only)'
  1548. @echo ' htmldist : html, and rchive result.'
  1549. @echo ' psdist : ps, and archive result.'
  1550. @echo ' pdfdist : pdf, and archive result.'
  1551. clean:
  1552. -rm -f preamble.inc date.inc messages.inc
  1553. -rm -f *.4tc *.4ct *.css *.lg *.tmp *.xref
  1554. -rm -rf $(DOCS)
  1555. -rm -f $(TOC) $(LOG) $(DVI) $(PDF) $(AUX) $(OUT) $(PS) $(HTML) *.i* $(LOT) $(TXT)
  1556. -rm -f $(notdir $(wildcard styles/*))
  1557. distclean: clean cleanexamples
  1558. -rm -f *.tar.gz *.zip
  1559. date.inc:
  1560. @echo \\date\{`date +'%B %Y'`\} > date.inc
  1561. preamble.inc:
  1562. cp -f preamble.$(PREAMBLETYPE) preamble.inc
  1563. ../compiler/msg2inc$(EXEEXT):
  1564. $(MAKE) -C ../compiler msg2inc
  1565. messages.inc: ../compiler/msg2inc$(EXEEXT) ../compiler/msg/errore.msg
  1566. ../compiler/msg2inc -TE ../compiler/msg/errore.msg messages.inc
  1567. syntax.sty: styles/syntax.sty
  1568. cp $(wildcard styles/*.*) .
  1569. INCLUDES=date.inc preamble.inc syntax.sty
  1570. SYSTEMUNITDIR=$(OS_SOURCE)
  1571. ifeq ($(findstring bsd,$(OS_SOURCE)),)
  1572. override SYSTEMUNITDIR=bsd
  1573. endif
  1574. ifeq ($(findstring darwin,$(OS_SOURCE)),)
  1575. override SYSTEMUNITDIR=bsd
  1576. endif
  1577. FCLOPTS=--package=fcl --descr=classes.xml --input='$(FPCSRCDIR)/rtl/$(HOSTOS)/classes.pp -Fi$(FPCSRCDIR)/rtl/objpas/classes'
  1578. fcl.inc: classes.xml
  1579. $(FPDOC) --output=fcl.inc $(FCLOPTS) --format=latex
  1580. RTLOPTS=--package=rtl --descr=rtl.xml
  1581. ifndef CURRENTXMLONLY
  1582. XMLUNITS=sysutils strutils dateutils systhrds strings mouse keyboard \
  1583. crt video dos sockets objects heaptrc mmx ipc printer typinfo \
  1584. ports getopts emu387 dxeload go32 gpm graph oldlinux baseunix \
  1585. unixtype unix classes unixutil x86 dynlibs linux math system\
  1586. objpas dateutils rtl
  1587. RTLXML=$(addsuffix .xml,$(XMLUNITS))
  1588. RTLOPTS+= --descr=strutils.xml --input="../rtl/objpas/strutils.pp"
  1589. RTLOPTS+= --descr=systhrds.xml --input="../rtl/unix/systhrds.pp -Fi../rtl/inc"
  1590. RTLOPTS+= --descr=sysutils.xml --input="../rtl/unix/sysutils.pp -Fi../rtl/objpas/sysutils -Fi../rtl/inc"
  1591. RTLOPTS+= --descr=strings.xml --input="../rtl/inc/strings.pp -Fi../rtl/i386 -Fi../rtl/inc"
  1592. RTLOPTS+= --descr=mouse.xml --input="../rtl/unix/mouse.pp -Fi../rtl/inc"
  1593. RTLOPTS+= --descr=keyboard.xml --input="../rtl/unix/keyboard.pp -Fi../rtl/inc"
  1594. RTLOPTS+= --descr=crt.xml --input="../rtl/unix/crt.pp -Fi../rtl/inc"
  1595. RTLOPTS+= --descr=video.xml --input="../rtl/unix/video.pp -Fi../rtl/inc"
  1596. RTLOPTS+= --descr=dos.xml --input="../rtl/unix/dos.pp -Fi../rtl/inc -dcpui386"
  1597. RTLOPTS+= --descr=sockets.xml --input="-dver1_0 ../rtl/unix/sockets.pp -Fi../rtl/inc -Fi../rtl/$(HOSTOS)"
  1598. RTLOPTS+= --descr=objects.xml --input="../rtl/inc/objects.pp -Fi../rtl/i386 -Fi../rtl/$(HOSTOS)"
  1599. RTLOPTS+= --descr=heaptrc.xml --input="../rtl/inc/heaptrc.pp -Fi../rtl/i386 -Fi../rtl/$(HOSTOS)"
  1600. RTLOPTS+= --descr=mmx.xml --input="../rtl/i386/mmx.pp -Fi../rtl/$(HOSTOS)"
  1601. RTLOPTS+= --descr=ipc.xml --input="../rtl/unix/ipc.pp -Fi../rtl/$(HOSTOS)"
  1602. RTLOPTS+= --descr=printer.xml --input="../rtl/unix/printer.pp -Fi../rtl/$(HOSTOS) -Fi../rtl/inc"
  1603. RTLOPTS+= --descr=typinfo.xml --input="../rtl/objpas/typinfo.pp -Fi../rtl/$(HOSTOS)"
  1604. RTLOPTS+= --descr=ports.xml --input="../rtl/unix/ports.pp -Fi../rtl/$(HOSTOS)"
  1605. RTLOPTS+= --descr=getopts.xml --input="../rtl/inc/getopts.pp -Fi../rtl/$(HOSTOS)"
  1606. RTLOPTS+= --descr=emu387.xml --input="../rtl/go32v2/emu387.pp -Fi../rtl/i386"
  1607. RTLOPTS+= --descr=dxeload.xml --input="../rtl/go32v2/dxeload.pp -Fi../rtl/i386"
  1608. RTLOPTS+= --descr=go32.xml --input="../rtl/go32v2/go32.pp -Fi../rtl/i386"
  1609. RTLOPTS+= --descr=gpm.xml --input="-dVER1_0 ../rtl/unix/gpm.pp -Fi../rtl/i386"
  1610. RTLOPTS+= --descr=graph.xml --input="../rtl/unix/graph.pp -Fi../rtl/i386 -Fi../rtl/inc/graph"
  1611. RTLOPTS+= --descr=oldlinux.xml --input="../rtl/unix/oldlinux.pp -Fi../rtl/linux -Fi../rtl/unix"
  1612. RTLOPTS+= --descr=unixtype.xml --input="../rtl/unix/unixtype.pp -Fi../rtl/unix -Fi../rtl/linux -Fi../rtl/linux/i386"
  1613. RTLOPTS+= --descr=baseunix.xml --input="../rtl/linux/baseunix.pp -Fi../rtl/unix -Fi../rtl/linux -Fi../rtl/linux/i386"
  1614. RTLOPTS+= --descr=unix.xml --input="../rtl/unix/unix.pp -Fi../rtl/unix -Fi../rtl/linux -Fi../rtl/linux/i386"
  1615. RTLOPTS+= --descr=classes.xml --input='$(FPCSRCDIR)/rtl/$(HOSTOS)/classes.pp -Fi$(FPCSRCDIR)/rtl/objpas/classes'
  1616. RTLOPTS+= --descr=unixutil.xml --input="../rtl/unix/unixutil.pp"
  1617. RTLOPTS+= --descr=x86.xml --input="../rtl/unix/x86.pp"
  1618. RTLOPTS+= --descr=dynlibs.xml --input="../rtl/inc/dynlibs.pp -Fi../rtl/unix"
  1619. RTLOPTS+= --descr=linux.xml --input="../rtl/unix/linux.pp -Fi../rtl/linux -Fi../rtl/unix"
  1620. RTLOPTS+= --descr=math.xml --input="../rtl/objpas/math.pp -Fi../rtl/i386 -dFPC_HAS_TYPE_EXTENDED"
  1621. RTLOPTS+= --descr=system.xml --input="-dfpdocsystem -dHASGETHEAPSTATUS -dSUPPORT_DOUBLE ../rtl/$(SYSTEMUNITDIR)/system.pp -Fi../rtl/unix -Fi../rtl/inc -Fi../rtl/i386 -dCPU32 -dHASVARIANT -dFPC_HAS_TYPE_EXTENDED -dHASWIDECHAR"
  1622. RTLOPTS+=--descr=objpas.xml --input="-dHASINTF ../rtl/objpas/objpas.pp"
  1623. RTLOPTS+=--descr=dateutils.xml --input="../rtl/objpas/dateutils.pp -Fi../rtl/objpas"
  1624. else
  1625. RTLXML=dateutils.xml
  1626. RTLOPTS+=--descr=dateutils.xml --input="../rtl/objpas/dateutils.pp -Fi../rtl/objpas"
  1627. endif
  1628. rtl.inc: $(RTLXML)
  1629. $(FPDOC) --output=rtl.inc $(RTLOPTS) --format=latex
  1630. ref.dvi: ref.tex $(INCLUDES)
  1631. prog.dvi: prog.tex $(INCLUDES)
  1632. user.dvi: user.tex $(INCLUDES) messages.inc
  1633. fpdoc.dvi: fpdoc.tex $(INCLUDES)
  1634. fcl.dvi: fcl.tex fcl.inc $(INCLUDES)
  1635. chart.dvi: chart.tex
  1636. ref.pdf: ref.tex $(INCLUDES)
  1637. user.pdf: user.tex $(INCLUDES) messages.inc
  1638. prog.pdf: prog.tex $(INCLUDES)
  1639. onechap.pdf: onechap.tex $(INCLUDES)
  1640. onechap.dvi: onechap.tex $(INCLUDES)
  1641. fpdoc.pdf: fpdoc.tex $(INCLUDES)
  1642. fcl.pdf: fcl.tex fcl.inc $(INCLUDES)
  1643. chart.pdf: chart.tex
  1644. rtl.dvi: rtl.tex rtl.inc $(INCLUDES)
  1645. rtl.pdf: rtl.tex rtl.inc $(INCLUDES)
  1646. dvi : $(DVI)
  1647. txt : dvi $(TXT)
  1648. ps : dvi $(PS)
  1649. pdf : $(PDF)
  1650. all : dvi ps pdf txt html
  1651. .PHONY: htex user prog onechap ref internal html hevea
  1652. ifdef INSTALLDEBUG
  1653. $(HTML):
  1654. mkdir $@
  1655. cp [email protected] $@/index.html
  1656. html: $(HTML)
  1657. else
  1658. ifdef USEHEVEA
  1659. include Makefile.hev
  1660. else
  1661. ifdef USEL2H
  1662. include Makefile.l2h
  1663. else
  1664. include Makefile.4ht
  1665. endif # USEL2H
  1666. endif # USEHEVEA
  1667. endif # INSTALLDEBUG
  1668. hevea:
  1669. $(MAKE) html USEHEVEA=1
  1670. l2h:
  1671. $(MAKE) html USEL2H=1
  1672. 4ht:
  1673. $(MAKE) html USETEX4HT=1
  1674. fcl: fcl/index.html
  1675. fcl/index.html: classes.xml
  1676. $(FPDOC) $(FCLOPTS) --format=html --output=fcl
  1677. rtl: rtl/index.html
  1678. rtl/index.html: $(RTLXML)
  1679. $(FPDOC) $(RTLOPTS) --format=html --output=rtl
  1680. GTKPDF=$(addsuffix .pdf,$(addprefix gtk, 1 2 3 4 5))
  1681. gtk: $(GTKPDF)
  1682. gtk1.pdf: gtk1.tex
  1683. gtk2.pdf: gtk2.tex
  1684. gtk3.pdf: gtk3.tex
  1685. gtk4.pdf: gtk4.tex
  1686. gtk5.pdf: gtk5.tex
  1687. .PHONY: pdfinstall psinstall dviinstall txtinstall
  1688. pdfinstall: pdf
  1689. install -d -m 755 $(INSTALL_DOCDIR)
  1690. cp $(PDF) $(INSTALL_DOCDIR)
  1691. psinstall: ps
  1692. install -d -m 755 $(INSTALL_DOCDIR)
  1693. cp $(PS) $(INSTALL_DOCDIR)
  1694. dviinstall: dvi
  1695. install -d -m 755 $(INSTALL_DOCDIR)
  1696. cp $(DVI) $(INSTALL_DOCDIR)
  1697. txtinstall: txt
  1698. install -d -m 755 $(INSTALL_DOCDIR)
  1699. cp $(TXT) $(INSTALL_DOCDIR)
  1700. htmlinstall: html
  1701. install -d -m 755 $(INSTALL_DOCDIR)
  1702. cp fpctoc.html $(INSTALL_DOCDIR)
  1703. cp -R buttons $(INSTALL_DOCDIR)
  1704. cp -R pics $(INSTALL_DOCDIR)
  1705. cp -R $(HTML) $(INSTALL_DOCDIR)
  1706. find $(INSTALL_DOCDIR) -name 'CVS' -or -name '*.eps' | xargs -n1 rm -rf
  1707. install:
  1708. @echo Choose install from:
  1709. @echo pdfinstall,htmlinstall,htmldosinstall
  1710. @exit
  1711. psdist:
  1712. $(MAKE) zipinstall ZIPTARGET=psinstall
  1713. pdftar:
  1714. $(MAKE) zipinstall ZIPTARGET=pdfinstall UNIXHier=1 USETAR=y
  1715. pdfzip:
  1716. $(MAKE) zipinstall ZIPTARGET=pdfinstall UNIXHier= USEZIP=y
  1717. dvidist:
  1718. $(MAKE) zipinstall ZIPTARGET=dviinstall
  1719. txtdist:
  1720. $(MAKE) zipinstall ZIPTARGET=txtinstall
  1721. htmltar:
  1722. $(MAKE) zipinstall ZIPTARGET=htmlinstall USETAR=y
  1723. htmlzip:
  1724. $(MAKE) zipinstall ZIPTARGET=htmlinstall UNIXHier= USEZIP=y
  1725. pdfdist: pdfzip pdftar
  1726. htmldist: htmlzip htmltar
  1727. alldist: dvidist psdist txtdist pdfdist htmldist
  1728. DOCPREFIX=doc
  1729. BASEDIR=$(shell pwd)
  1730. examples:
  1731. $(MAKE) -C crtex
  1732. $(MAKE) -C dosex
  1733. $(MAKE) -C optex
  1734. $(MAKE) -C mathex
  1735. $(MAKE) -C printex
  1736. $(MAKE) -C progex
  1737. $(MAKE) -C refex
  1738. $(MAKE) -C stringex
  1739. $(MAKE) -C objectex
  1740. $(MAKE) -C sysutex
  1741. $(MAKE) -C typinfex
  1742. $(MAKE) -C kbdex
  1743. cleanexamples:
  1744. $(MAKE) -C crtex clean
  1745. $(MAKE) -C dosex clean
  1746. $(MAKE) -C optex clean
  1747. $(MAKE) -C mathex clean
  1748. $(MAKE) -C printex clean
  1749. $(MAKE) -C progex clean
  1750. $(MAKE) -C refex clean
  1751. $(MAKE) -C stringex clean
  1752. $(MAKE) -C objectex clean
  1753. $(MAKE) -C sysutex clean
  1754. $(MAKE) -C typinfex clean
  1755. $(MAKE) -C kbdex clean
  1756. dosexamples: examples
  1757. $(MAKE) -C go32ex
  1758. $(MAKE) -C mouseex
  1759. linuxexamples: examples
  1760. $(MAKE) -C linuxex
  1761. $(MAKE) -C sockex
  1762. $(MAKE) -C ipcex
  1763. execute:
  1764. $(MAKE) -C dosex all
  1765. $(MAKE) -C dosex execute
  1766. $(MAKE) -C refex all
  1767. $(MAKE) -C refex execute
  1768. $(MAKE) -C mathex all
  1769. $(MAKE) -C mathex execute
  1770. $(MAKE) -C stringex all
  1771. $(MAKE) -C stringex execute
  1772. $(MAKE) -C objectex all
  1773. $(MAKE) -C objectex execute
  1774. $(MAKE) -C sysutex all
  1775. $(MAKE) -C sysutex execute
  1776. $(MAKE) -C typinfex all
  1777. $(MAKE) -C typinfex execute