Makefile 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909
  1. #
  2. # Don't edit, this file is generated by fpcmake v1.99.0 [2001/07/13]
  3. #
  4. default: all
  5. override PATH:=$(subst \,/,$(PATH))
  6. ifeq ($(findstring ;,$(PATH)),)
  7. inUnix=1
  8. SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
  9. else
  10. SEARCHPATH:=$(subst ;, ,$(PATH))
  11. endif
  12. PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
  13. ifeq ($(PWD),)
  14. PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
  15. ifeq ($(PWD),)
  16. nopwd:
  17. @echo You need the GNU utils package to use this Makefile!
  18. @echo Get ftp://ftp.freepascal.org/pub/fpc/dist/go32v2/utilgo32.zip
  19. @exit
  20. else
  21. PWD:=$(firstword $(PWD))
  22. SRCEXEEXT=
  23. endif
  24. else
  25. PWD:=$(firstword $(PWD))
  26. SRCEXEEXT=.exe
  27. endif
  28. ifndef inUnix
  29. ifeq ($(OS),Windows_NT)
  30. inWinNT=1
  31. else
  32. ifdef OS2_SHELL
  33. inOS2=1
  34. endif
  35. endif
  36. else
  37. ifneq ($(findstring cygwin,$(MACHTYPE)),)
  38. inCygWin=1
  39. endif
  40. endif
  41. ifdef inUnix
  42. BATCHEXT=.sh
  43. else
  44. ifdef inOS2
  45. BATCHEXT=.cmd
  46. else
  47. BATCHEXT=.bat
  48. endif
  49. endif
  50. ifdef inUnix
  51. PATHSEP=/
  52. else
  53. PATHSEP:=$(subst /,\,/)
  54. endif
  55. ifdef PWD
  56. BASEDIR:=$(subst \,/,$(shell $(PWD)))
  57. ifdef inCygWin
  58. ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
  59. BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
  60. BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
  61. BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
  62. endif
  63. endif
  64. else
  65. BASEDIR=.
  66. endif
  67. override OS_TARGET=os2
  68. override CPU_TARGET=i386
  69. ifndef FPC
  70. ifdef PP
  71. FPC=$(PP)
  72. else
  73. FPC=ppc386
  74. endif
  75. endif
  76. override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
  77. override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
  78. ifndef OS_TARGET
  79. OS_TARGET:=$(shell $(FPC) -iTO)
  80. endif
  81. ifndef OS_SOURCE
  82. OS_SOURCE:=$(shell $(FPC) -iSO)
  83. endif
  84. ifndef CPU_TARGET
  85. CPU_TARGET:=$(shell $(FPC) -iTP)
  86. endif
  87. ifndef CPU_SOURCE
  88. CPU_SOURCE:=$(shell $(FPC) -iSP)
  89. endif
  90. ifndef FPC_VERSION
  91. FPC_VERSION:=$(shell $(FPC) -iV)
  92. endif
  93. export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
  94. ifdef FPCDIR
  95. override FPCDIR:=$(subst \,/,$(FPCDIR))
  96. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  97. override FPCDIR=wrong
  98. endif
  99. else
  100. override FPCDIR=wrong
  101. endif
  102. ifeq ($(FPCDIR),wrong)
  103. override FPCDIR=../..
  104. ifeq ($(wildcard $(FPCDIR)/rtl),)
  105. ifeq ($(wildcard $(FPCDIR)/units),)
  106. override FPCDIR=wrong
  107. endif
  108. endif
  109. endif
  110. ifeq ($(FPCDIR),wrong)
  111. ifdef inUnix
  112. override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
  113. ifeq ($(wildcard $(FPCDIR)/units),)
  114. override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
  115. endif
  116. else
  117. override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
  118. override FPCDIR:=$(FPCDIR)/..
  119. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  120. override FPCDIR:=$(FPCDIR)/..
  121. ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
  122. override FPCDIR=c:/pp
  123. endif
  124. endif
  125. endif
  126. endif
  127. UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
  128. PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages)
  129. override PACKAGE_NAME=rtl
  130. RTL=..
  131. INC=$(RTL)/inc
  132. PROCINC=$(RTL)/$(CPU_TARGET)
  133. UNITPREFIX=rtl
  134. ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
  135. SYSTEMUNIT=system
  136. else
  137. SYSTEMUNIT=sysos2
  138. endif
  139. ifdef RELEASE
  140. override FPCOPT+=-Ur
  141. endif
  142. OBJPASDIR=$(RTL)/objpas
  143. GRAPHDIR=$(INC)/graph
  144. override TARGET_UNITS+=$(SYSTEMUNIT) objpas strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi dive dos crt objects printer sysutils math typinfo varutils ucomplex cpu mmx getopts heaptrc lineinfo dynlibs video mouse keyboard
  145. override TARGET_LOADERS+=prt0 prt1 code2 code3
  146. override TARGET_RSTS+=math varutils typinfo
  147. override INSTALL_FPCPACKAGE=y
  148. override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
  149. override COMPILER_SOURCEDIR+=$(INC) $(PROCINC)
  150. override COMPILER_TARGETDIR+=.
  151. ifndef ECHO
  152. ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
  153. ifeq ($(ECHO),)
  154. ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
  155. ifeq ($(ECHO),)
  156. ECHO=
  157. else
  158. ECHO:=$(firstword $(ECHO))
  159. endif
  160. else
  161. ECHO:=$(firstword $(ECHO))
  162. endif
  163. endif
  164. export ECHO
  165. ifndef DATE
  166. DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
  167. ifeq ($(DATE),)
  168. DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
  169. ifeq ($(DATE),)
  170. DATE=
  171. else
  172. DATE:=$(firstword $(DATE))
  173. endif
  174. else
  175. DATE:=$(firstword $(DATE))
  176. endif
  177. endif
  178. export DATE
  179. ifndef GINSTALL
  180. GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
  181. ifeq ($(GINSTALL),)
  182. GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
  183. ifeq ($(GINSTALL),)
  184. GINSTALL=
  185. else
  186. GINSTALL:=$(firstword $(GINSTALL))
  187. endif
  188. else
  189. GINSTALL:=$(firstword $(GINSTALL))
  190. endif
  191. endif
  192. export GINSTALL
  193. ifndef CPPROG
  194. CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
  195. ifeq ($(CPPROG),)
  196. CPPROG=
  197. else
  198. CPPROG:=$(firstword $(CPPROG))
  199. endif
  200. endif
  201. export CPPROG
  202. ifndef RMPROG
  203. RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
  204. ifeq ($(RMPROG),)
  205. RMPROG=
  206. else
  207. RMPROG:=$(firstword $(RMPROG))
  208. endif
  209. endif
  210. export RMPROG
  211. ifndef MVPROG
  212. MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
  213. ifeq ($(MVPROG),)
  214. MVPROG=
  215. else
  216. MVPROG:=$(firstword $(MVPROG))
  217. endif
  218. endif
  219. export MVPROG
  220. ifndef ECHOREDIR
  221. ECHOREDIR:=$(subst /,$(PATHSEP),$(ECHO))
  222. endif
  223. ifndef COPY
  224. COPY:=$(CPPROG) -fp
  225. endif
  226. ifndef COPYTREE
  227. COPYTREE:=$(CPPROG) -rfp
  228. endif
  229. ifndef MOVE
  230. MOVE:=$(MVPROG) -f
  231. endif
  232. ifndef DEL
  233. DEL:=$(RMPROG) -f
  234. endif
  235. ifndef DELTREE
  236. DELTREE:=$(RMPROG) -rf
  237. endif
  238. ifndef INSTALL
  239. ifdef inUnix
  240. INSTALL:=$(GINSTALL) -c -m 644
  241. else
  242. INSTALL:=$(COPY)
  243. endif
  244. endif
  245. ifndef INSTALLEXE
  246. ifdef inUnix
  247. INSTALLEXE:=$(GINSTALL) -c -m 755
  248. else
  249. INSTALLEXE:=$(COPY)
  250. endif
  251. endif
  252. ifndef MKDIR
  253. MKDIR:=$(GINSTALL) -m 755 -d
  254. endif
  255. export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
  256. ifndef PPUMOVE
  257. PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
  258. ifeq ($(PPUMOVE),)
  259. PPUMOVE=
  260. else
  261. PPUMOVE:=$(firstword $(PPUMOVE))
  262. endif
  263. endif
  264. export PPUMOVE
  265. ifndef FPCMAKE
  266. FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
  267. ifeq ($(FPCMAKE),)
  268. FPCMAKE=
  269. else
  270. FPCMAKE:=$(firstword $(FPCMAKE))
  271. endif
  272. endif
  273. export FPCMAKE
  274. ifndef ZIPPROG
  275. ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
  276. ifeq ($(ZIPPROG),)
  277. ZIPPROG=
  278. else
  279. ZIPPROG:=$(firstword $(ZIPPROG))
  280. endif
  281. endif
  282. export ZIPPROG
  283. ifndef TARPROG
  284. TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
  285. ifeq ($(TARPROG),)
  286. TARPROG=
  287. else
  288. TARPROG:=$(firstword $(TARPROG))
  289. endif
  290. endif
  291. export TARPROG
  292. ifndef AS
  293. AS=as
  294. endif
  295. ifndef LD
  296. LD=ld
  297. endif
  298. ifndef RC
  299. RC=rc
  300. endif
  301. PPAS=ppas$(BATCHEXT)
  302. ifdef inUnix
  303. LDCONFIG=ldconfig
  304. else
  305. LDCONFIG=
  306. endif
  307. ifdef DATE
  308. DATESTR:=$(shell $(DATE) +%Y%m%d)
  309. else
  310. DATESTR=
  311. endif
  312. ifndef UPXPROG
  313. ifeq ($(OS_TARGET),go32v2)
  314. UPXPROG:=1
  315. endif
  316. ifeq ($(OS_TARGET),win32)
  317. UPXPROG:=1
  318. endif
  319. ifdef UPXPROG
  320. UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
  321. ifeq ($(UPXPROG),)
  322. UPXPROG=
  323. else
  324. UPXPROG:=$(firstword $(UPXPROG))
  325. endif
  326. else
  327. UPXPROG=
  328. endif
  329. endif
  330. export UPXPROG
  331. ZIPOPT=-9
  332. ZIPEXT=.zip
  333. ifeq ($(USETAR),bz2)
  334. TAROPT=vI
  335. TAREXT=.tar.bz2
  336. else
  337. TAROPT=vz
  338. TAREXT=.tar.gz
  339. endif
  340. LOADEREXT=.as
  341. EXEEXT=.exe
  342. PPLEXT=.ppl
  343. PPUEXT=.ppu
  344. OEXT=.o
  345. ASMEXT=.s
  346. SMARTEXT=.sl
  347. STATICLIBEXT=.a
  348. SHAREDLIBEXT=.so
  349. STATICLIBPREFIX=libp
  350. RSTEXT=.rst
  351. FPCMADE=fpcmade
  352. ifeq ($(OS_TARGET),go32v1)
  353. PPUEXT=.pp1
  354. OEXT=.o1
  355. ASMEXT=.s1
  356. SMARTEXT=.sl1
  357. STATICLIBEXT=.a1
  358. SHAREDLIBEXT=.so1
  359. STATICLIBPREFIX=
  360. FPCMADE=fpcmade.v1
  361. PACKAGESUFFIX=v1
  362. endif
  363. ifeq ($(OS_TARGET),go32v2)
  364. STATICLIBPREFIX=
  365. FPCMADE=fpcmade.dos
  366. ZIPSUFFIX=go32
  367. endif
  368. ifeq ($(OS_TARGET),linux)
  369. EXEEXT=
  370. HASSHAREDLIB=1
  371. FPCMADE=fpcmade.lnx
  372. ZIPSUFFIX=linux
  373. endif
  374. ifeq ($(OS_TARGET),freebsd)
  375. EXEEXT=
  376. HASSHAREDLIB=1
  377. FPCMADE=fpcmade.freebsd
  378. ZIPSUFFIX=freebsd
  379. endif
  380. ifeq ($(OS_TARGET),win32)
  381. PPUEXT=.ppw
  382. OEXT=.ow
  383. ASMEXT=.sw
  384. SMARTEXT=.slw
  385. STATICLIBEXT=.aw
  386. SHAREDLIBEXT=.dll
  387. FPCMADE=fpcmade.w32
  388. ZIPSUFFIX=w32
  389. endif
  390. ifeq ($(OS_TARGET),os2)
  391. PPUEXT=.ppo
  392. ASMEXT=.so2
  393. OEXT=.oo2
  394. AOUTEXT=.out
  395. SMARTEXT=.so
  396. STATICLIBEXT=.ao2
  397. SHAREDLIBEXT=.dll
  398. FPCMADE=fpcmade.os2
  399. ZIPSUFFIX=emx
  400. endif
  401. ifdef REQUIRE_UNITSDIR
  402. override UNITSDIR+=$(REQUIRE_UNITSDIR)
  403. endif
  404. ifdef REQUIRE_PACKAGESDIR
  405. override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
  406. endif
  407. ifdef ZIPINSTALL
  408. ifeq ($(OS_TARGET),linux)
  409. UNIXINSTALLDIR=1
  410. endif
  411. ifeq ($(OS_TARGET),freebsd)
  412. UNIXINSTALLDIR=1
  413. endif
  414. else
  415. ifeq ($(OS_SOURCE),linux)
  416. UNIXINSTALLDIR=1
  417. endif
  418. ifeq ($(OS_SOURCE),freebsd)
  419. UNIXINSTALLDIR=1
  420. endif
  421. endif
  422. ifndef INSTALL_PREFIX
  423. ifdef UNIXINSTALLDIR
  424. INSTALL_PREFIX=/usr/local
  425. else
  426. ifdef INSTALL_FPCPACKAGE
  427. INSTALL_BASEDIR:=/pp
  428. else
  429. INSTALL_BASEDIR:=/$(PACKAGE_NAME)
  430. endif
  431. endif
  432. endif
  433. export INSTALL_PREFIX
  434. ifndef DIST_DESTDIR
  435. DIST_DESTDIR:=$(BASEDIR)
  436. endif
  437. export DIST_DESTDIR
  438. ifndef INSTALL_BASEDIR
  439. ifdef UNIXINSTALLDIR
  440. ifdef INSTALL_FPCPACKAGE
  441. INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
  442. else
  443. INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
  444. endif
  445. else
  446. INSTALL_BASEDIR:=$(INSTALL_PREFIX)
  447. endif
  448. endif
  449. ifndef INSTALL_BINDIR
  450. ifdef UNIXINSTALLDIR
  451. INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
  452. else
  453. INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
  454. ifdef INSTALL_FPCPACKAGE
  455. INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
  456. endif
  457. endif
  458. endif
  459. ifndef INSTALL_UNITDIR
  460. INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(OS_TARGET)
  461. ifdef INSTALL_FPCPACKAGE
  462. ifdef PACKAGE_NAME
  463. INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
  464. endif
  465. endif
  466. endif
  467. ifndef INSTALL_LIBDIR
  468. ifdef UNIXINSTALLDIR
  469. INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
  470. else
  471. INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
  472. endif
  473. endif
  474. ifndef INSTALL_SOURCEDIR
  475. ifdef UNIXINSTALLDIR
  476. ifdef INSTALL_FPCPACKAGE
  477. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/src/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  478. else
  479. INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/src/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  480. endif
  481. else
  482. ifdef INSTALL_FPCPACKAGE
  483. INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
  484. else
  485. INSTALL_SOURCEDIRL:=$(INSTALL_BASEDIR)/source
  486. endif
  487. endif
  488. endif
  489. ifndef INSTALL_DOCDIR
  490. ifdef UNIXINSTALLDIR
  491. ifdef INSTALL_FPCPACKAGE
  492. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
  493. else
  494. INSTALL_DOCDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  495. endif
  496. else
  497. ifdef INSTALL_FPCPACKAGE
  498. INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
  499. else
  500. INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
  501. endif
  502. endif
  503. endif
  504. ifndef INSTALL_EXAMPLEDIR
  505. ifdef UNIXINSTALLDIR
  506. ifdef INSTALL_FPCPACKAGE
  507. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
  508. else
  509. INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
  510. endif
  511. else
  512. ifdef INSTALL_FPCPACKAGE
  513. INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
  514. else
  515. INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
  516. endif
  517. endif
  518. endif
  519. ifndef INSTALL_DATADIR
  520. INSTALL_DATADIR=$(INSTALL_BASEDIR)
  521. endif
  522. override FPCOPTDEF=$(CPU_TARGET)
  523. ifneq ($(OS_TARGET),$(OS_SOURCE))
  524. override FPCOPT+=-T$(OS_TARGET)
  525. endif
  526. ifdef UNITDIR
  527. override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
  528. endif
  529. ifdef LIBDIR
  530. override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
  531. endif
  532. ifdef OBJDIR
  533. override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
  534. endif
  535. ifdef INCDIR
  536. override FPCOPT+=$(addprefix -Fi,$(INCDIR))
  537. endif
  538. ifdef LINKSMART
  539. override FPCOPT+=-XX
  540. endif
  541. ifdef CREATESMART
  542. override FPCOPT+=-CX
  543. endif
  544. ifdef DEBUG
  545. override FPCOPT+=-gl
  546. override FPCOPTDEF+=DEBUG
  547. endif
  548. ifdef RELEASE
  549. override FPCOPT+=-Xs -OG2p3 -n
  550. override FPCOPTDEF+=RELEASE
  551. endif
  552. ifdef STRIP
  553. override FPCOPT+=-Xs
  554. endif
  555. ifdef OPTIMIZE
  556. override FPCOPT+=-OG2p3
  557. endif
  558. ifdef VERBOSE
  559. override FPCOPT+=-vwni
  560. endif
  561. ifdef COMPILER_OPTIONS
  562. override FPCOPT+=$(COMPILER_OPTIONS)
  563. endif
  564. ifdef COMPILER_UNITDIR
  565. override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
  566. endif
  567. ifdef COMPILER_LIBRARYDIR
  568. override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
  569. endif
  570. ifdef COMPILER_OBJECTDIR
  571. override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
  572. endif
  573. ifdef COMPILER_INCLUDEDIR
  574. override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
  575. endif
  576. ifdef COMPILER_TARGETDIR
  577. override FPCOPT+=-FE$(COMPILER_TARGETDIR)
  578. ifeq ($(COMPILER_TARGETDIR),.)
  579. override TARGETDIRPREFIX=
  580. else
  581. override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
  582. endif
  583. endif
  584. ifdef COMPILER_UNITTARGETDIR
  585. override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
  586. ifeq ($(COMPILER_UNITTARGETDIR),.)
  587. override UNITTARGETDIRPREFIX=
  588. else
  589. override UNITTARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
  590. endif
  591. else
  592. ifdef COMPILER_TARGETDIR
  593. override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
  594. override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
  595. endif
  596. endif
  597. ifdef OPT
  598. override FPCOPT+=$(OPT)
  599. endif
  600. ifdef FPCOPTDEF
  601. override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
  602. endif
  603. ifdef CFGFILE
  604. override FPCOPT+=@$(CFGFILE)
  605. endif
  606. ifdef USEENV
  607. override FPCEXTCMD:=$(FPCOPT)
  608. override FPCOPT:=!FPCEXTCMD
  609. export FPCEXTCMD
  610. endif
  611. override COMPILER:=$(FPC) $(FPCOPT)
  612. ifeq (,$(findstring -s ,$(COMPILER)))
  613. EXECPPAS=
  614. else
  615. ifeq ($(OS_SOURCE),$(OS_TARGET))
  616. EXECPPAS:=@$(PPAS)
  617. endif
  618. endif
  619. .PHONY: fpc_loaders
  620. ifdef TARGET_LOADERS
  621. override ALLTARGET+=fpc_loaders
  622. override CLEANTARGET+=fpc_loaders_clean
  623. override INSTALLTARGET+=fpc_loaders_install
  624. override LOADEROFILES:=$(addsuffix $(OEXT),$(TARGET_LOADERS))
  625. endif
  626. %$(OEXT): %$(LOADEREXT)
  627. $(AS) -o $*$(OEXT) $<
  628. fpc_loaders: $(LOADEROFILES)
  629. fpc_loaders_clean:
  630. -$(DEL) $(LOADEROFILES)
  631. fpc_loaders_install:
  632. $(MKDIR) $(INSTALL_UNITDIR)
  633. $(INSTALL) $(LOADEROFILES) $(INSTALL_UNITDIR)
  634. .PHONY: fpc_units
  635. ifdef TARGET_UNITS
  636. override ALLTARGET+=fpc_units
  637. override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
  638. override INSTALLPPUFILES+=$(UNITPPUFILES)
  639. override CLEANPPUFILES+=$(UNITPPUFILES)
  640. endif
  641. fpc_units: $(UNITPPUFILES)
  642. ifdef TARGET_RSTS
  643. override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
  644. override CLEANRSTFILES+=$(RSTFILES)
  645. endif
  646. .PHONY: fpc_packages fpc_all fpc_smart fpc_debug
  647. $(FPCMADE): $(ALLTARGET)
  648. @$(ECHOREDIR) Compiled > $(FPCMADE)
  649. fpc_packages: $(COMPILEPACKAGES)
  650. fpc_all: fpc_packages $(FPCMADE)
  651. fpc_smart:
  652. $(MAKE) all LINKSMART=1 CREATESMART=1
  653. fpc_debug:
  654. $(MAKE) all DEBUG=1
  655. .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp
  656. %$(PPUEXT): %.pp
  657. $(COMPILER) $<
  658. $(EXECPPAS)
  659. %$(PPUEXT): %.pas
  660. $(COMPILER) $<
  661. $(EXECPPAS)
  662. %$(EXEEXT): %.pp
  663. $(COMPILER) $<
  664. $(EXECPPAS)
  665. %$(EXEEXT): %.pas
  666. $(COMPILER) $<
  667. $(EXECPPAS)
  668. vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  669. vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
  670. vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
  671. .PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
  672. ifdef INSTALL_UNITS
  673. override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
  674. endif
  675. ifdef INSTALLPPUFILES
  676. override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
  677. override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
  678. override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES)))
  679. endif
  680. ifdef INSTALLEXEFILES
  681. override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
  682. endif
  683. fpc_install: $(INSTALLTARGET)
  684. ifdef INSTALLEXEFILES
  685. $(MKDIR) $(INSTALL_BINDIR)
  686. ifdef UPXPROG
  687. -$(UPXPROG) $(INSTALLEXEFILES)
  688. endif
  689. $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
  690. endif
  691. ifdef INSTALLPPUFILES
  692. $(MKDIR) $(INSTALL_UNITDIR)
  693. $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
  694. ifneq ($(INSTALLPPULINKFILES),)
  695. $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
  696. endif
  697. ifneq ($(wildcard $(LIB_FULLNAME)),)
  698. $(MKDIR) $(INSTALL_LIBDIR)
  699. $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
  700. ifdef inUnix
  701. ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
  702. endif
  703. endif
  704. endif
  705. ifdef INSTALL_FILES
  706. $(MKDIR) $(INSTALL_DATADIR)
  707. $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
  708. endif
  709. fpc_sourceinstall: distclean
  710. $(MKDIR) $(INSTALL_SOURCEDIR)
  711. $(COPYTREE) $(BASEDIR) $(INSTALL_SOURCEDIR)
  712. fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
  713. ifdef HASEXAMPLES
  714. $(MKDIR) $(INSTALL_EXAMPLEDIR)
  715. endif
  716. ifdef EXAMPLESOURCEFILES
  717. $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
  718. endif
  719. ifdef TARGET_EXAMPLEDIRS
  720. $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
  721. endif
  722. .PHONY: fpc_clean fpc_cleanall fpc_distclean
  723. ifdef EXEFILES
  724. override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
  725. endif
  726. ifdef CLEAN_UNITS
  727. override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
  728. endif
  729. ifdef CLEANPPUFILES
  730. override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
  731. override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
  732. override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
  733. endif
  734. fpc_clean: $(CLEANTARGET)
  735. ifdef CLEANEXEFILES
  736. -$(DEL) $(CLEANEXEFILES)
  737. endif
  738. ifdef CLEANPPUFILES
  739. -$(DEL) $(CLEANPPUFILES)
  740. endif
  741. ifneq ($(CLEANPPULINKFILES),)
  742. -$(DEL) $(CLEANPPULINKFILES)
  743. endif
  744. ifdef CLEANRSTFILES
  745. -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
  746. endif
  747. ifdef CLEAN_FILES
  748. -$(DEL) $(CLEAN_FILES)
  749. endif
  750. ifdef LIB_NAME
  751. -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
  752. endif
  753. -$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
  754. fpc_distclean: clean
  755. ifdef COMPILER_UNITTARGETDIR
  756. TARGETDIRCLEAN=fpc_clean
  757. endif
  758. fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
  759. ifdef CLEANEXEFILES
  760. -$(DEL) $(CLEANEXEFILES)
  761. endif
  762. -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
  763. -$(DELTREE) *$(SMARTEXT)
  764. -$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
  765. ifdef AOUTEXT
  766. -$(DEL) *$(AOUTEXT)
  767. endif
  768. .PHONY: fpc_info
  769. fpc_info:
  770. @$(ECHO)
  771. @$(ECHO) == Package info ==
  772. @$(ECHO) Package Name..... $(PACKAGE_NAME)
  773. @$(ECHO) Package Version.. $(PACKAGE_VERSION)
  774. @$(ECHO)
  775. @$(ECHO) == Configuration info ==
  776. @$(ECHO)
  777. @$(ECHO) FPC.......... $(FPC)
  778. @$(ECHO) FPC Version.. $(FPC_VERSION)
  779. @$(ECHO) Source CPU... $(CPU_SOURCE)
  780. @$(ECHO) Target CPU... $(CPU_TARGET)
  781. @$(ECHO) Source OS.... $(OS_SOURCE)
  782. @$(ECHO) Target OS.... $(OS_TARGET)
  783. @$(ECHO)
  784. @$(ECHO) == Directory info ==
  785. @$(ECHO)
  786. @$(ECHO) Basedir......... $(BASEDIR)
  787. @$(ECHO) FPCDir.......... $(FPCDIR)
  788. @$(ECHO) UnitsDir........ $(UNITSDIR)
  789. @$(ECHO) PackagesDir..... $(PACKAGESDIR)
  790. @$(ECHO)
  791. @$(ECHO) GCC library..... $(GCCLIBDIR)
  792. @$(ECHO) Other library... $(OTHERLIBDIR)
  793. @$(ECHO)
  794. @$(ECHO) == Tools info ==
  795. @$(ECHO)
  796. @$(ECHO) Pwd....... $(PWD)
  797. @$(ECHO) Mv........ $(MVPROG)
  798. @$(ECHO) Cp........ $(CPPROG)
  799. @$(ECHO) Rm........ $(RMPROG)
  800. @$(ECHO) GInstall.. $(GINSTALL)
  801. @$(ECHO) Echo...... $(ECHO)
  802. @$(ECHO) Date...... $(DATE)
  803. @$(ECHO) FPCMake... $(FPCMAKE)
  804. @$(ECHO) PPUMove... $(PPUMOVE)
  805. @$(ECHO) Upx....... $(UPXPROG)
  806. @$(ECHO) Zip....... $(ZIPPROG)
  807. @$(ECHO)
  808. @$(ECHO) == Object info ==
  809. @$(ECHO)
  810. @$(ECHO) Target Loaders...... $(TARGET_LOADERS)
  811. @$(ECHO) Target Units........ $(TARGET_UNITS)
  812. @$(ECHO) Target Programs..... $(TARGET_PROGRAMS)
  813. @$(ECHO) Target Dirs......... $(TARGET_DIRS)
  814. @$(ECHO) Target Examples..... $(TARGET_EXAMPLES)
  815. @$(ECHO) Target ExampleDirs.. $(TARGET_EXAMPLEDIRS)
  816. @$(ECHO)
  817. @$(ECHO) Clean Units......... $(CLEAN_UNITS)
  818. @$(ECHO) Clean Files......... $(CLEAN_FILES)
  819. @$(ECHO)
  820. @$(ECHO) Install Units....... $(INSTALL_UNITS)
  821. @$(ECHO) Install Files....... $(INSTALL_FILES)
  822. @$(ECHO)
  823. @$(ECHO) == Install info ==
  824. @$(ECHO)
  825. @$(ECHO) DateStr.............. $(DATESTR)
  826. @$(ECHO) ZipPrefix............ $(ZIPPREFIX)
  827. @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
  828. @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)
  829. @$(ECHO)
  830. @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)
  831. @$(ECHO) Install binary dir... $(INSTALL_BINDIR)
  832. @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)
  833. @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)
  834. @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)
  835. @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)
  836. @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)
  837. @$(ECHO) Install data dir..... $(INSTALL_DATADIR)
  838. @$(ECHO)
  839. @$(ECHO) Dist destination dir. $(DIST_DESTDIR)
  840. @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)
  841. @$(ECHO)
  842. all: fpc_all
  843. debug: fpc_debug
  844. smart: fpc_smart
  845. examples:
  846. shared:
  847. install: fpc_install
  848. sourceinstall: fpc_sourceinstall
  849. exampleinstall: fpc_exampleinstall
  850. distinstall:
  851. zipinstall:
  852. zipsourceinstall:
  853. zipexampleinstall:
  854. zipdistinstall:
  855. clean: fpc_clean
  856. distclean: fpc_distclean
  857. cleanall: fpc_cleanall
  858. info: fpc_info
  859. .PHONY: all debug smart examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info
  860. ifneq ($(wildcard fpcmake.loc),)
  861. include fpcmake.loc
  862. endif
  863. include $(INC)/makefile.inc
  864. SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
  865. include $(PROCINC)/makefile.cpu
  866. SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
  867. SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
  868. %$(OEXT) : %.as
  869. $(AS) -o $*$(OEXT) $*.as
  870. $(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pas $(SYSDEPS)
  871. $(COMPILER) -Us -Sg $(SYSTEMUNIT).pas $(REDIR)
  872. objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
  873. $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp $(REDIR)
  874. strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
  875. $(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
  876. $(SYSTEMUNIT)$(PPUEXT)
  877. ports$(PPUEXT) : ports.pas objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  878. doscalls$(PPUEXT) : doscalls.pas strings$(PPUEXT) objects$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  879. kbdcalls$(PPUEXT) : kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT)
  880. moucalls$(PPUEXT) : moucalls.pas $(SYSTEMUNIT)$(PPUEXT)
  881. moncalls$(PPUEXT) : moncalls.pas strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  882. os2def$(PPUEXT) : os2def.pas $(SYSTEMUNIT)$(PPUEXT)
  883. pmwin$(PPUEXT) : pmwin.pas os2def$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  884. pmbitmap$(PPUEXT) : pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT)
  885. pmgpi$(PPUEXT) : pmgpi.pas pmbitmap$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  886. dive$(PPUEXT) : dive.pas os2def$(PPUEXT) pmwin$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  887. dynlibs$(PPUEXT) : $(INC)/dynlibs.pp doscalls$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  888. dos$(PPUEXT) : dos.pas $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
  889. doscalls$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  890. crt$(PPUEXT) : crt.pas $(INC)/textrec.inc $(SYSTEMUNIT)$(PPUEXT)
  891. objects$(PPUEXT) : $(INC)/objects.pp objinc.inc $(SYSTEMUNIT)$(PPUEXT)
  892. printer$(PPUEXT) : printer.pas $(INC)/textrec.inc $(SYSTEMUNIT)$(PPUEXT)
  893. sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/*.inc) \
  894. objpas$(PPUEXT) dos$(PPUEXT) doscalls$(PPUEXT)
  895. $(COMPILER) -I$(OBJPASDIR) sysutils.pp $(REDIR)
  896. typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
  897. $(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp $(REDIR)
  898. math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)
  899. $(COMPILER) $(OBJPASDIR)/math.pp $(REDIR)
  900. varutils$(PPUEXT) : $(OBJPASDIR)/cvarutil.inc $(OBJPASDIR)/varutils.inc \
  901. $(OBJPASDIR)/varutilh.inc varutils.pp
  902. $(COMPILER) -I$(OBJPASDIR) varutils.pp $(REDIR)
  903. ucomplex$(PPUEXT): $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  904. cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
  905. mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
  906. getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
  907. heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
  908. $(COMPILER) -Sg $(INC)/heaptrc.pp $(REDIR)
  909. lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMUNIT)$(PPUEXT)