Makefile 21 KB

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