Makefile 89 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923
  1. #
  2. # Don't edit, this file is generated by FPCMake Version 2.0.0
  3. #
  4. default: all
  5. MAKEFILETARGETS=i386-android x86_64-android arm-android mipsel-android jvm-android aarch64-android
  6. BSDs = freebsd netbsd openbsd darwin dragonfly
  7. UNIXs = linux $(BSDs) solaris qnx haiku aix
  8. LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
  9. OSNeedsComspecToRunBatch = go32v2 watcom
  10. FORCE:
  11. .PHONY: FORCE
  12. lc = $(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$1))))))))))))))))))))))))))
  13. override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
  14. ifneq ($(findstring darwin,$(OSTYPE)),)
  15. inUnix=1 #darwin
  16. SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
  17. else
  18. ifeq ($(findstring ;,$(PATH)),)
  19. inUnix=1
  20. SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
  21. else
  22. SEARCHPATH:=$(subst ;, ,$(PATH))
  23. endif
  24. endif
  25. SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
  26. PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
  27. ifeq ($(PWD),)
  28. PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
  29. ifeq ($(PWD),)
  30. $(error You need the GNU utils package to use this Makefile)
  31. else
  32. PWD:=$(firstword $(PWD))
  33. SRCEXEEXT=
  34. endif
  35. else
  36. PWD:=$(firstword $(PWD))
  37. SRCEXEEXT=.exe
  38. endif
  39. ifndef inUnix
  40. ifeq ($(OS),Windows_NT)
  41. inWinNT=1
  42. else
  43. ifdef OS2_SHELL
  44. inOS2=1
  45. endif
  46. endif
  47. else
  48. ifneq ($(findstring cygdrive,$(PATH)),)
  49. inCygWin=1
  50. endif
  51. endif
  52. ifdef inUnix
  53. SRCBATCHEXT=.sh
  54. else
  55. ifdef inOS2
  56. SRCBATCHEXT=.cmd
  57. else
  58. SRCBATCHEXT=.bat
  59. endif
  60. endif
  61. ifdef COMSPEC
  62. ifneq ($(filter $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),)
  63. ifndef RUNBATCH
  64. RUNBATCH=$(COMSPEC) /C
  65. endif
  66. endif
  67. endif
  68. ifdef inUnix
  69. PATHSEP=/
  70. else
  71. PATHSEP:=$(subst /,\,/)
  72. ifdef inCygWin
  73. PATHSEP=/
  74. endif
  75. endif
  76. ifdef PWD
  77. BASEDIR:=$(subst \,/,$(shell $(PWD)))
  78. ifdef inCygWin
  79. ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
  80. BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
  81. BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
  82. BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
  83. endif
  84. endif
  85. else
  86. BASEDIR=.
  87. endif
  88. ifdef inOS2
  89. ifndef ECHO
  90. ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
  91. ifeq ($(ECHO),)
  92. ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
  93. ifeq ($(ECHO),)
  94. ECHO=echo
  95. else
  96. ECHO:=$(firstword $(ECHO))
  97. endif
  98. else
  99. ECHO:=$(firstword $(ECHO))
  100. endif
  101. endif
  102. export ECHO
  103. endif
  104. override OS_TARGET_DEFAULT=android
  105. override DEFAULT_FPCDIR=../..
  106. ifndef FPC
  107. ifdef PP
  108. FPC=$(PP)
  109. endif
  110. endif
  111. ifndef FPC
  112. FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
  113. ifneq ($(FPCPROG),)
  114. FPCPROG:=$(firstword $(FPCPROG))
  115. ifneq ($(CPU_TARGET),)
  116. FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
  117. else
  118. FPC:=$(shell $(FPCPROG) -PB)
  119. endif
  120. ifneq ($(findstring Error,$(FPC)),)
  121. override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
  122. else
  123. ifeq ($(strip $(wildcard $(FPC))),)
  124. FPC:=$(firstword $(FPCPROG))
  125. endif
  126. endif
  127. else
  128. override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
  129. endif
  130. endif
  131. override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
  132. override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
  133. FOUNDFPC:=$(strip $(wildcard $(FPC)))
  134. ifeq ($(FOUNDFPC),)
  135. FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
  136. ifeq ($(FOUNDFPC),)
  137. $(error Compiler $(FPC) not found)
  138. endif
  139. endif
  140. ifndef FPC_COMPILERINFO
  141. FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
  142. endif
  143. ifndef FPC_VERSION
  144. FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
  145. endif
  146. export FPC FPC_VERSION FPC_COMPILERINFO
  147. unexport CHECKDEPEND ALLDEPENDENCIES
  148. ifndef CPU_TARGET
  149. ifdef CPU_TARGET_DEFAULT
  150. CPU_TARGET=$(CPU_TARGET_DEFAULT)
  151. endif
  152. endif
  153. ifndef OS_TARGET
  154. ifdef OS_TARGET_DEFAULT
  155. OS_TARGET=$(OS_TARGET_DEFAULT)
  156. endif
  157. endif
  158. ifndef CPU_SOURCE
  159. CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
  160. endif
  161. ifndef CPU_TARGET
  162. CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
  163. endif
  164. ifndef OS_SOURCE
  165. OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
  166. endif
  167. ifndef OS_TARGET
  168. OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
  169. endif
  170. CPU_OS_TARGET=$(CPU_TARGET)-$(OS_TARGET)
  171. ifdef SUB_TARGET
  172. L_SUB_TARGET=$(call lc,$(SUB_TARGET))
  173. FULL_TARGET:=$(CPU_TARGET)-$(OS_TARGET)-$(L_SUB_TARGET)
  174. else
  175. FULL_TARGET:=$(CPU_TARGET)-$(OS_TARGET)
  176. endif
  177. CPU_OS_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
  178. ifdef SUB_SOURCE
  179. L_SUB_SOURCE=$(call lc,$(SUB_SOURCE))
  180. FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)-$(L_SUB_SOURCE)
  181. else
  182. FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
  183. endif
  184. ifeq ($(CPU_TARGET),armeb)
  185. ARCH=arm
  186. override FPCOPT+=-Cb
  187. else
  188. ifeq ($(CPU_TARGET),armel)
  189. ARCH=arm
  190. override FPCOPT+=-CaEABI
  191. else
  192. ARCH=$(CPU_TARGET)
  193. endif
  194. endif
  195. ifeq ($(CPU_OS_TARGET),aarch64-embedded)
  196. endif
  197. ifdef SUB_TARGET
  198. FPCOPT+=-t$(SUB_TARGET)
  199. FPMAKE_OPT+=--subtarget=$(SUB_TARGET)
  200. endif
  201. ifeq ($(CPU_OS_TARGET),arm-embedded)
  202. ifeq ($(SUBARCH),)
  203. $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t or SUBARCH=armv7m) must be defined)
  204. endif
  205. override FPCOPT+=-Cp$(SUBARCH)
  206. endif
  207. ifeq ($(CPU_OS_TARGET),avr-embedded)
  208. ifeq ($(SUBARCH),)
  209. $(error When compiling for avr-embedded, a sub-architecture (e.g. SUBARCH=avr25 or SUBARCH=avr35) must be defined)
  210. endif
  211. override FPCOPT+=-Cp$(SUBARCH)
  212. endif
  213. ifeq ($(CPU_OS_TARGET),mipsel-embedded)
  214. ifeq ($(SUBARCH),)
  215. $(error When compiling for mipsel-embedded, a sub-architecture (e.g. SUBARCH=pic32mx) must be defined)
  216. endif
  217. override FPCOPT+=-Cp$(SUBARCH)
  218. endif
  219. ifeq ($(CPU_OS_TARGET),xtensa-embedded)
  220. ifeq ($(SUBARCH),)
  221. $(error When compiling for xtensa-embedded, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
  222. endif
  223. override FPCOPT+=-Cp$(SUBARCH)
  224. endif
  225. ifeq ($(CPU_OS_TARGET),xtensa-freertos)
  226. ifeq ($(SUBARCH),)
  227. $(error When compiling for xtensa-freertos, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
  228. endif
  229. override FPCOPT+=-Cp$(SUBARCH)
  230. endif
  231. ifeq ($(CPU_OS_TARGET),arm-freertos)
  232. ifeq ($(SUBARCH),)
  233. $(error When compiling for arm-freertos, a sub-architecture (e.g. SUBARCH=armv6m or SUBARCH=armv7em) must be defined)
  234. endif
  235. override FPCOPT+=-Cp$(SUBARCH)
  236. endif
  237. ifneq ($(filter $(OS_SOURCE),$(LIMIT83fs)),)
  238. TARGETSUFFIX=$(OS_TARGET)
  239. SOURCESUFFIX=$(OS_SOURCE)
  240. else
  241. ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
  242. TARGETSUFFIX=$(OS_TARGET)
  243. else
  244. TARGETSUFFIX=$(FULL_TARGET)
  245. endif
  246. SOURCESUFFIX=$(FULL_SOURCE)
  247. endif
  248. ifneq ($(CPU_OS_TARGET),$(CPU_OS_SOURCE))
  249. CROSSCOMPILE=1
  250. endif
  251. ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
  252. ifeq ($(filter $(CPU_OS_TARGET),$(MAKEFILETARGETS)),)
  253. $(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
  254. endif
  255. endif
  256. ifneq ($(filter $(OS_TARGET),$(BSDs)),)
  257. BSDhier=1
  258. endif
  259. ifeq ($(OS_TARGET),linux)
  260. linuxHier=1
  261. endif
  262. ifndef CROSSCOMPILE
  263. BUILDFULLNATIVE=1
  264. export BUILDFULLNATIVE
  265. endif
  266. ifdef BUILDFULLNATIVE
  267. BUILDNATIVE=1
  268. export BUILDNATIVE
  269. endif
  270. export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE SUB_TARGET SUB_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE CPU_OS_TARGET CPU_OS_SOURCE
  271. ifdef FPCDIR
  272. override FPCDIR:=$(subst \,/,$(FPCDIR))
  273. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
  274. override FPCDIR=wrong
  275. endif
  276. else
  277. override FPCDIR=wrong
  278. endif
  279. ifdef DEFAULT_FPCDIR
  280. ifeq ($(FPCDIR),wrong)
  281. override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
  282. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
  283. override FPCDIR=wrong
  284. endif
  285. endif
  286. endif
  287. ifeq ($(FPCDIR),wrong)
  288. ifdef inUnix
  289. override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
  290. ifeq ($(wildcard $(FPCDIR)/units),)
  291. override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
  292. endif
  293. else
  294. override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
  295. override FPCDIR:=$(FPCDIR)/..
  296. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
  297. override FPCDIR:=$(FPCDIR)/..
  298. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
  299. override FPCDIR:=$(BASEDIR)
  300. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
  301. override FPCDIR=c:/pp
  302. endif
  303. endif
  304. endif
  305. endif
  306. endif
  307. ifndef CROSSBINDIR
  308. CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
  309. endif
  310. ifneq ($(filter $(OS_TARGET),darwin iphonesim ios),)
  311. ifneq ($(filter $(OS_SOURCE),darwin ios),)
  312. DARWIN2DARWIN=1
  313. endif
  314. endif
  315. ifndef BINUTILSPREFIX
  316. ifndef CROSSBINDIR
  317. ifdef CROSSCOMPILE
  318. ifneq ($(OS_TARGET),msdos)
  319. ifndef DARWIN2DARWIN
  320. ifneq ($(CPU_TARGET),jvm)
  321. BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
  322. ifeq ($(OS_TARGET),android)
  323. ifeq ($(CPU_TARGET),arm)
  324. BINUTILSPREFIX=arm-linux-androideabi-
  325. else
  326. ifeq ($(CPU_TARGET),i386)
  327. BINUTILSPREFIX=i686-linux-android-
  328. else
  329. BINUTILSPREFIX=$(CPU_TARGET)-linux-android-
  330. endif
  331. endif
  332. endif
  333. endif
  334. endif
  335. else
  336. BINUTILSPREFIX=$(OS_TARGET)-
  337. endif
  338. endif
  339. endif
  340. endif
  341. UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
  342. ifeq ($(UNITSDIR),)
  343. UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
  344. endif
  345. PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages)
  346. ifndef FPCFPMAKE
  347. ifdef CROSSCOMPILE
  348. ifeq ($(strip $(wildcard $(addsuffix /compiler/ppc$(SRCEXEEXT),$(FPCDIR)))),)
  349. FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
  350. ifneq ($(FPCPROG),)
  351. FPCPROG:=$(firstword $(FPCPROG))
  352. FPCFPMAKE:=$(shell $(FPCPROG) -PB)
  353. ifeq ($(strip $(wildcard $(FPCFPMAKE))),)
  354. FPCFPMAKE:=$(firstword $(FPCPROG))
  355. endif
  356. else
  357. override FPCFPMAKE=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
  358. endif
  359. else
  360. FPCFPMAKE=$(strip $(wildcard $(addsuffix /compiler/ppc$(SRCEXEEXT),$(FPCDIR))))
  361. FPMAKE_SKIP_CONFIG=-n
  362. export FPCFPMAKE
  363. export FPMAKE_SKIP_CONFIG
  364. endif
  365. else
  366. FPMAKE_SKIP_CONFIG=-n
  367. FPCFPMAKE=$(FPC)
  368. endif
  369. endif
  370. override PACKAGE_NAME=rtl
  371. PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
  372. ifdef FPC_DOTTEDUNITS
  373. AIOUNIT=NetWareApi.Aio
  374. ALLWINNER_A20UNIT=Embedded.Allwinner_a20
  375. ANDROIDR14UNIT=AndroidAPI.AndroidR14
  376. ATHREADSUNIT=AmigaApi.AThreads
  377. BASEUNIXUNIT=UnixApi.Base
  378. BETHREADSUNIT=BeosApi.Bethreads
  379. BLOCKRTLUNIT=blockrtl
  380. BSDUNIT=BsdApi
  381. CHARACTERUNIT=System.Character
  382. CHARSETUNIT=System.CharSet
  383. CLASSESUNIT=System.Classes
  384. CMEMUNIT=System.CMem
  385. COMMONUNIT=PalmApi.Common
  386. CONSOLEUNIT=System.Console
  387. CONSOLEIOUNIT=EmbeddedApi.ConsoleIO
  388. CORTEXM0UNIT=ARMApi.Cortexm0
  389. CORTEXM3UNIT=ARMApi.Cortexm3
  390. CORTEXM4UNIT=ARMApi.Cortexm4
  391. CORTEXM7UNIT=ARMApi.Cortexm7
  392. CP1250UNIT=System.CodePages.CP1250
  393. CP1251UNIT=System.CodePages.CP1251
  394. CP1252UNIT=System.CodePages.CP1252
  395. CP1253UNIT=System.CodePages.CP1253
  396. CP1254UNIT=System.CodePages.CP1254
  397. CP1255UNIT=System.CodePages.CP1255
  398. CP1256UNIT=System.CodePages.CP1256
  399. CP1257UNIT=System.CodePages.CP1257
  400. CP1258UNIT=System.CodePages.CP1258
  401. CP3021UNIT=System.CodePages.CP3021
  402. CP437UNIT=System.CodePages.CP437
  403. CP646UNIT=System.CodePages.CP646
  404. CP737UNIT=System.CodePages.CP737
  405. CP775UNIT=System.CodePages.CP775
  406. CP850UNIT=System.CodePages.CP850
  407. CP852UNIT=System.CodePages.CP852
  408. CP855UNIT=System.CodePages.CP855
  409. CP856UNIT=System.CodePages.CP856
  410. CP857UNIT=System.CodePages.CP857
  411. CP860UNIT=System.CodePages.CP860
  412. CP861UNIT=System.CodePages.CP861
  413. CP862UNIT=System.CodePages.CP862
  414. CP863UNIT=System.CodePages.CP863
  415. CP864UNIT=System.CodePages.CP864
  416. CP865UNIT=System.CodePages.CP865
  417. CP866UNIT=System.CodePages.CP866
  418. CP869UNIT=System.CodePages.CP869
  419. CP874UNIT=System.CodePages.CP874
  420. CP8859_1UNIT=System.CodePages.CP8859_1
  421. CP8859_10UNIT=System.CodePages.CP8859_10
  422. CP8859_11UNIT=System.CodePages.CP8859_11
  423. CP8859_13UNIT=System.CodePages.CP8859_13
  424. CP8859_14UNIT=System.CodePages.CP8859_14
  425. CP8859_15UNIT=System.CodePages.CP8859_15
  426. CP8859_16UNIT=System.CodePages.CP8859_16
  427. CP8859_2UNIT=System.CodePages.CP8859_2
  428. CP8859_3UNIT=System.CodePages.CP8859_3
  429. CP8859_4UNIT=System.CodePages.CP8859_4
  430. CP8859_5UNIT=System.CodePages.CP8859_5
  431. CP8859_6UNIT=System.CodePages.CP8859_6
  432. CP8859_7UNIT=System.CodePages.CP8859_7
  433. CP8859_8UNIT=System.CodePages.CP8859_8
  434. CP8859_9UNIT=System.CodePages.CP8859_9
  435. CPALLUNIT=System.CodePages.All
  436. CPKOI8_RUNIT=System.CodePages.CPkoi8_r
  437. CPKOI8_UUNIT=System.CodePages.CPkoi8_u
  438. CPUUNIT=System.CPU
  439. CTHREADSUNIT=UnixApi.CThreads
  440. CTYPESUNIT=System.CTypes
  441. CWSTRINGUNIT=UnixApi.CWString
  442. DDKUNIT=NTApi.Ddk
  443. DLUNIT=UnixApi.Dl
  444. DOSUNIT=TP.DOS
  445. DOSCALL2UNIT=OS2Api.Doscall2
  446. DOSCALLSUNIT=OS2Api.Doscalls
  447. DPMIEXCPUNIT=DOSApi.Dpmiexcp
  448. DXELOADUNIT=DOSApi.Dxeload
  449. DXETYPEUNIT=DOSApi.Dxetype
  450. DYNLIBSUNIT=System.DynLibs
  451. EMU387UNIT=DOSApi.EMU387
  452. EMXUNIT=DOSApi.EMX
  453. ERRORSUNIT=System.Errors
  454. ESP32UNIT=System.Esp32
  455. ESP8266UNIT=System.Esp8266
  456. ESP8266RTOS_30300UNIT=System.Esp8266rtos_30300
  457. ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
  458. ESPIDF_40100UNIT=System.Espidf_40100
  459. ESPIDF_40200UNIT=System.Espidf_40200
  460. ESPIDF_40400UNIT=System.Espidf_40400
  461. EXEUNIT=OS2Api.Exe
  462. EXEINFOUNIT=System.Exeinfo
  463. EXTPASUNIT=extpas
  464. FE310G000UNIT=EmbeddedApi.Fe310g000
  465. FE310G002UNIT=EmbeddedApi.Fe310g002
  466. FGLUNIT=System.FGL
  467. FPCMEMDLLUNIT=System.FPCMemDLL
  468. FPCYLIXUNIT=fpcylix
  469. FPWIDESTRINGUNIT=System.FPWideString
  470. FREEBSDUNIT=FreeBSDApi.FreeBSD
  471. GD32VF103XXUNIT=EmbeddedApi.Gd32vf103xx
  472. GETOPTSUNIT=System.GetOpts
  473. GO32UNIT=DOSApi.GO32
  474. GPIOUNIT=EmbeddedApi.Gpio
  475. HEAPMGRUNIT=EmbeddedApi.HeapMGR
  476. INITCUNIT=System.InitC
  477. INTRINSICSUNIT=System.Intrinsics
  478. ISO7185UNIT=iso7185
  479. JDK15UNIT=JavaApi.JDK15
  480. KBDCALLSUNIT=OS2Api.Kbdcalls
  481. LIBCUNIT=NetwareLibCApi.Libc
  482. LINEINFOUNIT=System.LineInfo
  483. LINUXUNIT=LinuxApi
  484. LINUXVCSUNIT=LinuxApi.Vcs
  485. LM3FURYUNIT=EmbeddedApi.Lm3fury
  486. LM3TEMPESTUNIT=EmbeddedApi.Lm3tempest
  487. LM4F120UNIT=EmbeddedApi.Lm4f120
  488. LNFODWRFUNIT=System.LineInfo.Dwarf
  489. LNFOGDBUNIT=System.LineInfo.Gdb
  490. LPC11XXUNIT=EmbeddedApi.Lpc11xx
  491. LPC122XUNIT=EmbeddedApi.Lpc122x
  492. LPC13XXUNIT=EmbeddedApi.Lpc13xx
  493. LPC1768UNIT=EmbeddedApi.Lpc1768
  494. LPC21X4UNIT=EmbeddedApi.Lpc21x4
  495. LPC8XXUNIT=EmbeddedApi.Lpc8xx
  496. LSTRINGSUNIT=System.LStrings
  497. MACOSUNIT=MacOSApi.MacOS
  498. MACOSTPUNIT=MacOSApi.MacOSTP
  499. MACUTILSUNIT=MacOSApi.MacUtils
  500. MAILBOXUNIT=EmbeddedApi.Mailbox
  501. MATHUNIT=System.Math
  502. MESSAGESUNIT=WinApi.Messages
  503. MK20D5UNIT=EmbeddedApi.Mk20d5
  504. MK20D7UNIT=EmbeddedApi.Mk20d7
  505. MK22F51212UNIT=EmbeddedApi.Mk22f51212
  506. MK64F12UNIT=EmbeddedApi.Mk64f12
  507. MMIOUNIT=EmbeddedApi.Mmio
  508. MMXUNIT=System.CPU.MMX
  509. MONCALLSUNIT=OS2Api.Moncalls
  510. MOUCALLSUNIT=OS2Api.Moucalls
  511. MSMOUSEUNIT=DOSApi.MSMouse
  512. MULTIBOOTUNIT=EmbeddedApi.Multiboot
  513. NDKUNIT=NTApi.NDK
  514. NDKUTILSUNIT=NTApi.NDKUtils
  515. NETWAREUNIT=NetwareApi.NetWare
  516. NEWEXEUNIT=OS2Api.Newexe
  517. NRF51UNIT=EmbeddedApi.Nrf51
  518. NRF52UNIT=EmbeddedApi.Nrf52
  519. NWCALLSUNIT=NetWareApi.Nwcalls
  520. NWNITUNIT=NetWareApi.Nwnit
  521. NWPREUNIT=NetWareApi.Nwpre
  522. NWPROTUNIT=NetWareApi.Nwprot
  523. NWSERVUNIT=NetWareApi.Nwserv
  524. NWSNUTUNIT=NetWareApi.Nwsnut
  525. OBJCUNIT=objc
  526. OBJCBASEUNIT=objcbase
  527. OS2DEFUNIT=OS2Api.Os2def
  528. PAGEMEMUNIT=System.PageMem
  529. PILOTUNIT=PalmApi.Pilot
  530. PMBIDIUNIT=OS2Api.Pmbidi
  531. PMBITMAPUNIT=OS2Api.Pmbitmap
  532. PMDEVUNIT=OS2Api.Pmdev
  533. PMGPIUNIT=OS2Api.Pmgpi
  534. PMHELPUNIT=OS2Api.Pmhelp
  535. PMSHLUNIT=OS2Api.Pmshl
  536. PMSPLUNIT=OS2Api.Pmspl
  537. PMSTDDLGUNIT=OS2Api.Pmstddlg
  538. PMWINUNIT=OS2Api.Pmwin
  539. PMWPUNIT=OS2Api.Pmwp
  540. PMWSOCKUNIT=OS2Api.Pmwsock
  541. PORTSUNIT=System.Ports
  542. POSIXUNIT=QNXApi.Posix
  543. PROFILEUNIT=DOSApi.Profile
  544. RASPI2UNIT=EmbeddedApi.Raspi2
  545. RASPI3UNIT=EmbeddedApi.Raspi3
  546. RASPIUARTUNIT=EmbeddedApi.Raspiuart
  547. RTLCONSTSUNIT=System.RtlConsts
  548. SAM3X8EUNIT=EmbeddedApi.Sam3x8e
  549. SAMD51P19AUNIT=EmbeddedApi.Samd51p19a
  550. SC32442BUNIT=EmbeddedApi .Sc32442b
  551. SFPU128UNIT=System.SoftFpu128
  552. SFPUX80UNIT=System.SoftFpuX80
  553. SHAREMEMUNIT=WinApi.ShareMem
  554. SIGNALSUNIT=WinApi.Signals
  555. SO32DLLUNIT=OS2Api.So32dll
  556. SOFTFPUUNIT=System.SoftFPU
  557. SORTBASEUNIT=System.SortBase
  558. STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
  559. STM32F103XEUNIT=EmbeddedApi.Stm32f103xe
  560. STM32F10X_CLUNIT=EmbeddedApi.Stm32f10x_cl
  561. STM32F10X_CONNUNIT=EmbeddedApi.Stm32f10x_conn
  562. STM32F10X_HDUNIT=EmbeddedApi.Stm32f10x_hd
  563. STM32F10X_LDUNIT=EmbeddedApi.Stm32f10x_ld
  564. STM32F10X_MDUNIT=EmbeddedApi.Stm32f10x_md
  565. STM32F10X_XLUNIT=EmbeddedApi.Stm32f10x_xl
  566. STM32F401XEUNIT=EmbeddedApi.Stm32f401xe
  567. STM32F401XXUNIT=EmbeddedApi.Stm32f401xx
  568. STM32F407XXUNIT=EmbeddedApi.Stm32f407xx
  569. STM32F411XEUNIT=EmbeddedApi.Stm32f411xe
  570. STM32F429UNIT=EmbeddedApi.Stm32f429
  571. STM32F429XXUNIT=EmbeddedApi.Stm32f429xx
  572. STM32F446XXUNIT=EmbeddedApi.Stm32f446xx
  573. STM32F745UNIT=EmbeddedApi.Stm32f745
  574. STM32F746UNIT=EmbeddedApi.Stm32f746
  575. STM32F756UNIT=EmbeddedApi.Stm32f756
  576. STM32G071XXUNIT=EmbeddedApi.Stm32g071xx
  577. STRINGSUNIT=System.Strings
  578. SYMBIANUNIT=SymbianApi.Symbian
  579. SYSALLUNIT=PalmApi.Sysall
  580. SYSCALLUNIT=UnixApi.SysCall
  581. SYSCONSTUNIT=System.SysConst
  582. SYSCTLUNIT=BsdApi.SysCtl
  583. SYSEMXUNIT=DOSApi.Sysemx
  584. SYSOS2UNIT=OS2Api.Sysos2
  585. SYSTRAPSUNIT=PalmApi.Systraps
  586. SYSUTILSUNIT=System.SysUtils
  587. TERMIOUNIT=UnixApi.TermIO
  588. TYPESUNIT=System.Types
  589. TYPINFOUNIT=System.TypInfo
  590. UFLOAT128UNIT=System.UFloat128
  591. UFLOATX80UNIT=System.UFloatX80
  592. UIUNIT=PalmApi.Ui
  593. UIQUNIT=SymbianApi.Uiq
  594. UIQCLASSESUNIT=SymbianApi.Uiqclasses
  595. UNICODEDATAUNIT=System.CodePages.unicodedata
  596. UNIXUNIT=UnixApi.Unix
  597. UNIXCPUNIT=UnixApi.CP
  598. UNIXTYPEUNIT=UnixApi.Types
  599. UNIXUTILUNIT=UnixApi.Utils
  600. VIOCALLSUNIT=OS2Api.Viocalls
  601. WASIAPIUNIT=WASIApi.WASIApi
  602. WASIUTILUNIT=WASIApi.WASIUtil
  603. WATCOMUNIT=WatcomApi.WatCom
  604. WEBASSEMBLYUNIT=Wasm.Api
  605. WIN31UNIT=WinApi.Win31
  606. WINDIRSUNIT=WinApi.WinDirs
  607. WINDOWSUNIT=WinApi.Windows
  608. WINPROCSUNIT=WinApi.WinProcs
  609. WINSYSUTUNIT=WinApi.WinSysUt
  610. WINTYPESUNIT=WinApi.WinTypes
  611. X86UNIT=System.X86
  612. XMC4500UNIT=EmbeddedApi.Xmc4500
  613. EXEINFOUNIT=System.ExeInfo
  614. ERRORSUNIT=UnixApi.Errors
  615. else
  616. AIOUNIT=aio
  617. ALLWINNER_A20UNIT=allwinner_a20
  618. ANDROIDR14UNIT=androidr14
  619. ATHREADSUNIT=athreads
  620. BASEUNIXUNIT=baseunix
  621. BETHREADSUNIT=bethreads
  622. BLOCKRTLUNIT=blockrtl
  623. BSDUNIT=bsd
  624. CHARACTERUNIT=character
  625. CHARSETUNIT=charset
  626. CLASSESUNIT=classes
  627. CMEMUNIT=cmem
  628. COMMONUNIT=common
  629. CONSOLEUNIT=console
  630. CONSOLEIOUNIT=consoleio
  631. CORTEXM0UNIT=cortexm0
  632. CORTEXM3UNIT=cortexm3
  633. CORTEXM4UNIT=cortexm4
  634. CORTEXM7UNIT=cortexm7
  635. CP1250UNIT=cp1250
  636. CP1251UNIT=cp1251
  637. CP1252UNIT=cp1252
  638. CP1253UNIT=cp1253
  639. CP1254UNIT=cp1254
  640. CP1255UNIT=cp1255
  641. CP1256UNIT=cp1256
  642. CP1257UNIT=cp1257
  643. CP1258UNIT=cp1258
  644. CP3021UNIT=cp3021
  645. CP437UNIT=cp437
  646. CP646UNIT=cp646
  647. CP737UNIT=cp737
  648. CP775UNIT=cp775
  649. CP850UNIT=cp850
  650. CP852UNIT=cp852
  651. CP855UNIT=cp855
  652. CP856UNIT=cp856
  653. CP857UNIT=cp857
  654. CP860UNIT=cp860
  655. CP861UNIT=cp861
  656. CP862UNIT=cp862
  657. CP863UNIT=cp863
  658. CP864UNIT=cp864
  659. CP865UNIT=cp865
  660. CP866UNIT=cp866
  661. CP869UNIT=cp869
  662. CP874UNIT=cp874
  663. CP8859_1UNIT=cp8859_1
  664. CP8859_10UNIT=cp8859_10
  665. CP8859_11UNIT=cp8859_11
  666. CP8859_13UNIT=cp8859_13
  667. CP8859_14UNIT=cp8859_14
  668. CP8859_15UNIT=cp8859_15
  669. CP8859_16UNIT=cp8859_16
  670. CP8859_2UNIT=cp8859_2
  671. CP8859_3UNIT=cp8859_3
  672. CP8859_4UNIT=cp8859_4
  673. CP8859_5UNIT=cp8859_5
  674. CP8859_6UNIT=cp8859_6
  675. CP8859_7UNIT=cp8859_7
  676. CP8859_8UNIT=cp8859_8
  677. CP8859_9UNIT=cp8859_9
  678. CPALLUNIT=cpall
  679. CPKOI8_RUNIT=cpkoi8_r
  680. CPKOI8_UUNIT=cpkoi8_u
  681. CPUUNIT=cpu
  682. CTHREADSUNIT=cthreads
  683. CTYPESUNIT=ctypes
  684. CWSTRINGUNIT=cwstring
  685. DDKUNIT=ddk
  686. DLUNIT=dl
  687. DOSUNIT=dos
  688. DOSCALL2UNIT=doscall2
  689. DOSCALLSUNIT=doscalls
  690. DPMIEXCPUNIT=dpmiexcp
  691. DXELOADUNIT=dxeload
  692. DXETYPEUNIT=dxetype
  693. DYNLIBSUNIT=dynlibs
  694. EMU387UNIT=emu387
  695. EMXUNIT=emx
  696. ERRORSUNIT=errors
  697. ESP32UNIT=esp32
  698. ESP8266UNIT=esp8266
  699. ESP8266RTOS_30300UNIT=esp8266rtos_30300
  700. ESP8266RTOS_30400UNIT=esp8266rtos_30400
  701. ESPIDF_40100UNIT=espidf_40100
  702. ESPIDF_40200UNIT=espidf_40200
  703. ESPIDF_40400UNIT=espidf_40400
  704. EXEUNIT=exe
  705. EXEINFOUNIT=exeinfo
  706. EXTPASUNIT=extpas
  707. FE310G000UNIT=fe310g000
  708. FE310G002UNIT=fe310g002
  709. FGLUNIT=fgl
  710. FPCMEMDLLUNIT=fpcmemdll
  711. FPCYLIXUNIT=fpcylix
  712. FPWIDESTRINGUNIT=fpwidestring
  713. FREEBSDUNIT=freebsd
  714. GD32VF103XXUNIT=gd32vf103xx
  715. GETOPTSUNIT=getopts
  716. GO32UNIT=go32
  717. GPIOUNIT=gpio
  718. HEAPMGRUNIT=heapmgr
  719. INITCUNIT=initc
  720. INTRINSICSUNIT=intrinsics
  721. ISO7185UNIT=iso7185
  722. JDK15UNIT=jdk15
  723. KBDCALLSUNIT=kbdcalls
  724. LIBCUNIT=libc
  725. LINEINFOUNIT=lineinfo
  726. LINUXUNIT=linux
  727. LINUXVCSUNIT=linuxvcs
  728. LM3FURYUNIT=lm3fury
  729. LM3TEMPESTUNIT=lm3tempest
  730. LM4F120UNIT=lm4f120
  731. LNFODWRFUNIT=lnfodwrf
  732. LNFOGDBUNIT=lnfogdb
  733. LPC11XXUNIT=lpc11xx
  734. LPC122XUNIT=lpc122x
  735. LPC13XXUNIT=lpc13xx
  736. LPC1768UNIT=lpc1768
  737. LPC21X4UNIT=lpc21x4
  738. LPC8XXUNIT=lpc8xx
  739. LSTRINGSUNIT=lstrings
  740. MACOSUNIT=macos
  741. MACOSTPUNIT=macostp
  742. MACUTILSUNIT=macutils
  743. MAILBOXUNIT=mailbox
  744. MATHUNIT=math
  745. MESSAGESUNIT=messages
  746. MK20D5UNIT=mk20d5
  747. MK20D7UNIT=mk20d7
  748. MK22F51212UNIT=mk22f51212
  749. MK64F12UNIT=mk64f12
  750. MMIOUNIT=mmio
  751. MMXUNIT=mmx
  752. MONCALLSUNIT=moncalls
  753. MOUCALLSUNIT=moucalls
  754. MSMOUSEUNIT=msmouse
  755. MULTIBOOTUNIT=multiboot
  756. NDKUNIT=ndk
  757. NDKUTILSUNIT=ndkutils
  758. NETWAREUNIT=netware
  759. NEWEXEUNIT=newexe
  760. NRF51UNIT=nrf51
  761. NRF52UNIT=nrf52
  762. NWCALLSUNIT=nwcalls
  763. NWNITUNIT=nwnit
  764. NWPREUNIT=nwpre
  765. NWPROTUNIT=nwprot
  766. NWSERVUNIT=nwserv
  767. NWSNUTUNIT=nwsnut
  768. OBJCUNIT=objc
  769. OBJCBASEUNIT=objcbase
  770. OS2DEFUNIT=os2def
  771. PAGEMEMUNIT=pagemem
  772. PILOTUNIT=pilot
  773. PMBIDIUNIT=pmbidi
  774. PMBITMAPUNIT=pmbitmap
  775. PMDEVUNIT=pmdev
  776. PMGPIUNIT=pmgpi
  777. PMHELPUNIT=pmhelp
  778. PMSHLUNIT=pmshl
  779. PMSPLUNIT=pmspl
  780. PMSTDDLGUNIT=pmstddlg
  781. PMWINUNIT=pmwin
  782. PMWPUNIT=pmwp
  783. PMWSOCKUNIT=pmwsock
  784. PORTSUNIT=ports
  785. POSIXUNIT=posix
  786. PROFILEUNIT=profile
  787. RASPI2UNIT=raspi2
  788. RASPI3UNIT=raspi3
  789. RASPIUARTUNIT=raspiuart
  790. RTLCONSTSUNIT=rtlconsts
  791. SAM3X8EUNIT=sam3x8e
  792. SAMD51P19AUNIT=samd51p19a
  793. SC32442BUNIT=sc32442b
  794. SFPU128UNIT=sfpu128
  795. SFPUX80UNIT=sfpux80
  796. SHAREMEMUNIT=sharemem
  797. SIGNALSUNIT=signals
  798. SO32DLLUNIT=so32dll
  799. SOFTFPUUNIT=softfpu
  800. SORTBASEUNIT=sortbase
  801. STM32F0XXUNIT=stm32f0xx
  802. STM32F103XEUNIT=stm32f103xe
  803. STM32F10X_CLUNIT=stm32f10x_cl
  804. STM32F10X_CONNUNIT=stm32f10x_conn
  805. STM32F10X_HDUNIT=stm32f10x_hd
  806. STM32F10X_LDUNIT=stm32f10x_ld
  807. STM32F10X_MDUNIT=stm32f10x_md
  808. STM32F10X_XLUNIT=stm32f10x_xl
  809. STM32F401XEUNIT=stm32f401xe
  810. STM32F401XXUNIT=stm32f401xx
  811. STM32F407XXUNIT=stm32f407xx
  812. STM32F411XEUNIT=stm32f411xe
  813. STM32F429UNIT=stm32f429
  814. STM32F429XXUNIT=stm32f429xx
  815. STM32F446XXUNIT=stm32f446xx
  816. STM32F745UNIT=stm32f745
  817. STM32F746UNIT=stm32f746
  818. STM32F756UNIT=stm32f756
  819. STM32G071XXUNIT=stm32g071xx
  820. STRINGSUNIT=strings
  821. SYMBIANUNIT=symbian
  822. SYSALLUNIT=sysall
  823. SYSCALLUNIT=syscall
  824. SYSCONSTUNIT=sysconst
  825. SYSCTLUNIT=sysctl
  826. SYSEMXUNIT=sysemx
  827. SYSOS2UNIT=sysos2
  828. SYSTRAPSUNIT=systraps
  829. SYSUTILSUNIT=sysutils
  830. TERMIOUNIT=termio
  831. TYPESUNIT=types
  832. TYPINFOUNIT=typinfo
  833. UFLOAT128UNIT=ufloat128
  834. UFLOATX80UNIT=ufloatx80
  835. UIUNIT=ui
  836. UIQUNIT=uiq
  837. UIQCLASSESUNIT=uiqclasses
  838. UNICODEDATAUNIT=unicodedata
  839. UNIXUNIT=unix
  840. UNIXCPUNIT=unixcp
  841. UNIXTYPEUNIT=unixtype
  842. UNIXUTILUNIT=unixutil
  843. VIOCALLSUNIT=viocalls
  844. WASIAPIUNIT=wasiapi
  845. WASIUTILUNIT=wasiutil
  846. WATCOMUNIT=watcom
  847. WEBASSEMBLYUNIT=webassembly
  848. WIN31UNIT=win31
  849. WINDIRSUNIT=windirs
  850. WINDOWSUNIT=windows
  851. WINPROCSUNIT=winprocs
  852. WINSYSUTUNIT=winsysut
  853. WINTYPESUNIT=wintypes
  854. X86UNIT=x86
  855. XMC4500UNIT=xmc4500
  856. endif
  857. ifdef FPC_DOTTEDUNITS
  858. NS_SYSTEM=System.
  859. NS_CPUNITS=System.CodePages.
  860. NSDIR=$(RTL)/namespaced
  861. NSINC=$(NSDIR)/common
  862. OPT:=$(OPT) -dFPC_DOTTEDUNITS
  863. BASEINCLUDE=$(INC) $(PROCINC)
  864. BASESOURCE=$(INC) $(PROCINC) $($(COMMONUNIT))
  865. endif
  866. CPUNITSBASE=$(CP1250UNIT) $(CP1251UNIT) $(CP1252UNIT) $(CP1253UNIT) $(CP1254UNIT) $(CP1255UNIT) $(CP1256UNIT) $(CP1257UNIT) $(CP1258UNIT) \
  867. $(CP437UNIT) $(CP646UNIT) $(CP737UNIT) $(CP775UNIT) $(CP850UNIT) $(CP852UNIT) $(CP855UNIT) $(CP856UNIT) $(CP857UNIT) $(CP860UNIT) $(CP861UNIT) $(CP862UNIT) \
  868. $(CP863UNIT) $(CP864UNIT) $(CP865UNIT) $(CP866UNIT) $(CP869UNIT) $(CP874UNIT) $(CP3021UNIT) $(CP8859_1UNIT) $(CP8859_2UNIT) $(CP8859_3UNIT) $(CP8859_4UNIT) \
  869. $(CP8859_5UNIT) $(CP8859_6UNIT) $(CP8859_7UNIT) $(CP8859_8UNIT) $(CP8859_9UNIT) $(CP8859_10UNIT) $(CP8859_11UNIT) \
  870. $(CP8859_13UNIT) $(CP8859_14UNIT) $(CP8859_15UNIT) $(CP8859_16UNIT) $(CPKOI8_RUNIT) $(CPKOI8_UUNIT)
  871. CPUNITS=$(addprefix $(NS_CPUNITS),$(CPUNITSBASE))
  872. RTL=..
  873. INC=$(RTL)/inc
  874. COMMON=$(RTL)/common
  875. PROCINC=$(RTL)/$(ARCH)
  876. UNIXINC=$(RTL)/unix
  877. OSPROCINC=$(RTL)/linux/$(CPU_TARGET)
  878. LINUXINC=$(RTL)/linux
  879. UNITPREFIX=rtl
  880. CPU_UNITS=
  881. SYSINIT_UNITS=
  882. LOADERS=prt0 dllprt0
  883. ifeq ($(findstring $(ARCH),i386 x86_64 arm),$(ARCH))
  884. CPU_UNITS=cpu
  885. endif
  886. ifeq ($(ARCH),i386)
  887. CPU_UNITS+=mmx
  888. endif
  889. SYSTEMUNIT=system
  890. ifdef RELEASE
  891. override FPCOPT+=-Ur
  892. endif
  893. OBJPASDIR=$(RTL)/objpas
  894. ifeq ($(CPU_OS_TARGET),i386-android)
  895. override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem linuxvcs sysutils typinfo math charset cpall character getopts errors dl dynlibs types sysconst cthreads sortbase classes fgl rtlconsts dos cwstring fpcylix unixcp fpwidestring softfpu sfpux80 ufloatx80 sfpu128 ufloat128
  896. endif
  897. ifeq ($(CPU_OS_TARGET),x86_64-android)
  898. override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem linuxvcs sysutils typinfo math charset cpall character getopts errors dl dynlibs types sysconst cthreads sortbase classes fgl rtlconsts dos cwstring fpcylix unixcp fpwidestring softfpu sfpux80 ufloatx80 sfpu128 ufloat128
  899. endif
  900. ifeq ($(CPU_OS_TARGET),arm-android)
  901. override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem linuxvcs sysutils typinfo math charset cpall character getopts errors dl dynlibs types sysconst cthreads sortbase classes fgl rtlconsts dos cwstring fpcylix unixcp fpwidestring softfpu sfpux80 ufloatx80 sfpu128 ufloat128
  902. endif
  903. ifeq ($(CPU_OS_TARGET),mipsel-android)
  904. override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem linuxvcs sysutils typinfo math charset cpall character getopts errors dl dynlibs types sysconst cthreads sortbase classes fgl rtlconsts dos cwstring fpcylix unixcp fpwidestring softfpu sfpux80 ufloatx80 sfpu128 ufloat128
  905. endif
  906. ifeq ($(CPU_OS_TARGET),jvm-android)
  907. override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem linuxvcs sysutils typinfo math charset cpall character getopts errors dl dynlibs types sysconst cthreads sortbase classes fgl rtlconsts dos cwstring fpcylix unixcp fpwidestring softfpu sfpux80 ufloatx80 sfpu128 ufloat128
  908. endif
  909. ifeq ($(CPU_OS_TARGET),aarch64-android)
  910. override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem linuxvcs sysutils typinfo math charset cpall character getopts errors dl dynlibs types sysconst cthreads sortbase classes fgl rtlconsts dos cwstring fpcylix unixcp fpwidestring softfpu sfpux80 ufloatx80 sfpu128 ufloat128
  911. endif
  912. ifeq ($(CPU_OS_TARGET),i386-android)
  913. override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata
  914. endif
  915. ifeq ($(CPU_OS_TARGET),x86_64-android)
  916. override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata
  917. endif
  918. ifeq ($(CPU_OS_TARGET),arm-android)
  919. override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata
  920. endif
  921. ifeq ($(CPU_OS_TARGET),mipsel-android)
  922. override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata
  923. endif
  924. ifeq ($(CPU_OS_TARGET),jvm-android)
  925. override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata
  926. endif
  927. ifeq ($(CPU_OS_TARGET),aarch64-android)
  928. override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata
  929. endif
  930. ifeq ($(CPU_OS_TARGET),i386-android)
  931. override TARGET_LOADERS+=$(LOADERS)
  932. endif
  933. ifeq ($(CPU_OS_TARGET),x86_64-android)
  934. override TARGET_LOADERS+=$(LOADERS)
  935. endif
  936. ifeq ($(CPU_OS_TARGET),arm-android)
  937. override TARGET_LOADERS+=$(LOADERS)
  938. endif
  939. ifeq ($(CPU_OS_TARGET),mipsel-android)
  940. override TARGET_LOADERS+=$(LOADERS)
  941. endif
  942. ifeq ($(CPU_OS_TARGET),jvm-android)
  943. override TARGET_LOADERS+=$(LOADERS)
  944. endif
  945. ifeq ($(CPU_OS_TARGET),aarch64-android)
  946. override TARGET_LOADERS+=$(LOADERS)
  947. endif
  948. ifeq ($(CPU_OS_TARGET),i386-android)
  949. override TARGET_RSTS+=math typinfo sysconst rtlconsts
  950. endif
  951. ifeq ($(CPU_OS_TARGET),x86_64-android)
  952. override TARGET_RSTS+=math typinfo sysconst rtlconsts
  953. endif
  954. ifeq ($(CPU_OS_TARGET),arm-android)
  955. override TARGET_RSTS+=math typinfo sysconst rtlconsts
  956. endif
  957. ifeq ($(CPU_OS_TARGET),mipsel-android)
  958. override TARGET_RSTS+=math typinfo sysconst rtlconsts
  959. endif
  960. ifeq ($(CPU_OS_TARGET),jvm-android)
  961. override TARGET_RSTS+=math typinfo sysconst rtlconsts
  962. endif
  963. ifeq ($(CPU_OS_TARGET),aarch64-android)
  964. override TARGET_RSTS+=math typinfo sysconst rtlconsts
  965. endif
  966. ifeq ($(CPU_OS_TARGET),i386-android)
  967. override CLEAN_UNITS+=syslinux linux
  968. endif
  969. ifeq ($(CPU_OS_TARGET),x86_64-android)
  970. override CLEAN_UNITS+=syslinux linux
  971. endif
  972. ifeq ($(CPU_OS_TARGET),arm-android)
  973. override CLEAN_UNITS+=syslinux linux
  974. endif
  975. ifeq ($(CPU_OS_TARGET),mipsel-android)
  976. override CLEAN_UNITS+=syslinux linux
  977. endif
  978. ifeq ($(CPU_OS_TARGET),jvm-android)
  979. override CLEAN_UNITS+=syslinux linux
  980. endif
  981. ifeq ($(CPU_OS_TARGET),aarch64-android)
  982. override CLEAN_UNITS+=syslinux linux
  983. endif
  984. override INSTALL_FPCPACKAGE=y y
  985. ifeq ($(CPU_OS_TARGET),i386-android)
  986. override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
  987. endif
  988. ifeq ($(CPU_OS_TARGET),x86_64-android)
  989. override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
  990. endif
  991. ifeq ($(CPU_OS_TARGET),arm-android)
  992. override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
  993. endif
  994. ifeq ($(CPU_OS_TARGET),mipsel-android)
  995. override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
  996. endif
  997. ifeq ($(CPU_OS_TARGET),jvm-android)
  998. override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
  999. endif
  1000. ifeq ($(CPU_OS_TARGET),aarch64-android)
  1001. override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
  1002. endif
  1003. ifeq ($(CPU_OS_TARGET),i386-android)
  1004. override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC)
  1005. endif
  1006. ifeq ($(CPU_OS_TARGET),x86_64-android)
  1007. override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC)
  1008. endif
  1009. ifeq ($(CPU_OS_TARGET),arm-android)
  1010. override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC)
  1011. endif
  1012. ifeq ($(CPU_OS_TARGET),mipsel-android)
  1013. override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC)
  1014. endif
  1015. ifeq ($(CPU_OS_TARGET),jvm-android)
  1016. override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC)
  1017. endif
  1018. ifeq ($(CPU_OS_TARGET),aarch64-android)
  1019. override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC)
  1020. endif
  1021. ifeq ($(CPU_OS_TARGET),i386-android)
  1022. override COMPILER_TARGETDIR+=.
  1023. endif
  1024. ifeq ($(CPU_OS_TARGET),x86_64-android)
  1025. override COMPILER_TARGETDIR+=.
  1026. endif
  1027. ifeq ($(CPU_OS_TARGET),arm-android)
  1028. override COMPILER_TARGETDIR+=.
  1029. endif
  1030. ifeq ($(CPU_OS_TARGET),mipsel-android)
  1031. override COMPILER_TARGETDIR+=.
  1032. endif
  1033. ifeq ($(CPU_OS_TARGET),jvm-android)
  1034. override COMPILER_TARGETDIR+=.
  1035. endif
  1036. ifeq ($(CPU_OS_TARGET),aarch64-android)
  1037. override COMPILER_TARGETDIR+=.
  1038. endif
  1039. override SHARED_LIBUNITS=$(SYSTEMUNIT) objpas strings dos unix baseunix unixtype unixutil sysutils typinfo math $(CPU_UNITS) getopts errors sockets sortbase classes fgl sysconst rtlconsts
  1040. ifdef REQUIRE_UNITSDIR
  1041. override UNITSDIR+=$(REQUIRE_UNITSDIR)
  1042. endif
  1043. ifdef REQUIRE_PACKAGESDIR
  1044. override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
  1045. endif
  1046. ifdef ZIPINSTALL
  1047. ifneq ($(filter $(OS_TARGET),$(UNIXs)),)
  1048. UNIXHier=1
  1049. endif
  1050. else
  1051. ifneq ($(filter $(OS_SOURCE),$(UNIXs)),)
  1052. UNIXHier=1
  1053. endif
  1054. endif
  1055. ifndef INSTALL_PREFIX
  1056. ifdef PREFIX
  1057. INSTALL_PREFIX=$(PREFIX)
  1058. endif
  1059. endif
  1060. ifndef INSTALL_PREFIX
  1061. ifdef UNIXHier
  1062. INSTALL_PREFIX=/usr/local
  1063. else
  1064. ifdef INSTALL_FPCPACKAGE
  1065. INSTALL_BASEDIR:=/pp
  1066. else
  1067. INSTALL_BASEDIR:=/$(PACKAGE_NAME)
  1068. endif
  1069. endif
  1070. endif
  1071. export INSTALL_PREFIX
  1072. ifdef INSTALL_FPCSUBDIR
  1073. export INSTALL_FPCSUBDIR
  1074. endif
  1075. ifndef DIST_DESTDIR
  1076. DIST_DESTDIR:=$(BASEDIR)
  1077. endif
  1078. export DIST_DESTDIR
  1079. ifndef COMPILER_UNITTARGETDIR
  1080. ifdef PACKAGEDIR_MAIN
  1081. COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
  1082. else
  1083. COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
  1084. endif
  1085. endif
  1086. ifndef COMPILER_TARGETDIR
  1087. COMPILER_TARGETDIR=.
  1088. endif
  1089. ifndef INSTALL_BASEDIR
  1090. ifdef UNIXHier
  1091. ifdef INSTALL_FPCPACKAGE
  1092. INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
  1093. else
  1094. INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
  1095. endif
  1096. else
  1097. INSTALL_BASEDIR:=$(INSTALL_PREFIX)
  1098. endif
  1099. endif
  1100. ifndef INSTALL_BINDIR
  1101. ifdef UNIXHier
  1102. INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
  1103. else
  1104. INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
  1105. ifdef INSTALL_FPCPACKAGE
  1106. ifdef CROSSCOMPILE
  1107. ifdef CROSSINSTALL
  1108. INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
  1109. else
  1110. INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
  1111. endif
  1112. else
  1113. INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
  1114. endif
  1115. endif
  1116. endif
  1117. endif
  1118. ifndef INSTALL_UNITDIR
  1119. INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
  1120. ifdef INSTALL_FPCPACKAGE
  1121. ifdef PACKAGE_NAME
  1122. INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
  1123. endif
  1124. endif
  1125. endif
  1126. ifndef INSTALL_LIBDIR
  1127. ifdef UNIXHier
  1128. INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
  1129. else
  1130. INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
  1131. endif
  1132. endif
  1133. ifndef INSTALL_SOURCEDIR
  1134. ifdef UNIXHier
  1135. ifdef BSDhier
  1136. SRCPREFIXDIR=share/src
  1137. else
  1138. ifdef linuxHier
  1139. SRCPREFIXDIR=share/src
  1140. else
  1141. SRCPREFIXDIR=src
  1142. endif
  1143. endif
  1144. ifdef INSTALL_FPCPACKAGE
  1145. ifdef INSTALL_FPCSUBDIR
  1146. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
  1147. else
  1148. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  1149. endif
  1150. else
  1151. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  1152. endif
  1153. else
  1154. ifdef INSTALL_FPCPACKAGE
  1155. ifdef INSTALL_FPCSUBDIR
  1156. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
  1157. else
  1158. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
  1159. endif
  1160. else
  1161. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
  1162. endif
  1163. endif
  1164. endif
  1165. ifndef INSTALL_DOCDIR
  1166. ifdef UNIXHier
  1167. ifdef BSDhier
  1168. DOCPREFIXDIR=share/doc
  1169. else
  1170. ifdef linuxHier
  1171. DOCPREFIXDIR=share/doc
  1172. else
  1173. DOCPREFIXDIR=doc
  1174. endif
  1175. endif
  1176. ifdef INSTALL_FPCPACKAGE
  1177. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  1178. else
  1179. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  1180. endif
  1181. else
  1182. ifdef INSTALL_FPCPACKAGE
  1183. INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
  1184. else
  1185. INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
  1186. endif
  1187. endif
  1188. endif
  1189. ifndef INSTALL_EXAMPLEDIR
  1190. ifdef UNIXHier
  1191. ifdef INSTALL_FPCPACKAGE
  1192. ifdef BSDhier
  1193. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  1194. else
  1195. ifdef linuxHier
  1196. INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
  1197. else
  1198. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
  1199. endif
  1200. endif
  1201. else
  1202. ifdef BSDhier
  1203. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  1204. else
  1205. ifdef linuxHier
  1206. INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  1207. else
  1208. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  1209. endif
  1210. endif
  1211. endif
  1212. else
  1213. ifdef INSTALL_FPCPACKAGE
  1214. INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
  1215. else
  1216. INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
  1217. endif
  1218. endif
  1219. endif
  1220. ifndef INSTALL_DATADIR
  1221. INSTALL_DATADIR=$(INSTALL_BASEDIR)
  1222. endif
  1223. ifndef INSTALL_SHAREDDIR
  1224. INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
  1225. endif
  1226. ifdef CROSSCOMPILE
  1227. ifndef CROSSBINDIR
  1228. CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
  1229. ifeq ($(CROSSBINDIR),)
  1230. CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
  1231. endif
  1232. endif
  1233. else
  1234. CROSSBINDIR=
  1235. endif
  1236. BATCHEXT=.bat
  1237. LOADEREXT=.as
  1238. EXEEXT=.exe
  1239. PPLEXT=.ppl
  1240. PPUEXT=.ppu
  1241. OEXT=.o
  1242. LTOEXT=.bc
  1243. ASMEXT=.s
  1244. SMARTEXT=.sl
  1245. STATICLIBEXT=.a
  1246. SHAREDLIBEXT=.so
  1247. SHAREDLIBPREFIX=libfp
  1248. STATICLIBPREFIX=libp
  1249. IMPORTLIBPREFIX=libimp
  1250. RSTEXT=.rst
  1251. EXEDBGEXT=.dbg
  1252. ifeq ($(OS_TARGET),go32v1)
  1253. STATICLIBPREFIX=
  1254. SHORTSUFFIX=v1
  1255. endif
  1256. ifeq ($(OS_TARGET),go32v2)
  1257. STATICLIBPREFIX=
  1258. SHORTSUFFIX=dos
  1259. IMPORTLIBPREFIX=
  1260. endif
  1261. ifeq ($(OS_TARGET),watcom)
  1262. STATICLIBPREFIX=
  1263. OEXT=.obj
  1264. ASMEXT=.asm
  1265. SHAREDLIBEXT=.dll
  1266. SHORTSUFFIX=wat
  1267. IMPORTLIBPREFIX=
  1268. endif
  1269. ifneq ($(CPU_TARGET),jvm)
  1270. ifeq ($(OS_TARGET),android)
  1271. BATCHEXT=.sh
  1272. EXEEXT=
  1273. HASSHAREDLIB=1
  1274. SHORTSUFFIX=lnx
  1275. endif
  1276. endif
  1277. ifeq ($(OS_TARGET),linux)
  1278. BATCHEXT=.sh
  1279. EXEEXT=
  1280. HASSHAREDLIB=1
  1281. SHORTSUFFIX=lnx
  1282. endif
  1283. ifeq ($(OS_TARGET),dragonfly)
  1284. BATCHEXT=.sh
  1285. EXEEXT=
  1286. HASSHAREDLIB=1
  1287. SHORTSUFFIX=df
  1288. endif
  1289. ifeq ($(OS_TARGET),freebsd)
  1290. BATCHEXT=.sh
  1291. EXEEXT=
  1292. HASSHAREDLIB=1
  1293. SHORTSUFFIX=fbs
  1294. endif
  1295. ifeq ($(OS_TARGET),netbsd)
  1296. BATCHEXT=.sh
  1297. EXEEXT=
  1298. HASSHAREDLIB=1
  1299. SHORTSUFFIX=nbs
  1300. endif
  1301. ifeq ($(OS_TARGET),openbsd)
  1302. BATCHEXT=.sh
  1303. EXEEXT=
  1304. HASSHAREDLIB=1
  1305. SHORTSUFFIX=obs
  1306. endif
  1307. ifeq ($(OS_TARGET),win32)
  1308. SHAREDLIBEXT=.dll
  1309. SHORTSUFFIX=w32
  1310. endif
  1311. ifeq ($(OS_TARGET),os2)
  1312. BATCHEXT=.cmd
  1313. AOUTEXT=.out
  1314. STATICLIBPREFIX=
  1315. SHAREDLIBEXT=.dll
  1316. SHORTSUFFIX=os2
  1317. ECHO=echo
  1318. IMPORTLIBPREFIX=
  1319. endif
  1320. ifeq ($(OS_TARGET),emx)
  1321. BATCHEXT=.cmd
  1322. AOUTEXT=.out
  1323. STATICLIBPREFIX=
  1324. SHAREDLIBEXT=.dll
  1325. SHORTSUFFIX=emx
  1326. ECHO=echo
  1327. IMPORTLIBPREFIX=
  1328. endif
  1329. ifeq ($(OS_TARGET),amiga)
  1330. EXEEXT=
  1331. SHAREDLIBEXT=.library
  1332. SHORTSUFFIX=amg
  1333. endif
  1334. ifeq ($(OS_TARGET),aros)
  1335. EXEEXT=
  1336. SHAREDLIBEXT=.library
  1337. SHORTSUFFIX=aros
  1338. endif
  1339. ifeq ($(OS_TARGET),morphos)
  1340. EXEEXT=
  1341. SHAREDLIBEXT=.library
  1342. SHORTSUFFIX=mos
  1343. endif
  1344. ifeq ($(OS_TARGET),atari)
  1345. EXEEXT=.ttp
  1346. SHORTSUFFIX=ata
  1347. endif
  1348. ifeq ($(OS_TARGET),beos)
  1349. BATCHEXT=.sh
  1350. EXEEXT=
  1351. SHORTSUFFIX=be
  1352. endif
  1353. ifeq ($(OS_TARGET),haiku)
  1354. BATCHEXT=.sh
  1355. EXEEXT=
  1356. SHORTSUFFIX=hai
  1357. endif
  1358. ifeq ($(OS_TARGET),solaris)
  1359. BATCHEXT=.sh
  1360. EXEEXT=
  1361. SHORTSUFFIX=sun
  1362. endif
  1363. ifeq ($(OS_TARGET),qnx)
  1364. BATCHEXT=.sh
  1365. EXEEXT=
  1366. SHORTSUFFIX=qnx
  1367. endif
  1368. ifeq ($(OS_TARGET),netware)
  1369. EXEEXT=.nlm
  1370. STATICLIBPREFIX=
  1371. SHORTSUFFIX=nw
  1372. IMPORTLIBPREFIX=imp
  1373. endif
  1374. ifeq ($(OS_TARGET),netwlibc)
  1375. EXEEXT=.nlm
  1376. STATICLIBPREFIX=
  1377. SHORTSUFFIX=nwl
  1378. IMPORTLIBPREFIX=imp
  1379. endif
  1380. ifeq ($(OS_TARGET),macosclassic)
  1381. BATCHEXT=
  1382. EXEEXT=
  1383. DEBUGSYMEXT=.xcoff
  1384. SHORTSUFFIX=mac
  1385. IMPORTLIBPREFIX=imp
  1386. endif
  1387. ifneq ($(filter $(OS_TARGET),darwin iphonesim ios),)
  1388. BATCHEXT=.sh
  1389. EXEEXT=
  1390. HASSHAREDLIB=1
  1391. SHORTSUFFIX=dwn
  1392. EXEDBGEXT=.dSYM
  1393. endif
  1394. ifeq ($(OS_TARGET),gba)
  1395. EXEEXT=.gba
  1396. SHAREDLIBEXT=.so
  1397. SHORTSUFFIX=gba
  1398. endif
  1399. ifeq ($(OS_TARGET),symbian)
  1400. SHAREDLIBEXT=.dll
  1401. SHORTSUFFIX=symbian
  1402. endif
  1403. ifeq ($(OS_TARGET),NativeNT)
  1404. SHAREDLIBEXT=.dll
  1405. SHORTSUFFIX=nativent
  1406. endif
  1407. ifeq ($(OS_TARGET),wii)
  1408. EXEEXT=.dol
  1409. SHAREDLIBEXT=.so
  1410. SHORTSUFFIX=wii
  1411. endif
  1412. ifeq ($(OS_TARGET),aix)
  1413. BATCHEXT=.sh
  1414. EXEEXT=
  1415. SHAREDLIBEXT=.a
  1416. SHORTSUFFIX=aix
  1417. endif
  1418. ifeq ($(OS_TARGET),java)
  1419. OEXT=.class
  1420. ASMEXT=.j
  1421. SHAREDLIBEXT=.jar
  1422. SHORTSUFFIX=java
  1423. endif
  1424. ifeq ($(CPU_TARGET),jvm)
  1425. ifeq ($(OS_TARGET),android)
  1426. OEXT=.class
  1427. ASMEXT=.j
  1428. SHAREDLIBEXT=.jar
  1429. SHORTSUFFIX=android
  1430. endif
  1431. endif
  1432. ifeq ($(OS_TARGET),msdos)
  1433. STATICLIBPREFIX=
  1434. STATICLIBEXT=.a
  1435. SHORTSUFFIX=d16
  1436. endif
  1437. ifeq ($(OS_TARGET),msxdos)
  1438. STATICLIBPREFIX=
  1439. STATICLIBEXT=.a
  1440. SHORTSUFFIX=msd
  1441. endif
  1442. ifeq ($(OS_TARGET),embedded)
  1443. ifeq ($(CPU_TARGET),i8086)
  1444. STATICLIBPREFIX=
  1445. STATICLIBEXT=.a
  1446. else
  1447. EXEEXT=.bin
  1448. endif
  1449. ifeq ($(CPU_TARGET),z80)
  1450. OEXT=.rel
  1451. endif
  1452. SHORTSUFFIX=emb
  1453. endif
  1454. ifeq ($(OS_TARGET),win16)
  1455. STATICLIBPREFIX=
  1456. STATICLIBEXT=.a
  1457. SHAREDLIBEXT=.dll
  1458. SHORTSUFFIX=w16
  1459. endif
  1460. ifeq ($(OS_TARGET),zxspectrum)
  1461. OEXT=.rel
  1462. endif
  1463. ifeq ($(OS_TARGET),wasi)
  1464. EXEEXT=.wasm
  1465. endif
  1466. ifneq ($(filter $(OS_SOURCE),$(LIMIT83fs)),)
  1467. FPCMADE=fpcmade.$(SHORTSUFFIX)
  1468. ZIPSUFFIX=$(SHORTSUFFIX)
  1469. ZIPCROSSPREFIX=
  1470. ZIPSOURCESUFFIX=src
  1471. ZIPEXAMPLESUFFIX=exm
  1472. else
  1473. FPCMADE=fpcmade.$(TARGETSUFFIX)
  1474. ZIPSOURCESUFFIX=.source
  1475. ZIPEXAMPLESUFFIX=.examples
  1476. ifdef CROSSCOMPILE
  1477. ZIPSUFFIX=.$(SOURCESUFFIX)
  1478. ZIPCROSSPREFIX=$(TARGETSUFFIX)-
  1479. else
  1480. ZIPSUFFIX=.$(TARGETSUFFIX)
  1481. ZIPCROSSPREFIX=
  1482. endif
  1483. endif
  1484. ifndef ECHO
  1485. ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
  1486. ifeq ($(ECHO),)
  1487. ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
  1488. ifeq ($(ECHO),)
  1489. ECHO= __missing_command_ECHO
  1490. else
  1491. ECHO:=$(firstword $(ECHO))
  1492. endif
  1493. else
  1494. ECHO:=$(firstword $(ECHO))
  1495. endif
  1496. endif
  1497. export ECHO
  1498. ifndef DATE
  1499. DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
  1500. ifeq ($(DATE),)
  1501. DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
  1502. ifeq ($(DATE),)
  1503. DATE= __missing_command_DATE
  1504. else
  1505. DATE:=$(firstword $(DATE))
  1506. endif
  1507. else
  1508. DATE:=$(firstword $(DATE))
  1509. endif
  1510. endif
  1511. export DATE
  1512. ifndef GINSTALL
  1513. GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
  1514. ifeq ($(GINSTALL),)
  1515. GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
  1516. ifeq ($(GINSTALL),)
  1517. GINSTALL= __missing_command_GINSTALL
  1518. else
  1519. GINSTALL:=$(firstword $(GINSTALL))
  1520. endif
  1521. else
  1522. GINSTALL:=$(firstword $(GINSTALL))
  1523. endif
  1524. endif
  1525. export GINSTALL
  1526. ifndef CPPROG
  1527. CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
  1528. ifeq ($(CPPROG),)
  1529. CPPROG= __missing_command_CPPROG
  1530. else
  1531. CPPROG:=$(firstword $(CPPROG))
  1532. endif
  1533. endif
  1534. export CPPROG
  1535. ifndef RMPROG
  1536. RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
  1537. ifeq ($(RMPROG),)
  1538. RMPROG= __missing_command_RMPROG
  1539. else
  1540. RMPROG:=$(firstword $(RMPROG))
  1541. endif
  1542. endif
  1543. export RMPROG
  1544. ifndef MVPROG
  1545. MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
  1546. ifeq ($(MVPROG),)
  1547. MVPROG= __missing_command_MVPROG
  1548. else
  1549. MVPROG:=$(firstword $(MVPROG))
  1550. endif
  1551. endif
  1552. export MVPROG
  1553. ifndef MKDIRPROG
  1554. MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
  1555. ifeq ($(MKDIRPROG),)
  1556. MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
  1557. ifeq ($(MKDIRPROG),)
  1558. MKDIRPROG= __missing_command_MKDIRPROG
  1559. else
  1560. MKDIRPROG:=$(firstword $(MKDIRPROG))
  1561. endif
  1562. else
  1563. MKDIRPROG:=$(firstword $(MKDIRPROG))
  1564. endif
  1565. endif
  1566. export MKDIRPROG
  1567. ifndef ECHOREDIR
  1568. ifndef inUnix
  1569. ECHOREDIR=echo
  1570. else
  1571. ECHOREDIR=$(ECHO)
  1572. endif
  1573. endif
  1574. ifndef COPY
  1575. COPY:=$(CPPROG) -fp
  1576. endif
  1577. ifndef COPYTREE
  1578. COPYTREE:=$(CPPROG) -Rfp
  1579. endif
  1580. ifndef MKDIRTREE
  1581. MKDIRTREE:=$(MKDIRPROG) -p
  1582. endif
  1583. ifndef MOVE
  1584. MOVE:=$(MVPROG) -f
  1585. endif
  1586. ifndef DEL
  1587. DEL:=$(RMPROG) -f
  1588. endif
  1589. ifndef DELTREE
  1590. DELTREE:=$(RMPROG) -rf
  1591. endif
  1592. ifndef INSTALL
  1593. ifdef inUnix
  1594. INSTALL:=$(GINSTALL) -c -m 644
  1595. else
  1596. INSTALL:=$(COPY)
  1597. endif
  1598. endif
  1599. ifndef INSTALLEXE
  1600. ifdef inUnix
  1601. INSTALLEXE:=$(GINSTALL) -c -m 755
  1602. else
  1603. INSTALLEXE:=$(COPY)
  1604. endif
  1605. endif
  1606. ifndef MKDIR
  1607. MKDIR:=$(GINSTALL) -m 755 -d
  1608. endif
  1609. export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
  1610. ifndef PPUMOVE
  1611. PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
  1612. ifeq ($(PPUMOVE),)
  1613. PPUMOVE= __missing_command_PPUMOVE
  1614. else
  1615. PPUMOVE:=$(firstword $(PPUMOVE))
  1616. endif
  1617. endif
  1618. export PPUMOVE
  1619. ifndef FPCMAKE
  1620. FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
  1621. ifeq ($(FPCMAKE),)
  1622. FPCMAKE= __missing_command_FPCMAKE
  1623. else
  1624. FPCMAKE:=$(firstword $(FPCMAKE))
  1625. endif
  1626. endif
  1627. export FPCMAKE
  1628. ifndef ZIPPROG
  1629. ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
  1630. ifeq ($(ZIPPROG),)
  1631. ZIPPROG= __missing_command_ZIPPROG
  1632. else
  1633. ZIPPROG:=$(firstword $(ZIPPROG))
  1634. endif
  1635. endif
  1636. export ZIPPROG
  1637. ifndef TARPROG
  1638. TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH))))
  1639. ifeq ($(TARPROG),)
  1640. TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
  1641. ifeq ($(TARPROG),)
  1642. TARPROG= __missing_command_TARPROG
  1643. else
  1644. TARPROG:=$(firstword $(TARPROG))
  1645. endif
  1646. else
  1647. TARPROG:=$(firstword $(TARPROG))
  1648. endif
  1649. endif
  1650. export TARPROG
  1651. ASNAME=$(BINUTILSPREFIX)as
  1652. LDNAME=$(BINUTILSPREFIX)ld
  1653. ARNAME=$(BINUTILSPREFIX)ar
  1654. RCNAME=$(BINUTILSPREFIX)rc
  1655. NASMNAME=$(BINUTILSPREFIX)nasm
  1656. ifndef ASPROG
  1657. ifdef CROSSBINDIR
  1658. ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
  1659. else
  1660. ASPROG=$(ASNAME)
  1661. endif
  1662. endif
  1663. ifndef LDPROG
  1664. ifdef CROSSBINDIR
  1665. LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
  1666. else
  1667. LDPROG=$(LDNAME)
  1668. endif
  1669. endif
  1670. ifndef RCPROG
  1671. ifdef CROSSBINDIR
  1672. RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
  1673. else
  1674. RCPROG=$(RCNAME)
  1675. endif
  1676. endif
  1677. ifndef ARPROG
  1678. ifdef CROSSBINDIR
  1679. ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
  1680. else
  1681. ARPROG=$(ARNAME)
  1682. endif
  1683. endif
  1684. ifndef NASMPROG
  1685. ifdef CROSSBINDIR
  1686. NASMPROG=$(CROSSBINDIR)/$(NASMNAME)$(SRCEXEEXT)
  1687. else
  1688. NASMPROG=$(NASMNAME)
  1689. endif
  1690. endif
  1691. AS=$(ASPROG)
  1692. LD=$(LDPROG)
  1693. RC=$(RCPROG)
  1694. AR=$(ARPROG)
  1695. NASM=$(NASMPROG)
  1696. ifdef inUnix
  1697. PPAS=./ppas$(SRCBATCHEXT)
  1698. else
  1699. PPAS=ppas$(SRCBATCHEXT)
  1700. endif
  1701. ifdef inUnix
  1702. LDCONFIG=ldconfig
  1703. else
  1704. LDCONFIG=
  1705. endif
  1706. ifdef DATE
  1707. DATESTR:=$(shell $(DATE) +%Y%m%d)
  1708. else
  1709. DATESTR=
  1710. endif
  1711. ZIPOPT=-9
  1712. ZIPEXT=.zip
  1713. ifeq ($(USETAR),bz2)
  1714. TAROPT=vj
  1715. TAREXT=.tar.bz2
  1716. else
  1717. TAROPT=vz
  1718. TAREXT=.tar.gz
  1719. endif
  1720. ifndef NOCPUDEF
  1721. override FPCOPTDEF=$(ARCH)
  1722. endif
  1723. ifneq ($(OS_TARGET),$(OS_SOURCE))
  1724. override FPCOPT+=-T$(OS_TARGET)
  1725. endif
  1726. ifneq ($(CPU_TARGET),$(CPU_SOURCE))
  1727. override FPCOPT+=-P$(ARCH)
  1728. endif
  1729. ifeq ($(OS_SOURCE),openbsd)
  1730. override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
  1731. override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH)
  1732. override FPMAKE_BUILD_OPT+=-FD$(NEW_BINUTILS_PATH)
  1733. endif
  1734. ifndef CROSSBOOTSTRAP
  1735. ifneq ($(BINUTILSPREFIX),)
  1736. override FPCOPT+=-XP$(BINUTILSPREFIX)
  1737. ifneq ($(RLINKPATH),)
  1738. override FPCOPT+=-Xr$(RLINKPATH)
  1739. endif
  1740. endif
  1741. endif
  1742. ifndef CROSSCOMPILE
  1743. ifneq ($(BINUTILSPREFIX),)
  1744. override FPCMAKEOPT+=-XP$(BINUTILSPREFIX)
  1745. override FPMAKE_BUILD_OPT+=-XP$(BINUTILSPREFIX)
  1746. endif
  1747. endif
  1748. ifdef UNITDIR
  1749. override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
  1750. endif
  1751. ifdef LIBDIR
  1752. override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
  1753. endif
  1754. ifdef OBJDIR
  1755. override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
  1756. endif
  1757. ifdef INCDIR
  1758. override FPCOPT+=$(addprefix -Fi,$(INCDIR))
  1759. endif
  1760. ifdef LINKSMART
  1761. override FPCOPT+=-XX
  1762. endif
  1763. ifdef CREATESMART
  1764. override FPCOPT+=-CX
  1765. endif
  1766. ifdef DEBUG
  1767. override FPCOPT+=-gl
  1768. override FPCOPTDEF+=DEBUG
  1769. endif
  1770. ifdef RELEASE
  1771. FPCCPUOPT:=-O2
  1772. override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
  1773. override FPCOPTDEF+=RELEASE
  1774. endif
  1775. ifdef STRIP
  1776. override FPCOPT+=-Xs
  1777. endif
  1778. ifdef OPTIMIZE
  1779. override FPCOPT+=-O2
  1780. endif
  1781. ifdef VERBOSE
  1782. override FPCOPT+=-vwni
  1783. endif
  1784. ifdef COMPILER_OPTIONS
  1785. override FPCOPT+=$(COMPILER_OPTIONS)
  1786. endif
  1787. ifdef COMPILER_UNITDIR
  1788. override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
  1789. endif
  1790. ifdef COMPILER_LIBRARYDIR
  1791. override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
  1792. endif
  1793. ifdef COMPILER_OBJECTDIR
  1794. override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
  1795. endif
  1796. ifdef COMPILER_INCLUDEDIR
  1797. override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
  1798. endif
  1799. ifdef CROSSBINDIR
  1800. override FPCOPT+=-FD$(CROSSBINDIR)
  1801. endif
  1802. ifdef COMPILER_TARGETDIR
  1803. override FPCOPT+=-FE$(COMPILER_TARGETDIR)
  1804. ifeq ($(COMPILER_TARGETDIR),.)
  1805. override TARGETDIRPREFIX=
  1806. else
  1807. override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
  1808. endif
  1809. endif
  1810. ifdef COMPILER_UNITTARGETDIR
  1811. override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
  1812. ifeq ($(COMPILER_UNITTARGETDIR),.)
  1813. override UNITTARGETDIRPREFIX=
  1814. else
  1815. override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
  1816. endif
  1817. else
  1818. ifdef COMPILER_TARGETDIR
  1819. override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
  1820. override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
  1821. endif
  1822. endif
  1823. ifdef SYSROOTPATH
  1824. override FPCOPT+=-XR$(SYSROOTPATH)
  1825. else
  1826. ifeq ($(OS_TARGET),$(OS_SOURCE))
  1827. ifeq ($(OS_TARGET),darwin)
  1828. ifeq ($(CPU_TARGET),aarch64)
  1829. ifneq ($(wildcard /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk),)
  1830. override FPCOPT+=-XR/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
  1831. endif
  1832. endif
  1833. endif
  1834. endif
  1835. endif
  1836. ifdef CREATESHARED
  1837. override FPCOPT+=-Cg
  1838. endif
  1839. ifneq ($(filter $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
  1840. ifneq ($(filter $(CPU_TARGET),x86_64 mips mipsel mips64 mips64el riscv64 powerpc64),)
  1841. override FPCOPT+=-Cg
  1842. endif
  1843. endif
  1844. ifneq ($(filter $(CPU_TARGET),z80),)
  1845. override FPCOPT+=-CX -XX
  1846. endif
  1847. ifdef LINKSHARED
  1848. endif
  1849. ifdef OPT
  1850. override FPCOPT+=$(OPT)
  1851. endif
  1852. ifdef FPMAKEBUILDOPT
  1853. override FPMAKE_BUILD_OPT+=$(FPMAKEBUILDOPT)
  1854. endif
  1855. ifdef FPCOPTDEF
  1856. override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
  1857. endif
  1858. ifdef CFGFILE
  1859. override FPCOPT+=@$(CFGFILE)
  1860. endif
  1861. ifdef USEENV
  1862. override FPCEXTCMD:=$(FPCOPT)
  1863. override FPCOPT:=!FPCEXTCMD
  1864. export FPCEXTCMD
  1865. endif
  1866. override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
  1867. override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
  1868. ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))
  1869. override ACROSSCOMPILE=1
  1870. endif
  1871. ifdef ACROSSCOMPILE
  1872. override FPCOPT+=$(CROSSOPT)
  1873. endif
  1874. override COMPILER:=$(strip $(FPC) $(FPCOPT))
  1875. ifneq (,$(filter -sh,$(COMPILER)))
  1876. UseEXECPPAS=1
  1877. endif
  1878. ifneq (,$(filter -s,$(COMPILER)))
  1879. ifeq ($(FULL_SOURCE),$(FULL_TARGET))
  1880. UseEXECPPAS=1
  1881. endif
  1882. endif
  1883. ifneq ($(UseEXECPPAS),1)
  1884. EXECPPAS=
  1885. else
  1886. ifdef RUNBATCH
  1887. EXECPPAS:=@$(RUNBATCH) $(PPAS)
  1888. else
  1889. EXECPPAS:=@$(PPAS)
  1890. endif
  1891. endif
  1892. .PHONY: fpc_loaders
  1893. ifneq ($(TARGET_LOADERS),)
  1894. override ALLTARGET+=fpc_loaders
  1895. override CLEANTARGET+=fpc_loaders_clean
  1896. override INSTALLTARGET+=fpc_loaders_install
  1897. override LOADEROFILES:=$(addsuffix $(OEXT),$(TARGET_LOADERS))
  1898. endif
  1899. %$(OEXT): %$(LOADEREXT)
  1900. ifdef COMPILER_UNITTARGETDIR
  1901. $(AS) -o $(COMPILER_UNITTARGETDIR)/$*$(OEXT) $<
  1902. else
  1903. $(AS) -o $*$(OEXT) $<
  1904. endif
  1905. fpc_loaders: $(COMPILER_UNITTARGETDIR) $(LOADEROFILES)
  1906. fpc_loaders_clean:
  1907. ifdef COMPILER_UNITTARGETDIR
  1908. -$(DEL) $(addprefix $(COMPILER_UNITTARGETDIR)/,$(LOADEROFILES))
  1909. else
  1910. -$(DEL) $(LOADEROFILES)
  1911. endif
  1912. fpc_loaders_install:
  1913. $(MKDIR) $(INSTALL_UNITDIR)
  1914. ifdef COMPILER_UNITTARGETDIR
  1915. $(INSTALL) $(addprefix $(COMPILER_UNITTARGETDIR)/,$(LOADEROFILES)) $(INSTALL_UNITDIR)
  1916. else
  1917. $(INSTALL) $(LOADEROFILES) $(INSTALL_UNITDIR)
  1918. endif
  1919. .PHONY: fpc_units
  1920. ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
  1921. override ALLTARGET+=fpc_units
  1922. override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
  1923. override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
  1924. override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
  1925. override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
  1926. endif
  1927. fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
  1928. ifdef TARGET_RSTS
  1929. override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
  1930. override CLEANRSTFILES+=$(RSTFILES)
  1931. endif
  1932. .PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared
  1933. $(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
  1934. @$(ECHOREDIR) Compiled > $(FPCMADE)
  1935. fpc_all: $(FPCMADE)
  1936. fpc_smart:
  1937. $(MAKE) all LINKSMART=1 CREATESMART=1
  1938. fpc_debug:
  1939. $(MAKE) all DEBUG=1
  1940. fpc_release:
  1941. $(MAKE) all RELEASE=1
  1942. .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) $(LTOEXT) .pas .lpr .dpr .pp .rc .res
  1943. $(COMPILER_UNITTARGETDIR):
  1944. $(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
  1945. $(COMPILER_TARGETDIR):
  1946. $(MKDIRTREE) $(COMPILER_TARGETDIR)
  1947. %$(PPUEXT): %.pp
  1948. $(COMPILER) $<
  1949. $(EXECPPAS)
  1950. %$(PPUEXT): %.pas
  1951. $(COMPILER) $<
  1952. $(EXECPPAS)
  1953. %$(EXEEXT): %.pp
  1954. $(COMPILER) $<
  1955. $(EXECPPAS)
  1956. %$(EXEEXT): %.pas
  1957. $(COMPILER) $<
  1958. $(EXECPPAS)
  1959. %$(EXEEXT): %.lpr
  1960. $(COMPILER) $<
  1961. $(EXECPPAS)
  1962. %$(EXEEXT): %.dpr
  1963. $(COMPILER) $<
  1964. $(EXECPPAS)
  1965. %.res: %.rc
  1966. windres -i $< -o $@
  1967. vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  1968. vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  1969. vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  1970. vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  1971. vpath %.inc $(COMPILER_INCLUDEDIR)
  1972. vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
  1973. vpath %$(LTOEXT) $(COMPILER_UNITTARGETDIR)
  1974. vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
  1975. .PHONY: fpc_shared
  1976. override INSTALLTARGET+=fpc_shared_install
  1977. ifndef SHARED_LIBVERSION
  1978. SHARED_LIBVERSION=$(FPC_VERSION)
  1979. endif
  1980. ifndef SHARED_LIBNAME
  1981. SHARED_LIBNAME=$(PACKAGE_NAME)
  1982. endif
  1983. ifndef SHARED_FULLNAME
  1984. SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSION)$(SHAREDLIBEXT)
  1985. endif
  1986. ifndef SHARED_LIBUNITS
  1987. SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS)
  1988. override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_LIBUNITS))
  1989. endif
  1990. fpc_shared:
  1991. ifdef HASSHAREDLIB
  1992. $(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1
  1993. ifneq ($(SHARED_BUILD),n)
  1994. $(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR) -P$(BINUTILSPREFIX)
  1995. endif
  1996. else
  1997. @$(ECHO) Shared Libraries not supported
  1998. endif
  1999. fpc_shared_install:
  2000. ifneq ($(SHARED_BUILD),n)
  2001. ifneq ($(SHARED_LIBUNITS),)
  2002. ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)
  2003. $(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INSTALL_SHAREDDIR)
  2004. endif
  2005. endif
  2006. endif
  2007. .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
  2008. ifdef INSTALL_UNITS
  2009. override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
  2010. endif
  2011. ifdef INSTALL_BUILDUNIT
  2012. override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
  2013. endif
  2014. ifdef INSTALLPPUFILES
  2015. ifneq ($(IMPORTLIBPREFIX)-$(STATICLIBEXT),$(STATICLIBPREFIX)-$(STATICLIBEXT))
  2016. override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(subst $(PPUEXT),$(LTOEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
  2017. else
  2018. override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(subst $(PPUEXT),$(LTOEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
  2019. endif
  2020. ifneq ($(UNITTARGETDIRPREFIX),)
  2021. override INSTALLPPUFILENAMES:=$(notdir $(INSTALLPPUFILES))
  2022. override INSTALLPPULINKFILENAMES:=$(notdir $(INSTALLPPULINKFILES))
  2023. override INSTALLPPUFILES=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILENAMES))
  2024. override INSTALLPPULINKFILES=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILENAMES)))
  2025. endif
  2026. override INSTALL_CREATEPACKAGEFPC=1
  2027. endif
  2028. ifdef INSTALLEXEFILES
  2029. ifneq ($(TARGETDIRPREFIX),)
  2030. override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
  2031. endif
  2032. endif
  2033. fpc_install: all $(INSTALLTARGET)
  2034. ifdef INSTALLEXEFILES
  2035. $(MKDIR) $(INSTALL_BINDIR)
  2036. $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
  2037. endif
  2038. ifdef INSTALL_CREATEPACKAGEFPC
  2039. ifdef FPCMAKE
  2040. ifdef PACKAGE_VERSION
  2041. ifneq ($(wildcard Makefile.fpc),)
  2042. $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
  2043. $(MKDIR) $(INSTALL_UNITDIR)
  2044. $(INSTALL) Package.fpc $(INSTALL_UNITDIR)
  2045. endif
  2046. endif
  2047. endif
  2048. endif
  2049. ifdef INSTALLPPUFILES
  2050. $(MKDIR) $(INSTALL_UNITDIR)
  2051. $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
  2052. ifneq ($(INSTALLPPULINKFILES),)
  2053. $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
  2054. endif
  2055. ifneq ($(wildcard $(LIB_FULLNAME)),)
  2056. $(MKDIR) $(INSTALL_LIBDIR)
  2057. $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
  2058. ifdef inUnix
  2059. ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
  2060. endif
  2061. endif
  2062. endif
  2063. ifdef INSTALL_FILES
  2064. $(MKDIR) $(INSTALL_DATADIR)
  2065. $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
  2066. endif
  2067. fpc_sourceinstall: distclean
  2068. $(MKDIR) $(INSTALL_SOURCEDIR)
  2069. $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
  2070. fpc_exampleinstall: $(EXAMPLEINSTALLTARGET) $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
  2071. ifdef HASEXAMPLES
  2072. $(MKDIR) $(INSTALL_EXAMPLEDIR)
  2073. endif
  2074. ifdef EXAMPLESOURCEFILES
  2075. $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
  2076. endif
  2077. ifdef TARGET_EXAMPLEDIRS
  2078. $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
  2079. endif
  2080. .PHONY: fpc_clean fpc_cleanall fpc_distclean
  2081. ifdef EXEFILES
  2082. override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
  2083. override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES))
  2084. endif
  2085. ifdef CLEAN_PROGRAMS
  2086. override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS)))
  2087. override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS)))
  2088. endif
  2089. ifdef CLEAN_UNITS
  2090. override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
  2091. endif
  2092. ifdef CLEANPPUFILES
  2093. override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(subst $(PPUEXT),$(LTOEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
  2094. ifdef DEBUGSYMEXT
  2095. override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
  2096. endif
  2097. override CLEANPPUFILENAMES:=$(CLEANPPUFILES)
  2098. override CLEANPPUFILES=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILENAMES))
  2099. override CLEANPPULINKFILENAMES:=$(CLEANPPULINKFILES)
  2100. override CLEANPPULINKFILES=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILENAMES)))
  2101. endif
  2102. fpc_clean: $(CLEANTARGET)
  2103. ifdef CLEANEXEFILES
  2104. -$(DEL) $(CLEANEXEFILES)
  2105. endif
  2106. ifdef CLEANEXEDBGFILES
  2107. -$(DELTREE) $(CLEANEXEDBGFILES)
  2108. endif
  2109. ifdef CLEANPPUFILES
  2110. -$(DEL) $(CLEANPPUFILES)
  2111. endif
  2112. ifneq ($(CLEANPPULINKFILES),)
  2113. -$(DEL) $(CLEANPPULINKFILES)
  2114. endif
  2115. ifdef CLEANRSTFILES
  2116. -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
  2117. endif
  2118. ifdef CLEAN_FILES
  2119. -$(DEL) $(CLEAN_FILES)
  2120. endif
  2121. ifdef LIB_NAME
  2122. -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
  2123. endif
  2124. -$(DEL) $(FPCMADE) *$(FULL_TARGET).fpm Package.fpc *$(ASMEXT)
  2125. -$(DEL) $(FPCEXTFILE) $(REDIRFILE) script*.res link*.res *_script.res *_link.res
  2126. -$(DEL) $(PPAS) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
  2127. fpc_cleanall: $(CLEANTARGET)
  2128. ifdef CLEANEXEFILES
  2129. -$(DEL) $(CLEANEXEFILES)
  2130. endif
  2131. ifdef COMPILER_UNITTARGETDIR
  2132. ifdef CLEANPPUFILES
  2133. -$(DEL) $(CLEANPPUFILES)
  2134. endif
  2135. ifneq ($(CLEANPPULINKFILES),)
  2136. -$(DEL) $(CLEANPPULINKFILES)
  2137. endif
  2138. ifdef CLEANRSTFILES
  2139. -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
  2140. endif
  2141. endif
  2142. ifdef CLEAN_FILES
  2143. -$(DEL) $(CLEAN_FILES)
  2144. endif
  2145. -$(DELTREE) units
  2146. -$(DELTREE) bin
  2147. -$(DEL) *$(OEXT) *$(LTOEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
  2148. ifneq ($(PPUEXT),.ppu)
  2149. -$(DEL) *.o *.ppu *.a
  2150. endif
  2151. -$(DELTREE) *$(SMARTEXT)
  2152. -$(DEL) fpcmade.* Package.fpc *.fpm
  2153. -$(DEL) $(FPCEXTFILE) $(REDIRFILE) script*.res link*.res *_script.res *_link.res
  2154. -$(DEL) $(PPAS) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
  2155. ifdef AOUTEXT
  2156. -$(DEL) *$(AOUTEXT)
  2157. endif
  2158. ifdef DEBUGSYMEXT
  2159. -$(DEL) *$(DEBUGSYMEXT)
  2160. endif
  2161. ifdef LOCALFPMAKEBIN
  2162. -$(DEL) $(LOCALFPMAKEBIN)
  2163. -$(DEL) $(FPMAKEBINOBJ)
  2164. endif
  2165. fpc_distclean: cleanall
  2166. .PHONY: fpc_baseinfo
  2167. override INFORULES+=fpc_baseinfo
  2168. fpc_baseinfo:
  2169. @$(ECHO)
  2170. @$(ECHO) == Package info ==
  2171. @$(ECHO) Package Name..... $(PACKAGE_NAME)
  2172. @$(ECHO) Package Version.. $(PACKAGE_VERSION)
  2173. @$(ECHO)
  2174. @$(ECHO) == Configuration info ==
  2175. @$(ECHO)
  2176. @$(ECHO) FPC.......... $(FPC)
  2177. @$(ECHO) FPC Version.. $(FPC_VERSION)
  2178. @$(ECHO) Source CPU... $(CPU_SOURCE)
  2179. @$(ECHO) Target CPU... $(CPU_TARGET)
  2180. @$(ECHO) Source OS.... $(OS_SOURCE)
  2181. @$(ECHO) Target OS.... $(OS_TARGET)
  2182. @$(ECHO) Full Source.. $(FULL_SOURCE)
  2183. @$(ECHO) Full Target.. $(FULL_TARGET)
  2184. @$(ECHO) SourceSuffix. $(SOURCESUFFIX)
  2185. @$(ECHO) TargetSuffix. $(TARGETSUFFIX)
  2186. @$(ECHO) FPC fpmake... $(FPCFPMAKE)
  2187. @$(ECHO)
  2188. @$(ECHO) == Directory info ==
  2189. @$(ECHO)
  2190. @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)
  2191. @$(ECHO)
  2192. @$(ECHO) Basedir......... $(BASEDIR)
  2193. @$(ECHO) FPCDir.......... $(FPCDIR)
  2194. @$(ECHO) CrossBinDir..... $(CROSSBINDIR)
  2195. @$(ECHO) UnitsDir........ $(UNITSDIR)
  2196. @$(ECHO) PackagesDir..... $(PACKAGESDIR)
  2197. @$(ECHO)
  2198. @$(ECHO) GCC library..... $(GCCLIBDIR)
  2199. @$(ECHO) Other library... $(OTHERLIBDIR)
  2200. @$(ECHO)
  2201. @$(ECHO) == Tools info ==
  2202. @$(ECHO)
  2203. @$(ECHO) As........ $(AS)
  2204. @$(ECHO) Ld........ $(LD)
  2205. @$(ECHO) Ar........ $(AR)
  2206. @$(ECHO) Rc........ $(RC)
  2207. @$(ECHO)
  2208. @$(ECHO) Mv........ $(MVPROG)
  2209. @$(ECHO) Cp........ $(CPPROG)
  2210. @$(ECHO) Rm........ $(RMPROG)
  2211. @$(ECHO) GInstall.. $(GINSTALL)
  2212. @$(ECHO) Echo...... $(ECHO)
  2213. @$(ECHO) Shell..... $(SHELL)
  2214. @$(ECHO) Date...... $(DATE)
  2215. @$(ECHO) FPCMake... $(FPCMAKE)
  2216. @$(ECHO) PPUMove... $(PPUMOVE)
  2217. @$(ECHO) Zip....... $(ZIPPROG)
  2218. @$(ECHO)
  2219. @$(ECHO) == Object info ==
  2220. @$(ECHO)
  2221. @$(ECHO) Target Loaders........ $(TARGET_LOADERS)
  2222. @$(ECHO) Target Units.......... $(TARGET_UNITS)
  2223. @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)
  2224. @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)
  2225. @$(ECHO) Target Dirs........... $(TARGET_DIRS)
  2226. @$(ECHO) Target Examples....... $(TARGET_EXAMPLES)
  2227. @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
  2228. @$(ECHO)
  2229. @$(ECHO) Clean Units......... $(CLEAN_UNITS)
  2230. @$(ECHO) Clean Files......... $(CLEAN_FILES)
  2231. @$(ECHO)
  2232. @$(ECHO) Install Units....... $(INSTALL_UNITS)
  2233. @$(ECHO) Install Files....... $(INSTALL_FILES)
  2234. @$(ECHO)
  2235. @$(ECHO) == Install info ==
  2236. @$(ECHO)
  2237. @$(ECHO) DateStr.............. $(DATESTR)
  2238. @$(ECHO) ZipName.............. $(ZIPNAME)
  2239. @$(ECHO) ZipPrefix............ $(ZIPPREFIX)
  2240. @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX)
  2241. @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
  2242. @$(ECHO) FullZipName.......... $(FULLZIPNAME)
  2243. @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)
  2244. @$(ECHO)
  2245. @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)
  2246. @$(ECHO) Install binary dir... $(INSTALL_BINDIR)
  2247. @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)
  2248. @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)
  2249. @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)
  2250. @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)
  2251. @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)
  2252. @$(ECHO) Install data dir..... $(INSTALL_DATADIR)
  2253. @$(ECHO)
  2254. @$(ECHO) Dist destination dir. $(DIST_DESTDIR)
  2255. @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)
  2256. @$(ECHO)
  2257. .PHONY: fpc_info
  2258. fpc_info: $(INFORULES)
  2259. .PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
  2260. fpc_makefile_dirs
  2261. fpc_makefile:
  2262. $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
  2263. fpc_makefile_sub1:
  2264. ifdef TARGET_DIRS
  2265. $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
  2266. endif
  2267. ifdef TARGET_EXAMPLEDIRS
  2268. $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
  2269. endif
  2270. fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
  2271. fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
  2272. fpc_makefiles: fpc_makefile fpc_makefile_dirs
  2273. all: fpc_all
  2274. debug: fpc_debug
  2275. smart: fpc_smart
  2276. release: fpc_release
  2277. units: fpc_units
  2278. examples:
  2279. shared: fpc_shared
  2280. install: fpc_install
  2281. sourceinstall: fpc_sourceinstall
  2282. exampleinstall: fpc_exampleinstall
  2283. distinstall:
  2284. zipinstall:
  2285. zipsourceinstall:
  2286. zipexampleinstall:
  2287. zipdistinstall:
  2288. clean: fpc_clean
  2289. distclean: fpc_distclean
  2290. cleanall: fpc_cleanall
  2291. info: fpc_info
  2292. makefiles: fpc_makefiles
  2293. .PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
  2294. ifneq ($(wildcard fpcmake.loc),)
  2295. include fpcmake.loc
  2296. endif
  2297. ifndef OSDIR
  2298. OSDIR=.
  2299. endif
  2300. ifndef PORTSDIR
  2301. PORTSDIR=$(OSDIR)
  2302. endif
  2303. ifndef DYNLIBSINCDIR
  2304. DYNLIBSINCDIR=$(OSDIR)
  2305. endif
  2306. ifndef INITCDIR
  2307. INITCDIR=$(OSDIR)
  2308. endif
  2309. ifndef DOSDIR
  2310. DOSDIR=$(OSDIR)
  2311. NSDOSDIR=$(NSDIR)/$(DOSDIR)
  2312. endif
  2313. ifndef SYSUTILSDIR
  2314. SYSUTILSDIR=$(OSDIR)
  2315. endif
  2316. ifndef NSSYSUTILSDIR
  2317. NSSYSUTILSDIR=$(NSDIR)/$(SYSUTILSDIR)
  2318. endif
  2319. ifndef CLASSESDIR
  2320. CLASSESDIR=$(OSDIR)
  2321. endif
  2322. ifndef NSCLASSESDIR
  2323. NSCLASSESDIR=$(NSDIR)/$(CLASSESDIR)
  2324. endif
  2325. ifndef NSBSDDIR
  2326. NSBSDDIR=$(NSDIR)/bsd
  2327. endif
  2328. ifdef FPC_DOTTEDUNITS
  2329. MACPAS_OPT:=$(MACPAS_OPT) -dFPC_DOTTEDUNITS
  2330. EXTPAS_OPT:=$(EXTPAS_OPT) -dFPC_DOTTEDUNITS
  2331. endif
  2332. ifndef SYSTEMUNITEXT
  2333. SYSTEMUNITEXT=pp
  2334. endif
  2335. ifndef DOSUNITEXT
  2336. DOSUNITEXT=pp
  2337. endif
  2338. ifndef PORTSUNITEXT
  2339. PORTSUNITEXT=pp
  2340. endif
  2341. ifndef BASEUNIXDIR
  2342. BASEUNIXDIR=$(UNIXINC)
  2343. endif
  2344. ifndef EXTPAS_DEPS_OS
  2345. EXTPAS_DEPS_OS=$(DOSUNIT)$(PPUEXT)
  2346. endif
  2347. ifdef FPC_DOTTEDUNITS
  2348. BLOCKRTL_OPT:=$(BLOCKRTL_OPT) -dFPC_DOTTEDUNITS
  2349. FPEXTRES_OPT:=$(FPEXTRES_OPT) -dFPC_DOTTEDUNITS
  2350. OBJC_OPT:=$(OBJC_OPT) -dFPC_DOTTEDUNITS
  2351. endif
  2352. $(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).$(SYSTEMUNITEXT) $(SYSDEPS)
  2353. $(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $<
  2354. UUCHAR_DEPS=$(INC)/uuchar.pp \
  2355. $(SYSTEMUNIT)$(PPUEXT) \
  2356. $(UUCHAR_DEPS_OS) $(UUCHAR_DEPS_CPU)
  2357. uuchar$(PPUEXT): $(UUCHAR_DEPS)
  2358. $(COMPILER) $(UUCHAR_OPT) $<
  2359. UACHAR_DEPS=$(INC)/uachar.pp \
  2360. $(SYSTEMUNIT)$(PPUEXT) \
  2361. $(UACHAR_DEPS_OS) $(UACHAR_DEPS_CPU)
  2362. uachar$(PPUEXT): $(UACHAR_DEPS)
  2363. $(COMPILER) $(UACHAR_OPT) $<
  2364. OBJPAS_DEPS= $(OBJPASDIR)/objpas.pp $(INC)/except.inc \
  2365. $(SYSTEMUNIT)$(PPUEXT) \
  2366. $(OBJPAS_DEPS_OS) $(OBJPAS_DEPS_SPU)
  2367. objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
  2368. $(COMPILER) $(OBJPAS_OPT) -I$(OBJPASDIR) $<
  2369. MACPAS_DEPS=$(INC)/macpas.pp \
  2370. objpas$(PPUEXT) $(MATHUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  2371. $(MACPAS_DEPS_OS) $(MACPAS_DEPS_CPU)
  2372. macpas$(PPUEXT) : $(MACPAS_DEPS)
  2373. $(COMPILER) $(MACPAS_OPT) $<
  2374. ISO7185_DEPS= $(INC)/$(ISO7185UNIT).pp \
  2375. $(SYSTEMUNIT)$(PPUEXT) \
  2376. $(ISO7185_DEPS_OS) $(ISO7185_DEPS_CPU)
  2377. iso7185$(PPUEXT) : $(ISO7185_DEPS)
  2378. $(COMPILER) $(ISO7185_OPT) $<
  2379. EXTPAS_DEPS=$(INC)/extpas.pp \
  2380. $(SYSTEMUNIT)$(PPUEXT) \
  2381. $(EXTPAS_DEPS_OS) $(EXTPAS_DEPS_CPU)
  2382. extpas$(PPUEXT) : $(EXTPAS_DEPS)
  2383. $(COMPILER) $(EXTPAS_OPT) $<
  2384. FPINTRES_DEPS= $(INC)/fpintres.pp $(SYSTEMUNIT)$(PPUEXT) \
  2385. $(FPINTRES_DEPS_OS) $(FPINTRES_DEPS_CPU)
  2386. fpintres$(PPUEXT) : $(FPINTRES_DEPS)
  2387. $(COMPILER) $(FPINTRES_OPT) $<
  2388. FPEXTRES_DEPS= $(INC)/fpextres.pp $(SYSTEMUNIT)$(PPUEXT) \
  2389. $(FPEXTRES_DEPS_OS) $(FPEXTRES_DEPS_CPU)
  2390. fpextres$(PPUEXT) : $(FPEXTRES_DEPS)
  2391. $(COMPILER) -Sg $(FPEXTRES_OPT) $<
  2392. HEAPTRC_DEPS=$(INC)/heaptrc.pp \
  2393. $(SYSTEMUNIT)$(PPUEXT) \
  2394. $(HEAPTRC_DEPS_OS) $(HEAPTRC_DEPS_CPU)
  2395. heaptrc$(PPUEXT) : $(HEAPTRC_DEPS)
  2396. $(COMPILER) $(HEAPTRC_OPT) $<
  2397. SOFTFPU_DEPS=$(INC)/softfpu.pp \
  2398. $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) \
  2399. $(SOFTFPU_DEPS_OS) $(SOFTFPU_DEPS_CPU)
  2400. softfpu$(PPUEXT) : $(SOFTFPU_DEPS)
  2401. $(COMPILER) $(SOFTFPU_OPT) $<
  2402. System.SoftFPU$(PPUEXT) : $(NSINC)/System.SoftFPU.pp $(SOFTFPU_DEPS)
  2403. $(COMPILER) $(SOFTFPU_OPT) $<
  2404. SFPUX80_DEPS=$(INC)/sfpux80.pp $(INC)/softfpu.pp \
  2405. $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) \
  2406. $(SFPUX80_DEPS_OS) $(SFPUX80_DEPS_CPU)
  2407. sfpux80$(PPUEXT) : $(SFPUX80_DEPS)
  2408. $(COMPILER) $(SFPUX80_OPT) $<
  2409. System.SoftFpuX80$(PPUEXT) : $(NSINC)/System.SoftFpuX80.pp $(SFPUX80_DEPS)
  2410. $(COMPILER) $(SFPUX80_OPT) $<
  2411. SFPU128_DEPS=$(INC)/sfpu128.pp $(INC)/softfpu.pp \
  2412. $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) \
  2413. $(SFPU128_DEPS_OS) $(SFPU128_DEPS_CPU)
  2414. sfpu128$(PPUEXT) : $(SFPU128_DEPS)
  2415. $(COMPILER) $(SFPUX128_OPT) $<
  2416. System.SoftFpu128$(PPUEXT) : $(NSINC)/System.SoftFpu128.pp $(SFPU128_DEPS)
  2417. $(COMPILER) $(SFPUX128_OPT) $<
  2418. UFLOATX80_DEPS=$(INC)/ufloatx80.pp \
  2419. $(SFPUX80UNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  2420. $(UFLOATX80_DEPS_OS) $(UFLOATX80_DEPS_CPU)
  2421. ufloatx80$(PPUEXT) : $(UFLOATX80_DEPS)
  2422. $(COMPILER) $(UFLOATX80_OPT) $<
  2423. System.UFloatX80$(PPUEXT) : $(NSINC)/System.UFloatX80.pp $(UFLOATX80_DEPS)
  2424. $(COMPILER) $(UFLOATX80_OPT) $<
  2425. UFLOAT128_DEPS=$(INC)/ufloat128.pp \
  2426. $(SFPU128UNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  2427. $(UFLOAT128_DEPS_OS) $(UFLOAT128_DEPS_CPU)
  2428. ufloat128$(PPUEXT) : $(UFLOAT128_DEPS)
  2429. $(COMPILER) $(UFLOAT128_OPT) $<
  2430. System.UFloat128$(PPUEXT) : $(NSINC)/System.UFloat128.pp $(UFLOAT128_DEPS)
  2431. $(COMPILER) $(UFLOAT128_OPT) $<
  2432. STRINGS_DEPS=$(INC)/strings.pp $(INC)/stringsi.inc $(PROCINC)/stringss.inc $(PROCINC)/strings.inc \
  2433. $(SYSTEMUNIT)$(PPUEXT) \
  2434. $(STRINGS_DEPS_OS)
  2435. strings$(PPUEXT) : $(STRINGS_DEPS)
  2436. $(COMPILER) $(STRINGS_OPT) $<
  2437. System.Strings$(PPUEXT) : $(NSINC)/System.Strings.pp $(STRINGS_DEPS)
  2438. $(COMPILER) $(STRINGS_OPT) $<
  2439. PORTS_DEPS=$(PORTSDIR)/ports.$(PORTSUNITEXT) \
  2440. $(SYSTEMUNIT)$(PPUEXT) \
  2441. $(PORTS_DEPS_OS) $(PORTS_DEPS_CPU)
  2442. ports$(PPUEXT) : $(PORTS_DEPS)
  2443. $(COMPILER) $(PORTS_OPT) $<
  2444. System.Ports$(PPUEXT) : $(NSINC)/System.Ports.pp $(PORTS_DEPS)
  2445. $(COMPILER) $(PORTS_OPT) $<
  2446. DYNLIBS_DEPS=$(INC)/dynlibs.pas $(OSDIR)/dynlibs.inc \
  2447. objpas$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) $(SYSUTILSUNIT)$(PPUEXT) \
  2448. $(DYNLIBS_DEPS_OS) $(DYNLIBS_DEPS_CPU)
  2449. dynlibs$(PPUEXT) : $(DYNLIBS_DEPS)
  2450. $(COMPILER) $(DYNLIBS_OPT) $<
  2451. System.DynLibs$(PPUEXT) : $(NSINC)/System.DynLibs.pas $(DYNLIBS_DEPS)
  2452. $(COMPILER) $(DYNLIBS_OPT) $<
  2453. INITC_DEPS=$(INITCDIR)/initc.pp $(CTYPESUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  2454. $(INITC_DEPS_OS) $(INITC_DEPS_CPU)
  2455. initc$(PPUEXT) : $(INITC_DEPS)
  2456. $(COMPILER) $(INITC_OPT) $<
  2457. System.InitC$(PPUEXT) : $(NSINC)/System.InitC.pp $(INITC_DEPS)
  2458. $(COMPILER) $(INITC_OPT) $<
  2459. UNIXCP_DEPS=$(UNIXINC)/unixcp.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) \
  2460. $(UNIXCP_DEPS_OS) $(UNIXCP_DEPS_CPU)
  2461. unixcp$(PPUEXT) : $(UNIXCP_DEPS)
  2462. $(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
  2463. UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
  2464. $(COMPILER) $(UNIXCP_OPT) $<
  2465. LINUX_DEPS=$(OSDIR)/linux.pp \
  2466. $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  2467. $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
  2468. linux$(PPUEXT): $(LINUX_DEPS)
  2469. $(COMPILER) $<
  2470. LinuxApi$(PPUEXT): $(NSOSDIR)/LinuxApi.pp $(LINUX_DEPS)
  2471. $(COMPILER) $(LINUX_OPT) $<
  2472. LINUXVCS_DEPS=$(OSDIR)/linuxvcs.pp $(BASEUNIXUNIT)$(PPUEXT) $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  2473. $(LINUXVCS_DEPS_OS) $(LINUXVCS_DEPS_CPU)
  2474. linuxvcs$(PPUEXT): $(LINUXVCS_DEPS)
  2475. $(COMPILER) $(LINUXVCS_OPT) $<
  2476. LinuxApi.Vcs$(PPUEXT): $(NSOSDIR)/LinuxApi.Vcs.pp $(LINUXVCS_DEPS)
  2477. $(COMPILER) $(LINUXVCS_OPT) $<
  2478. FPCYLIX_DEPS=fpcylix.pp \
  2479. $(CTHREADSUNIT)$(PPUEXT) $(CWSTRINGUNIT)$(PPUEXT) $(DYNLIBSUNIT)$(PPUEXT) \
  2480. objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  2481. $(FPCYLIX_DEPS_OS) $(FPCYLIX_DEPS_CPU)
  2482. fpcylix$(PPUEXT) : $(FPCYLIX_DEPS)
  2483. $(COMPILER) $(FPCYLIX_OPT) $<
  2484. TERMIO_DEPS=$(OSDIR)/termio.pp $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  2485. $(TERMIO_DEPS_OS) $(TERMIO_DEPS_CPU)
  2486. termio$(PPUEXT) : $(TERMIO_DEPS)
  2487. $(COMPILER) $(TERMIO_OPT) $<
  2488. UnixApi.TermIO$(PPUEXT) : $(NSINC)/UnixApi.TermIO.pp $(TERMIO_DEPS)
  2489. $(COMPILER) $(TERMIO_OPT) $<
  2490. DOS_DEPS=$(DOSDIR)/dos.$(DOSUNITEXT) $(INC)/filerec.inc $(INC)/textrec.inc \
  2491. $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  2492. $(DOS_DEPS_OS) $(DOS_DEPS_CPU)
  2493. dos$(PPUEXT): $(DOS_DEPS)
  2494. $(COMPILER) $(DOS_OPTS) $<
  2495. TP.DOS$(PPUEXT): $(NSINC)/TP.DOS.pp $(DOS_DEPS)
  2496. $(COMPILER) $(DOS_OPTS) $<
  2497. SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
  2498. $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
  2499. $(UNIXUTILUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT)
  2500. SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
  2501. objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
  2502. $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
  2503. sysutils$(PPUEXT) : $(SYSUTILS_DEPS)
  2504. $(COMPILER) -Fi$(OBJPASDIR)/$(SYSUTILSUNIT) $<
  2505. System.SysUtils$(PPUEXT) : $(NSINC)/System.SysUtils.pp $(SYSUTILS_DEPS)
  2506. $(COMPILER) $(SYSUTILS_OPT) -Fi$(OBJPASDIR)/sysutils $<
  2507. CLASSES_DEPS=$(CLASSESDIR)/classes.pp $(wildcard $(OBJPASDIR)/$(CLASSESUNIT)/*.inc) \
  2508. $(SYSUTILSUNIT)$(PPUEXT) $(TYPINFOUNIT)$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) \
  2509. $(FGLUNIT)$(PPUEXT) $(TYPESUNIT)$(PPUEXT) \
  2510. $(CLASSES_DEPS_OS) $(CLASSES_DEPS_CPU)
  2511. classes$(PPUEXT) : $(CLASSES_DEPS)
  2512. $(COMPILER) -Fi$(OBJPASDIR)/classes $(CLASSES_OPT) $<
  2513. System.Classes$(PPUEXT) : $(NSINC)/System.Classes.pp $(CLASSES_DEPS)
  2514. $(COMPILER) -Fi$(OBJPASDIR)/classes $(CLASSES_OPT) $<
  2515. TYPINFO_DEPS=$(OBJPASDIR)/typinfo.pp \
  2516. objpas$(PPUEXT) $(SYSUTILSUNIT)$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) \
  2517. $(TYPINFO_DEPS_OS) $(TYPINFO_DEPS_CPU)
  2518. typinfo$(PPUEXT): $(TYPINFO_DEPS)
  2519. $(COMPILER) -Sg $(TYPINFO_OPT) $<
  2520. System.TypInfo$(PPUEXT): $(NSINC)/System.TypInfo.pp $(TYPINFO_DEPS)
  2521. $(COMPILER) -Fi$(OBJPASDIR) -Sg $(TYPINFO_OPT) $<
  2522. CHARACTER_DEPS=$(OBJPASDIR)/character.pas \
  2523. $(SYSUTILSUNIT)$(PPUEXT) objpas$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) \
  2524. $(CHARACTER_DEPS_OS) $(CHARACTER_DEPS_CPU)
  2525. character$(PPUEXT): $(CHARACTER_DEPS)
  2526. $(COMPILER) $(CHARACTER_OPT) $<
  2527. System.Character$(PPUEXT): $(NSINC)/System.Character.pas $(CHARACTER_DEPS)
  2528. $(COMPILER) $(CHARACTER_OPT) -Fi$(OBJPASDIR) $<
  2529. MATH_DEPS= $(OBJPASDIR)/math.pp \
  2530. objpas$(PPUEXT) $(SYSUTILSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  2531. $(MATH_DEPS_OS) $(MATH_DEPS_CPU)
  2532. math$(PPUEXT): $(MATH_DEPS)
  2533. $(COMPILER) $(MATH_OPT) $<
  2534. System.Math$(PPUEXT): $(NSINC)/System.Math.pp $(MATH_DEPS)
  2535. $(COMPILER) $(MATH_OPT) -Fi$(OBJPASDIR) $<
  2536. FGL_DEPS=$(OBJPASDIR)/fgl.pp \
  2537. objpas$(PPUEXT) $(TYPESUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  2538. $(SYSUTILSUNIT)$(PPUEXT) $(SORTBASEUNIT)$(PPUEXT) \
  2539. $(FCL_DEPS_OS) $(FCL_DEPS_CPU)
  2540. fgl$(PPUEXT) : $(FGL_DEPS)
  2541. $(COMPILER) $(FGL_OPT) $<
  2542. System.FGL$(PPUEXT) : $(NSINC)/System.FGL.pp $(FGL_DEPS)
  2543. $(COMPILER) -Fi$(OBJPASDIR) $(FGL_OPT) $<
  2544. TYPES_DEPS=$(OBJPASDIR)/types.pp \
  2545. objpas$(PPUEXT) $(MATHUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  2546. $(TYPES_DEPS_OS) $(TYPES_DEPS_CPU)
  2547. types$(PPUEXT) : $(TYPES_DEPS)
  2548. $(COMPILER) $(TYPES_OPT) $<
  2549. System.Types$(PPUEXT) : $(NSINC)/System.Types.pp $(TYPES_DEPS)
  2550. $(COMPILER) -Fi$(OBJPASDIR) $(TYPES_OPT) $<
  2551. SYSCONST_DEPS=$(OBJPASDIR)/sysconst.pp \
  2552. objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  2553. $(SYSCONST_DEPS_OS) $(SYSCONST_DEPS_CPU)
  2554. sysconst$(PPUEXT) : $(SYSCONST_DEPS)
  2555. $(COMPILER) $(SYSCONST_OPT) $<
  2556. System.SysConst$(PPUEXT) : $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
  2557. $(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
  2558. RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
  2559. objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  2560. $(RTLCONST_DEPS_OS) $(RTLCONST_DEPS_CPU)
  2561. rtlconsts$(PPUEXT) : $(RTLCONSTS_DEPS)
  2562. $(COMPILER) $(RTLCONSTS_OPT) $<
  2563. System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
  2564. $(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
  2565. ifneq ($(findstring $(ARCH),x86_64 i386),)
  2566. CPU_DEPS_OS:=$(CPU_DEPS_OS) $(SYSUTILSUNIT)$(PPUEXT)
  2567. endif
  2568. CPU_DEPS=$(PROCINC)/cpu.pp \
  2569. $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) \
  2570. $(CPU_DEPS_OS) $(CPU_DEPS_CPU)
  2571. cpu$(PPUEXT) : $(CPU_DEPS)
  2572. $(COMPILER) $(CPU_OPT) $<
  2573. System.CPU$(PPUEXT) : $(NSINC)/System.CPU.pp
  2574. $(COMPILER) $(CPU_OPT) $<
  2575. MMX_DEPS=$(PROCINC)/mmx.pp \
  2576. $(CPUUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  2577. $(MMX_DEPS_OS) $(MMX_DEPS_CPU)
  2578. mmx$(PPUEXT) : $(MMX_DEPS)
  2579. $(COMPILER) $(MMX_OPT) $<
  2580. System.MMX$(PPUEXT) : $(NSINC)/System.MMX $(MMX_DEPS)
  2581. $(COMPILER) $(MMX_OPT) $<
  2582. X86_DEPS = $(UNIXINC)/x86.pp \
  2583. $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  2584. $(X86_DEPS_OS) $(X86_DEPS_CPU)
  2585. x86$(PPUEXT) : $(X86_DEPS)
  2586. $(COMPILER) $(X86_OPT) $<
  2587. System.X86$(PPUEXT) : $(NSINC)/System.X86.pp $(X86_DEPS)
  2588. $(COMPILER) $(X86_OPT) $<
  2589. GETOPTS_DEPS=$(INC)/getopts.pp \
  2590. $(SYSTEMUNIT)$(PPUEXT) \
  2591. $(GETOPTS_DEPS_OS) $(GETOPTS_DEPS_CPU)
  2592. getopts$(PPUEXT) : $(GETOPTS_DEPS)
  2593. $(COMPILER) $(GETOPTS_OPT) $<
  2594. System.GetOpts$(PPUEXT) : $(NSINC)/System.GetOpts.pp $(GETOPTS_DEPS)
  2595. $(COMPILER) $(GETOPTS_OPT) $<
  2596. LINEINFO_DEPS=$(INC)/lineinfo.pp \
  2597. $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) $(SYSUTILSUNIT)$(PPUEXT) \
  2598. $(LINEINFO_DEPS_OS) $(LINEINFO_DEPS_CPU)
  2599. lineinfo$(PPUEXT) : $(LINEINFO_DEPS)
  2600. $(COMPILER) $(LINEINFO_OPT) $<
  2601. System.LineInfo$(PPUEXT) : $(NSINC)/System.LineInfo.pp $(LINEINFO_DEPS)
  2602. $(COMPILER) $(LINEINFO_OPT) $<
  2603. EXEINFO_DEPS=$(INC)/exeinfo.pp \
  2604. $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  2605. $(EXEINFO_DEPS_OS) $(EXEINFO_DEPS_CPU)
  2606. exeinfo$(PPUEXT) : $(EXEINFO_DEPS)
  2607. $(COMPILER) $(EXEINFO_OPT) $<
  2608. System.ExeInfo$(PPUEXT) : $(NSINC)/System.ExeInfo.pp $(LINEINFO_DEPS)
  2609. $(COMPILER) $(EXEINFO_OPT) $<
  2610. LNFODWRF_DEPS=$(INC)/lnfodwrf.pp \
  2611. $(SYSTEMUNIT)$(PPUEXT) $(STRINGSUNIT)$(PPUEXT) $(LINEINFOUNIT)$(PPUEXT) \
  2612. $(SYSUTILSUNIT)$(PPUEXT) $(EXEINFOUNIT)$(PPUEXT) \
  2613. $(LNFODWRF_DEPS_OS) $(LNFODWRF_DEPS_CPU)
  2614. lnfodwrf$(PPUEXT) : $(LNFODWRF_DEPS)
  2615. $(COMPILER) $(LNFODWRF_OPT) $<
  2616. System.LineInfo.Dwarf$(PPUEXT) : $(NSINC)/System.LineInfo.Dwarf.pp $(LNFODWRF_DEPS)
  2617. $(COMPILER) $(LNFODWRF_OPT) $<
  2618. LNFOGDB_DEPS=$(UNIXINC)/lnfogdb.pp \
  2619. $(SYSTEMUNIT)$(PPUEXT) $(STRINGSUNIT)$(PPUEXT) $(LINEINFOUNIT)$(PPUEXT) \
  2620. $(SYSUTILSUNIT)$(PPUEXT) $(EXEINFOUNIT)$(PPUEXT) \
  2621. $(LNFOGDB_DEPS_OS) $(LNFOGDB_DEPS_CPU)
  2622. lnfogdb$(PPUEXT) : $(LNFOGDB_DEPS)
  2623. $(COMPILER) $(LNFOGDB_OPT) $<
  2624. System.LineInfo.Gdb$(PPUEXT) : $(NSINC)/System.LineInfo.Gdb.pp $(LNFOGDB_DEPS)
  2625. $(COMPILER) $(LNFOGDB_OPT) $<
  2626. CHARSET_DEPS=$(INC)/charset.pp \
  2627. $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) \
  2628. $(CHARSET_DEPS_OS) $(CHARSET_DEPS_CPU)
  2629. charset$(PPUEXT) : $(CHARSET_DEPS)
  2630. $(COMPILER) $(CHARSET_OPT) $<
  2631. System.CharSet$(PPUEXT) : $(NSINC)/System.CharSet.pp $(CHARSET_DEPS)
  2632. $(COMPILER) $(CHARSET_OPT) $<
  2633. CPALL_DEPS=$(RTL)/charmaps/cpall.pas \
  2634. system$(PPUEXT) $(CHARSETUNIT)$(PPUEXT) \
  2635. $(CPALL_DEPS_OS) $(CPALL_DEPS_CPU)
  2636. cpall$(PPUEXT): $(CPALL_DEPS)
  2637. $(COMPILER) $(CPALL_OPT) -Fu$(INC) -Fi$(RTL)/charmaps $<
  2638. System.CodePages.All$(PPUEXT): $(NSINC)/System.CodePages.All.pas $(CPALL_DEPS)
  2639. $(COMPILER) $(CPALL_OPT) -Fu$(INC) -Fi$(RTL)/charmaps $<
  2640. FPWIDESTRING_DEPS=$(OBJPASDIR)/fpwidestring.pp \
  2641. $(CHARACTERUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) $(CPALLUNIT)$(PPUEXT) \
  2642. $(FPWIDESTRING_DEPS_OS) $(FPWIDESTRING_DEPS_CPU)
  2643. fpwidestring$(PPUEXT): $(FPWIDESTRING_DEPS)
  2644. $(COMPILER) $(FPWIDESTRING_OPT) $<
  2645. System.FPWideString$(PPUEXT): $(NSINC)/System.FPWideString.pp $(FPWIDESTRING_DEPS)
  2646. $(COMPILER) -Fi$(OBJPASDIR) $(FPWIDESTRING_OPT) $<
  2647. SORTBASE_DEPS=$(INC)/sortbase.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  2648. $(SORTBASE_DEPS_OS) $(SORTBASE_DEPS_CPU)
  2649. sortbase$(PPUEXT) : $(SORTBASE_DEPS)
  2650. $(COMPILER) $(SORTBASE_OPT) $<
  2651. System.SortBase$(PPUEXT) : $(NSINC)/System.SortBase.pp $(SORTBASE_DEPS)
  2652. $(COMPILER) $(SORTBASE_OPT) $<
  2653. CALLSPEC_DEPS=$(INC)/callspec.pp \
  2654. $(SYSTEMUNIT)$(PPUEXT) \
  2655. $(CALLSPEC_DEPS_OS) $(CALLSPEC_DEPS_CPU)
  2656. callspec$(PPUEXT) : $(CALLSPEC_DEPS)
  2657. $(COMPILER) $(CALLSPEC_OPT) $<
  2658. System.CallSpec$(PPUEXT) : $(NSINC)/System.CallSpec.pp $(CALLSPEC_DEPS)
  2659. $(COMPILER) $(CALLSPEC_OPT) $<
  2660. CMEM_DEPS=$(INC)/cmem.pp \
  2661. $(SYSTEMUNIT)$(PPUEXT) \
  2662. $(CMEM_DEPS_OS) $(CMEM_DEPS_CPU)
  2663. cmem$(PPUEXT) : $(CMEM_DEPS)
  2664. $(COMPILER) $(CMEM_OPT) $<
  2665. System.CMem$(PPUEXT) : $(NSINC)/System.CMem.pp $(CMEM_DEPS)
  2666. $(COMPILER) $(CMEM_OPT) $<
  2667. BASEUNIX_DEPS=$(BASEUNIXDIR)/baseunix.pp $(UNIXINC)/ctypes.inc \
  2668. $(UNIXINC)/bunxh.inc $(UNIXINC)/gensigset.inc $(OSDIR)/ptypes.inc $(OSDIR)/errno.inc \
  2669. $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  2670. $(BASEUNIX_DEPS_OS) $(BASEUNIX_DEPS_CPU)
  2671. baseunix$(PPUEXT): $(BASEUNIX_DEPS)
  2672. $(COMPILER) $(BASEUNIX_OPT) $<
  2673. UnixApi.Base$(PPUEXT): $(NSINC)/UnixApi.Base.pp $(BASEUNIX_DEPS)
  2674. $(COMPILER) $(BASEUNIX_OPT) $<
  2675. UNIX_DEPS=$(UNIXINC)/unix.pp \
  2676. $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) \
  2677. $(UNIXUTILUNIT)$(PPUEXT) \
  2678. $(INC)/textrec.inc $(INC)/filerec.inc $(UNIXINC)/timezone.inc \
  2679. $(OSDIR)/unxconst.inc $(OSDIR)/unxfunc.inc \
  2680. $(UNIX_DEPS_OS) $(UNIX_DEPS_CPU)
  2681. unix$(PPUEXT): $(UNIX_DEPS)
  2682. $(COMPILER) $(UNIX_OPT) $<
  2683. UnixApi.Unix$(PPUEXT) : $(NSINC)/UnixApi.Unix.pp $(UNIX_DEPS)
  2684. $(COMPILER) $(UNIX_OPT) $<
  2685. SYSCALL_DEPS=$(UNIXINC)/syscall.pp \
  2686. $(SYSTEMUNIT)$(PPUEXT) \
  2687. $(SYSCALL_DEPS_OS) $(SYSCALL_DEPS_CPU)
  2688. syscall$(PPUEXT) : $(SYSCALL_DEPS)
  2689. $(COMPILER) $(SYSCALL_OPT) $<
  2690. UnixApi.SysCall$(PPUEXT) : $(NSINC)/UnixApi.SysCall.pp $(SYSCALL_DEPS)
  2691. $(COMPILER) $(SYSCALL_OPT) $<
  2692. UNIXUTIL_DEPS=$(UNIXINC)/unixutil.pp $(INC)/textrec.inc $(INC)/filerec.inc \
  2693. $(SYSTEMUNIT)$(PPUEXT) \
  2694. $(UNIXUTIL_DEPS_OS)
  2695. unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
  2696. $(COMPILER) $(UNIXUTIL_OPT) $<
  2697. UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS)
  2698. $(COMPILER) $(UNIXUTIL_OPT) $<
  2699. UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
  2700. $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
  2701. $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
  2702. unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
  2703. $(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
  2704. UnixApi.Types$(PPUEXT) : $(NSINC)/UnixApi.Types.pp $(UNIXTYPE_DEPS)
  2705. $(COMPILER) $(UNIXTYPE_OPT) $<
  2706. DL_DEPS=$(UNIXINC)/dl.pp \
  2707. $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) \
  2708. $(DL_DEPS_OS) $(DL_DEPS_CPU)
  2709. dl$(PPUEXT) : $(DL_DEPS)
  2710. $(COMPILER) $(DL_OPT) $<
  2711. UnixApi.Dl$(PPUEXT) : $(NSINC)/UnixApi.Dl.pp $(DL_DEPS)
  2712. $(COMPILER) $(DL_OPT) $<
  2713. ERRORS_DEPS=$(UNIXINC)/errors.pp \
  2714. $(STRINGSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  2715. $(ERRORS_DEPS_OS) $(ERRORS_DEPS_CPU)
  2716. errors$(PPUEXT) : $(ERRORS_DEPS)
  2717. $(COMPILER) $(ERRORS_OPT) $<
  2718. UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
  2719. $(COMPILER) $(ERRORS_OPT) $<
  2720. CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
  2721. $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
  2722. $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
  2723. $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
  2724. cthreads$(PPUEXT) : $(CTHREADS_DEPS)
  2725. $(COMPILER) $(CTHREADS_OPT) $<
  2726. UnixApi.CThreads$(PPUEXT) : $(NSINC)/UnixApi.CThreads.pp $(CTHREADS_DEPS)
  2727. $(COMPILER) $(CTHREADS_OPT) $<
  2728. CWSTRING_DEPS=$(UNIXINC)/cwstring.pp \
  2729. $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) \
  2730. $(UNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) \
  2731. $(DYNLIBSUNIT)$(PPUEXT) $(UNIXCPUNIT)$(PPUEXT) \
  2732. $(CWSTRING_DEPS_OS) $(CWSTRING_DEPS_CPU)
  2733. cwstring$(PPUEXT) : $(CWSTRING_DEPS)
  2734. $(COMPILER) $(CWSTRING_OPT) $<
  2735. UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
  2736. $(COMPILER) $(CWSTRING_OPT) $<
  2737. CTYPES_DEPS=$(INC)/ctypes.pp \
  2738. $(SYSTEMUNIT)$(PPUEXT) \
  2739. $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
  2740. ctypes$(PPUEXT) : $(CTYPES_DEPS)
  2741. $(COMPILER) $(CTYPES_OPT) $<
  2742. System.CTypes$(PPUEXT) : $(NSINC)/System.CTypes.pp $(CTYPES_DEPS)
  2743. $(COMPILER) $(CTYPES_OPT) $<
  2744. OBJC_DEPS=$(INC)/objc.pp $(INC)/objc.pp $(INC)/objc1.inc $(INC)/objcnf.inc \
  2745. $(SYSTEMUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
  2746. $(OBJC_DEPS_OS) $(OBJC_DEPS_CPU)
  2747. objc$(PPUEXT) : $(OBJC_DEPS)
  2748. $(COMPILER) $(OBJC_OPT) $<
  2749. OBJCBASE_DEPS=$(INC)/objcbase.pp \
  2750. $(SYSTEMUNIT)$(PPUEXT) $(OBJCUNIT)$(PPUEXT) \
  2751. $(OBJCBASE_DEPS_OS) $(OBJCBASE_DEPS_CPU)
  2752. objcbase$(PPUEXT) : $(OBJCBASE_DEPS)
  2753. $(COMPILER) $(OBJCBASE_OPT) $<
  2754. BLOCKRTL_DEPS=$(INC)/blockrtl.pp \
  2755. $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) \
  2756. $(BLOCKRTL_DEPS_OS) $(BLOCKRTL_DEPS_CPU)
  2757. blockrtl$(PPUEXT) : $(BLOCKRTL_DEPS)
  2758. $(COMPILER) $(BLOCKRTL_OPT) $<
  2759. WINDOWS_DEPS=windows.pp $(SYSTEMUNIT)$(PPUEXT) \
  2760. $(WINDOWS_DEPS_OS) $(WINDOWS_DEPS_CPU)
  2761. windows$(PPUEXT): $(WINDOWS_DEPS)
  2762. $(COMPILER) $(WINDOWS_OPT) $<
  2763. WinApi.Windows$(PPUEXT): $(NSOSDIR)/WinApi.Windows.pp $(WINDOWS_DEPS)
  2764. $(COMPILER) -Fi$(WININC) -Fi$(WINDIR) $(WINDOWS_OPT) $<
  2765. WINDIRS_DEPS=windirs.pp $(WINDOWSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
  2766. $(WINDIRS_DEPS_OS) $(WINDIRS_DEPS_CPU)
  2767. windirs$(PPUEXT): $(WINDIRS_DEPS)
  2768. $(COMPILER) $(WINDIRS_OPT) $<
  2769. WinApi.WinDirs$(PPUEXT): $(NSOSDIR)/WinApi.WinDirs.pp $(WINDIRS_DEPS)
  2770. $(COMPILER) -Fi$(WININC) -Fi$(WINDIR) $(WINDIRS_OPT) $<
  2771. SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
  2772. $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
  2773. sysctl$(PPUEXT) : $(SYSCTL_DEPS)
  2774. $(COMPILER) $(SYSCTL_OPT) $<
  2775. BsdApi.SysCtl$(PPUEXT) : $(NSBSDDIR)/BsdApi.SysCtl.pp $(SYSCTL_DEPS)
  2776. $(COMPILER) $(SYSCTL_OPT) $<
  2777. BSD_DEPS=$(BSDINC)/bsd.pas $(INITCUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
  2778. $(BSD_DEPS_OS) $(BSD_DEPS_CPU)
  2779. bsd$(PPUEXT): $(BSD_DEPS)
  2780. $(COMPILER) $(BSD_OPT) $<
  2781. BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
  2782. $(COMPILER) $(BSD_OPT) $<
  2783. .NOTPARALLEL:
  2784. include $(INC)/makefile.inc
  2785. SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
  2786. SYSINCDEPS:=$(SYSINCDEPS) sysandroidh.inc sysandroid.inc
  2787. include $(PROCINC)/makefile.cpu
  2788. SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
  2789. SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
  2790. ifeq ($(ARCH),i386)
  2791. ASTARGET=--32
  2792. endif
  2793. ifeq ($(ARCH),mipsel)
  2794. ASTARGET=-mips32 -KPIC
  2795. endif
  2796. ifneq ($(findstring $(ARCH),aarch64 x86_64),)
  2797. CPUBITS=64
  2798. else
  2799. CPUBITS=32
  2800. endif
  2801. prt0$(OEXT) : prt0.as
  2802. $(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) --defsym CPU$(CPUBITS)=1 prt0.as
  2803. dllprt0$(OEXT) : dllprt0.as
  2804. $(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)dllprt0$(OEXT) --defsym CPU$(CPUBITS)=1 dllprt0.as
  2805. $(SYSTEMUNIT)$(PPUEXT) : $(LINUXINC)/$(SYSTEMUNIT).pp $(SYSDEPS)
  2806. $(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $(LINUXINC)/$(SYSTEMUNIT).pp
  2807. uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
  2808. $(COMPILER) $(INC)/uuchar.pp
  2809. objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
  2810. $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp
  2811. strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc\
  2812. $(PROCINC)/strings.inc $(PROCINC)/stringss.inc\
  2813. $(SYSTEMUNIT)$(PPUEXT)
  2814. $(COMPILER) $(INC)/strings.pp
  2815. unix$(PPUEXT) : $(UNIXINC)/unix.pp strings$(PPUEXT) baseunix$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \
  2816. $(LINUXINC)/unxconst.inc $(UNIXINC)/timezone.inc $(SYSTEMUNIT)$(PPUEXT) \
  2817. $(LINUXINC)/unxfunc.inc unixandroid.inc cwstring$(PPUEXT)
  2818. $(COMPILER) $(UNIXINC)/unix.pp
  2819. syscall$(PPUEXT) : $(UNIXINC)/syscall.pp $(LINUXINC)/$(ARCH)/syscallh.inc $(LINUXINC)/$(ARCH)/sysnr.inc $(SYSTEMUNIT)$(PPUEXT)
  2820. $(COMPILER) $(UNIXINC)/syscall.pp
  2821. unixutil$(PPUEXT) : $(UNIXINC)/unixutil.pp $(INC)/textrec.inc $(INC)/filerec.inc $(SYSTEMUNIT)$(PPUEXT)
  2822. $(COMPILER) $(UNIXINC)/unixutil.pp
  2823. unixtype$(PPUEXT) : $(UNIXINC)/unixtype.pp $(LINUXINC)/ptypes.inc $(UNIXINC)/ctypes.inc $(SYSTEMUNIT)$(PPUEXT)
  2824. $(COMPILER) $(UNIXINC)/unixtype.pp
  2825. baseunix$(PPUEXT) : $(UNIXINC)/baseunix.pp $(LINUXINC)/errno.inc $(LINUXINC)/ptypes.inc $(UNIXINC)/ctypes.inc \
  2826. $(UNIXINC)/bunxh.inc \
  2827. $(LINUXINC)/bunxsysc.inc $(LINUXINC)/$(ARCH)/syscallh.inc $(LINUXINC)/$(ARCH)/sysnr.inc \
  2828. $(LINUXINC)/ostypes.inc $(LINUXINC)/osmacro.inc $(UNIXINC)/gensigset.inc \
  2829. $(UNIXINC)/genfuncs.inc $(SYSTEMUNIT)$(PPUEXT)
  2830. $(COMPILER) $(UNIXINC)/baseunix.pp
  2831. dl$(PPUEXT) : $(UNIXINC)/dl.pp $(SYSTEMUNIT)$(PPUEXT) ctypes$(PPUEXT) dlandroid.inc
  2832. $(COMPILER) $(UNIXINC)/dl.pp
  2833. dynlibs$(PPUEXT) : $(INC)/dynlibs.pas $(UNIXINC)/dynlibs.inc dl$(PPUEXT) objpas$(PPUEXT)
  2834. $(COMPILER) $(INC)/dynlibs.pas
  2835. initc$(PPUEXT) : $(UNIXINC)/initc.pp ctypes$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  2836. $(COMPILER) $(UNIXINC)/initc.pp
  2837. unixcp$(PPUEXT) : $(UNIXINC)/unixcp.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) baseunix$(PPUEXT)
  2838. $(COMPILER) $(UNIXINC)/unixcp.pp
  2839. dos$(PPUEXT) : $(UNIXINC)/dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
  2840. unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  2841. $(COMPILER) $(UNIXINC)/dos.pp
  2842. sysutils$(PPUEXT) : $(UNIXINC)/sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
  2843. objpas$(PPUEXT) unix$(PPUEXT) errors$(PPUEXT) sysconst$(PPUEXT)
  2844. $(COMPILER) -Fi$(OBJPASDIR)/sysutils $(UNIXINC)/sysutils.pp
  2845. classes$(PPUEXT) : $(UNIXINC)/classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
  2846. sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) fgl$(PPUEXT) sortbase$(PPUEXT)
  2847. $(COMPILER) -Fi$(OBJPASDIR)/classes $(UNIXINC)/classes.pp
  2848. typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT) sysutils$(PPUEXT) rtlconsts$(PPUEXT)
  2849. $(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
  2850. character$(PPUEXT): $(OBJPASDIR)/character.pas objpas$(PPUEXT) sysutils$(PPUEXT) rtlconsts$(PPUEXT)
  2851. $(COMPILER) $(OBJPASDIR)/character.pas
  2852. math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)
  2853. $(COMPILER) $(OBJPASDIR)/math.pp
  2854. fgl$(PPUEXT) : $(OBJPASDIR)/fgl.pp objpas$(PPUEXT) types$(PPUEXT) system$(PPUEXT) sysutils$(PPUEXT) sortbase$(PPUEXT)
  2855. $(COMPILER) $(OBJPASDIR)/fgl.pp
  2856. types$(PPUEXT) : $(OBJPASDIR)/types.pp objpas$(PPUEXT) math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  2857. $(COMPILER) $(OBJPASDIR)/types.pp
  2858. sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  2859. $(COMPILER) $(OBJPASDIR)/sysconst.pp
  2860. rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  2861. $(COMPILER) $(OBJPASDIR)/rtlconsts.pp
  2862. macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) math$(PPUEXT)
  2863. $(COMPILER) $(INC)/macpas.pp $(REDIR)
  2864. ifneq ($(findstring $(ARCH),x86_64 i386),)
  2865. cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) sysutils$(PPUEXT)
  2866. else
  2867. cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT)
  2868. endif
  2869. $(COMPILER) $(PROCINC)/cpu.pp
  2870. mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  2871. $(COMPILER) $(PROCINC)/mmx.pp
  2872. getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
  2873. $(COMPILER) $(INC)/getopts.pp
  2874. heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
  2875. $(COMPILER) -Sg $(INC)/heaptrc.pp
  2876. lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT)
  2877. $(COMPILER) $(INC)/lineinfo.pp
  2878. lnfodwrf$(PPUEXT) : $(INC)/lnfodwrf.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) lineinfo$(PPUEXT)
  2879. $(COMPILER) $(INC)/lnfodwrf.pp
  2880. charset$(PPUEXT) : $(INC)/charset.pp $(SYSTEMUNIT)$(PPUEXT)
  2881. $(COMPILER) $(INC)/charset.pp
  2882. cpall$(PPUEXT): $(RTL)/charmaps/cpall.pas system$(PPUEXT) charset$(PPUEXT)
  2883. $(COMPILER) -Fu$(INC) -Fi$(RTL)/charmaps $(RTL)/charmaps/cpall.pas
  2884. iso7185$(PPUEXT) : $(INC)/iso7185.pp $(SYSTEMUNIT)$(PPUEXT)
  2885. $(COMPILER) $(INC)/iso7185.pp
  2886. extpas$(PPUEXT) : $(INC)/extpas.pp dos$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  2887. $(COMPILER) $(INC)/extpas.pp
  2888. fpintres$(PPUEXT) : $(INC)/fpintres.pp $(SYSTEMUNIT)$(PPUEXT)
  2889. $(COMPILER) $(INC)/fpintres.pp
  2890. fpwidestring$(PPUEXT): $(OBJPASDIR)/fpwidestring.pp character$(PPUEXT) unixcp$(PPUEXT)
  2891. $(COMPILER) $(OBJPASDIR)/fpwidestring.pp
  2892. errors$(PPUEXT) : $(UNIXINC)/errors.pp strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  2893. $(COMPILER) $(UNIXINC)/errors.pp
  2894. callspec$(PPUEXT) : $(INC)/callspec.pp $(SYSTEMUNIT)$(PPUEXT)
  2895. $(COMPILER) $(INC)/callspec.pp
  2896. cmem$(PPUEXT) : $(INC)/cmem.pp $(SYSTEMUNIT)$(PPUEXT)
  2897. $(COMPILER) $(INC)/cmem.pp
  2898. cthreads$(PPUEXT) : $(UNIXINC)/cthreads.pp $(SYSTEMUNIT)$(PPUEXT)
  2899. $(COMPILER) $(UNIXINC)/cthreads.pp
  2900. cwstring$(PPUEXT) : cwstring.pp $(SYSTEMUNIT)$(PPUEXT) dynlibs$(PPUEXT)
  2901. $(COMPILER) cwstring.pp
  2902. ctypes$(PPUEXT) : $(INC)/ctypes.pp $(SYSTEMUNIT)$(PPUEXT)
  2903. $(COMPILER) $(INC)/ctypes.pp
  2904. fpcylix$(PPUEXT) : $(LINUXINC)/fpcylix.pp cthreads$(PPUEXT) cwstring$(PPUEXT) dynlibs$(PPUEXT) objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  2905. $(COMPILER) $(LINUXINC)/fpcylix.pp
  2906. termio$(PPUEXT) : $(LINUXINC)/termio.pp $(SYSTEMUNIT)$(PPUEXT) baseunix$(PPUEXT)
  2907. $(COMPILER) $(LINUXINC)/termio.pp
  2908. linux$(PPUEXT) : $(LINUXINC)/linux.pp $(SYSTEMUNIT)$(PPUEXT) baseunix$(PPUEXT) unixtype$(PPUEXT)
  2909. $(COMPILER) $(LINUXINC)/linux.pp
  2910. linuxvcs$(PPUEXT) : $(LINUXINC)/linuxvcs.pp $(SYSTEMUNIT)$(PPUEXT) baseunix$(PPUEXT) strings$(PPUEXT)
  2911. $(COMPILER) $(LINUXINC)/linuxvcs.pp
  2912. sortbase$(PPUEXT) : $(INC)/sortbase.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  2913. $(COMPILER) $(INC)/sortbase.pp
  2914. softfpu$(PPUEXT) : $(INC)/softfpu.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT)
  2915. $(COMPILER) $<
  2916. sfpux80$(PPUEXT) : $(INC)/sfpux80.pp $(INC)/softfpu.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT)
  2917. $(COMPILER) $<
  2918. sfpu128$(PPUEXT) : $(INC)/sfpu128.pp $(INC)/softfpu.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT)
  2919. $(COMPILER) $<
  2920. ufloatx80$(PPUEXT) : $(INC)/ufloatx80.pp sfpux80$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  2921. $(COMPILER) $<
  2922. ufloat128$(PPUEXT) : $(INC)/ufloat128.pp sfpu128$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  2923. $(COMPILER) $<