Makefile 80 KB

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