Makefile 23 KB

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