Makefile 21 KB

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