Makefile 22 KB

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