Makefile 23 KB

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