Makefile 105 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608
  1. #
  2. # Don't edit, this file is generated by FPCMake Version 2.0.0
  3. #
  4. default: all
  5. MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql m68k-human68k powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mipsel-ps1 mips64-linux mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-iphonesim aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv32-freertos riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc loongarch64-linux
  6. BSDs = freebsd netbsd openbsd darwin dragonfly
  7. UNIXs = linux $(BSDs) solaris qnx haiku aix
  8. LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari human68k
  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 DEFAULT_FPCDIR=../../..
  105. ifndef FPC
  106. ifdef PP
  107. FPC=$(PP)
  108. endif
  109. endif
  110. ifndef FPC
  111. FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
  112. ifneq ($(FPCPROG),)
  113. FPCPROG:=$(firstword $(FPCPROG))
  114. ifneq ($(CPU_TARGET),)
  115. FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
  116. else
  117. FPC:=$(shell $(FPCPROG) -PB)
  118. endif
  119. ifneq ($(findstring Error,$(FPC)),)
  120. override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
  121. else
  122. ifeq ($(strip $(wildcard $(FPC))),)
  123. FPC:=$(firstword $(FPCPROG))
  124. endif
  125. endif
  126. else
  127. override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
  128. endif
  129. endif
  130. override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
  131. override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
  132. FOUNDFPC:=$(strip $(wildcard $(FPC)))
  133. ifeq ($(FOUNDFPC),)
  134. FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
  135. ifeq ($(FOUNDFPC),)
  136. $(error Compiler $(FPC) not found)
  137. endif
  138. endif
  139. ifndef FPC_COMPILERINFO
  140. FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
  141. endif
  142. ifndef FPC_VERSION
  143. FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
  144. endif
  145. export FPC FPC_VERSION FPC_COMPILERINFO
  146. unexport CHECKDEPEND ALLDEPENDENCIES
  147. ifndef CPU_TARGET
  148. ifdef CPU_TARGET_DEFAULT
  149. CPU_TARGET=$(CPU_TARGET_DEFAULT)
  150. endif
  151. endif
  152. ifndef OS_TARGET
  153. ifdef OS_TARGET_DEFAULT
  154. OS_TARGET=$(OS_TARGET_DEFAULT)
  155. endif
  156. endif
  157. ifndef CPU_SOURCE
  158. CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
  159. endif
  160. ifndef CPU_TARGET
  161. CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
  162. endif
  163. ifndef OS_SOURCE
  164. OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
  165. endif
  166. ifndef OS_TARGET
  167. OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
  168. endif
  169. CPU_OS_TARGET=$(CPU_TARGET)-$(OS_TARGET)
  170. ifdef SUB_TARGET
  171. L_SUB_TARGET=$(call lc,$(SUB_TARGET))
  172. FULL_TARGET:=$(CPU_TARGET)-$(OS_TARGET)-$(L_SUB_TARGET)
  173. else
  174. FULL_TARGET:=$(CPU_TARGET)-$(OS_TARGET)
  175. endif
  176. CPU_OS_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
  177. ifdef SUB_SOURCE
  178. L_SUB_SOURCE=$(call lc,$(SUB_SOURCE))
  179. FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)-$(L_SUB_SOURCE)
  180. else
  181. FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
  182. endif
  183. ifeq ($(CPU_TARGET),armeb)
  184. ARCH=arm
  185. override FPCOPT+=-Cb
  186. else
  187. ifeq ($(CPU_TARGET),armel)
  188. ARCH=arm
  189. override FPCOPT+=-CaEABI
  190. else
  191. ARCH=$(CPU_TARGET)
  192. endif
  193. endif
  194. ifeq ($(CPU_OS_TARGET),aarch64-embedded)
  195. endif
  196. ifdef SUB_TARGET
  197. FPCOPT+=-t$(SUB_TARGET)
  198. FPMAKE_OPT+=--subtarget=$(SUB_TARGET)
  199. endif
  200. ifeq ($(CPU_OS_TARGET),arm-embedded)
  201. ifeq ($(SUBARCH),)
  202. $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t or SUBARCH=armv7m) must be defined)
  203. endif
  204. override FPCOPT+=-Cp$(SUBARCH)
  205. endif
  206. ifeq ($(CPU_OS_TARGET),avr-embedded)
  207. ifeq ($(SUBARCH),)
  208. $(error When compiling for avr-embedded, a sub-architecture (e.g. SUBARCH=avr25 or SUBARCH=avr35) must be defined)
  209. endif
  210. override FPCOPT+=-Cp$(SUBARCH)
  211. endif
  212. ifeq ($(CPU_OS_TARGET),mipsel-embedded)
  213. ifeq ($(SUBARCH),)
  214. $(error When compiling for mipsel-embedded, a sub-architecture (e.g. SUBARCH=pic32mx) must be defined)
  215. endif
  216. override FPCOPT+=-Cp$(SUBARCH)
  217. endif
  218. ifeq ($(CPU_OS_TARGET),xtensa-embedded)
  219. ifeq ($(SUBARCH),)
  220. $(error When compiling for xtensa-embedded, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
  221. endif
  222. override FPCOPT+=-Cp$(SUBARCH)
  223. endif
  224. ifeq ($(CPU_OS_TARGET),xtensa-freertos)
  225. ifeq ($(SUBARCH),)
  226. $(error When compiling for xtensa-freertos, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
  227. endif
  228. override FPCOPT+=-Cp$(SUBARCH)
  229. endif
  230. ifeq ($(CPU_OS_TARGET),arm-freertos)
  231. ifeq ($(SUBARCH),)
  232. $(error When compiling for arm-freertos, a sub-architecture (e.g. SUBARCH=armv6m or SUBARCH=armv7em) must be defined)
  233. endif
  234. override FPCOPT+=-Cp$(SUBARCH)
  235. endif
  236. ifneq ($(filter $(OS_SOURCE),$(LIMIT83fs)),)
  237. TARGETSUFFIX=$(OS_TARGET)
  238. SOURCESUFFIX=$(OS_SOURCE)
  239. else
  240. ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
  241. TARGETSUFFIX=$(OS_TARGET)
  242. else
  243. TARGETSUFFIX=$(FULL_TARGET)
  244. endif
  245. SOURCESUFFIX=$(FULL_SOURCE)
  246. endif
  247. ifneq ($(CPU_OS_TARGET),$(CPU_OS_SOURCE))
  248. CROSSCOMPILE=1
  249. endif
  250. ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
  251. ifeq ($(filter $(CPU_OS_TARGET),$(MAKEFILETARGETS)),)
  252. $(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
  253. endif
  254. endif
  255. ifneq ($(filter $(OS_TARGET),$(BSDs)),)
  256. BSDhier=1
  257. endif
  258. ifeq ($(OS_TARGET),linux)
  259. linuxHier=1
  260. endif
  261. ifndef CROSSCOMPILE
  262. BUILDFULLNATIVE=1
  263. export BUILDFULLNATIVE
  264. endif
  265. ifdef BUILDFULLNATIVE
  266. BUILDNATIVE=1
  267. export BUILDNATIVE
  268. endif
  269. 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
  270. ifdef FPCDIR
  271. override FPCDIR:=$(subst \,/,$(FPCDIR))
  272. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
  273. override FPCDIR=wrong
  274. endif
  275. else
  276. override FPCDIR=wrong
  277. endif
  278. ifdef DEFAULT_FPCDIR
  279. ifeq ($(FPCDIR),wrong)
  280. override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
  281. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
  282. override FPCDIR=wrong
  283. endif
  284. endif
  285. endif
  286. ifeq ($(FPCDIR),wrong)
  287. ifdef inUnix
  288. override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
  289. ifeq ($(wildcard $(FPCDIR)/units),)
  290. override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
  291. endif
  292. else
  293. override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
  294. override FPCDIR:=$(FPCDIR)/..
  295. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
  296. override FPCDIR:=$(FPCDIR)/..
  297. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
  298. override FPCDIR:=$(BASEDIR)
  299. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
  300. override FPCDIR=c:/pp
  301. endif
  302. endif
  303. endif
  304. endif
  305. endif
  306. ifndef CROSSBINDIR
  307. CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
  308. endif
  309. ifneq ($(filter $(OS_TARGET),darwin iphonesim ios),)
  310. ifneq ($(filter $(OS_SOURCE),darwin ios),)
  311. DARWIN2DARWIN=1
  312. endif
  313. endif
  314. ifndef BINUTILSPREFIX
  315. ifndef CROSSBINDIR
  316. ifdef CROSSCOMPILE
  317. ifneq ($(OS_TARGET),msdos)
  318. ifndef DARWIN2DARWIN
  319. ifneq ($(CPU_TARGET),jvm)
  320. BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
  321. ifeq ($(OS_TARGET),android)
  322. ifeq ($(CPU_TARGET),arm)
  323. BINUTILSPREFIX=arm-linux-androideabi-
  324. else
  325. ifeq ($(CPU_TARGET),i386)
  326. BINUTILSPREFIX=i686-linux-android-
  327. else
  328. BINUTILSPREFIX=$(CPU_TARGET)-linux-android-
  329. endif
  330. endif
  331. endif
  332. endif
  333. endif
  334. else
  335. BINUTILSPREFIX=$(OS_TARGET)-
  336. endif
  337. endif
  338. endif
  339. endif
  340. UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
  341. ifeq ($(UNITSDIR),)
  342. UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
  343. endif
  344. PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages)
  345. ifndef FPCFPMAKE
  346. ifdef CROSSCOMPILE
  347. ifeq ($(strip $(wildcard $(addsuffix /compiler/ppc$(SRCEXEEXT),$(FPCDIR)))),)
  348. FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
  349. ifneq ($(FPCPROG),)
  350. FPCPROG:=$(firstword $(FPCPROG))
  351. FPCFPMAKE:=$(shell $(FPCPROG) -PB)
  352. ifeq ($(strip $(wildcard $(FPCFPMAKE))),)
  353. FPCFPMAKE:=$(firstword $(FPCPROG))
  354. endif
  355. else
  356. override FPCFPMAKE=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
  357. endif
  358. else
  359. FPCFPMAKE=$(strip $(wildcard $(addsuffix /compiler/ppc$(SRCEXEEXT),$(FPCDIR))))
  360. FPMAKE_SKIP_CONFIG=-n
  361. export FPCFPMAKE
  362. export FPMAKE_SKIP_CONFIG
  363. endif
  364. else
  365. FPMAKE_SKIP_CONFIG=-n
  366. FPCFPMAKE=$(FPC)
  367. endif
  368. endif
  369. ifeq ($(CPU_OS_TARGET),i386-linux)
  370. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  371. endif
  372. ifeq ($(CPU_OS_TARGET),i386-go32v2)
  373. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  374. endif
  375. ifeq ($(CPU_OS_TARGET),i386-win32)
  376. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  377. endif
  378. ifeq ($(CPU_OS_TARGET),i386-os2)
  379. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  380. endif
  381. ifeq ($(CPU_OS_TARGET),i386-freebsd)
  382. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  383. endif
  384. ifeq ($(CPU_OS_TARGET),i386-beos)
  385. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  386. endif
  387. ifeq ($(CPU_OS_TARGET),i386-haiku)
  388. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  389. endif
  390. ifeq ($(CPU_OS_TARGET),i386-netbsd)
  391. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  392. endif
  393. ifeq ($(CPU_OS_TARGET),i386-solaris)
  394. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  395. endif
  396. ifeq ($(CPU_OS_TARGET),i386-netware)
  397. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  398. endif
  399. ifeq ($(CPU_OS_TARGET),i386-openbsd)
  400. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  401. endif
  402. ifeq ($(CPU_OS_TARGET),i386-wdosx)
  403. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  404. endif
  405. ifeq ($(CPU_OS_TARGET),i386-darwin)
  406. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  407. endif
  408. ifeq ($(CPU_OS_TARGET),i386-emx)
  409. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  410. endif
  411. ifeq ($(CPU_OS_TARGET),i386-watcom)
  412. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  413. endif
  414. ifeq ($(CPU_OS_TARGET),i386-netwlibc)
  415. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  416. endif
  417. ifeq ($(CPU_OS_TARGET),i386-wince)
  418. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  419. endif
  420. ifeq ($(CPU_OS_TARGET),i386-embedded)
  421. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  422. endif
  423. ifeq ($(CPU_OS_TARGET),i386-symbian)
  424. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  425. endif
  426. ifeq ($(CPU_OS_TARGET),i386-nativent)
  427. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  428. endif
  429. ifeq ($(CPU_OS_TARGET),i386-iphonesim)
  430. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  431. endif
  432. ifeq ($(CPU_OS_TARGET),i386-android)
  433. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  434. endif
  435. ifeq ($(CPU_OS_TARGET),i386-aros)
  436. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  437. endif
  438. ifeq ($(CPU_OS_TARGET),m68k-linux)
  439. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  440. endif
  441. ifeq ($(CPU_OS_TARGET),m68k-netbsd)
  442. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  443. endif
  444. ifeq ($(CPU_OS_TARGET),m68k-amiga)
  445. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  446. endif
  447. ifeq ($(CPU_OS_TARGET),m68k-atari)
  448. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  449. endif
  450. ifeq ($(CPU_OS_TARGET),m68k-palmos)
  451. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  452. endif
  453. ifeq ($(CPU_OS_TARGET),m68k-macosclassic)
  454. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  455. endif
  456. ifeq ($(CPU_OS_TARGET),m68k-embedded)
  457. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  458. endif
  459. ifeq ($(CPU_OS_TARGET),m68k-sinclairql)
  460. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  461. endif
  462. ifeq ($(CPU_OS_TARGET),m68k-human68k)
  463. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  464. endif
  465. ifeq ($(CPU_OS_TARGET),powerpc-linux)
  466. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  467. endif
  468. ifeq ($(CPU_OS_TARGET),powerpc-netbsd)
  469. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  470. endif
  471. ifeq ($(CPU_OS_TARGET),powerpc-amiga)
  472. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  473. endif
  474. ifeq ($(CPU_OS_TARGET),powerpc-macosclassic)
  475. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  476. endif
  477. ifeq ($(CPU_OS_TARGET),powerpc-darwin)
  478. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  479. endif
  480. ifeq ($(CPU_OS_TARGET),powerpc-morphos)
  481. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  482. endif
  483. ifeq ($(CPU_OS_TARGET),powerpc-embedded)
  484. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  485. endif
  486. ifeq ($(CPU_OS_TARGET),powerpc-wii)
  487. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  488. endif
  489. ifeq ($(CPU_OS_TARGET),powerpc-aix)
  490. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  491. endif
  492. ifeq ($(CPU_OS_TARGET),sparc-linux)
  493. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  494. endif
  495. ifeq ($(CPU_OS_TARGET),sparc-netbsd)
  496. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  497. endif
  498. ifeq ($(CPU_OS_TARGET),sparc-solaris)
  499. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  500. endif
  501. ifeq ($(CPU_OS_TARGET),sparc-embedded)
  502. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  503. endif
  504. ifeq ($(CPU_OS_TARGET),x86_64-linux)
  505. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  506. endif
  507. ifeq ($(CPU_OS_TARGET),x86_64-freebsd)
  508. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  509. endif
  510. ifeq ($(CPU_OS_TARGET),x86_64-haiku)
  511. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  512. endif
  513. ifeq ($(CPU_OS_TARGET),x86_64-netbsd)
  514. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  515. endif
  516. ifeq ($(CPU_OS_TARGET),x86_64-solaris)
  517. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  518. endif
  519. ifeq ($(CPU_OS_TARGET),x86_64-openbsd)
  520. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  521. endif
  522. ifeq ($(CPU_OS_TARGET),x86_64-darwin)
  523. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  524. endif
  525. ifeq ($(CPU_OS_TARGET),x86_64-win64)
  526. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  527. endif
  528. ifeq ($(CPU_OS_TARGET),x86_64-embedded)
  529. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  530. endif
  531. ifeq ($(CPU_OS_TARGET),x86_64-iphonesim)
  532. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  533. endif
  534. ifeq ($(CPU_OS_TARGET),x86_64-android)
  535. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  536. endif
  537. ifeq ($(CPU_OS_TARGET),x86_64-aros)
  538. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  539. endif
  540. ifeq ($(CPU_OS_TARGET),x86_64-dragonfly)
  541. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  542. endif
  543. ifeq ($(CPU_OS_TARGET),arm-linux)
  544. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  545. endif
  546. ifeq ($(CPU_OS_TARGET),arm-netbsd)
  547. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  548. endif
  549. ifeq ($(CPU_OS_TARGET),arm-palmos)
  550. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  551. endif
  552. ifeq ($(CPU_OS_TARGET),arm-wince)
  553. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  554. endif
  555. ifeq ($(CPU_OS_TARGET),arm-gba)
  556. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  557. endif
  558. ifeq ($(CPU_OS_TARGET),arm-nds)
  559. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  560. endif
  561. ifeq ($(CPU_OS_TARGET),arm-embedded)
  562. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  563. endif
  564. ifeq ($(CPU_OS_TARGET),arm-symbian)
  565. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  566. endif
  567. ifeq ($(CPU_OS_TARGET),arm-android)
  568. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  569. endif
  570. ifeq ($(CPU_OS_TARGET),arm-aros)
  571. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  572. endif
  573. ifeq ($(CPU_OS_TARGET),arm-freertos)
  574. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  575. endif
  576. ifeq ($(CPU_OS_TARGET),arm-ios)
  577. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  578. endif
  579. ifeq ($(CPU_OS_TARGET),powerpc64-linux)
  580. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  581. endif
  582. ifeq ($(CPU_OS_TARGET),powerpc64-darwin)
  583. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  584. endif
  585. ifeq ($(CPU_OS_TARGET),powerpc64-embedded)
  586. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  587. endif
  588. ifeq ($(CPU_OS_TARGET),powerpc64-aix)
  589. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  590. endif
  591. ifeq ($(CPU_OS_TARGET),avr-embedded)
  592. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  593. endif
  594. ifeq ($(CPU_OS_TARGET),armeb-linux)
  595. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  596. endif
  597. ifeq ($(CPU_OS_TARGET),armeb-embedded)
  598. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  599. endif
  600. ifeq ($(CPU_OS_TARGET),mips-linux)
  601. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  602. endif
  603. ifeq ($(CPU_OS_TARGET),mipsel-linux)
  604. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  605. endif
  606. ifeq ($(CPU_OS_TARGET),mipsel-embedded)
  607. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  608. endif
  609. ifeq ($(CPU_OS_TARGET),mipsel-android)
  610. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  611. endif
  612. ifeq ($(CPU_OS_TARGET),mipsel-ps1)
  613. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  614. endif
  615. ifeq ($(CPU_OS_TARGET),mips64-linux)
  616. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  617. endif
  618. ifeq ($(CPU_OS_TARGET),mips64el-linux)
  619. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  620. endif
  621. ifeq ($(CPU_OS_TARGET),jvm-java)
  622. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  623. endif
  624. ifeq ($(CPU_OS_TARGET),jvm-android)
  625. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  626. endif
  627. ifeq ($(CPU_OS_TARGET),i8086-embedded)
  628. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  629. endif
  630. ifeq ($(CPU_OS_TARGET),i8086-msdos)
  631. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  632. endif
  633. ifeq ($(CPU_OS_TARGET),i8086-win16)
  634. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  635. endif
  636. ifeq ($(CPU_OS_TARGET),aarch64-linux)
  637. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  638. endif
  639. ifeq ($(CPU_OS_TARGET),aarch64-freebsd)
  640. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  641. endif
  642. ifeq ($(CPU_OS_TARGET),aarch64-darwin)
  643. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  644. endif
  645. ifeq ($(CPU_OS_TARGET),aarch64-win64)
  646. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  647. endif
  648. ifeq ($(CPU_OS_TARGET),aarch64-embedded)
  649. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  650. endif
  651. ifeq ($(CPU_OS_TARGET),aarch64-iphonesim)
  652. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  653. endif
  654. ifeq ($(CPU_OS_TARGET),aarch64-android)
  655. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  656. endif
  657. ifeq ($(CPU_OS_TARGET),aarch64-ios)
  658. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  659. endif
  660. ifeq ($(CPU_OS_TARGET),wasm32-embedded)
  661. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  662. endif
  663. ifeq ($(CPU_OS_TARGET),wasm32-wasi)
  664. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  665. endif
  666. ifeq ($(CPU_OS_TARGET),sparc64-linux)
  667. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  668. endif
  669. ifeq ($(CPU_OS_TARGET),riscv32-linux)
  670. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  671. endif
  672. ifeq ($(CPU_OS_TARGET),riscv32-embedded)
  673. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  674. endif
  675. ifeq ($(CPU_OS_TARGET),riscv32-freertos)
  676. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  677. endif
  678. ifeq ($(CPU_OS_TARGET),riscv64-linux)
  679. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  680. endif
  681. ifeq ($(CPU_OS_TARGET),riscv64-embedded)
  682. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  683. endif
  684. ifeq ($(CPU_OS_TARGET),xtensa-linux)
  685. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  686. endif
  687. ifeq ($(CPU_OS_TARGET),xtensa-embedded)
  688. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  689. endif
  690. ifeq ($(CPU_OS_TARGET),xtensa-freertos)
  691. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  692. endif
  693. ifeq ($(CPU_OS_TARGET),z80-embedded)
  694. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  695. endif
  696. ifeq ($(CPU_OS_TARGET),z80-zxspectrum)
  697. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  698. endif
  699. ifeq ($(CPU_OS_TARGET),z80-msxdos)
  700. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  701. endif
  702. ifeq ($(CPU_OS_TARGET),z80-amstradcpc)
  703. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  704. endif
  705. ifeq ($(CPU_OS_TARGET),loongarch64-linux)
  706. override TARGET_PROGRAMS+=pushme yesno pushbutton touchbutton minput inputall choice butttypes colsel colsel1 buttonall chartall positioner secretinput cursor fdial ldial ndial invslider sliderall borderwidth boxtype xyplotover arrowbutton browserop browserall chartstrip colbrowser counter fbrowse1 fbrowse flclock fonts goodies lalign ll longlabel menu objinactive objpos newbutton multilabel objreturn
  707. endif
  708. override INSTALL_FPCPACKAGE=y
  709. ifdef REQUIRE_UNITSDIR
  710. override UNITSDIR+=$(REQUIRE_UNITSDIR)
  711. endif
  712. ifdef REQUIRE_PACKAGESDIR
  713. override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
  714. endif
  715. ifdef ZIPINSTALL
  716. ifneq ($(filter $(OS_TARGET),$(UNIXs)),)
  717. UNIXHier=1
  718. endif
  719. else
  720. ifneq ($(filter $(OS_SOURCE),$(UNIXs)),)
  721. UNIXHier=1
  722. endif
  723. endif
  724. ifndef INSTALL_PREFIX
  725. ifdef PREFIX
  726. INSTALL_PREFIX=$(PREFIX)
  727. endif
  728. endif
  729. ifndef INSTALL_PREFIX
  730. ifdef UNIXHier
  731. INSTALL_PREFIX=/usr/local
  732. else
  733. ifdef INSTALL_FPCPACKAGE
  734. INSTALL_BASEDIR:=/pp
  735. else
  736. INSTALL_BASEDIR:=/$(PACKAGE_NAME)
  737. endif
  738. endif
  739. endif
  740. export INSTALL_PREFIX
  741. ifdef INSTALL_FPCSUBDIR
  742. export INSTALL_FPCSUBDIR
  743. endif
  744. ifndef DIST_DESTDIR
  745. DIST_DESTDIR:=$(BASEDIR)
  746. endif
  747. export DIST_DESTDIR
  748. ifndef COMPILER_UNITTARGETDIR
  749. ifdef PACKAGEDIR_MAIN
  750. COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
  751. else
  752. COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
  753. endif
  754. endif
  755. ifndef COMPILER_TARGETDIR
  756. COMPILER_TARGETDIR=.
  757. endif
  758. ifndef INSTALL_BASEDIR
  759. ifdef UNIXHier
  760. ifdef INSTALL_FPCPACKAGE
  761. INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
  762. else
  763. INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
  764. endif
  765. else
  766. INSTALL_BASEDIR:=$(INSTALL_PREFIX)
  767. endif
  768. endif
  769. ifndef INSTALL_BINDIR
  770. ifdef UNIXHier
  771. INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
  772. else
  773. INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
  774. ifdef INSTALL_FPCPACKAGE
  775. ifdef CROSSCOMPILE
  776. ifdef CROSSINSTALL
  777. INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
  778. else
  779. INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
  780. endif
  781. else
  782. INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
  783. endif
  784. endif
  785. endif
  786. endif
  787. ifndef INSTALL_UNITDIR
  788. INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
  789. ifdef INSTALL_FPCPACKAGE
  790. ifdef PACKAGE_NAME
  791. INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
  792. endif
  793. endif
  794. endif
  795. ifndef INSTALL_LIBDIR
  796. ifdef UNIXHier
  797. INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
  798. else
  799. INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
  800. endif
  801. endif
  802. ifndef INSTALL_SOURCEDIR
  803. ifdef UNIXHier
  804. ifdef BSDhier
  805. SRCPREFIXDIR=share/src
  806. else
  807. ifdef linuxHier
  808. SRCPREFIXDIR=share/src
  809. else
  810. SRCPREFIXDIR=src
  811. endif
  812. endif
  813. ifdef INSTALL_FPCPACKAGE
  814. ifdef INSTALL_FPCSUBDIR
  815. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
  816. else
  817. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  818. endif
  819. else
  820. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  821. endif
  822. else
  823. ifdef INSTALL_FPCPACKAGE
  824. ifdef INSTALL_FPCSUBDIR
  825. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
  826. else
  827. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
  828. endif
  829. else
  830. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
  831. endif
  832. endif
  833. endif
  834. ifndef INSTALL_DOCDIR
  835. ifdef UNIXHier
  836. ifdef BSDhier
  837. DOCPREFIXDIR=share/doc
  838. else
  839. ifdef linuxHier
  840. DOCPREFIXDIR=share/doc
  841. else
  842. DOCPREFIXDIR=doc
  843. endif
  844. endif
  845. ifdef INSTALL_FPCPACKAGE
  846. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  847. else
  848. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  849. endif
  850. else
  851. ifdef INSTALL_FPCPACKAGE
  852. INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
  853. else
  854. INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
  855. endif
  856. endif
  857. endif
  858. ifndef INSTALL_EXAMPLEDIR
  859. ifdef UNIXHier
  860. ifdef INSTALL_FPCPACKAGE
  861. ifdef BSDhier
  862. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  863. else
  864. ifdef linuxHier
  865. INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
  866. else
  867. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
  868. endif
  869. endif
  870. else
  871. ifdef BSDhier
  872. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  873. else
  874. ifdef linuxHier
  875. INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  876. else
  877. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  878. endif
  879. endif
  880. endif
  881. else
  882. ifdef INSTALL_FPCPACKAGE
  883. INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
  884. else
  885. INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
  886. endif
  887. endif
  888. endif
  889. ifndef INSTALL_DATADIR
  890. INSTALL_DATADIR=$(INSTALL_BASEDIR)
  891. endif
  892. ifndef INSTALL_SHAREDDIR
  893. INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
  894. endif
  895. ifdef CROSSCOMPILE
  896. ifndef CROSSBINDIR
  897. CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
  898. ifeq ($(CROSSBINDIR),)
  899. CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
  900. endif
  901. endif
  902. else
  903. CROSSBINDIR=
  904. endif
  905. ifeq ($(OS_SOURCE),linux)
  906. ifndef GCCLIBDIR
  907. ifeq ($(CPU_TARGET),i386)
  908. ifneq ($(filter x86_64,$(shell uname -a)),)
  909. ifeq ($(BINUTILSPREFIX),)
  910. GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
  911. else
  912. CROSSGCCOPT=-m32
  913. endif
  914. endif
  915. endif
  916. ifeq ($(CPU_TARGET),powerpc)
  917. ifeq ($(BINUTILSPREFIX),)
  918. GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
  919. else
  920. CROSSGCCOPT=-m32
  921. endif
  922. endif
  923. ifeq ($(CPU_TARGET),powerpc64)
  924. ifeq ($(BINUTILSPREFIX),)
  925. GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`)
  926. else
  927. CROSSGCCOPT=-m64
  928. endif
  929. endif
  930. ifeq ($(CPU_TARGET),sparc)
  931. ifneq ($(filter sparc64,$(shell uname -a)),)
  932. ifeq ($(BINUTILSPREFIX),)
  933. GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
  934. else
  935. CROSSGCCOPT=-m32
  936. endif
  937. endif
  938. endif
  939. ifneq ($(filter $(CPU_TARGET),mips64 mipsel64),)
  940. ifeq ($(BINUTILSPREFIX),)
  941. GCCLIBDIR:=$(shell dirname `gcc -mabi=64 -print-libgcc-file-name`)
  942. else
  943. CROSSGCCOPT=-mabi=64
  944. endif
  945. endif
  946. ifneq ($(filter $(CPU_TARGET),mips mipsel),)
  947. ifeq ($(BINUTILSPREFIX),)
  948. GCCLIBDIR:=$(shell dirname `gcc -mabi=32 -print-libgcc-file-name`)
  949. else
  950. CROSSGCCOPT=-mabi=32
  951. endif
  952. endif
  953. ifeq ($(BINUTILSPREFIX),)
  954. ifeq ($(GCCLIBDIR),)
  955. GCCLIBDIR:=$(shell dirname `gcc -print-libgcc-file-name`)
  956. endif
  957. else
  958. ifeq ($(CROSSGCCOPT),)
  959. CROSSGCCOPT=-g
  960. endif
  961. endif
  962. endif
  963. ifdef FPCFPMAKE
  964. FPCFPMAKE_CPU_TARGET=$(shell $(FPCFPMAKE) -iTP)
  965. ifeq ($(CPU_TARGET),$(FPCFPMAKE_CPU_TARGET))
  966. FPCMAKEGCCLIBDIR:=$(GCCLIBDIR)
  967. else
  968. ifneq ($(filter $(FPCFPMAKE_CPU_TARGET),aarch64 powerpc64 riscv64 sparc64 x86_64 loongarch64),)
  969. FPCMAKE_CROSSGCCOPT=-m64
  970. else
  971. ifneq ($(filter $(FPCFPMAKE_CPU_TARGET),mips64 mips64el),)
  972. FPCMAKE_CROSSGCCOPT=-mabi=64
  973. else
  974. ifneq ($(filter $(FPCFPMAKE_CPU_TARGET),mips mipsel),)
  975. FPCMAKE_CROSSGCCOPT=-mabi=32
  976. else
  977. ifeq ($(FPCFPMAKE_CPU_TARGET),riscv64)
  978. FPCMAKE_CROSSGCCOPT=-mabi=lp64
  979. else
  980. ifeq ($(FPCFPMAKE_CPU_TARGET),riscv32)
  981. FPCMAKE_CROSSGCCOPT=-mabi=ilp32
  982. else
  983. ifeq ($(FPCFPMAKE_CPU_TARGET),loongarch64)
  984. FPCMAKE_CROSSGCCOPT=-mabi=lp64d
  985. else
  986. FPCMAKE_CROSSGCCOPT=-m32
  987. endif
  988. endif
  989. endif
  990. endif
  991. endif
  992. endif
  993. FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`)
  994. endif
  995. endif
  996. ifndef FPCMAKEGCCLIBDIR
  997. FPCMAKEGCCLIBDIR:=$(shell dirname `gcc -print-libgcc-file-name`)
  998. endif
  999. ifndef GCCLIBDIR
  1000. CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH))))
  1001. ifneq ($(CROSSGCC),)
  1002. GCCLIBDIR:=$(shell dirname `$(CROSSGCC) $(CROSSGCCOPT) -print-libgcc-file-name`)
  1003. endif
  1004. endif
  1005. endif
  1006. ifdef inUnix
  1007. ifeq ($(OS_SOURCE),netbsd)
  1008. OTHERLIBDIR:=/usr/pkg/lib
  1009. endif
  1010. export GCCLIBDIR FPCMAKEGCCLIBDIR OTHERLIBDIR
  1011. endif
  1012. BATCHEXT=.bat
  1013. LOADEREXT=.as
  1014. EXEEXT=.exe
  1015. PPLEXT=.ppl
  1016. PPUEXT=.ppu
  1017. OEXT=.o
  1018. LTOEXT=.bc
  1019. ASMEXT=.s
  1020. SMARTEXT=.sl
  1021. STATICLIBEXT=.a
  1022. SHAREDLIBEXT=.so
  1023. SHAREDLIBPREFIX=libfp
  1024. STATICLIBPREFIX=libp
  1025. IMPORTLIBPREFIX=libimp
  1026. RSTEXT=.rst
  1027. EXEDBGEXT=.dbg
  1028. ifeq ($(OS_TARGET),go32v1)
  1029. STATICLIBPREFIX=
  1030. SHORTSUFFIX=v1
  1031. endif
  1032. ifeq ($(OS_TARGET),go32v2)
  1033. STATICLIBPREFIX=
  1034. SHORTSUFFIX=dos
  1035. IMPORTLIBPREFIX=
  1036. endif
  1037. ifeq ($(OS_TARGET),watcom)
  1038. STATICLIBPREFIX=
  1039. OEXT=.obj
  1040. ASMEXT=.asm
  1041. SHAREDLIBEXT=.dll
  1042. SHORTSUFFIX=wat
  1043. IMPORTLIBPREFIX=
  1044. endif
  1045. ifneq ($(CPU_TARGET),jvm)
  1046. ifeq ($(OS_TARGET),android)
  1047. BATCHEXT=.sh
  1048. EXEEXT=
  1049. HASSHAREDLIB=1
  1050. SHORTSUFFIX=lnx
  1051. endif
  1052. endif
  1053. ifeq ($(OS_TARGET),linux)
  1054. BATCHEXT=.sh
  1055. EXEEXT=
  1056. HASSHAREDLIB=1
  1057. SHORTSUFFIX=lnx
  1058. endif
  1059. ifeq ($(OS_TARGET),dragonfly)
  1060. BATCHEXT=.sh
  1061. EXEEXT=
  1062. HASSHAREDLIB=1
  1063. SHORTSUFFIX=df
  1064. endif
  1065. ifeq ($(OS_TARGET),freebsd)
  1066. BATCHEXT=.sh
  1067. EXEEXT=
  1068. HASSHAREDLIB=1
  1069. SHORTSUFFIX=fbs
  1070. endif
  1071. ifeq ($(OS_TARGET),netbsd)
  1072. BATCHEXT=.sh
  1073. EXEEXT=
  1074. HASSHAREDLIB=1
  1075. SHORTSUFFIX=nbs
  1076. endif
  1077. ifeq ($(OS_TARGET),openbsd)
  1078. BATCHEXT=.sh
  1079. EXEEXT=
  1080. HASSHAREDLIB=1
  1081. SHORTSUFFIX=obs
  1082. endif
  1083. ifeq ($(OS_TARGET),win32)
  1084. SHAREDLIBEXT=.dll
  1085. SHORTSUFFIX=w32
  1086. endif
  1087. ifeq ($(OS_TARGET),os2)
  1088. BATCHEXT=.cmd
  1089. AOUTEXT=.out
  1090. STATICLIBPREFIX=
  1091. SHAREDLIBEXT=.dll
  1092. SHORTSUFFIX=os2
  1093. ECHO=echo
  1094. IMPORTLIBPREFIX=
  1095. endif
  1096. ifeq ($(OS_TARGET),emx)
  1097. BATCHEXT=.cmd
  1098. AOUTEXT=.out
  1099. STATICLIBPREFIX=
  1100. SHAREDLIBEXT=.dll
  1101. SHORTSUFFIX=emx
  1102. ECHO=echo
  1103. IMPORTLIBPREFIX=
  1104. endif
  1105. ifeq ($(OS_TARGET),amiga)
  1106. EXEEXT=
  1107. SHAREDLIBEXT=.library
  1108. SHORTSUFFIX=amg
  1109. endif
  1110. ifeq ($(OS_TARGET),aros)
  1111. EXEEXT=
  1112. SHAREDLIBEXT=.library
  1113. SHORTSUFFIX=aros
  1114. endif
  1115. ifeq ($(OS_TARGET),morphos)
  1116. EXEEXT=
  1117. SHAREDLIBEXT=.library
  1118. SHORTSUFFIX=mos
  1119. endif
  1120. ifeq ($(OS_TARGET),atari)
  1121. EXEEXT=.ttp
  1122. SHORTSUFFIX=ata
  1123. endif
  1124. ifeq ($(OS_TARGET),beos)
  1125. BATCHEXT=.sh
  1126. EXEEXT=
  1127. SHORTSUFFIX=be
  1128. endif
  1129. ifeq ($(OS_TARGET),haiku)
  1130. BATCHEXT=.sh
  1131. EXEEXT=
  1132. SHORTSUFFIX=hai
  1133. endif
  1134. ifeq ($(OS_TARGET),solaris)
  1135. BATCHEXT=.sh
  1136. EXEEXT=
  1137. SHORTSUFFIX=sun
  1138. endif
  1139. ifeq ($(OS_TARGET),qnx)
  1140. BATCHEXT=.sh
  1141. EXEEXT=
  1142. SHORTSUFFIX=qnx
  1143. endif
  1144. ifeq ($(OS_TARGET),netware)
  1145. EXEEXT=.nlm
  1146. STATICLIBPREFIX=
  1147. SHORTSUFFIX=nw
  1148. IMPORTLIBPREFIX=imp
  1149. endif
  1150. ifeq ($(OS_TARGET),netwlibc)
  1151. EXEEXT=.nlm
  1152. STATICLIBPREFIX=
  1153. SHORTSUFFIX=nwl
  1154. IMPORTLIBPREFIX=imp
  1155. endif
  1156. ifeq ($(OS_TARGET),macosclassic)
  1157. BATCHEXT=
  1158. EXEEXT=
  1159. DEBUGSYMEXT=.xcoff
  1160. SHORTSUFFIX=mac
  1161. IMPORTLIBPREFIX=imp
  1162. endif
  1163. ifneq ($(filter $(OS_TARGET),darwin iphonesim ios),)
  1164. BATCHEXT=.sh
  1165. EXEEXT=
  1166. HASSHAREDLIB=1
  1167. SHORTSUFFIX=dwn
  1168. EXEDBGEXT=.dSYM
  1169. endif
  1170. ifeq ($(OS_TARGET),gba)
  1171. EXEEXT=.gba
  1172. SHAREDLIBEXT=.so
  1173. SHORTSUFFIX=gba
  1174. endif
  1175. ifeq ($(OS_TARGET),symbian)
  1176. SHAREDLIBEXT=.dll
  1177. SHORTSUFFIX=symbian
  1178. endif
  1179. ifeq ($(OS_TARGET),NativeNT)
  1180. SHAREDLIBEXT=.dll
  1181. SHORTSUFFIX=nativent
  1182. endif
  1183. ifeq ($(OS_TARGET),wii)
  1184. EXEEXT=.dol
  1185. SHAREDLIBEXT=.so
  1186. SHORTSUFFIX=wii
  1187. endif
  1188. ifeq ($(OS_TARGET),aix)
  1189. BATCHEXT=.sh
  1190. EXEEXT=
  1191. SHAREDLIBEXT=.a
  1192. SHORTSUFFIX=aix
  1193. endif
  1194. ifeq ($(OS_TARGET),java)
  1195. OEXT=.class
  1196. ASMEXT=.j
  1197. SHAREDLIBEXT=.jar
  1198. SHORTSUFFIX=java
  1199. endif
  1200. ifeq ($(CPU_TARGET),jvm)
  1201. ifeq ($(OS_TARGET),android)
  1202. OEXT=.class
  1203. ASMEXT=.j
  1204. SHAREDLIBEXT=.jar
  1205. SHORTSUFFIX=android
  1206. endif
  1207. endif
  1208. ifeq ($(OS_TARGET),msdos)
  1209. STATICLIBPREFIX=
  1210. STATICLIBEXT=.a
  1211. SHORTSUFFIX=d16
  1212. endif
  1213. ifeq ($(OS_TARGET),msxdos)
  1214. STATICLIBPREFIX=
  1215. STATICLIBEXT=.a
  1216. SHORTSUFFIX=msd
  1217. endif
  1218. ifeq ($(OS_TARGET),embedded)
  1219. ifeq ($(CPU_TARGET),i8086)
  1220. STATICLIBPREFIX=
  1221. STATICLIBEXT=.a
  1222. else
  1223. EXEEXT=.bin
  1224. endif
  1225. ifeq ($(CPU_TARGET),z80)
  1226. OEXT=.rel
  1227. endif
  1228. SHORTSUFFIX=emb
  1229. endif
  1230. ifeq ($(OS_TARGET),win16)
  1231. STATICLIBPREFIX=
  1232. STATICLIBEXT=.a
  1233. SHAREDLIBEXT=.dll
  1234. SHORTSUFFIX=w16
  1235. endif
  1236. ifeq ($(OS_TARGET),zxspectrum)
  1237. OEXT=.rel
  1238. endif
  1239. ifeq ($(OS_TARGET),wasi)
  1240. EXEEXT=.wasm
  1241. endif
  1242. ifneq ($(filter $(OS_SOURCE),$(LIMIT83fs)),)
  1243. FPCMADE=fpcmade.$(SHORTSUFFIX)
  1244. ZIPSUFFIX=$(SHORTSUFFIX)
  1245. ZIPCROSSPREFIX=
  1246. ZIPSOURCESUFFIX=src
  1247. ZIPEXAMPLESUFFIX=exm
  1248. else
  1249. FPCMADE=fpcmade.$(TARGETSUFFIX)
  1250. ZIPSOURCESUFFIX=.source
  1251. ZIPEXAMPLESUFFIX=.examples
  1252. ifdef CROSSCOMPILE
  1253. ZIPSUFFIX=.$(SOURCESUFFIX)
  1254. ZIPCROSSPREFIX=$(TARGETSUFFIX)-
  1255. else
  1256. ZIPSUFFIX=.$(TARGETSUFFIX)
  1257. ZIPCROSSPREFIX=
  1258. endif
  1259. endif
  1260. ifndef ECHO
  1261. ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
  1262. ifeq ($(ECHO),)
  1263. ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
  1264. ifeq ($(ECHO),)
  1265. ECHO= __missing_command_ECHO
  1266. else
  1267. ECHO:=$(firstword $(ECHO))
  1268. endif
  1269. else
  1270. ECHO:=$(firstword $(ECHO))
  1271. endif
  1272. endif
  1273. export ECHO
  1274. ifndef DATE
  1275. DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
  1276. ifeq ($(DATE),)
  1277. DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
  1278. ifeq ($(DATE),)
  1279. DATE= __missing_command_DATE
  1280. else
  1281. DATE:=$(firstword $(DATE))
  1282. endif
  1283. else
  1284. DATE:=$(firstword $(DATE))
  1285. endif
  1286. endif
  1287. export DATE
  1288. ifndef GINSTALL
  1289. GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
  1290. ifeq ($(GINSTALL),)
  1291. GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
  1292. ifeq ($(GINSTALL),)
  1293. GINSTALL= __missing_command_GINSTALL
  1294. else
  1295. GINSTALL:=$(firstword $(GINSTALL))
  1296. endif
  1297. else
  1298. GINSTALL:=$(firstword $(GINSTALL))
  1299. endif
  1300. endif
  1301. export GINSTALL
  1302. ifndef CPPROG
  1303. CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
  1304. ifeq ($(CPPROG),)
  1305. CPPROG= __missing_command_CPPROG
  1306. else
  1307. CPPROG:=$(firstword $(CPPROG))
  1308. endif
  1309. endif
  1310. export CPPROG
  1311. ifndef RMPROG
  1312. RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
  1313. ifeq ($(RMPROG),)
  1314. RMPROG= __missing_command_RMPROG
  1315. else
  1316. RMPROG:=$(firstword $(RMPROG))
  1317. endif
  1318. endif
  1319. export RMPROG
  1320. ifndef MVPROG
  1321. MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
  1322. ifeq ($(MVPROG),)
  1323. MVPROG= __missing_command_MVPROG
  1324. else
  1325. MVPROG:=$(firstword $(MVPROG))
  1326. endif
  1327. endif
  1328. export MVPROG
  1329. ifndef MKDIRPROG
  1330. MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
  1331. ifeq ($(MKDIRPROG),)
  1332. MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
  1333. ifeq ($(MKDIRPROG),)
  1334. MKDIRPROG= __missing_command_MKDIRPROG
  1335. else
  1336. MKDIRPROG:=$(firstword $(MKDIRPROG))
  1337. endif
  1338. else
  1339. MKDIRPROG:=$(firstword $(MKDIRPROG))
  1340. endif
  1341. endif
  1342. export MKDIRPROG
  1343. ifndef ECHOREDIR
  1344. ifndef inUnix
  1345. ECHOREDIR=echo
  1346. else
  1347. ECHOREDIR=$(ECHO)
  1348. endif
  1349. endif
  1350. ifndef COPY
  1351. COPY:=$(CPPROG) -fp
  1352. endif
  1353. ifndef COPYTREE
  1354. COPYTREE:=$(CPPROG) -Rfp
  1355. endif
  1356. ifndef MKDIRTREE
  1357. MKDIRTREE:=$(MKDIRPROG) -p
  1358. endif
  1359. ifndef MOVE
  1360. MOVE:=$(MVPROG) -f
  1361. endif
  1362. ifndef DEL
  1363. DEL:=$(RMPROG) -f
  1364. endif
  1365. ifndef DELTREE
  1366. DELTREE:=$(RMPROG) -rf
  1367. endif
  1368. ifndef INSTALL
  1369. ifdef inUnix
  1370. INSTALL:=$(GINSTALL) -c -m 644
  1371. else
  1372. INSTALL:=$(COPY)
  1373. endif
  1374. endif
  1375. ifndef INSTALLEXE
  1376. ifdef inUnix
  1377. INSTALLEXE:=$(GINSTALL) -c -m 755
  1378. else
  1379. INSTALLEXE:=$(COPY)
  1380. endif
  1381. endif
  1382. ifndef MKDIR
  1383. MKDIR:=$(GINSTALL) -m 755 -d
  1384. endif
  1385. export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
  1386. ifndef PPUMOVE
  1387. PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
  1388. ifeq ($(PPUMOVE),)
  1389. PPUMOVE= __missing_command_PPUMOVE
  1390. else
  1391. PPUMOVE:=$(firstword $(PPUMOVE))
  1392. endif
  1393. endif
  1394. export PPUMOVE
  1395. ifndef FPCMAKE
  1396. FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
  1397. ifeq ($(FPCMAKE),)
  1398. FPCMAKE= __missing_command_FPCMAKE
  1399. else
  1400. FPCMAKE:=$(firstword $(FPCMAKE))
  1401. endif
  1402. endif
  1403. export FPCMAKE
  1404. ifndef ZIPPROG
  1405. ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
  1406. ifeq ($(ZIPPROG),)
  1407. ZIPPROG= __missing_command_ZIPPROG
  1408. else
  1409. ZIPPROG:=$(firstword $(ZIPPROG))
  1410. endif
  1411. endif
  1412. export ZIPPROG
  1413. ifndef TARPROG
  1414. TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH))))
  1415. ifeq ($(TARPROG),)
  1416. TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
  1417. ifeq ($(TARPROG),)
  1418. TARPROG= __missing_command_TARPROG
  1419. else
  1420. TARPROG:=$(firstword $(TARPROG))
  1421. endif
  1422. else
  1423. TARPROG:=$(firstword $(TARPROG))
  1424. endif
  1425. endif
  1426. export TARPROG
  1427. ASNAME=$(BINUTILSPREFIX)as
  1428. LDNAME=$(BINUTILSPREFIX)ld
  1429. ARNAME=$(BINUTILSPREFIX)ar
  1430. RCNAME=$(BINUTILSPREFIX)rc
  1431. NASMNAME=$(BINUTILSPREFIX)nasm
  1432. ifndef ASPROG
  1433. ifdef CROSSBINDIR
  1434. ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
  1435. else
  1436. ASPROG=$(ASNAME)
  1437. endif
  1438. endif
  1439. ifndef LDPROG
  1440. ifdef CROSSBINDIR
  1441. LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
  1442. else
  1443. LDPROG=$(LDNAME)
  1444. endif
  1445. endif
  1446. ifndef RCPROG
  1447. ifdef CROSSBINDIR
  1448. RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
  1449. else
  1450. RCPROG=$(RCNAME)
  1451. endif
  1452. endif
  1453. ifndef ARPROG
  1454. ifdef CROSSBINDIR
  1455. ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
  1456. else
  1457. ARPROG=$(ARNAME)
  1458. endif
  1459. endif
  1460. ifndef NASMPROG
  1461. ifdef CROSSBINDIR
  1462. NASMPROG=$(CROSSBINDIR)/$(NASMNAME)$(SRCEXEEXT)
  1463. else
  1464. NASMPROG=$(NASMNAME)
  1465. endif
  1466. endif
  1467. AS=$(ASPROG)
  1468. LD=$(LDPROG)
  1469. RC=$(RCPROG)
  1470. AR=$(ARPROG)
  1471. NASM=$(NASMPROG)
  1472. ifdef inUnix
  1473. PPAS=./ppas$(SRCBATCHEXT)
  1474. else
  1475. PPAS=ppas$(SRCBATCHEXT)
  1476. endif
  1477. ifdef inUnix
  1478. LDCONFIG=ldconfig
  1479. else
  1480. LDCONFIG=
  1481. endif
  1482. ifdef DATE
  1483. DATESTR:=$(shell $(DATE) +%Y%m%d)
  1484. else
  1485. DATESTR=
  1486. endif
  1487. ZIPOPT=-9
  1488. ZIPEXT=.zip
  1489. ifeq ($(USETAR),bz2)
  1490. TAROPT=vj
  1491. TAREXT=.tar.bz2
  1492. else
  1493. TAROPT=vz
  1494. TAREXT=.tar.gz
  1495. endif
  1496. override REQUIRE_PACKAGES=rtl xforms
  1497. ifeq ($(CPU_OS_TARGET),i386-linux)
  1498. REQUIRE_PACKAGES_RTL=1
  1499. REQUIRE_PACKAGES_XFORMS=1
  1500. endif
  1501. ifeq ($(CPU_OS_TARGET),i386-go32v2)
  1502. REQUIRE_PACKAGES_RTL=1
  1503. REQUIRE_PACKAGES_XFORMS=1
  1504. endif
  1505. ifeq ($(CPU_OS_TARGET),i386-win32)
  1506. REQUIRE_PACKAGES_RTL=1
  1507. REQUIRE_PACKAGES_XFORMS=1
  1508. endif
  1509. ifeq ($(CPU_OS_TARGET),i386-os2)
  1510. REQUIRE_PACKAGES_RTL=1
  1511. REQUIRE_PACKAGES_XFORMS=1
  1512. endif
  1513. ifeq ($(CPU_OS_TARGET),i386-freebsd)
  1514. REQUIRE_PACKAGES_RTL=1
  1515. REQUIRE_PACKAGES_XFORMS=1
  1516. endif
  1517. ifeq ($(CPU_OS_TARGET),i386-beos)
  1518. REQUIRE_PACKAGES_RTL=1
  1519. REQUIRE_PACKAGES_XFORMS=1
  1520. endif
  1521. ifeq ($(CPU_OS_TARGET),i386-haiku)
  1522. REQUIRE_PACKAGES_RTL=1
  1523. REQUIRE_PACKAGES_XFORMS=1
  1524. endif
  1525. ifeq ($(CPU_OS_TARGET),i386-netbsd)
  1526. REQUIRE_PACKAGES_RTL=1
  1527. REQUIRE_PACKAGES_XFORMS=1
  1528. endif
  1529. ifeq ($(CPU_OS_TARGET),i386-solaris)
  1530. REQUIRE_PACKAGES_RTL=1
  1531. REQUIRE_PACKAGES_XFORMS=1
  1532. endif
  1533. ifeq ($(CPU_OS_TARGET),i386-netware)
  1534. REQUIRE_PACKAGES_RTL=1
  1535. REQUIRE_PACKAGES_XFORMS=1
  1536. endif
  1537. ifeq ($(CPU_OS_TARGET),i386-openbsd)
  1538. REQUIRE_PACKAGES_RTL=1
  1539. REQUIRE_PACKAGES_XFORMS=1
  1540. endif
  1541. ifeq ($(CPU_OS_TARGET),i386-wdosx)
  1542. REQUIRE_PACKAGES_RTL=1
  1543. REQUIRE_PACKAGES_XFORMS=1
  1544. endif
  1545. ifeq ($(CPU_OS_TARGET),i386-darwin)
  1546. REQUIRE_PACKAGES_RTL=1
  1547. REQUIRE_PACKAGES_XFORMS=1
  1548. endif
  1549. ifeq ($(CPU_OS_TARGET),i386-emx)
  1550. REQUIRE_PACKAGES_RTL=1
  1551. REQUIRE_PACKAGES_XFORMS=1
  1552. endif
  1553. ifeq ($(CPU_OS_TARGET),i386-watcom)
  1554. REQUIRE_PACKAGES_RTL=1
  1555. REQUIRE_PACKAGES_XFORMS=1
  1556. endif
  1557. ifeq ($(CPU_OS_TARGET),i386-netwlibc)
  1558. REQUIRE_PACKAGES_RTL=1
  1559. REQUIRE_PACKAGES_XFORMS=1
  1560. endif
  1561. ifeq ($(CPU_OS_TARGET),i386-wince)
  1562. REQUIRE_PACKAGES_RTL=1
  1563. REQUIRE_PACKAGES_XFORMS=1
  1564. endif
  1565. ifeq ($(CPU_OS_TARGET),i386-embedded)
  1566. REQUIRE_PACKAGES_RTL=1
  1567. REQUIRE_PACKAGES_XFORMS=1
  1568. endif
  1569. ifeq ($(CPU_OS_TARGET),i386-symbian)
  1570. REQUIRE_PACKAGES_RTL=1
  1571. REQUIRE_PACKAGES_XFORMS=1
  1572. endif
  1573. ifeq ($(CPU_OS_TARGET),i386-nativent)
  1574. REQUIRE_PACKAGES_RTL=1
  1575. REQUIRE_PACKAGES_XFORMS=1
  1576. endif
  1577. ifeq ($(CPU_OS_TARGET),i386-iphonesim)
  1578. REQUIRE_PACKAGES_RTL=1
  1579. REQUIRE_PACKAGES_XFORMS=1
  1580. endif
  1581. ifeq ($(CPU_OS_TARGET),i386-android)
  1582. REQUIRE_PACKAGES_RTL=1
  1583. REQUIRE_PACKAGES_XFORMS=1
  1584. endif
  1585. ifeq ($(CPU_OS_TARGET),i386-aros)
  1586. REQUIRE_PACKAGES_RTL=1
  1587. REQUIRE_PACKAGES_XFORMS=1
  1588. endif
  1589. ifeq ($(CPU_OS_TARGET),m68k-linux)
  1590. REQUIRE_PACKAGES_RTL=1
  1591. REQUIRE_PACKAGES_XFORMS=1
  1592. endif
  1593. ifeq ($(CPU_OS_TARGET),m68k-netbsd)
  1594. REQUIRE_PACKAGES_RTL=1
  1595. REQUIRE_PACKAGES_XFORMS=1
  1596. endif
  1597. ifeq ($(CPU_OS_TARGET),m68k-amiga)
  1598. REQUIRE_PACKAGES_RTL=1
  1599. REQUIRE_PACKAGES_XFORMS=1
  1600. endif
  1601. ifeq ($(CPU_OS_TARGET),m68k-atari)
  1602. REQUIRE_PACKAGES_RTL=1
  1603. REQUIRE_PACKAGES_XFORMS=1
  1604. endif
  1605. ifeq ($(CPU_OS_TARGET),m68k-palmos)
  1606. REQUIRE_PACKAGES_RTL=1
  1607. REQUIRE_PACKAGES_XFORMS=1
  1608. endif
  1609. ifeq ($(CPU_OS_TARGET),m68k-macosclassic)
  1610. REQUIRE_PACKAGES_RTL=1
  1611. REQUIRE_PACKAGES_XFORMS=1
  1612. endif
  1613. ifeq ($(CPU_OS_TARGET),m68k-embedded)
  1614. REQUIRE_PACKAGES_RTL=1
  1615. REQUIRE_PACKAGES_XFORMS=1
  1616. endif
  1617. ifeq ($(CPU_OS_TARGET),m68k-sinclairql)
  1618. REQUIRE_PACKAGES_RTL=1
  1619. REQUIRE_PACKAGES_XFORMS=1
  1620. endif
  1621. ifeq ($(CPU_OS_TARGET),m68k-human68k)
  1622. REQUIRE_PACKAGES_RTL=1
  1623. REQUIRE_PACKAGES_XFORMS=1
  1624. endif
  1625. ifeq ($(CPU_OS_TARGET),powerpc-linux)
  1626. REQUIRE_PACKAGES_RTL=1
  1627. REQUIRE_PACKAGES_XFORMS=1
  1628. endif
  1629. ifeq ($(CPU_OS_TARGET),powerpc-netbsd)
  1630. REQUIRE_PACKAGES_RTL=1
  1631. REQUIRE_PACKAGES_XFORMS=1
  1632. endif
  1633. ifeq ($(CPU_OS_TARGET),powerpc-amiga)
  1634. REQUIRE_PACKAGES_RTL=1
  1635. REQUIRE_PACKAGES_XFORMS=1
  1636. endif
  1637. ifeq ($(CPU_OS_TARGET),powerpc-macosclassic)
  1638. REQUIRE_PACKAGES_RTL=1
  1639. REQUIRE_PACKAGES_XFORMS=1
  1640. endif
  1641. ifeq ($(CPU_OS_TARGET),powerpc-darwin)
  1642. REQUIRE_PACKAGES_RTL=1
  1643. REQUIRE_PACKAGES_XFORMS=1
  1644. endif
  1645. ifeq ($(CPU_OS_TARGET),powerpc-morphos)
  1646. REQUIRE_PACKAGES_RTL=1
  1647. REQUIRE_PACKAGES_XFORMS=1
  1648. endif
  1649. ifeq ($(CPU_OS_TARGET),powerpc-embedded)
  1650. REQUIRE_PACKAGES_RTL=1
  1651. REQUIRE_PACKAGES_XFORMS=1
  1652. endif
  1653. ifeq ($(CPU_OS_TARGET),powerpc-wii)
  1654. REQUIRE_PACKAGES_RTL=1
  1655. REQUIRE_PACKAGES_XFORMS=1
  1656. endif
  1657. ifeq ($(CPU_OS_TARGET),powerpc-aix)
  1658. REQUIRE_PACKAGES_RTL=1
  1659. REQUIRE_PACKAGES_XFORMS=1
  1660. endif
  1661. ifeq ($(CPU_OS_TARGET),sparc-linux)
  1662. REQUIRE_PACKAGES_RTL=1
  1663. REQUIRE_PACKAGES_XFORMS=1
  1664. endif
  1665. ifeq ($(CPU_OS_TARGET),sparc-netbsd)
  1666. REQUIRE_PACKAGES_RTL=1
  1667. REQUIRE_PACKAGES_XFORMS=1
  1668. endif
  1669. ifeq ($(CPU_OS_TARGET),sparc-solaris)
  1670. REQUIRE_PACKAGES_RTL=1
  1671. REQUIRE_PACKAGES_XFORMS=1
  1672. endif
  1673. ifeq ($(CPU_OS_TARGET),sparc-embedded)
  1674. REQUIRE_PACKAGES_RTL=1
  1675. REQUIRE_PACKAGES_XFORMS=1
  1676. endif
  1677. ifeq ($(CPU_OS_TARGET),x86_64-linux)
  1678. REQUIRE_PACKAGES_RTL=1
  1679. REQUIRE_PACKAGES_XFORMS=1
  1680. endif
  1681. ifeq ($(CPU_OS_TARGET),x86_64-freebsd)
  1682. REQUIRE_PACKAGES_RTL=1
  1683. REQUIRE_PACKAGES_XFORMS=1
  1684. endif
  1685. ifeq ($(CPU_OS_TARGET),x86_64-haiku)
  1686. REQUIRE_PACKAGES_RTL=1
  1687. REQUIRE_PACKAGES_XFORMS=1
  1688. endif
  1689. ifeq ($(CPU_OS_TARGET),x86_64-netbsd)
  1690. REQUIRE_PACKAGES_RTL=1
  1691. REQUIRE_PACKAGES_XFORMS=1
  1692. endif
  1693. ifeq ($(CPU_OS_TARGET),x86_64-solaris)
  1694. REQUIRE_PACKAGES_RTL=1
  1695. REQUIRE_PACKAGES_XFORMS=1
  1696. endif
  1697. ifeq ($(CPU_OS_TARGET),x86_64-openbsd)
  1698. REQUIRE_PACKAGES_RTL=1
  1699. REQUIRE_PACKAGES_XFORMS=1
  1700. endif
  1701. ifeq ($(CPU_OS_TARGET),x86_64-darwin)
  1702. REQUIRE_PACKAGES_RTL=1
  1703. REQUIRE_PACKAGES_XFORMS=1
  1704. endif
  1705. ifeq ($(CPU_OS_TARGET),x86_64-win64)
  1706. REQUIRE_PACKAGES_RTL=1
  1707. REQUIRE_PACKAGES_XFORMS=1
  1708. endif
  1709. ifeq ($(CPU_OS_TARGET),x86_64-embedded)
  1710. REQUIRE_PACKAGES_RTL=1
  1711. REQUIRE_PACKAGES_XFORMS=1
  1712. endif
  1713. ifeq ($(CPU_OS_TARGET),x86_64-iphonesim)
  1714. REQUIRE_PACKAGES_RTL=1
  1715. REQUIRE_PACKAGES_XFORMS=1
  1716. endif
  1717. ifeq ($(CPU_OS_TARGET),x86_64-android)
  1718. REQUIRE_PACKAGES_RTL=1
  1719. REQUIRE_PACKAGES_XFORMS=1
  1720. endif
  1721. ifeq ($(CPU_OS_TARGET),x86_64-aros)
  1722. REQUIRE_PACKAGES_RTL=1
  1723. REQUIRE_PACKAGES_XFORMS=1
  1724. endif
  1725. ifeq ($(CPU_OS_TARGET),x86_64-dragonfly)
  1726. REQUIRE_PACKAGES_RTL=1
  1727. REQUIRE_PACKAGES_XFORMS=1
  1728. endif
  1729. ifeq ($(CPU_OS_TARGET),arm-linux)
  1730. REQUIRE_PACKAGES_RTL=1
  1731. REQUIRE_PACKAGES_XFORMS=1
  1732. endif
  1733. ifeq ($(CPU_OS_TARGET),arm-netbsd)
  1734. REQUIRE_PACKAGES_RTL=1
  1735. REQUIRE_PACKAGES_XFORMS=1
  1736. endif
  1737. ifeq ($(CPU_OS_TARGET),arm-palmos)
  1738. REQUIRE_PACKAGES_RTL=1
  1739. REQUIRE_PACKAGES_XFORMS=1
  1740. endif
  1741. ifeq ($(CPU_OS_TARGET),arm-wince)
  1742. REQUIRE_PACKAGES_RTL=1
  1743. REQUIRE_PACKAGES_XFORMS=1
  1744. endif
  1745. ifeq ($(CPU_OS_TARGET),arm-gba)
  1746. REQUIRE_PACKAGES_RTL=1
  1747. REQUIRE_PACKAGES_XFORMS=1
  1748. endif
  1749. ifeq ($(CPU_OS_TARGET),arm-nds)
  1750. REQUIRE_PACKAGES_RTL=1
  1751. REQUIRE_PACKAGES_XFORMS=1
  1752. endif
  1753. ifeq ($(CPU_OS_TARGET),arm-embedded)
  1754. REQUIRE_PACKAGES_RTL=1
  1755. REQUIRE_PACKAGES_XFORMS=1
  1756. endif
  1757. ifeq ($(CPU_OS_TARGET),arm-symbian)
  1758. REQUIRE_PACKAGES_RTL=1
  1759. REQUIRE_PACKAGES_XFORMS=1
  1760. endif
  1761. ifeq ($(CPU_OS_TARGET),arm-android)
  1762. REQUIRE_PACKAGES_RTL=1
  1763. REQUIRE_PACKAGES_XFORMS=1
  1764. endif
  1765. ifeq ($(CPU_OS_TARGET),arm-aros)
  1766. REQUIRE_PACKAGES_RTL=1
  1767. REQUIRE_PACKAGES_XFORMS=1
  1768. endif
  1769. ifeq ($(CPU_OS_TARGET),arm-freertos)
  1770. REQUIRE_PACKAGES_RTL=1
  1771. REQUIRE_PACKAGES_XFORMS=1
  1772. endif
  1773. ifeq ($(CPU_OS_TARGET),arm-ios)
  1774. REQUIRE_PACKAGES_RTL=1
  1775. REQUIRE_PACKAGES_XFORMS=1
  1776. endif
  1777. ifeq ($(CPU_OS_TARGET),powerpc64-linux)
  1778. REQUIRE_PACKAGES_RTL=1
  1779. REQUIRE_PACKAGES_XFORMS=1
  1780. endif
  1781. ifeq ($(CPU_OS_TARGET),powerpc64-darwin)
  1782. REQUIRE_PACKAGES_RTL=1
  1783. REQUIRE_PACKAGES_XFORMS=1
  1784. endif
  1785. ifeq ($(CPU_OS_TARGET),powerpc64-embedded)
  1786. REQUIRE_PACKAGES_RTL=1
  1787. REQUIRE_PACKAGES_XFORMS=1
  1788. endif
  1789. ifeq ($(CPU_OS_TARGET),powerpc64-aix)
  1790. REQUIRE_PACKAGES_RTL=1
  1791. REQUIRE_PACKAGES_XFORMS=1
  1792. endif
  1793. ifeq ($(CPU_OS_TARGET),avr-embedded)
  1794. REQUIRE_PACKAGES_RTL=1
  1795. REQUIRE_PACKAGES_XFORMS=1
  1796. endif
  1797. ifeq ($(CPU_OS_TARGET),armeb-linux)
  1798. REQUIRE_PACKAGES_RTL=1
  1799. REQUIRE_PACKAGES_XFORMS=1
  1800. endif
  1801. ifeq ($(CPU_OS_TARGET),armeb-embedded)
  1802. REQUIRE_PACKAGES_RTL=1
  1803. REQUIRE_PACKAGES_XFORMS=1
  1804. endif
  1805. ifeq ($(CPU_OS_TARGET),mips-linux)
  1806. REQUIRE_PACKAGES_RTL=1
  1807. REQUIRE_PACKAGES_XFORMS=1
  1808. endif
  1809. ifeq ($(CPU_OS_TARGET),mipsel-linux)
  1810. REQUIRE_PACKAGES_RTL=1
  1811. REQUIRE_PACKAGES_XFORMS=1
  1812. endif
  1813. ifeq ($(CPU_OS_TARGET),mipsel-embedded)
  1814. REQUIRE_PACKAGES_RTL=1
  1815. REQUIRE_PACKAGES_XFORMS=1
  1816. endif
  1817. ifeq ($(CPU_OS_TARGET),mipsel-android)
  1818. REQUIRE_PACKAGES_RTL=1
  1819. REQUIRE_PACKAGES_XFORMS=1
  1820. endif
  1821. ifeq ($(CPU_OS_TARGET),mipsel-ps1)
  1822. REQUIRE_PACKAGES_RTL=1
  1823. REQUIRE_PACKAGES_XFORMS=1
  1824. endif
  1825. ifeq ($(CPU_OS_TARGET),mips64-linux)
  1826. REQUIRE_PACKAGES_RTL=1
  1827. REQUIRE_PACKAGES_XFORMS=1
  1828. endif
  1829. ifeq ($(CPU_OS_TARGET),mips64el-linux)
  1830. REQUIRE_PACKAGES_RTL=1
  1831. REQUIRE_PACKAGES_XFORMS=1
  1832. endif
  1833. ifeq ($(CPU_OS_TARGET),jvm-java)
  1834. REQUIRE_PACKAGES_RTL=1
  1835. REQUIRE_PACKAGES_XFORMS=1
  1836. endif
  1837. ifeq ($(CPU_OS_TARGET),jvm-android)
  1838. REQUIRE_PACKAGES_RTL=1
  1839. REQUIRE_PACKAGES_XFORMS=1
  1840. endif
  1841. ifeq ($(CPU_OS_TARGET),i8086-embedded)
  1842. REQUIRE_PACKAGES_RTL=1
  1843. REQUIRE_PACKAGES_XFORMS=1
  1844. endif
  1845. ifeq ($(CPU_OS_TARGET),i8086-msdos)
  1846. REQUIRE_PACKAGES_RTL=1
  1847. REQUIRE_PACKAGES_XFORMS=1
  1848. endif
  1849. ifeq ($(CPU_OS_TARGET),i8086-win16)
  1850. REQUIRE_PACKAGES_RTL=1
  1851. REQUIRE_PACKAGES_XFORMS=1
  1852. endif
  1853. ifeq ($(CPU_OS_TARGET),aarch64-linux)
  1854. REQUIRE_PACKAGES_RTL=1
  1855. REQUIRE_PACKAGES_XFORMS=1
  1856. endif
  1857. ifeq ($(CPU_OS_TARGET),aarch64-freebsd)
  1858. REQUIRE_PACKAGES_RTL=1
  1859. REQUIRE_PACKAGES_XFORMS=1
  1860. endif
  1861. ifeq ($(CPU_OS_TARGET),aarch64-darwin)
  1862. REQUIRE_PACKAGES_RTL=1
  1863. REQUIRE_PACKAGES_XFORMS=1
  1864. endif
  1865. ifeq ($(CPU_OS_TARGET),aarch64-win64)
  1866. REQUIRE_PACKAGES_RTL=1
  1867. REQUIRE_PACKAGES_XFORMS=1
  1868. endif
  1869. ifeq ($(CPU_OS_TARGET),aarch64-embedded)
  1870. REQUIRE_PACKAGES_RTL=1
  1871. REQUIRE_PACKAGES_XFORMS=1
  1872. endif
  1873. ifeq ($(CPU_OS_TARGET),aarch64-iphonesim)
  1874. REQUIRE_PACKAGES_RTL=1
  1875. REQUIRE_PACKAGES_XFORMS=1
  1876. endif
  1877. ifeq ($(CPU_OS_TARGET),aarch64-android)
  1878. REQUIRE_PACKAGES_RTL=1
  1879. REQUIRE_PACKAGES_XFORMS=1
  1880. endif
  1881. ifeq ($(CPU_OS_TARGET),aarch64-ios)
  1882. REQUIRE_PACKAGES_RTL=1
  1883. REQUIRE_PACKAGES_XFORMS=1
  1884. endif
  1885. ifeq ($(CPU_OS_TARGET),wasm32-embedded)
  1886. REQUIRE_PACKAGES_RTL=1
  1887. REQUIRE_PACKAGES_XFORMS=1
  1888. endif
  1889. ifeq ($(CPU_OS_TARGET),wasm32-wasi)
  1890. REQUIRE_PACKAGES_RTL=1
  1891. REQUIRE_PACKAGES_XFORMS=1
  1892. endif
  1893. ifeq ($(CPU_OS_TARGET),sparc64-linux)
  1894. REQUIRE_PACKAGES_RTL=1
  1895. REQUIRE_PACKAGES_XFORMS=1
  1896. endif
  1897. ifeq ($(CPU_OS_TARGET),riscv32-linux)
  1898. REQUIRE_PACKAGES_RTL=1
  1899. REQUIRE_PACKAGES_XFORMS=1
  1900. endif
  1901. ifeq ($(CPU_OS_TARGET),riscv32-embedded)
  1902. REQUIRE_PACKAGES_RTL=1
  1903. REQUIRE_PACKAGES_XFORMS=1
  1904. endif
  1905. ifeq ($(CPU_OS_TARGET),riscv32-freertos)
  1906. REQUIRE_PACKAGES_RTL=1
  1907. REQUIRE_PACKAGES_XFORMS=1
  1908. endif
  1909. ifeq ($(CPU_OS_TARGET),riscv64-linux)
  1910. REQUIRE_PACKAGES_RTL=1
  1911. REQUIRE_PACKAGES_XFORMS=1
  1912. endif
  1913. ifeq ($(CPU_OS_TARGET),riscv64-embedded)
  1914. REQUIRE_PACKAGES_RTL=1
  1915. REQUIRE_PACKAGES_XFORMS=1
  1916. endif
  1917. ifeq ($(CPU_OS_TARGET),xtensa-linux)
  1918. REQUIRE_PACKAGES_RTL=1
  1919. REQUIRE_PACKAGES_XFORMS=1
  1920. endif
  1921. ifeq ($(CPU_OS_TARGET),xtensa-embedded)
  1922. REQUIRE_PACKAGES_RTL=1
  1923. REQUIRE_PACKAGES_XFORMS=1
  1924. endif
  1925. ifeq ($(CPU_OS_TARGET),xtensa-freertos)
  1926. REQUIRE_PACKAGES_RTL=1
  1927. REQUIRE_PACKAGES_XFORMS=1
  1928. endif
  1929. ifeq ($(CPU_OS_TARGET),z80-embedded)
  1930. REQUIRE_PACKAGES_RTL=1
  1931. REQUIRE_PACKAGES_XFORMS=1
  1932. endif
  1933. ifeq ($(CPU_OS_TARGET),z80-zxspectrum)
  1934. REQUIRE_PACKAGES_RTL=1
  1935. REQUIRE_PACKAGES_XFORMS=1
  1936. endif
  1937. ifeq ($(CPU_OS_TARGET),z80-msxdos)
  1938. REQUIRE_PACKAGES_RTL=1
  1939. REQUIRE_PACKAGES_XFORMS=1
  1940. endif
  1941. ifeq ($(CPU_OS_TARGET),z80-amstradcpc)
  1942. REQUIRE_PACKAGES_RTL=1
  1943. REQUIRE_PACKAGES_XFORMS=1
  1944. endif
  1945. ifeq ($(CPU_OS_TARGET),loongarch64-linux)
  1946. REQUIRE_PACKAGES_RTL=1
  1947. REQUIRE_PACKAGES_XFORMS=1
  1948. endif
  1949. ifdef REQUIRE_PACKAGES_RTL
  1950. PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
  1951. ifeq ($(PACKAGEDIR_RTL),)
  1952. PACKAGEDIR_RTL:=$(firstword $(subst /Makefile,,$(strip $(wildcard $(addsuffix /rtl/Makefile,$(PACKAGESDIR))))))
  1953. ifneq ($(PACKAGEDIR_RTL),)
  1954. PACKAGEDIR_RTL:=$(firstword $(subst /fpmake.pp,,$(strip $(wildcard $(addsuffix /rtl/fpmake.pp,$(PACKAGESDIR))))))
  1955. endif
  1956. endif
  1957. ifneq ($(PACKAGEDIR_RTL),)
  1958. ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
  1959. UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
  1960. else
  1961. UNITDIR_RTL=$(PACKAGEDIR_RTL)
  1962. endif
  1963. ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(SOURCESUFFIX)),)
  1964. UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)/units/$(SOURCESUFFIX)
  1965. else
  1966. ifneq ($(wildcard $(PACKAGEDIR_RTL)/units_bs/$(SOURCESUFFIX)),)
  1967. UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)/units_bs/$(SOURCESUFFIX)
  1968. else
  1969. UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)
  1970. endif
  1971. endif
  1972. ifdef CHECKDEPEND
  1973. $(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE):
  1974. $(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE)
  1975. override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE)
  1976. endif
  1977. else
  1978. PACKAGEDIR_RTL=
  1979. UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR)))))
  1980. ifneq ($(UNITDIR_RTL),)
  1981. UNITDIR_RTL:=$(firstword $(UNITDIR_RTL))
  1982. else
  1983. UNITDIR_RTL=
  1984. endif
  1985. endif
  1986. ifdef UNITDIR_RTL
  1987. override COMPILER_UNITDIR+=$(UNITDIR_RTL)
  1988. endif
  1989. ifdef UNITDIR_FPMAKE_RTL
  1990. override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL)
  1991. endif
  1992. endif
  1993. ifdef REQUIRE_PACKAGES_XFORMS
  1994. PACKAGEDIR_XFORMS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /xforms/Makefile.fpc,$(PACKAGESDIR))))))
  1995. ifeq ($(PACKAGEDIR_XFORMS),)
  1996. PACKAGEDIR_XFORMS:=$(firstword $(subst /Makefile,,$(strip $(wildcard $(addsuffix /xforms/Makefile,$(PACKAGESDIR))))))
  1997. ifneq ($(PACKAGEDIR_XFORMS),)
  1998. PACKAGEDIR_XFORMS:=$(firstword $(subst /fpmake.pp,,$(strip $(wildcard $(addsuffix /xforms/fpmake.pp,$(PACKAGESDIR))))))
  1999. endif
  2000. endif
  2001. ifneq ($(PACKAGEDIR_XFORMS),)
  2002. ifneq ($(wildcard $(PACKAGEDIR_XFORMS)/units/$(TARGETSUFFIX)),)
  2003. UNITDIR_XFORMS=$(PACKAGEDIR_XFORMS)/units/$(TARGETSUFFIX)
  2004. else
  2005. UNITDIR_XFORMS=$(PACKAGEDIR_XFORMS)
  2006. endif
  2007. ifneq ($(wildcard $(PACKAGEDIR_XFORMS)/units/$(SOURCESUFFIX)),)
  2008. UNITDIR_FPMAKE_XFORMS=$(PACKAGEDIR_XFORMS)/units/$(SOURCESUFFIX)
  2009. else
  2010. ifneq ($(wildcard $(PACKAGEDIR_XFORMS)/units_bs/$(SOURCESUFFIX)),)
  2011. UNITDIR_FPMAKE_XFORMS=$(PACKAGEDIR_XFORMS)/units_bs/$(SOURCESUFFIX)
  2012. else
  2013. UNITDIR_FPMAKE_XFORMS=$(PACKAGEDIR_XFORMS)
  2014. endif
  2015. endif
  2016. ifdef CHECKDEPEND
  2017. $(PACKAGEDIR_XFORMS)/$(FPCMADE):
  2018. $(MAKE) -C $(PACKAGEDIR_XFORMS) $(FPCMADE)
  2019. override ALLDEPENDENCIES+=$(PACKAGEDIR_XFORMS)/$(FPCMADE)
  2020. endif
  2021. else
  2022. PACKAGEDIR_XFORMS=
  2023. UNITDIR_XFORMS:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /xforms/Package.fpc,$(UNITSDIR)))))
  2024. ifneq ($(UNITDIR_XFORMS),)
  2025. UNITDIR_XFORMS:=$(firstword $(UNITDIR_XFORMS))
  2026. else
  2027. UNITDIR_XFORMS=
  2028. endif
  2029. endif
  2030. ifdef UNITDIR_XFORMS
  2031. override COMPILER_UNITDIR+=$(UNITDIR_XFORMS)
  2032. endif
  2033. ifdef UNITDIR_FPMAKE_XFORMS
  2034. override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_XFORMS)
  2035. endif
  2036. endif
  2037. ifndef NOCPUDEF
  2038. override FPCOPTDEF=$(ARCH)
  2039. endif
  2040. ifneq ($(OS_TARGET),$(OS_SOURCE))
  2041. override FPCOPT+=-T$(OS_TARGET)
  2042. endif
  2043. ifneq ($(CPU_TARGET),$(CPU_SOURCE))
  2044. override FPCOPT+=-P$(ARCH)
  2045. endif
  2046. ifeq ($(OS_SOURCE),openbsd)
  2047. override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
  2048. override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH)
  2049. override FPMAKE_BUILD_OPT+=-FD$(NEW_BINUTILS_PATH)
  2050. endif
  2051. ifndef CROSSBOOTSTRAP
  2052. ifneq ($(BINUTILSPREFIX),)
  2053. override FPCOPT+=-XP$(BINUTILSPREFIX)
  2054. ifneq ($(RLINKPATH),)
  2055. override FPCOPT+=-Xr$(RLINKPATH)
  2056. endif
  2057. endif
  2058. endif
  2059. ifndef CROSSCOMPILE
  2060. ifneq ($(BINUTILSPREFIX),)
  2061. override FPCMAKEOPT+=-XP$(BINUTILSPREFIX)
  2062. override FPMAKE_BUILD_OPT+=-XP$(BINUTILSPREFIX)
  2063. endif
  2064. endif
  2065. ifdef UNITDIR
  2066. override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
  2067. endif
  2068. ifdef LIBDIR
  2069. override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
  2070. endif
  2071. ifdef OBJDIR
  2072. override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
  2073. endif
  2074. ifdef INCDIR
  2075. override FPCOPT+=$(addprefix -Fi,$(INCDIR))
  2076. endif
  2077. ifdef LINKSMART
  2078. override FPCOPT+=-XX
  2079. endif
  2080. ifdef CREATESMART
  2081. override FPCOPT+=-CX
  2082. endif
  2083. ifdef DEBUG
  2084. override FPCOPT+=-gl
  2085. override FPCOPTDEF+=DEBUG
  2086. endif
  2087. ifdef RELEASE
  2088. FPCCPUOPT:=-O2
  2089. override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
  2090. override FPCOPTDEF+=RELEASE
  2091. endif
  2092. ifdef STRIP
  2093. override FPCOPT+=-Xs
  2094. endif
  2095. ifdef OPTIMIZE
  2096. override FPCOPT+=-O2
  2097. endif
  2098. ifdef VERBOSE
  2099. override FPCOPT+=-vwni
  2100. endif
  2101. ifdef COMPILER_OPTIONS
  2102. override FPCOPT+=$(COMPILER_OPTIONS)
  2103. endif
  2104. ifdef COMPILER_UNITDIR
  2105. override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
  2106. endif
  2107. ifdef COMPILER_LIBRARYDIR
  2108. override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
  2109. endif
  2110. ifdef COMPILER_OBJECTDIR
  2111. override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
  2112. endif
  2113. ifdef COMPILER_INCLUDEDIR
  2114. override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
  2115. endif
  2116. ifdef CROSSBINDIR
  2117. override FPCOPT+=-FD$(CROSSBINDIR)
  2118. endif
  2119. ifdef COMPILER_TARGETDIR
  2120. override FPCOPT+=-FE$(COMPILER_TARGETDIR)
  2121. ifeq ($(COMPILER_TARGETDIR),.)
  2122. override TARGETDIRPREFIX=
  2123. else
  2124. override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
  2125. endif
  2126. endif
  2127. ifdef COMPILER_UNITTARGETDIR
  2128. override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
  2129. ifeq ($(COMPILER_UNITTARGETDIR),.)
  2130. override UNITTARGETDIRPREFIX=
  2131. else
  2132. override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
  2133. endif
  2134. else
  2135. ifdef COMPILER_TARGETDIR
  2136. override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
  2137. override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
  2138. endif
  2139. endif
  2140. ifdef SYSROOTPATH
  2141. override FPCOPT+=-XR$(SYSROOTPATH)
  2142. else
  2143. ifeq ($(OS_TARGET),$(OS_SOURCE))
  2144. ifeq ($(OS_TARGET),darwin)
  2145. ifeq ($(CPU_TARGET),aarch64)
  2146. ifneq ($(wildcard /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk),)
  2147. override FPCOPT+=-XR/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
  2148. endif
  2149. endif
  2150. endif
  2151. endif
  2152. endif
  2153. ifdef CREATESHARED
  2154. override FPCOPT+=-Cg
  2155. endif
  2156. ifneq ($(filter $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
  2157. ifneq ($(filter $(CPU_TARGET),x86_64 mips mipsel mips64 mips64el riscv64 powerpc64),)
  2158. override FPCOPT+=-Cg
  2159. endif
  2160. endif
  2161. ifneq ($(filter $(CPU_TARGET),z80),)
  2162. override FPCOPT+=-CX -XX
  2163. endif
  2164. ifdef LINKSHARED
  2165. endif
  2166. ifdef GCCLIBDIR
  2167. override FPCOPT+=-Fl$(GCCLIBDIR)
  2168. ifdef FPCMAKEGCCLIBDIR
  2169. override FPCMAKEOPT+=-Fl$(FPCMAKEGCCLIBDIR)
  2170. else
  2171. override FPCMAKEOPT+=-Fl$(GCCLIBDIR)
  2172. endif
  2173. endif
  2174. ifdef OTHERLIBDIR
  2175. override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR))
  2176. endif
  2177. ifdef OPT
  2178. override FPCOPT+=$(OPT)
  2179. endif
  2180. ifdef FPMAKEBUILDOPT
  2181. override FPMAKE_BUILD_OPT+=$(FPMAKEBUILDOPT)
  2182. endif
  2183. ifdef FPCOPTDEF
  2184. override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
  2185. endif
  2186. ifdef CFGFILE
  2187. override FPCOPT+=@$(CFGFILE)
  2188. endif
  2189. ifdef USEENV
  2190. override FPCEXTCMD:=$(FPCOPT)
  2191. override FPCOPT:=!FPCEXTCMD
  2192. export FPCEXTCMD
  2193. endif
  2194. override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
  2195. override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
  2196. ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))
  2197. override ACROSSCOMPILE=1
  2198. endif
  2199. ifdef ACROSSCOMPILE
  2200. override FPCOPT+=$(CROSSOPT)
  2201. endif
  2202. override COMPILER:=$(strip $(FPC) $(FPCOPT))
  2203. ifneq (,$(filter -sh,$(COMPILER)))
  2204. UseEXECPPAS=1
  2205. endif
  2206. ifneq (,$(filter -s,$(COMPILER)))
  2207. ifeq ($(FULL_SOURCE),$(FULL_TARGET))
  2208. UseEXECPPAS=1
  2209. endif
  2210. endif
  2211. ifneq ($(UseEXECPPAS),1)
  2212. EXECPPAS=
  2213. else
  2214. ifdef RUNBATCH
  2215. EXECPPAS:=@$(RUNBATCH) $(PPAS)
  2216. else
  2217. EXECPPAS:=@$(PPAS)
  2218. endif
  2219. endif
  2220. .PHONY: fpc_exes
  2221. ifndef CROSSINSTALL
  2222. ifneq ($(TARGET_PROGRAMS),)
  2223. override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
  2224. override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addsuffix $(LTOEXT),$(TARGET_PROGRAMS))$(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
  2225. override EXEDBGFILES:=$(addsuffix $(EXEDBGEXT),$(TARGET_PROGRAMS))
  2226. override ALLTARGET+=fpc_exes
  2227. override INSTALLEXEFILES+=$(EXEFILES)
  2228. override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
  2229. override CLEANEXEDBGFILES+=$(EXEDBGFILES)
  2230. ifeq ($(OS_TARGET),os2)
  2231. override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
  2232. endif
  2233. ifeq ($(OS_TARGET),emx)
  2234. override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
  2235. endif
  2236. endif
  2237. endif
  2238. fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
  2239. ifdef TARGET_RSTS
  2240. override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
  2241. override CLEANRSTFILES+=$(RSTFILES)
  2242. endif
  2243. .PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared
  2244. $(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
  2245. @$(ECHOREDIR) Compiled > $(FPCMADE)
  2246. fpc_all: $(FPCMADE)
  2247. fpc_smart:
  2248. $(MAKE) all LINKSMART=1 CREATESMART=1
  2249. fpc_debug:
  2250. $(MAKE) all DEBUG=1
  2251. fpc_release:
  2252. $(MAKE) all RELEASE=1
  2253. .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) $(LTOEXT) .pas .lpr .dpr .pp .rc .res
  2254. $(COMPILER_UNITTARGETDIR):
  2255. $(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
  2256. $(COMPILER_TARGETDIR):
  2257. $(MKDIRTREE) $(COMPILER_TARGETDIR)
  2258. %$(PPUEXT): %.pp
  2259. $(COMPILER) $<
  2260. $(EXECPPAS)
  2261. %$(PPUEXT): %.pas
  2262. $(COMPILER) $<
  2263. $(EXECPPAS)
  2264. %$(EXEEXT): %.pp
  2265. $(COMPILER) $<
  2266. $(EXECPPAS)
  2267. %$(EXEEXT): %.pas
  2268. $(COMPILER) $<
  2269. $(EXECPPAS)
  2270. %$(EXEEXT): %.lpr
  2271. $(COMPILER) $<
  2272. $(EXECPPAS)
  2273. %$(EXEEXT): %.dpr
  2274. $(COMPILER) $<
  2275. $(EXECPPAS)
  2276. %.res: %.rc
  2277. windres -i $< -o $@
  2278. vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  2279. vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  2280. vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  2281. vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  2282. vpath %.inc $(COMPILER_INCLUDEDIR)
  2283. vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
  2284. vpath %$(LTOEXT) $(COMPILER_UNITTARGETDIR)
  2285. vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
  2286. .PHONY: fpc_shared
  2287. override INSTALLTARGET+=fpc_shared_install
  2288. ifndef SHARED_LIBVERSION
  2289. SHARED_LIBVERSION=$(FPC_VERSION)
  2290. endif
  2291. ifndef SHARED_LIBNAME
  2292. SHARED_LIBNAME=$(PACKAGE_NAME)
  2293. endif
  2294. ifndef SHARED_FULLNAME
  2295. SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSION)$(SHAREDLIBEXT)
  2296. endif
  2297. ifndef SHARED_LIBUNITS
  2298. SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS)
  2299. override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_LIBUNITS))
  2300. endif
  2301. fpc_shared:
  2302. ifdef HASSHAREDLIB
  2303. $(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1
  2304. ifneq ($(SHARED_BUILD),n)
  2305. $(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR) -P$(BINUTILSPREFIX)
  2306. endif
  2307. else
  2308. @$(ECHO) Shared Libraries not supported
  2309. endif
  2310. fpc_shared_install:
  2311. ifneq ($(SHARED_BUILD),n)
  2312. ifneq ($(SHARED_LIBUNITS),)
  2313. ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)
  2314. $(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INSTALL_SHAREDDIR)
  2315. endif
  2316. endif
  2317. endif
  2318. .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
  2319. ifdef INSTALL_UNITS
  2320. override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
  2321. endif
  2322. ifdef INSTALL_BUILDUNIT
  2323. override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
  2324. endif
  2325. ifdef INSTALLPPUFILES
  2326. ifneq ($(IMPORTLIBPREFIX)-$(STATICLIBEXT),$(STATICLIBPREFIX)-$(STATICLIBEXT))
  2327. override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(subst $(PPUEXT),$(LTOEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
  2328. else
  2329. override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(subst $(PPUEXT),$(LTOEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
  2330. endif
  2331. ifneq ($(UNITTARGETDIRPREFIX),)
  2332. override INSTALLPPUFILENAMES:=$(notdir $(INSTALLPPUFILES))
  2333. override INSTALLPPULINKFILENAMES:=$(notdir $(INSTALLPPULINKFILES))
  2334. override INSTALLPPUFILES=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILENAMES))
  2335. override INSTALLPPULINKFILES=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILENAMES)))
  2336. endif
  2337. override INSTALL_CREATEPACKAGEFPC=1
  2338. endif
  2339. ifdef INSTALLEXEFILES
  2340. ifneq ($(TARGETDIRPREFIX),)
  2341. override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
  2342. endif
  2343. endif
  2344. fpc_install: all $(INSTALLTARGET)
  2345. ifdef INSTALLEXEFILES
  2346. $(MKDIR) $(INSTALL_BINDIR)
  2347. $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
  2348. endif
  2349. ifdef INSTALL_CREATEPACKAGEFPC
  2350. ifdef FPCMAKE
  2351. ifdef PACKAGE_VERSION
  2352. ifneq ($(wildcard Makefile.fpc),)
  2353. $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
  2354. $(MKDIR) $(INSTALL_UNITDIR)
  2355. $(INSTALL) Package.fpc $(INSTALL_UNITDIR)
  2356. endif
  2357. endif
  2358. endif
  2359. endif
  2360. ifdef INSTALLPPUFILES
  2361. $(MKDIR) $(INSTALL_UNITDIR)
  2362. $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
  2363. ifneq ($(INSTALLPPULINKFILES),)
  2364. $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
  2365. endif
  2366. ifneq ($(wildcard $(LIB_FULLNAME)),)
  2367. $(MKDIR) $(INSTALL_LIBDIR)
  2368. $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
  2369. ifdef inUnix
  2370. ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
  2371. endif
  2372. endif
  2373. endif
  2374. ifdef INSTALL_FILES
  2375. $(MKDIR) $(INSTALL_DATADIR)
  2376. $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
  2377. endif
  2378. fpc_sourceinstall: distclean
  2379. $(MKDIR) $(INSTALL_SOURCEDIR)
  2380. $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
  2381. fpc_exampleinstall: $(EXAMPLEINSTALLTARGET) $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
  2382. ifdef HASEXAMPLES
  2383. $(MKDIR) $(INSTALL_EXAMPLEDIR)
  2384. endif
  2385. ifdef EXAMPLESOURCEFILES
  2386. $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
  2387. endif
  2388. ifdef TARGET_EXAMPLEDIRS
  2389. $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
  2390. endif
  2391. .PHONY: fpc_clean fpc_cleanall fpc_distclean
  2392. ifdef EXEFILES
  2393. override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
  2394. override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES))
  2395. endif
  2396. ifdef CLEAN_PROGRAMS
  2397. override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS)))
  2398. override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS)))
  2399. endif
  2400. ifdef CLEAN_UNITS
  2401. override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
  2402. endif
  2403. ifdef CLEANPPUFILES
  2404. override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(subst $(PPUEXT),$(LTOEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
  2405. ifdef DEBUGSYMEXT
  2406. override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
  2407. endif
  2408. override CLEANPPUFILENAMES:=$(CLEANPPUFILES)
  2409. override CLEANPPUFILES=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILENAMES))
  2410. override CLEANPPULINKFILENAMES:=$(CLEANPPULINKFILES)
  2411. override CLEANPPULINKFILES=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILENAMES)))
  2412. endif
  2413. fpc_clean: $(CLEANTARGET)
  2414. ifdef CLEANEXEFILES
  2415. -$(DEL) $(CLEANEXEFILES)
  2416. endif
  2417. ifdef CLEANEXEDBGFILES
  2418. -$(DELTREE) $(CLEANEXEDBGFILES)
  2419. endif
  2420. ifdef CLEANPPUFILES
  2421. -$(DEL) $(CLEANPPUFILES)
  2422. endif
  2423. ifneq ($(CLEANPPULINKFILES),)
  2424. -$(DEL) $(CLEANPPULINKFILES)
  2425. endif
  2426. ifdef CLEANRSTFILES
  2427. -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
  2428. endif
  2429. ifdef CLEAN_FILES
  2430. -$(DEL) $(CLEAN_FILES)
  2431. endif
  2432. ifdef LIB_NAME
  2433. -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
  2434. endif
  2435. -$(DEL) $(FPCMADE) *$(FULL_TARGET).fpm Package.fpc *$(ASMEXT)
  2436. -$(DEL) $(FPCEXTFILE) $(REDIRFILE) script*.res link*.res *_script.res *_link.res
  2437. -$(DEL) $(PPAS) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
  2438. fpc_cleanall: $(CLEANTARGET)
  2439. ifdef CLEANEXEFILES
  2440. -$(DEL) $(CLEANEXEFILES)
  2441. endif
  2442. ifdef COMPILER_UNITTARGETDIR
  2443. ifdef CLEANPPUFILES
  2444. -$(DEL) $(CLEANPPUFILES)
  2445. endif
  2446. ifneq ($(CLEANPPULINKFILES),)
  2447. -$(DEL) $(CLEANPPULINKFILES)
  2448. endif
  2449. ifdef CLEANRSTFILES
  2450. -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
  2451. endif
  2452. endif
  2453. ifdef CLEAN_FILES
  2454. -$(DEL) $(CLEAN_FILES)
  2455. endif
  2456. -$(DELTREE) units
  2457. -$(DELTREE) bin
  2458. -$(DEL) *$(OEXT) *$(LTOEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
  2459. ifneq ($(PPUEXT),.ppu)
  2460. -$(DEL) *.o *.ppu *.a
  2461. endif
  2462. -$(DELTREE) *$(SMARTEXT)
  2463. -$(DEL) fpcmade.* Package.fpc *.fpm
  2464. -$(DEL) $(FPCEXTFILE) $(REDIRFILE) script*.res link*.res *_script.res *_link.res
  2465. -$(DEL) $(PPAS) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
  2466. ifdef AOUTEXT
  2467. -$(DEL) *$(AOUTEXT)
  2468. endif
  2469. ifdef DEBUGSYMEXT
  2470. -$(DEL) *$(DEBUGSYMEXT)
  2471. endif
  2472. ifdef LOCALFPMAKEBIN
  2473. -$(DEL) $(LOCALFPMAKEBIN)
  2474. -$(DEL) $(FPMAKEBINOBJ)
  2475. endif
  2476. fpc_distclean: cleanall
  2477. .PHONY: fpc_baseinfo
  2478. override INFORULES+=fpc_baseinfo
  2479. fpc_baseinfo:
  2480. @$(ECHO)
  2481. @$(ECHO) == Package info ==
  2482. @$(ECHO) Package Name..... $(PACKAGE_NAME)
  2483. @$(ECHO) Package Version.. $(PACKAGE_VERSION)
  2484. @$(ECHO)
  2485. @$(ECHO) == Configuration info ==
  2486. @$(ECHO)
  2487. @$(ECHO) FPC.......... $(FPC)
  2488. @$(ECHO) FPC Version.. $(FPC_VERSION)
  2489. @$(ECHO) Source CPU... $(CPU_SOURCE)
  2490. @$(ECHO) Target CPU... $(CPU_TARGET)
  2491. @$(ECHO) Source OS.... $(OS_SOURCE)
  2492. @$(ECHO) Target OS.... $(OS_TARGET)
  2493. @$(ECHO) Full Source.. $(FULL_SOURCE)
  2494. @$(ECHO) Full Target.. $(FULL_TARGET)
  2495. @$(ECHO) SourceSuffix. $(SOURCESUFFIX)
  2496. @$(ECHO) TargetSuffix. $(TARGETSUFFIX)
  2497. @$(ECHO) FPC fpmake... $(FPCFPMAKE)
  2498. @$(ECHO)
  2499. @$(ECHO) == Directory info ==
  2500. @$(ECHO)
  2501. @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)
  2502. @$(ECHO)
  2503. @$(ECHO) Basedir......... $(BASEDIR)
  2504. @$(ECHO) FPCDir.......... $(FPCDIR)
  2505. @$(ECHO) CrossBinDir..... $(CROSSBINDIR)
  2506. @$(ECHO) UnitsDir........ $(UNITSDIR)
  2507. @$(ECHO) PackagesDir..... $(PACKAGESDIR)
  2508. @$(ECHO)
  2509. @$(ECHO) GCC library..... $(GCCLIBDIR)
  2510. @$(ECHO) Other library... $(OTHERLIBDIR)
  2511. @$(ECHO)
  2512. @$(ECHO) == Tools info ==
  2513. @$(ECHO)
  2514. @$(ECHO) As........ $(AS)
  2515. @$(ECHO) Ld........ $(LD)
  2516. @$(ECHO) Ar........ $(AR)
  2517. @$(ECHO) Rc........ $(RC)
  2518. @$(ECHO)
  2519. @$(ECHO) Mv........ $(MVPROG)
  2520. @$(ECHO) Cp........ $(CPPROG)
  2521. @$(ECHO) Rm........ $(RMPROG)
  2522. @$(ECHO) GInstall.. $(GINSTALL)
  2523. @$(ECHO) Echo...... $(ECHO)
  2524. @$(ECHO) Shell..... $(SHELL)
  2525. @$(ECHO) Date...... $(DATE)
  2526. @$(ECHO) FPCMake... $(FPCMAKE)
  2527. @$(ECHO) PPUMove... $(PPUMOVE)
  2528. @$(ECHO) Zip....... $(ZIPPROG)
  2529. @$(ECHO)
  2530. @$(ECHO) == Object info ==
  2531. @$(ECHO)
  2532. @$(ECHO) Target Loaders........ $(TARGET_LOADERS)
  2533. @$(ECHO) Target Units.......... $(TARGET_UNITS)
  2534. @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)
  2535. @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)
  2536. @$(ECHO) Target Dirs........... $(TARGET_DIRS)
  2537. @$(ECHO) Target Examples....... $(TARGET_EXAMPLES)
  2538. @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
  2539. @$(ECHO)
  2540. @$(ECHO) Clean Units......... $(CLEAN_UNITS)
  2541. @$(ECHO) Clean Files......... $(CLEAN_FILES)
  2542. @$(ECHO)
  2543. @$(ECHO) Install Units....... $(INSTALL_UNITS)
  2544. @$(ECHO) Install Files....... $(INSTALL_FILES)
  2545. @$(ECHO)
  2546. @$(ECHO) == Install info ==
  2547. @$(ECHO)
  2548. @$(ECHO) DateStr.............. $(DATESTR)
  2549. @$(ECHO) ZipName.............. $(ZIPNAME)
  2550. @$(ECHO) ZipPrefix............ $(ZIPPREFIX)
  2551. @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX)
  2552. @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
  2553. @$(ECHO) FullZipName.......... $(FULLZIPNAME)
  2554. @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)
  2555. @$(ECHO)
  2556. @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)
  2557. @$(ECHO) Install binary dir... $(INSTALL_BINDIR)
  2558. @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)
  2559. @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)
  2560. @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)
  2561. @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)
  2562. @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)
  2563. @$(ECHO) Install data dir..... $(INSTALL_DATADIR)
  2564. @$(ECHO)
  2565. @$(ECHO) Dist destination dir. $(DIST_DESTDIR)
  2566. @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)
  2567. @$(ECHO)
  2568. .PHONY: fpc_info
  2569. fpc_info: $(INFORULES)
  2570. .PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
  2571. fpc_makefile_dirs
  2572. fpc_makefile:
  2573. $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
  2574. fpc_makefile_sub1:
  2575. ifdef TARGET_DIRS
  2576. $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
  2577. endif
  2578. ifdef TARGET_EXAMPLEDIRS
  2579. $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
  2580. endif
  2581. fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
  2582. fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
  2583. fpc_makefiles: fpc_makefile fpc_makefile_dirs
  2584. all: fpc_all
  2585. debug: fpc_debug
  2586. smart: fpc_smart
  2587. release: fpc_release
  2588. units: fpc_units
  2589. examples:
  2590. shared: fpc_shared
  2591. install: fpc_install
  2592. sourceinstall: fpc_sourceinstall
  2593. exampleinstall: fpc_exampleinstall
  2594. distinstall:
  2595. zipinstall:
  2596. zipsourceinstall:
  2597. zipexampleinstall:
  2598. zipdistinstall:
  2599. clean: fpc_clean
  2600. distclean: fpc_distclean
  2601. cleanall: fpc_cleanall
  2602. info: fpc_info
  2603. makefiles: fpc_makefiles
  2604. .PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
  2605. ifneq ($(wildcard fpcmake.loc),)
  2606. include fpcmake.loc
  2607. endif
  2608. .NOTPARALLEL: