Makefile 59 KB

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