Makefile 44 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696
  1. #
  2. # Don't edit, this file is generated by FPCMake Version 1.9.8 [2005/02/19]
  3. #
  4. default: all
  5. MAKEFILETARGETS=i386-linux m68k-linux powerpc-linux sparc-linux x86_64-linux arm-linux
  6. BSDs = freebsd netbsd openbsd darwin
  7. UNIXs = linux $(BSDs) solaris 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 OS_TARGET_DEFAULT=linux
  96. override DEFAULT_FPCDIR=../..
  97. ifndef FPC
  98. ifdef PP
  99. FPC=$(PP)
  100. endif
  101. endif
  102. ifndef FPC
  103. FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
  104. ifneq ($(FPCPROG),)
  105. FPCPROG:=$(firstword $(FPCPROG))
  106. FPC:=$(shell $(FPCPROG) -PB)
  107. ifneq ($(findstring Error,$(FPC)),)
  108. override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
  109. endif
  110. else
  111. override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
  112. endif
  113. endif
  114. override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
  115. override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
  116. FOUNDFPC:=$(strip $(wildcard $(FPC)))
  117. ifeq ($(FOUNDFPC),)
  118. FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
  119. ifeq ($(FOUNDFPC),)
  120. $(error Compiler $(FPC) not found)
  121. endif
  122. endif
  123. ifndef FPC_COMPILERINFO
  124. FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
  125. endif
  126. ifndef FPC_VERSION
  127. FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
  128. endif
  129. export FPC FPC_VERSION FPC_COMPILERINFO
  130. unexport CHECKDEPEND ALLDEPENDENCIES
  131. ifndef CPU_TARGET
  132. ifdef CPU_TARGET_DEFAULT
  133. CPU_TARGET=$(CPU_TARGET_DEFAULT)
  134. endif
  135. endif
  136. ifndef OS_TARGET
  137. ifdef OS_TARGET_DEFAULT
  138. OS_TARGET=$(OS_TARGET_DEFAULT)
  139. endif
  140. endif
  141. ifneq ($(words $(FPC_COMPILERINFO)),5)
  142. FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
  143. FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
  144. FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
  145. FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
  146. endif
  147. ifndef CPU_SOURCE
  148. CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
  149. endif
  150. ifndef CPU_TARGET
  151. CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
  152. endif
  153. ifndef OS_SOURCE
  154. OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
  155. endif
  156. ifndef OS_TARGET
  157. OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
  158. endif
  159. FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
  160. FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
  161. ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
  162. TARGETSUFFIX=$(OS_TARGET)
  163. SOURCESUFFIX=$(OS_SOURCE)
  164. else
  165. TARGETSUFFIX=$(FULL_TARGET)
  166. SOURCESUFFIX=$(FULL_SOURCE)
  167. endif
  168. ifneq ($(FULL_TARGET),$(FULL_SOURCE))
  169. CROSSCOMPILE=1
  170. endif
  171. ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
  172. ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
  173. $(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
  174. endif
  175. endif
  176. ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
  177. BSDhier=1
  178. endif
  179. ifeq ($(OS_TARGET),linux)
  180. linuxHier=1
  181. endif
  182. export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
  183. ifdef FPCDIR
  184. override FPCDIR:=$(subst \,/,$(FPCDIR))
  185. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  186. override FPCDIR=wrong
  187. endif
  188. else
  189. override FPCDIR=wrong
  190. endif
  191. ifdef DEFAULT_FPCDIR
  192. ifeq ($(FPCDIR),wrong)
  193. override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
  194. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  195. override FPCDIR=wrong
  196. endif
  197. endif
  198. endif
  199. ifeq ($(FPCDIR),wrong)
  200. ifdef inUnix
  201. override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
  202. ifeq ($(wildcard $(FPCDIR)/units),)
  203. override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
  204. endif
  205. else
  206. override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
  207. override FPCDIR:=$(FPCDIR)/..
  208. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  209. override FPCDIR:=$(FPCDIR)/..
  210. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  211. override FPCDIR:=$(BASEDIR)
  212. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  213. override FPCDIR=c:/pp
  214. endif
  215. endif
  216. endif
  217. endif
  218. endif
  219. ifndef CROSSBINDIR
  220. CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
  221. endif
  222. ifndef BINUTILSPREFIX
  223. ifndef CROSSBINDIR
  224. ifdef CROSSCOMPILE
  225. BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
  226. endif
  227. endif
  228. endif
  229. UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
  230. ifeq ($(UNITSDIR),)
  231. UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
  232. endif
  233. PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
  234. override PACKAGE_NAME=rtl
  235. PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
  236. RTL=..
  237. INC=$(RTL)/inc
  238. PROCINC=$(RTL)/$(CPU_TARGET)
  239. UNIXINC=$(RTL)/unix
  240. ifeq ($(CPU_TARGET),i386)
  241. CRT21=cprt21 gprt21
  242. CPU_UNITS=x86 ports cpu mmx graph
  243. else
  244. CPU_UNITS=
  245. endif
  246. UNITPREFIX=rtl
  247. ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
  248. SYSTEMUNIT=system
  249. LINUXUNIT1=
  250. ifeq ($(CPU_TARGET),i386)
  251. CPU_UNITS+=oldlinux
  252. endif
  253. LINUXUNIT2=linux
  254. else
  255. SYSTEMUNIT=syslinux
  256. LINUXUNIT1=linux
  257. LINUXUNIT2=
  258. override FPCOPT+=-dUNIX
  259. endif
  260. ifdef RELEASE
  261. override FPCOPT+=-Ur
  262. endif
  263. OBJPASDIR=$(RTL)/objpas
  264. GRAPHDIR=$(INC)/graph
  265. ifndef USELIBGGI
  266. USELIBGGI=NO
  267. endif
  268. ifeq ($(FULL_TARGET),i386-linux)
  269. override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes baseunix strings objpas macpas syscall unixutil heaptrc lineinfo $(LINUXUNIT1) termio unix $(LINUXUNIT2) initc cmem $(CPU_UNITS) crt printer ggigraph sysutils typinfo math matrix varutils charset ucomplex getopts errors sockets gpm ipc serial terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst cthreads classes strutils rtlconsts dos objects cwstring
  270. endif
  271. ifeq ($(FULL_TARGET),m68k-linux)
  272. override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes baseunix strings objpas macpas syscall unixutil heaptrc lineinfo $(LINUXUNIT1) termio unix $(LINUXUNIT2) initc cmem $(CPU_UNITS) crt printer ggigraph sysutils typinfo math matrix varutils charset ucomplex getopts errors sockets gpm ipc serial terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst cthreads classes strutils rtlconsts dos objects cwstring
  273. endif
  274. ifeq ($(FULL_TARGET),powerpc-linux)
  275. override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes baseunix strings objpas macpas syscall unixutil heaptrc lineinfo $(LINUXUNIT1) termio unix $(LINUXUNIT2) initc cmem $(CPU_UNITS) crt printer ggigraph sysutils typinfo math matrix varutils charset ucomplex getopts errors sockets gpm ipc serial terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst cthreads classes strutils rtlconsts dos objects cwstring
  276. endif
  277. ifeq ($(FULL_TARGET),sparc-linux)
  278. override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes baseunix strings objpas macpas syscall unixutil heaptrc lineinfo $(LINUXUNIT1) termio unix $(LINUXUNIT2) initc cmem $(CPU_UNITS) crt printer ggigraph sysutils typinfo math matrix varutils charset ucomplex getopts errors sockets gpm ipc serial terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst cthreads classes strutils rtlconsts dos objects cwstring
  279. endif
  280. ifeq ($(FULL_TARGET),x86_64-linux)
  281. override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes baseunix strings objpas macpas syscall unixutil heaptrc lineinfo $(LINUXUNIT1) termio unix $(LINUXUNIT2) initc cmem $(CPU_UNITS) crt printer ggigraph sysutils typinfo math matrix varutils charset ucomplex getopts errors sockets gpm ipc serial terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst cthreads classes strutils rtlconsts dos objects cwstring
  282. endif
  283. ifeq ($(FULL_TARGET),arm-linux)
  284. override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes baseunix strings objpas macpas syscall unixutil heaptrc lineinfo $(LINUXUNIT1) termio unix $(LINUXUNIT2) initc cmem $(CPU_UNITS) crt printer ggigraph sysutils typinfo math matrix varutils charset ucomplex getopts errors sockets gpm ipc serial terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst cthreads classes strutils rtlconsts dos objects cwstring
  285. endif
  286. ifeq ($(FULL_TARGET),i386-linux)
  287. override TARGET_LOADERS+=prt0 dllprt0 cprt0 gprt0 $(CRT21)
  288. endif
  289. ifeq ($(FULL_TARGET),m68k-linux)
  290. override TARGET_LOADERS+=prt0 dllprt0 cprt0 gprt0 $(CRT21)
  291. endif
  292. ifeq ($(FULL_TARGET),powerpc-linux)
  293. override TARGET_LOADERS+=prt0 dllprt0 cprt0 gprt0 $(CRT21)
  294. endif
  295. ifeq ($(FULL_TARGET),sparc-linux)
  296. override TARGET_LOADERS+=prt0 dllprt0 cprt0 gprt0 $(CRT21)
  297. endif
  298. ifeq ($(FULL_TARGET),x86_64-linux)
  299. override TARGET_LOADERS+=prt0 dllprt0 cprt0 gprt0 $(CRT21)
  300. endif
  301. ifeq ($(FULL_TARGET),arm-linux)
  302. override TARGET_LOADERS+=prt0 dllprt0 cprt0 gprt0 $(CRT21)
  303. endif
  304. ifeq ($(FULL_TARGET),i386-linux)
  305. override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts
  306. endif
  307. ifeq ($(FULL_TARGET),m68k-linux)
  308. override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts
  309. endif
  310. ifeq ($(FULL_TARGET),powerpc-linux)
  311. override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts
  312. endif
  313. ifeq ($(FULL_TARGET),sparc-linux)
  314. override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts
  315. endif
  316. ifeq ($(FULL_TARGET),x86_64-linux)
  317. override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts
  318. endif
  319. ifeq ($(FULL_TARGET),arm-linux)
  320. override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts
  321. endif
  322. ifeq ($(FULL_TARGET),i386-linux)
  323. override CLEAN_UNITS+=syslinux linux
  324. endif
  325. ifeq ($(FULL_TARGET),m68k-linux)
  326. override CLEAN_UNITS+=syslinux linux
  327. endif
  328. ifeq ($(FULL_TARGET),powerpc-linux)
  329. override CLEAN_UNITS+=syslinux linux
  330. endif
  331. ifeq ($(FULL_TARGET),sparc-linux)
  332. override CLEAN_UNITS+=syslinux linux
  333. endif
  334. ifeq ($(FULL_TARGET),x86_64-linux)
  335. override CLEAN_UNITS+=syslinux linux
  336. endif
  337. ifeq ($(FULL_TARGET),arm-linux)
  338. override CLEAN_UNITS+=syslinux linux
  339. endif
  340. override INSTALL_FPCPACKAGE=y
  341. ifeq ($(FULL_TARGET),i386-linux)
  342. override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
  343. endif
  344. ifeq ($(FULL_TARGET),m68k-linux)
  345. override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
  346. endif
  347. ifeq ($(FULL_TARGET),powerpc-linux)
  348. override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
  349. endif
  350. ifeq ($(FULL_TARGET),sparc-linux)
  351. override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
  352. endif
  353. ifeq ($(FULL_TARGET),x86_64-linux)
  354. override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
  355. endif
  356. ifeq ($(FULL_TARGET),arm-linux)
  357. override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
  358. endif
  359. ifeq ($(FULL_TARGET),i386-linux)
  360. override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
  361. endif
  362. ifeq ($(FULL_TARGET),m68k-linux)
  363. override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
  364. endif
  365. ifeq ($(FULL_TARGET),powerpc-linux)
  366. override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
  367. endif
  368. ifeq ($(FULL_TARGET),sparc-linux)
  369. override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
  370. endif
  371. ifeq ($(FULL_TARGET),x86_64-linux)
  372. override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
  373. endif
  374. ifeq ($(FULL_TARGET),arm-linux)
  375. override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
  376. endif
  377. ifeq ($(FULL_TARGET),i386-linux)
  378. override COMPILER_TARGETDIR+=.
  379. endif
  380. ifeq ($(FULL_TARGET),m68k-linux)
  381. override COMPILER_TARGETDIR+=.
  382. endif
  383. ifeq ($(FULL_TARGET),powerpc-linux)
  384. override COMPILER_TARGETDIR+=.
  385. endif
  386. ifeq ($(FULL_TARGET),sparc-linux)
  387. override COMPILER_TARGETDIR+=.
  388. endif
  389. ifeq ($(FULL_TARGET),x86_64-linux)
  390. override COMPILER_TARGETDIR+=.
  391. endif
  392. ifeq ($(FULL_TARGET),arm-linux)
  393. override COMPILER_TARGETDIR+=.
  394. endif
  395. ifdef REQUIRE_UNITSDIR
  396. override UNITSDIR+=$(REQUIRE_UNITSDIR)
  397. endif
  398. ifdef REQUIRE_PACKAGESDIR
  399. override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
  400. endif
  401. ifdef ZIPINSTALL
  402. ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
  403. UNIXHier=1
  404. endif
  405. else
  406. ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
  407. UNIXHier=1
  408. endif
  409. endif
  410. ifndef INSTALL_PREFIX
  411. ifdef PREFIX
  412. INSTALL_PREFIX=$(PREFIX)
  413. endif
  414. endif
  415. ifndef INSTALL_PREFIX
  416. ifdef UNIXHier
  417. INSTALL_PREFIX=/usr/local
  418. else
  419. ifdef INSTALL_FPCPACKAGE
  420. INSTALL_BASEDIR:=/pp
  421. else
  422. INSTALL_BASEDIR:=/$(PACKAGE_NAME)
  423. endif
  424. endif
  425. endif
  426. export INSTALL_PREFIX
  427. ifdef INSTALL_FPCSUBDIR
  428. export INSTALL_FPCSUBDIR
  429. endif
  430. ifndef DIST_DESTDIR
  431. DIST_DESTDIR:=$(BASEDIR)
  432. endif
  433. export DIST_DESTDIR
  434. ifndef COMPILER_UNITTARGETDIR
  435. ifdef PACKAGEDIR_MAIN
  436. COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
  437. else
  438. COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
  439. endif
  440. endif
  441. ifndef COMPILER_TARGETDIR
  442. COMPILER_TARGETDIR=.
  443. endif
  444. ifndef INSTALL_BASEDIR
  445. ifdef UNIXHier
  446. ifdef INSTALL_FPCPACKAGE
  447. INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
  448. else
  449. INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
  450. endif
  451. else
  452. INSTALL_BASEDIR:=$(INSTALL_PREFIX)
  453. endif
  454. endif
  455. ifndef INSTALL_BINDIR
  456. ifdef UNIXHier
  457. INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
  458. else
  459. INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
  460. ifdef INSTALL_FPCPACKAGE
  461. ifdef CROSSCOMPILE
  462. ifdef CROSSINSTALL
  463. INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
  464. else
  465. INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
  466. endif
  467. else
  468. INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
  469. endif
  470. endif
  471. endif
  472. endif
  473. ifndef INSTALL_UNITDIR
  474. INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
  475. ifdef INSTALL_FPCPACKAGE
  476. ifdef PACKAGE_NAME
  477. INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
  478. endif
  479. endif
  480. endif
  481. ifndef INSTALL_LIBDIR
  482. ifdef UNIXHier
  483. INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
  484. else
  485. INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
  486. endif
  487. endif
  488. ifndef INSTALL_SOURCEDIR
  489. ifdef UNIXHier
  490. ifdef BSDhier
  491. SRCPREFIXDIR=share/src
  492. else
  493. ifdef linuxHier
  494. SRCPREFIXDIR=share/src
  495. else
  496. SRCPREFIXDIR=src
  497. endif
  498. endif
  499. ifdef INSTALL_FPCPACKAGE
  500. ifdef INSTALL_FPCSUBDIR
  501. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
  502. else
  503. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  504. endif
  505. else
  506. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  507. endif
  508. else
  509. ifdef INSTALL_FPCPACKAGE
  510. ifdef INSTALL_FPCSUBDIR
  511. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
  512. else
  513. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
  514. endif
  515. else
  516. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
  517. endif
  518. endif
  519. endif
  520. ifndef INSTALL_DOCDIR
  521. ifdef UNIXHier
  522. ifdef BSDhier
  523. DOCPREFIXDIR=share/doc
  524. else
  525. ifdef linuxHier
  526. DOCPREFIXDIR=share/doc
  527. else
  528. DOCPREFIXDIR=doc
  529. endif
  530. endif
  531. ifdef INSTALL_FPCPACKAGE
  532. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  533. else
  534. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  535. endif
  536. else
  537. ifdef INSTALL_FPCPACKAGE
  538. INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
  539. else
  540. INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
  541. endif
  542. endif
  543. endif
  544. ifndef INSTALL_EXAMPLEDIR
  545. ifdef UNIXHier
  546. ifdef INSTALL_FPCPACKAGE
  547. ifdef BSDhier
  548. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  549. else
  550. ifdef linuxHier
  551. INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
  552. else
  553. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
  554. endif
  555. endif
  556. else
  557. ifdef BSDhier
  558. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  559. else
  560. ifdef linuxHier
  561. INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  562. else
  563. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  564. endif
  565. endif
  566. endif
  567. else
  568. ifdef INSTALL_FPCPACKAGE
  569. INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
  570. else
  571. INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
  572. endif
  573. endif
  574. endif
  575. ifndef INSTALL_DATADIR
  576. INSTALL_DATADIR=$(INSTALL_BASEDIR)
  577. endif
  578. ifdef CROSSCOMPILE
  579. ifndef CROSSBINDIR
  580. CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
  581. ifeq ($(CROSSBINDIR),)
  582. CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
  583. endif
  584. endif
  585. else
  586. CROSSBINDIR=
  587. endif
  588. BATCHEXT=.bat
  589. LOADEREXT=.as
  590. EXEEXT=.exe
  591. PPLEXT=.ppl
  592. PPUEXT=.ppu
  593. OEXT=.o
  594. ASMEXT=.s
  595. SMARTEXT=.sl
  596. STATICLIBEXT=.a
  597. SHAREDLIBEXT=.so
  598. STATICLIBPREFIX=libp
  599. RSTEXT=.rst
  600. ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
  601. ifeq ($(OS_TARGET),go32v1)
  602. STATICLIBPREFIX=
  603. SHORTSUFFIX=v1
  604. endif
  605. ifeq ($(OS_TARGET),go32v2)
  606. STATICLIBPREFIX=
  607. SHORTSUFFIX=dos
  608. endif
  609. ifeq ($(OS_TARGET),watcom)
  610. STATICLIBPREFIX=
  611. OEXT=.obj
  612. ASMEXT=.asm
  613. SHAREDLIBEXT=.dll
  614. SHORTSUFFIX=wat
  615. endif
  616. ifeq ($(OS_TARGET),linux)
  617. BATCHEXT=.sh
  618. EXEEXT=
  619. HASSHAREDLIB=1
  620. SHORTSUFFIX=lnx
  621. endif
  622. ifeq ($(OS_TARGET),freebsd)
  623. BATCHEXT=.sh
  624. EXEEXT=
  625. HASSHAREDLIB=1
  626. SHORTSUFFIX=fbs
  627. endif
  628. ifeq ($(OS_TARGET),netbsd)
  629. BATCHEXT=.sh
  630. EXEEXT=
  631. HASSHAREDLIB=1
  632. SHORTSUFFIX=nbs
  633. endif
  634. ifeq ($(OS_TARGET),openbsd)
  635. BATCHEXT=.sh
  636. EXEEXT=
  637. HASSHAREDLIB=1
  638. SHORTSUFFIX=obs
  639. endif
  640. ifeq ($(OS_TARGET),win32)
  641. SHAREDLIBEXT=.dll
  642. SHORTSUFFIX=w32
  643. endif
  644. ifeq ($(OS_TARGET),os2)
  645. BATCHEXT=.cmd
  646. AOUTEXT=.out
  647. STATICLIBPREFIX=
  648. SHAREDLIBEXT=.dll
  649. SHORTSUFFIX=os2
  650. ECHO=echo
  651. endif
  652. ifeq ($(OS_TARGET),emx)
  653. BATCHEXT=.cmd
  654. AOUTEXT=.out
  655. STATICLIBPREFIX=
  656. SHAREDLIBEXT=.dll
  657. SHORTSUFFIX=emx
  658. ECHO=echo
  659. endif
  660. ifeq ($(OS_TARGET),amiga)
  661. EXEEXT=
  662. SHAREDLIBEXT=.library
  663. SHORTSUFFIX=amg
  664. endif
  665. ifeq ($(OS_TARGET),morphos)
  666. EXEEXT=
  667. SHAREDLIBEXT=.library
  668. SHORTSUFFIX=mos
  669. endif
  670. ifeq ($(OS_TARGET),atari)
  671. EXEEXT=.ttp
  672. SHORTSUFFIX=ata
  673. endif
  674. ifeq ($(OS_TARGET),beos)
  675. BATCHEXT=.sh
  676. EXEEXT=
  677. SHORTSUFFIX=be
  678. endif
  679. ifeq ($(OS_TARGET),solaris)
  680. BATCHEXT=.sh
  681. EXEEXT=
  682. SHORTSUFFIX=sun
  683. endif
  684. ifeq ($(OS_TARGET),qnx)
  685. BATCHEXT=.sh
  686. EXEEXT=
  687. SHORTSUFFIX=qnx
  688. endif
  689. ifeq ($(OS_TARGET),netware)
  690. EXEEXT=.nlm
  691. STATICLIBPREFIX=
  692. SHORTSUFFIX=nw
  693. endif
  694. ifeq ($(OS_TARGET),netwlibc)
  695. EXEEXT=.nlm
  696. STATICLIBPREFIX=
  697. SHORTSUFFIX=nwl
  698. endif
  699. ifeq ($(OS_TARGET),macos)
  700. BATCHEXT=
  701. EXEEXT=
  702. DEBUGSYMEXT=.xcoff
  703. SHORTSUFFIX=mac
  704. endif
  705. ifeq ($(OS_TARGET),darwin)
  706. BATCHEXT=.sh
  707. EXEEXT=
  708. HASSHAREDLIB=1
  709. SHORTSUFFIX=dwn
  710. endif
  711. else
  712. ifeq ($(OS_TARGET),go32v1)
  713. PPUEXT=.pp1
  714. OEXT=.o1
  715. ASMEXT=.s1
  716. SMARTEXT=.sl1
  717. STATICLIBEXT=.a1
  718. SHAREDLIBEXT=.so1
  719. STATICLIBPREFIX=
  720. SHORTSUFFIX=v1
  721. endif
  722. ifeq ($(OS_TARGET),go32v2)
  723. STATICLIBPREFIX=
  724. SHORTSUFFIX=dos
  725. endif
  726. ifeq ($(OS_TARGET),watcom)
  727. STATICLIBPREFIX=
  728. SHORTSUFFIX=wat
  729. endif
  730. ifeq ($(OS_TARGET),linux)
  731. BATCHEXT=.sh
  732. EXEEXT=
  733. HASSHAREDLIB=1
  734. SHORTSUFFIX=lnx
  735. endif
  736. ifeq ($(OS_TARGET),freebsd)
  737. BATCHEXT=.sh
  738. EXEEXT=
  739. HASSHAREDLIB=1
  740. SHORTSUFFIX=fbs
  741. endif
  742. ifeq ($(OS_TARGET),netbsd)
  743. BATCHEXT=.sh
  744. EXEEXT=
  745. HASSHAREDLIB=1
  746. SHORTSUFFIX=nbs
  747. endif
  748. ifeq ($(OS_TARGET),openbsd)
  749. BATCHEXT=.sh
  750. EXEEXT=
  751. HASSHAREDLIB=1
  752. SHORTSUFFIX=obs
  753. endif
  754. ifeq ($(OS_TARGET),win32)
  755. PPUEXT=.ppw
  756. OEXT=.ow
  757. ASMEXT=.sw
  758. SMARTEXT=.slw
  759. STATICLIBEXT=.aw
  760. SHAREDLIBEXT=.dll
  761. SHORTSUFFIX=w32
  762. endif
  763. ifeq ($(OS_TARGET),os2)
  764. BATCHEXT=.cmd
  765. PPUEXT=.ppo
  766. ASMEXT=.so2
  767. OEXT=.oo2
  768. AOUTEXT=.out
  769. SMARTEXT=.sl2
  770. STATICLIBPREFIX=
  771. STATICLIBEXT=.ao2
  772. SHAREDLIBEXT=.dll
  773. SHORTSUFFIX=os2
  774. ECHO=echo
  775. endif
  776. ifeq ($(OS_TARGET),amiga)
  777. EXEEXT=
  778. PPUEXT=.ppu
  779. ASMEXT=.asm
  780. OEXT=.o
  781. SMARTEXT=.sl
  782. STATICLIBEXT=.a
  783. SHAREDLIBEXT=.library
  784. SHORTSUFFIX=amg
  785. endif
  786. ifeq ($(OS_TARGET),atari)
  787. PPUEXT=.ppu
  788. ASMEXT=.s
  789. OEXT=.o
  790. SMARTEXT=.sl
  791. STATICLIBEXT=.a
  792. EXEEXT=.ttp
  793. SHORTSUFFIX=ata
  794. endif
  795. ifeq ($(OS_TARGET),beos)
  796. BATCHEXT=.sh
  797. PPUEXT=.ppu
  798. ASMEXT=.s
  799. OEXT=.o
  800. SMARTEXT=.sl
  801. STATICLIBEXT=.a
  802. EXEEXT=
  803. SHORTSUFFIX=be
  804. endif
  805. ifeq ($(OS_TARGET),solaris)
  806. BATCHEXT=.sh
  807. PPUEXT=.ppu
  808. ASMEXT=.s
  809. OEXT=.o
  810. SMARTEXT=.sl
  811. STATICLIBEXT=.a
  812. EXEEXT=
  813. SHORTSUFFIX=sun
  814. endif
  815. ifeq ($(OS_TARGET),qnx)
  816. BATCHEXT=.sh
  817. PPUEXT=.ppu
  818. ASMEXT=.s
  819. OEXT=.o
  820. SMARTEXT=.sl
  821. STATICLIBEXT=.a
  822. EXEEXT=
  823. SHORTSUFFIX=qnx
  824. endif
  825. ifeq ($(OS_TARGET),netware)
  826. STATICLIBPREFIX=
  827. PPUEXT=.ppu
  828. OEXT=.o
  829. ASMEXT=.s
  830. SMARTEXT=.sl
  831. STATICLIBEXT=.a
  832. SHAREDLIBEXT=.nlm
  833. EXEEXT=.nlm
  834. SHORTSUFFIX=nw
  835. endif
  836. ifeq ($(OS_TARGET),netwlibc)
  837. STATICLIBPREFIX=
  838. PPUEXT=.ppu
  839. OEXT=.o
  840. ASMEXT=.s
  841. SMARTEXT=.sl
  842. STATICLIBEXT=.a
  843. SHAREDLIBEXT=.nlm
  844. EXEEXT=.nlm
  845. SHORTSUFFIX=nwl
  846. endif
  847. ifeq ($(OS_TARGET),macos)
  848. BATCHEXT=
  849. PPUEXT=.ppu
  850. ASMEXT=.s
  851. OEXT=.o
  852. SMARTEXT=.sl
  853. STATICLIBEXT=.a
  854. EXEEXT=
  855. DEBUGSYMEXT=.xcoff
  856. SHORTSUFFIX=mac
  857. endif
  858. endif
  859. ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
  860. FPCMADE=fpcmade.$(SHORTSUFFIX)
  861. ZIPSUFFIX=$(SHORTSUFFIX)
  862. ZIPCROSSPREFIX=
  863. ZIPSOURCESUFFIX=src
  864. ZIPEXAMPLESUFFIX=exm
  865. else
  866. FPCMADE=fpcmade.$(TARGETSUFFIX)
  867. ZIPSOURCESUFFIX=.source
  868. ZIPEXAMPLESUFFIX=.examples
  869. ifdef CROSSCOMPILE
  870. ZIPSUFFIX=.$(SOURCESUFFIX)
  871. ZIPCROSSPREFIX=$(TARGETSUFFIX)-
  872. else
  873. ZIPSUFFIX=.$(TARGETSUFFIX)
  874. ZIPCROSSPREFIX=
  875. endif
  876. endif
  877. ifndef ECHO
  878. ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
  879. ifeq ($(ECHO),)
  880. ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
  881. ifeq ($(ECHO),)
  882. ECHO= __missing_command_ECHO
  883. else
  884. ECHO:=$(firstword $(ECHO))
  885. endif
  886. else
  887. ECHO:=$(firstword $(ECHO))
  888. endif
  889. endif
  890. export ECHO
  891. ifndef DATE
  892. DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
  893. ifeq ($(DATE),)
  894. DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
  895. ifeq ($(DATE),)
  896. DATE= __missing_command_DATE
  897. else
  898. DATE:=$(firstword $(DATE))
  899. endif
  900. else
  901. DATE:=$(firstword $(DATE))
  902. endif
  903. endif
  904. export DATE
  905. ifndef GINSTALL
  906. GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
  907. ifeq ($(GINSTALL),)
  908. GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
  909. ifeq ($(GINSTALL),)
  910. GINSTALL= __missing_command_GINSTALL
  911. else
  912. GINSTALL:=$(firstword $(GINSTALL))
  913. endif
  914. else
  915. GINSTALL:=$(firstword $(GINSTALL))
  916. endif
  917. endif
  918. export GINSTALL
  919. ifndef CPPROG
  920. CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
  921. ifeq ($(CPPROG),)
  922. CPPROG= __missing_command_CPPROG
  923. else
  924. CPPROG:=$(firstword $(CPPROG))
  925. endif
  926. endif
  927. export CPPROG
  928. ifndef RMPROG
  929. RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
  930. ifeq ($(RMPROG),)
  931. RMPROG= __missing_command_RMPROG
  932. else
  933. RMPROG:=$(firstword $(RMPROG))
  934. endif
  935. endif
  936. export RMPROG
  937. ifndef MVPROG
  938. MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
  939. ifeq ($(MVPROG),)
  940. MVPROG= __missing_command_MVPROG
  941. else
  942. MVPROG:=$(firstword $(MVPROG))
  943. endif
  944. endif
  945. export MVPROG
  946. ifndef MKDIRPROG
  947. MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
  948. ifeq ($(MKDIRPROG),)
  949. MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
  950. ifeq ($(MKDIRPROG),)
  951. MKDIRPROG= __missing_command_MKDIRPROG
  952. else
  953. MKDIRPROG:=$(firstword $(MKDIRPROG))
  954. endif
  955. else
  956. MKDIRPROG:=$(firstword $(MKDIRPROG))
  957. endif
  958. endif
  959. export MKDIRPROG
  960. ifndef ECHOREDIR
  961. ifndef inUnix
  962. ECHOREDIR=echo
  963. else
  964. ECHOREDIR=$(ECHO)
  965. endif
  966. endif
  967. ifndef COPY
  968. COPY:=$(CPPROG) -fp
  969. endif
  970. ifndef COPYTREE
  971. COPYTREE:=$(CPPROG) -Rfp
  972. endif
  973. ifndef MKDIRTREE
  974. MKDIRTREE:=$(MKDIRPROG) -p
  975. endif
  976. ifndef MOVE
  977. MOVE:=$(MVPROG) -f
  978. endif
  979. ifndef DEL
  980. DEL:=$(RMPROG) -f
  981. endif
  982. ifndef DELTREE
  983. DELTREE:=$(RMPROG) -rf
  984. endif
  985. ifndef INSTALL
  986. ifdef inUnix
  987. INSTALL:=$(GINSTALL) -c -m 644
  988. else
  989. INSTALL:=$(COPY)
  990. endif
  991. endif
  992. ifndef INSTALLEXE
  993. ifdef inUnix
  994. INSTALLEXE:=$(GINSTALL) -c -m 755
  995. else
  996. INSTALLEXE:=$(COPY)
  997. endif
  998. endif
  999. ifndef MKDIR
  1000. MKDIR:=$(GINSTALL) -m 755 -d
  1001. endif
  1002. export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
  1003. ifndef PPUMOVE
  1004. PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
  1005. ifeq ($(PPUMOVE),)
  1006. PPUMOVE= __missing_command_PPUMOVE
  1007. else
  1008. PPUMOVE:=$(firstword $(PPUMOVE))
  1009. endif
  1010. endif
  1011. export PPUMOVE
  1012. ifndef FPCMAKE
  1013. FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
  1014. ifeq ($(FPCMAKE),)
  1015. FPCMAKE= __missing_command_FPCMAKE
  1016. else
  1017. FPCMAKE:=$(firstword $(FPCMAKE))
  1018. endif
  1019. endif
  1020. export FPCMAKE
  1021. ifndef ZIPPROG
  1022. ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
  1023. ifeq ($(ZIPPROG),)
  1024. ZIPPROG= __missing_command_ZIPPROG
  1025. else
  1026. ZIPPROG:=$(firstword $(ZIPPROG))
  1027. endif
  1028. endif
  1029. export ZIPPROG
  1030. ifndef TARPROG
  1031. TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
  1032. ifeq ($(TARPROG),)
  1033. TARPROG= __missing_command_TARPROG
  1034. else
  1035. TARPROG:=$(firstword $(TARPROG))
  1036. endif
  1037. endif
  1038. export TARPROG
  1039. ASNAME=$(BINUTILSPREFIX)as
  1040. LDNAME=$(BINUTILSPREFIX)ld
  1041. ARNAME=$(BINUTILSPREFIX)ar
  1042. RCNAME=$(BINUTILSPREFIX)rc
  1043. ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
  1044. ifeq ($(OS_TARGET),win32)
  1045. ifeq ($(CROSSBINDIR),)
  1046. ASNAME=asw
  1047. LDNAME=ldw
  1048. ARNAME=arw
  1049. endif
  1050. endif
  1051. endif
  1052. ifndef ASPROG
  1053. ifdef CROSSBINDIR
  1054. ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
  1055. else
  1056. ASPROG=$(ASNAME)
  1057. endif
  1058. endif
  1059. ifndef LDPROG
  1060. ifdef CROSSBINDIR
  1061. LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
  1062. else
  1063. LDPROG=$(LDNAME)
  1064. endif
  1065. endif
  1066. ifndef RCPROG
  1067. ifdef CROSSBINDIR
  1068. RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
  1069. else
  1070. RCPROG=$(RCNAME)
  1071. endif
  1072. endif
  1073. ifndef ARPROG
  1074. ifdef CROSSBINDIR
  1075. ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
  1076. else
  1077. ARPROG=$(ARNAME)
  1078. endif
  1079. endif
  1080. AS=$(ASPROG)
  1081. LD=$(LDPROG)
  1082. RC=$(RCPROG)
  1083. AR=$(ARPROG)
  1084. PPAS=ppas$(SRCBATCHEXT)
  1085. ifdef inUnix
  1086. LDCONFIG=ldconfig
  1087. else
  1088. LDCONFIG=
  1089. endif
  1090. ifdef DATE
  1091. DATESTR:=$(shell $(DATE) +%Y%m%d)
  1092. else
  1093. DATESTR=
  1094. endif
  1095. ifndef UPXPROG
  1096. ifeq ($(OS_TARGET),go32v2)
  1097. UPXPROG:=1
  1098. endif
  1099. ifeq ($(OS_TARGET),win32)
  1100. UPXPROG:=1
  1101. endif
  1102. ifdef UPXPROG
  1103. UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
  1104. ifeq ($(UPXPROG),)
  1105. UPXPROG=
  1106. else
  1107. UPXPROG:=$(firstword $(UPXPROG))
  1108. endif
  1109. else
  1110. UPXPROG=
  1111. endif
  1112. endif
  1113. export UPXPROG
  1114. ZIPOPT=-9
  1115. ZIPEXT=.zip
  1116. ifeq ($(USETAR),bz2)
  1117. TAROPT=vj
  1118. TAREXT=.tar.bz2
  1119. else
  1120. TAROPT=vz
  1121. TAREXT=.tar.gz
  1122. endif
  1123. ifndef NOCPUDEF
  1124. override FPCOPTDEF=$(CPU_TARGET)
  1125. endif
  1126. ifneq ($(OS_TARGET),$(OS_SOURCE))
  1127. override FPCOPT+=-T$(OS_TARGET)
  1128. endif
  1129. ifeq ($(OS_SOURCE),openbsd)
  1130. override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
  1131. endif
  1132. ifndef CROSSBOOTSTRAP
  1133. ifneq ($(BINUTILSPREFIX),)
  1134. override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
  1135. endif
  1136. ifneq ($(BINUTILSPREFIX),)
  1137. override FPCOPT+=-Xr$(RLINKPATH)
  1138. endif
  1139. endif
  1140. ifdef UNITDIR
  1141. override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
  1142. endif
  1143. ifdef LIBDIR
  1144. override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
  1145. endif
  1146. ifdef OBJDIR
  1147. override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
  1148. endif
  1149. ifdef INCDIR
  1150. override FPCOPT+=$(addprefix -Fi,$(INCDIR))
  1151. endif
  1152. ifdef LINKSMART
  1153. override FPCOPT+=-XX
  1154. endif
  1155. ifdef CREATESMART
  1156. override FPCOPT+=-CX
  1157. endif
  1158. ifdef DEBUG
  1159. override FPCOPT+=-gl
  1160. override FPCOPTDEF+=DEBUG
  1161. endif
  1162. ifdef RELEASE
  1163. ifeq ($(CPU_TARGET),i386)
  1164. FPCCPUOPT:=-OG2p3
  1165. else
  1166. ifeq ($(CPU_TARGET),powerpc)
  1167. FPCCPUOPT:=-O1
  1168. else
  1169. FPCCPUOPT:=
  1170. endif
  1171. endif
  1172. override FPCOPT+=-Xs $(FPCCPUOPT) -n
  1173. override FPCOPTDEF+=RELEASE
  1174. endif
  1175. ifdef STRIP
  1176. override FPCOPT+=-Xs
  1177. endif
  1178. ifdef OPTIMIZE
  1179. ifeq ($(CPU_TARGET),i386)
  1180. override FPCOPT+=-OG2p3
  1181. endif
  1182. endif
  1183. ifdef VERBOSE
  1184. override FPCOPT+=-vwni
  1185. endif
  1186. ifdef COMPILER_OPTIONS
  1187. override FPCOPT+=$(COMPILER_OPTIONS)
  1188. endif
  1189. ifdef COMPILER_UNITDIR
  1190. override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
  1191. endif
  1192. ifdef COMPILER_LIBRARYDIR
  1193. override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
  1194. endif
  1195. ifdef COMPILER_OBJECTDIR
  1196. override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
  1197. endif
  1198. ifdef COMPILER_INCLUDEDIR
  1199. override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
  1200. endif
  1201. ifdef CROSSBINDIR
  1202. override FPCOPT+=-FD$(CROSSBINDIR)
  1203. endif
  1204. ifdef COMPILER_TARGETDIR
  1205. override FPCOPT+=-FE$(COMPILER_TARGETDIR)
  1206. ifeq ($(COMPILER_TARGETDIR),.)
  1207. override TARGETDIRPREFIX=
  1208. else
  1209. override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
  1210. endif
  1211. endif
  1212. ifdef COMPILER_UNITTARGETDIR
  1213. override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
  1214. ifeq ($(COMPILER_UNITTARGETDIR),.)
  1215. override UNITTARGETDIRPREFIX=
  1216. else
  1217. override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
  1218. endif
  1219. else
  1220. ifdef COMPILER_TARGETDIR
  1221. override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
  1222. override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
  1223. endif
  1224. endif
  1225. ifeq ($(OS_TARGET),linux)
  1226. ifeq ($(FPC_VERSION),1.0.6)
  1227. override FPCOPTDEF+=HASUNIX
  1228. endif
  1229. endif
  1230. ifdef OPT
  1231. override FPCOPT+=$(OPT)
  1232. endif
  1233. ifdef FPCOPTDEF
  1234. override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
  1235. endif
  1236. ifdef CFGFILE
  1237. override FPCOPT+=@$(CFGFILE)
  1238. endif
  1239. ifdef USEENV
  1240. override FPCEXTCMD:=$(FPCOPT)
  1241. override FPCOPT:=!FPCEXTCMD
  1242. export FPCEXTCMD
  1243. endif
  1244. override COMPILER:=$(FPC) $(FPCOPT)
  1245. ifeq (,$(findstring -s ,$(COMPILER)))
  1246. EXECPPAS=
  1247. else
  1248. ifeq ($(FULL_SOURCE),$(FULL_TARGET))
  1249. EXECPPAS:=@$(PPAS)
  1250. endif
  1251. endif
  1252. .PHONY: fpc_loaders
  1253. ifneq ($(TARGET_LOADERS),)
  1254. override ALLTARGET+=fpc_loaders
  1255. override CLEANTARGET+=fpc_loaders_clean
  1256. override INSTALLTARGET+=fpc_loaders_install
  1257. override LOADEROFILES:=$(addsuffix $(OEXT),$(TARGET_LOADERS))
  1258. endif
  1259. %$(OEXT): %$(LOADEREXT)
  1260. ifdef COMPILER_UNITTARGETDIR
  1261. $(AS) -o $(COMPILER_UNITTARGETDIR)/$*$(OEXT) $<
  1262. else
  1263. $(AS) -o $*$(OEXT) $<
  1264. endif
  1265. fpc_loaders: $(COMPILER_UNITTARGETDIR) $(LOADEROFILES)
  1266. fpc_loaders_clean:
  1267. ifdef COMPILER_UNITTARGETDIR
  1268. -$(DEL) $(addprefix $(COMPILER_UNITTARGETDIR)/,$(LOADEROFILES))
  1269. else
  1270. -$(DEL) $(LOADEROFILES)
  1271. endif
  1272. fpc_loaders_install:
  1273. $(MKDIR) $(INSTALL_UNITDIR)
  1274. ifdef COMPILER_UNITTARGETDIR
  1275. $(INSTALL) $(addprefix $(COMPILER_UNITTARGETDIR)/,$(LOADEROFILES)) $(INSTALL_UNITDIR)
  1276. else
  1277. $(INSTALL) $(LOADEROFILES) $(INSTALL_UNITDIR)
  1278. endif
  1279. .PHONY: fpc_units
  1280. ifneq ($(TARGET_UNITS),)
  1281. override ALLTARGET+=fpc_units
  1282. override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
  1283. override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
  1284. override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
  1285. override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
  1286. endif
  1287. fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
  1288. ifdef TARGET_RSTS
  1289. override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
  1290. override CLEANRSTFILES+=$(RSTFILES)
  1291. endif
  1292. .PHONY: fpc_all fpc_smart fpc_debug fpc_release
  1293. $(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
  1294. @$(ECHOREDIR) Compiled > $(FPCMADE)
  1295. fpc_all: $(FPCMADE)
  1296. fpc_smart:
  1297. $(MAKE) all LINKSMART=1 CREATESMART=1
  1298. fpc_debug:
  1299. $(MAKE) all DEBUG=1
  1300. fpc_release:
  1301. $(MAKE) all RELEASE=1
  1302. .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
  1303. $(COMPILER_UNITTARGETDIR):
  1304. $(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
  1305. $(COMPILER_TARGETDIR):
  1306. $(MKDIRTREE) $(COMPILER_TARGETDIR)
  1307. %$(PPUEXT): %.pp
  1308. $(COMPILER) $<
  1309. $(EXECPPAS)
  1310. %$(PPUEXT): %.pas
  1311. $(COMPILER) $<
  1312. $(EXECPPAS)
  1313. %$(EXEEXT): %.pp
  1314. $(COMPILER) $<
  1315. $(EXECPPAS)
  1316. %$(EXEEXT): %.pas
  1317. $(COMPILER) $<
  1318. $(EXECPPAS)
  1319. %$(EXEEXT): %.lpr
  1320. $(COMPILER) $<
  1321. $(EXECPPAS)
  1322. %$(EXEEXT): %.dpr
  1323. $(COMPILER) $<
  1324. $(EXECPPAS)
  1325. %.res: %.rc
  1326. windres -i $< -o $@
  1327. vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  1328. vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  1329. vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  1330. vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  1331. vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
  1332. vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
  1333. .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
  1334. ifdef INSTALL_UNITS
  1335. override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
  1336. endif
  1337. ifdef INSTALL_BUILDUNIT
  1338. override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
  1339. endif
  1340. ifdef INSTALLPPUFILES
  1341. override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
  1342. ifneq ($(UNITTARGETDIRPREFIX),)
  1343. override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
  1344. override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
  1345. endif
  1346. override INSTALL_CREATEPACKAGEFPC=1
  1347. endif
  1348. ifdef INSTALLEXEFILES
  1349. ifneq ($(TARGETDIRPREFIX),)
  1350. override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
  1351. endif
  1352. endif
  1353. fpc_install: all $(INSTALLTARGET)
  1354. ifdef INSTALLEXEFILES
  1355. $(MKDIR) $(INSTALL_BINDIR)
  1356. ifdef UPXPROG
  1357. -$(UPXPROG) $(INSTALLEXEFILES)
  1358. endif
  1359. $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
  1360. endif
  1361. ifdef INSTALL_CREATEPACKAGEFPC
  1362. ifdef FPCMAKE
  1363. ifdef PACKAGE_VERSION
  1364. ifneq ($(wildcard Makefile.fpc),)
  1365. $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
  1366. $(MKDIR) $(INSTALL_UNITDIR)
  1367. $(INSTALL) Package.fpc $(INSTALL_UNITDIR)
  1368. endif
  1369. endif
  1370. endif
  1371. endif
  1372. ifdef INSTALLPPUFILES
  1373. $(MKDIR) $(INSTALL_UNITDIR)
  1374. $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
  1375. ifneq ($(INSTALLPPULINKFILES),)
  1376. $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
  1377. endif
  1378. ifneq ($(wildcard $(LIB_FULLNAME)),)
  1379. $(MKDIR) $(INSTALL_LIBDIR)
  1380. $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
  1381. ifdef inUnix
  1382. ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
  1383. endif
  1384. endif
  1385. endif
  1386. ifdef INSTALL_FILES
  1387. $(MKDIR) $(INSTALL_DATADIR)
  1388. $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
  1389. endif
  1390. fpc_sourceinstall: distclean
  1391. $(MKDIR) $(INSTALL_SOURCEDIR)
  1392. $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
  1393. fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
  1394. ifdef HASEXAMPLES
  1395. $(MKDIR) $(INSTALL_EXAMPLEDIR)
  1396. endif
  1397. ifdef EXAMPLESOURCEFILES
  1398. $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
  1399. endif
  1400. ifdef TARGET_EXAMPLEDIRS
  1401. $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
  1402. endif
  1403. .PHONY: fpc_clean fpc_cleanall fpc_distclean
  1404. ifdef EXEFILES
  1405. override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
  1406. endif
  1407. ifdef CLEAN_UNITS
  1408. override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
  1409. endif
  1410. ifdef CLEANPPUFILES
  1411. override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
  1412. ifdef DEBUGSYMEXT
  1413. override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
  1414. endif
  1415. override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
  1416. override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
  1417. endif
  1418. fpc_clean: $(CLEANTARGET)
  1419. ifdef CLEANEXEFILES
  1420. -$(DEL) $(CLEANEXEFILES)
  1421. endif
  1422. ifdef CLEANPPUFILES
  1423. -$(DEL) $(CLEANPPUFILES)
  1424. endif
  1425. ifneq ($(CLEANPPULINKFILES),)
  1426. -$(DEL) $(CLEANPPULINKFILES)
  1427. endif
  1428. ifdef CLEANRSTFILES
  1429. -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
  1430. endif
  1431. ifdef CLEAN_FILES
  1432. -$(DEL) $(CLEAN_FILES)
  1433. endif
  1434. ifdef LIB_NAME
  1435. -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
  1436. endif
  1437. -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
  1438. -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
  1439. fpc_cleanall: $(CLEANTARGET)
  1440. ifdef CLEANEXEFILES
  1441. -$(DEL) $(CLEANEXEFILES)
  1442. endif
  1443. ifdef COMPILER_UNITTARGETDIR
  1444. ifdef CLEANPPUFILES
  1445. -$(DEL) $(CLEANPPUFILES)
  1446. endif
  1447. ifneq ($(CLEANPPULINKFILES),)
  1448. -$(DEL) $(CLEANPPULINKFILES)
  1449. endif
  1450. ifdef CLEANRSTFILES
  1451. -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
  1452. endif
  1453. endif
  1454. -$(DELTREE) units
  1455. -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
  1456. ifneq ($(PPUEXT),.ppu)
  1457. -$(DEL) *.o *.ppu *.a
  1458. endif
  1459. -$(DELTREE) *$(SMARTEXT)
  1460. -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
  1461. -$(DEL) *_ppas$(BATCHEXT)
  1462. ifdef AOUTEXT
  1463. -$(DEL) *$(AOUTEXT)
  1464. endif
  1465. ifdef DEBUGSYMEXT
  1466. -$(DEL) *$(DEBUGSYMEXT)
  1467. endif
  1468. fpc_distclean: cleanall
  1469. .PHONY: fpc_baseinfo
  1470. override INFORULES+=fpc_baseinfo
  1471. fpc_baseinfo:
  1472. @$(ECHO)
  1473. @$(ECHO) == Package info ==
  1474. @$(ECHO) Package Name..... $(PACKAGE_NAME)
  1475. @$(ECHO) Package Version.. $(PACKAGE_VERSION)
  1476. @$(ECHO)
  1477. @$(ECHO) == Configuration info ==
  1478. @$(ECHO)
  1479. @$(ECHO) FPC.......... $(FPC)
  1480. @$(ECHO) FPC Version.. $(FPC_VERSION)
  1481. @$(ECHO) Source CPU... $(CPU_SOURCE)
  1482. @$(ECHO) Target CPU... $(CPU_TARGET)
  1483. @$(ECHO) Source OS.... $(OS_SOURCE)
  1484. @$(ECHO) Target OS.... $(OS_TARGET)
  1485. @$(ECHO) Full Source.. $(FULL_SOURCE)
  1486. @$(ECHO) Full Target.. $(FULL_TARGET)
  1487. @$(ECHO) SourceSuffix. $(SOURCESUFFIX)
  1488. @$(ECHO) TargetSuffix. $(TARGETSUFFIX)
  1489. @$(ECHO)
  1490. @$(ECHO) == Directory info ==
  1491. @$(ECHO)
  1492. @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)
  1493. @$(ECHO)
  1494. @$(ECHO) Basedir......... $(BASEDIR)
  1495. @$(ECHO) FPCDir.......... $(FPCDIR)
  1496. @$(ECHO) CrossBinDir..... $(CROSSBINDIR)
  1497. @$(ECHO) UnitsDir........ $(UNITSDIR)
  1498. @$(ECHO) PackagesDir..... $(PACKAGESDIR)
  1499. @$(ECHO)
  1500. @$(ECHO) GCC library..... $(GCCLIBDIR)
  1501. @$(ECHO) Other library... $(OTHERLIBDIR)
  1502. @$(ECHO)
  1503. @$(ECHO) == Tools info ==
  1504. @$(ECHO)
  1505. @$(ECHO) As........ $(AS)
  1506. @$(ECHO) Ld........ $(LD)
  1507. @$(ECHO) Ar........ $(AR)
  1508. @$(ECHO) Rc........ $(RC)
  1509. @$(ECHO)
  1510. @$(ECHO) Mv........ $(MVPROG)
  1511. @$(ECHO) Cp........ $(CPPROG)
  1512. @$(ECHO) Rm........ $(RMPROG)
  1513. @$(ECHO) GInstall.. $(GINSTALL)
  1514. @$(ECHO) Echo...... $(ECHO)
  1515. @$(ECHO) Shell..... $(SHELL)
  1516. @$(ECHO) Date...... $(DATE)
  1517. @$(ECHO) FPCMake... $(FPCMAKE)
  1518. @$(ECHO) PPUMove... $(PPUMOVE)
  1519. @$(ECHO) Upx....... $(UPXPROG)
  1520. @$(ECHO) Zip....... $(ZIPPROG)
  1521. @$(ECHO)
  1522. @$(ECHO) == Object info ==
  1523. @$(ECHO)
  1524. @$(ECHO) Target Loaders........ $(TARGET_LOADERS)
  1525. @$(ECHO) Target Units.......... $(TARGET_UNITS)
  1526. @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)
  1527. @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)
  1528. @$(ECHO) Target Dirs........... $(TARGET_DIRS)
  1529. @$(ECHO) Target Examples....... $(TARGET_EXAMPLES)
  1530. @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
  1531. @$(ECHO)
  1532. @$(ECHO) Clean Units......... $(CLEAN_UNITS)
  1533. @$(ECHO) Clean Files......... $(CLEAN_FILES)
  1534. @$(ECHO)
  1535. @$(ECHO) Install Units....... $(INSTALL_UNITS)
  1536. @$(ECHO) Install Files....... $(INSTALL_FILES)
  1537. @$(ECHO)
  1538. @$(ECHO) == Install info ==
  1539. @$(ECHO)
  1540. @$(ECHO) DateStr.............. $(DATESTR)
  1541. @$(ECHO) ZipName.............. $(ZIPNAME)
  1542. @$(ECHO) ZipPrefix............ $(ZIPPREFIX)
  1543. @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX)
  1544. @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
  1545. @$(ECHO) FullZipName.......... $(FULLZIPNAME)
  1546. @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)
  1547. @$(ECHO)
  1548. @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)
  1549. @$(ECHO) Install binary dir... $(INSTALL_BINDIR)
  1550. @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)
  1551. @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)
  1552. @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)
  1553. @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)
  1554. @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)
  1555. @$(ECHO) Install data dir..... $(INSTALL_DATADIR)
  1556. @$(ECHO)
  1557. @$(ECHO) Dist destination dir. $(DIST_DESTDIR)
  1558. @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)
  1559. @$(ECHO)
  1560. .PHONY: fpc_info
  1561. fpc_info: $(INFORULES)
  1562. .PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
  1563. fpc_makefile_dirs
  1564. fpc_makefile:
  1565. $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
  1566. fpc_makefile_sub1:
  1567. ifdef TARGET_DIRS
  1568. $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
  1569. endif
  1570. ifdef TARGET_EXAMPLEDIRS
  1571. $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
  1572. endif
  1573. fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
  1574. fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
  1575. fpc_makefiles: fpc_makefile fpc_makefile_dirs
  1576. all: fpc_all
  1577. debug: fpc_debug
  1578. smart: fpc_smart
  1579. release: fpc_release
  1580. units: fpc_units
  1581. examples:
  1582. shared:
  1583. install: fpc_install
  1584. sourceinstall: fpc_sourceinstall
  1585. exampleinstall: fpc_exampleinstall
  1586. distinstall:
  1587. zipinstall:
  1588. zipsourceinstall:
  1589. zipexampleinstall:
  1590. zipdistinstall:
  1591. clean: fpc_clean
  1592. distclean: fpc_distclean
  1593. cleanall: fpc_cleanall
  1594. info: fpc_info
  1595. makefiles: fpc_makefiles
  1596. .PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
  1597. ifneq ($(wildcard fpcmake.loc),)
  1598. include fpcmake.loc
  1599. endif
  1600. include $(INC)/makefile.inc
  1601. SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
  1602. include $(PROCINC)/makefile.cpu
  1603. SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
  1604. SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
  1605. prt0$(OEXT) : $(CPU_TARGET)/prt0.as
  1606. $(AS) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) $(CPU_TARGET)/prt0.as
  1607. dllprt0$(OEXT) : $(CPU_TARGET)/dllprt0.as
  1608. $(AS) -o $(UNITTARGETDIRPREFIX)dllprt0$(OEXT) $(CPU_TARGET)/dllprt0.as
  1609. gprt0$(OEXT) : $(CPU_TARGET)/gprt0.as
  1610. $(AS) -o $(UNITTARGETDIRPREFIX)gprt0$(OEXT) $(CPU_TARGET)/gprt0.as
  1611. cprt0$(OEXT) : $(CPU_TARGET)/cprt0.as
  1612. $(AS) -o $(UNITTARGETDIRPREFIX)cprt0$(OEXT) $(CPU_TARGET)/cprt0.as
  1613. cprt21$(OEXT) : $(CPU_TARGET)/cprt21.as
  1614. $(AS) -o $(UNITTARGETDIRPREFIX)cprt21$(OEXT) $(CPU_TARGET)/cprt21.as
  1615. gprt21$(OEXT) : $(CPU_TARGET)/gprt21.as
  1616. $(AS) -o $(UNITTARGETDIRPREFIX)gprt21$(OEXT) $(CPU_TARGET)/gprt21.as
  1617. $(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
  1618. $(COMPILER) -Us -Sg $(SYSTEMUNIT).pp
  1619. objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
  1620. $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp
  1621. dateutils$(PPUEXT): $(OBJPASDIR)/dateutils.pp $(SYSTEMUNIT)$(PPUEXT)
  1622. $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/dateutils.pp
  1623. strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc\
  1624. $(PROCINC)/strings.inc $(PROCINC)/stringss.inc\
  1625. $(SYSTEMUNIT)$(PPUEXT)
  1626. unix$(PPUEXT) : unix.pp strings$(PPUEXT) baseunix$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \
  1627. unxconst.inc $(UNIXINC)/timezone.inc $(SYSTEMUNIT)$(PPUEXT) \
  1628. unxfunc.inc
  1629. unixtype$(PPUEXT) : $(UNIXINC)/unixtype.pp ptypes.inc $(UNIXINC)/ctypes.inc $(SYSTEMUNIT)$(PPUEXT)
  1630. baseunix$(PPUEXT) : errno.inc ptypes.inc $(UNIXINC)/ctypes.inc \
  1631. $(UNIXINC)/bunxh.inc \
  1632. bunxsysc.inc $(CPU_TARGET)/syscallh.inc $(CPU_TARGET)/sysnr.inc \
  1633. ostypes.inc osmacro.inc $(UNIXINC)/gensigset.inc \
  1634. $(UNIXINC)/genfuncs.inc $(SYSTEMUNIT)$(PPUEXT)
  1635. ports$(PPUEXT) : ports.pp unix$(PPUEXT) objpas$(PPUEXT)
  1636. dl$(PPUEXT) : $(UNIXINC)/dl.pp $(SYSTEMUNIT)$(PPUEXT)
  1637. dynlibs$(PPUEXT) : $(INC)/dynlibs.pp $(UNIXINC)/dynlibs.inc dl$(PPUEXT) objpas$(PPUEXT)
  1638. dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
  1639. unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1640. crt$(PPUEXT) : crt.pp $(INC)/textrec.inc unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1641. objects$(PPUEXT) : $(INC)/objects.pp $(SYSTEMUNIT)$(PPUEXT)
  1642. printer$(PPUEXT) : printer.pp $(INC)/textrec.inc unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1643. include $(GRAPHDIR)/makefile.inc
  1644. GRAPHINCDEPS=$(addprefix $(GRAPHDIR)/,$(GRAPHINCNAMES))
  1645. graph$(PPUEXT) : graph.pp unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  1646. $(GRAPHINCDEPS) $(UNIXINC)/graph16.inc
  1647. $(COMPILER) -I$(GRAPHDIR) $(UNIXINC)/graph.pp
  1648. ggigraph$(PPUEXT) : $(UNIXINC)/ggigraph.pp unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  1649. $(GRAPHINCDEPS)
  1650. $(COMPILER) -I$(GRAPHDIR) $(UNIXINC)/ggigraph.pp
  1651. sysutils$(PPUEXT) : $(UNIXINC)/sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
  1652. objpas$(PPUEXT) unix$(PPUEXT) errors$(PPUEXT) sysconst$(PPUEXT)
  1653. $(COMPILER) -Fi$(OBJPASDIR)/sysutils $(UNIXINC)/sysutils.pp
  1654. classes$(PPUEXT) : $(UNIXINC)/classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
  1655. sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT)
  1656. $(COMPILER) -Fi$(OBJPASDIR)/classes $(UNIXINC)/classes.pp
  1657. typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT) sysutils$(PPUEXT)
  1658. $(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
  1659. math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)
  1660. $(COMPILER) $(OBJPASDIR)/math.pp
  1661. gettext$(PPUEXT): $(OBJPASDIR)/gettext.pp objpas$(PPUEXT) sysutils$(PPUEXT)
  1662. $(COMPILER) $(OBJPASDIR)/gettext.pp
  1663. varutils$(PPUEXT) : $(OBJPASDIR)/cvarutil.inc $(OBJPASDIR)/varutils.inc \
  1664. $(OBJPASDIR)/varutilh.inc varutils.pp sysutils$(PPUEXT)
  1665. $(COMPILER) -I$(OBJPASDIR) $(UNIXINC)/varutils.pp
  1666. variants$(PPUEXT) : $(INC)/variants.pp varutils$(PPUEXT)
  1667. types$(PPUEXT) : $(OBJPASDIR)/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1668. $(COMPILER) $(OBJPASDIR)/types.pp
  1669. sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1670. $(COMPILER) $(OBJPASDIR)/sysconst.pp
  1671. rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1672. $(COMPILER) $(OBJPASDIR)/rtlconsts.pp
  1673. strutils$(PPUEXT) : $(OBJPASDIR)/strutils.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  1674. sysutils$(PPUEXT)
  1675. $(COMPILER) $(OBJPASDIR)/strutils.pp
  1676. macpas$(PPUEXT) : $(INC)/macpas.pp $(SYSTEMUNIT)$(PPUEXT)
  1677. $(COMPILER) $(INC)/macpas.pp $(REDIR)
  1678. cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
  1679. mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1680. getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
  1681. heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
  1682. $(COMPILER) -Sg $(INC)/heaptrc.pp
  1683. lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMUNIT)$(PPUEXT)
  1684. charset$(PPUEXT) : $(INC)/charset.pp $(SYSTEMUNIT)$(PPUEXT)
  1685. ucomplex$(PPUEXT) : $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1686. sockets$(PPUEXT) : sockets.pp $(INC)/textrec.inc $(INC)/filerec.inc \
  1687. unixsock.inc unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1688. errors$(PPUEXT) : errors.pp strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1689. ipc$(PPUEXT) : ipc.pp unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  1690. terminfo$(PPUEXT) : terminfo.pp unix$(PPUEXT)
  1691. callspec$(PPUEXT) : $(INC)/callspec.pp $(SYSTEMUNIT)$(PPUEXT)
  1692. cmem$(PPUEXT) : $(INC)/cmem.pp $(SYSTEMUNIT)$(PPUEXT)
  1693. cthreads$(PPUEXT) : $(UNIXINC)/cthreads.pp $(SYSTEMUNIT)$(PPUEXT)
  1694. cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT) unixtype$(PPUEXT) ctypes$(PPUEXT)
  1695. gpm$(PPUEXT): gpm.pp unix$(PPUEXT) baseunix$(PPUEXT) sockets$(PPUEXT)
  1696. ctypes$(PPUEXT) : $(INC)/ctypes.pp $(SYSTEMUNIT)$(PPUEXT)