Makefile 21 KB

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