Makefile 21 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141
  1. #
  2. # Makefile generated by fpcmake v0.99.13 [2000/01/18]
  3. #
  4. defaultrule: info
  5. #####################################################################
  6. # Autodetect OS (Linux or Dos or Windows NT)
  7. # define inlinux when running under linux
  8. # define inWinNT when running under WinNT
  9. #####################################################################
  10. # We need only / in the path
  11. override PATH:=$(subst \,/,$(PATH))
  12. # Search for PWD and determine also if we are under linux
  13. PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH)))))
  14. ifeq ($(PWD),)
  15. PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH)))))
  16. ifeq ($(PWD),)
  17. nopwd:
  18. @echo You need the GNU utils package to use this Makefile!
  19. @echo Get ftp://ftp.freepascal.org/pub/fpc/dist/go32v2/utilgo32.zip
  20. @exit
  21. else
  22. inlinux=1
  23. endif
  24. else
  25. PWD:=$(firstword $(PWD))
  26. endif
  27. # Detect NT - NT sets OS to Windows_NT
  28. ifndef inlinux
  29. ifeq ($(OS),Windows_NT)
  30. inWinNT=1
  31. endif
  32. endif
  33. # Detect OS/2 - OS/2 has OS2_SHELL defined
  34. ifndef inlinux
  35. ifndef inWinNT
  36. ifdef OS2_SHELL
  37. inOS2=1
  38. endif
  39. endif
  40. endif
  41. # The extension of executables
  42. ifdef inlinux
  43. EXEEXT=
  44. else
  45. EXEEXT=.exe
  46. endif
  47. # The path which is searched separated by spaces
  48. ifdef inlinux
  49. SEARCHPATH=$(subst :, ,$(PATH))
  50. else
  51. SEARCHPATH=$(subst ;, ,$(PATH))
  52. endif
  53. # Base dir
  54. ifdef PWD
  55. BASEDIR:=$(shell $(PWD))
  56. else
  57. BASEDIR=.
  58. endif
  59. #####################################################################
  60. # FPC version/target Detection
  61. #####################################################################
  62. # What compiler to use ?
  63. ifndef FPC
  64. # Compatibility with old makefiles
  65. ifdef PP
  66. FPC=$(PP)
  67. else
  68. ifdef inOS2
  69. FPC=ppos2$(EXEEXT)
  70. else
  71. FPC=ppc386$(EXEEXT)
  72. endif
  73. endif
  74. endif
  75. override FPC:=$(subst \,/,$(FPC))
  76. # Target OS
  77. ifndef OS_TARGET
  78. OS_TARGET:=$(shell $(FPC) -iTO)
  79. endif
  80. # Source OS
  81. ifndef OS_SOURCE
  82. OS_SOURCE:=$(shell $(FPC) -iSO)
  83. endif
  84. # Target CPU
  85. ifndef CPU_TARGET
  86. CPU_TARGET:=$(shell $(FPC) -iTP)
  87. endif
  88. # Source CPU
  89. ifndef CPU_SOURCE
  90. CPU_SOURCE:=$(shell $(FPC) -iSP)
  91. endif
  92. # FPC version
  93. ifndef FPC_VERSION
  94. FPC_VERSION:=$(shell $(FPC) -iV)
  95. endif
  96. export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
  97. #####################################################################
  98. # FPCDIR Setting
  99. #####################################################################
  100. # Test FPCDIR to look if the RTL dir exists
  101. ifdef FPCDIR
  102. override FPCDIR:=$(subst \,/,$(FPCDIR))
  103. ifeq ($(wildcard $(FPCDIR)/rtl),)
  104. override FPCDIR=wrong
  105. endif
  106. else
  107. override FPCDIR=wrong
  108. endif
  109. # Default FPCDIR
  110. ifeq ($(FPCDIR),wrong)
  111. override FPCDIR=$(BASEDIR)
  112. ifeq ($(wildcard $(FPCDIR)/rtl),)
  113. override FPCDIR=wrong
  114. endif
  115. endif
  116. # Detect FPCDIR
  117. ifeq ($(FPCDIR),wrong)
  118. ifdef inlinux
  119. override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
  120. else
  121. override FPCDIR:=$(subst /$(FPC)$(EXEEXT),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC)$(EXEEXT),$(SEARCHPATH))))))
  122. endif
  123. endif
  124. #####################################################################
  125. # User Settings
  126. #####################################################################
  127. # Targets
  128. override DIROBJECTS+=$(wildcard compiler rtl utils fcl api fv packages ide)
  129. # Clean
  130. # Install
  131. ZIPTARGET=install
  132. # Defaults
  133. # Directories
  134. # Packages
  135. # Libraries
  136. #####################################################################
  137. # Post Settings
  138. #####################################################################
  139. export RELEASE=1
  140. #####################################################################
  141. # Shell tools
  142. #####################################################################
  143. # echo
  144. ifndef ECHO
  145. ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
  146. ifeq ($(ECHO),)
  147. ECHO:=$(strip $(wildcard $(addsuffix /echo$(EXEEXT),$(SEARCHPATH))))
  148. ifeq ($(ECHO),)
  149. ECHO:=echo
  150. ECHOE:=echo
  151. else
  152. ECHO:=$(firstword $(ECHO))
  153. ECHOE=$(ECHO) -E
  154. endif
  155. else
  156. ECHO:=$(firstword $(ECHO))
  157. ECHOE=$(ECHO) -E
  158. endif
  159. endif
  160. # To copy pograms
  161. ifndef COPY
  162. COPY:=cp -fp
  163. endif
  164. # Copy a whole tree
  165. ifndef COPYTREE
  166. COPYTREE:=cp -rfp
  167. endif
  168. # To move pograms
  169. ifndef MOVE
  170. MOVE:=mv -f
  171. endif
  172. # Check delete program
  173. ifndef DEL
  174. DEL:=rm -f
  175. endif
  176. # Check deltree program
  177. ifndef DELTREE
  178. DELTREE:=rm -rf
  179. endif
  180. # To install files
  181. ifndef INSTALL
  182. ifdef inlinux
  183. INSTALL:=install -m 644
  184. else
  185. INSTALL:=$(COPY)
  186. endif
  187. endif
  188. # To install programs
  189. ifndef INSTALLEXE
  190. ifdef inlinux
  191. INSTALLEXE:=install -m 755
  192. else
  193. INSTALLEXE:=$(COPY)
  194. endif
  195. endif
  196. # To make a directory.
  197. ifndef MKDIR
  198. ifdef inlinux
  199. MKDIR:=install -m 755 -d
  200. else
  201. MKDIR:=ginstall -m 755 -d
  202. endif
  203. endif
  204. export ECHO ECHOE COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
  205. #####################################################################
  206. # Default Tools
  207. #####################################################################
  208. # assembler, redefine it if cross compiling
  209. ifndef AS
  210. AS=as
  211. endif
  212. # linker, but probably not used
  213. ifndef LD
  214. LD=ld
  215. endif
  216. # ppas.bat / ppas.sh
  217. ifdef inlinux
  218. PPAS=ppas.sh
  219. else
  220. ifdef inOS2
  221. PPAS=ppas.cmd
  222. else
  223. PPAS=ppas.bat
  224. endif
  225. endif
  226. # ldconfig to rebuild .so cache
  227. ifdef inlinux
  228. LDCONFIG=ldconfig
  229. else
  230. LDCONFIG=
  231. endif
  232. # ZipProg, you can't use Zip as the var name (PFV)
  233. ifndef ZIPPROG
  234. ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
  235. ifeq ($(ZIPPROG),)
  236. ZIPPROG=
  237. else
  238. ZIPPROG:=$(firstword $(ZIPPROG))
  239. endif
  240. endif
  241. export ZIPPROG
  242. ZIPOPT=-9
  243. ZIPEXT=.zip
  244. # Tar
  245. ifndef TARPROG
  246. TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
  247. ifeq ($(TARPROG),)
  248. TARPROG=
  249. else
  250. TARPROG:=$(firstword $(TARPROG))
  251. endif
  252. endif
  253. export TARPROG
  254. ifeq ($(USETAR),bz2)
  255. TAROPT=vI
  256. TAREXT=.tar.bz2
  257. else
  258. TAROPT=vz
  259. TAREXT=.tar.gz
  260. endif
  261. #####################################################################
  262. # Default extensions
  263. #####################################################################
  264. # Default needed extensions (Go32v2,Linux)
  265. LOADEREXT=.as
  266. PPLEXT=.ppl
  267. PPUEXT=.ppu
  268. OEXT=.o
  269. ASMEXT=.s
  270. SMARTEXT=.sl
  271. STATICLIBEXT=.a
  272. SHAREDLIBEXT=.so
  273. RSTEXT=.rst
  274. FPCMADE=fpcmade
  275. # Go32v1
  276. ifeq ($(OS_TARGET),go32v1)
  277. PPUEXT=.pp1
  278. OEXT=.o1
  279. ASMEXT=.s1
  280. SMARTEXT=.sl1
  281. STATICLIBEXT=.a1
  282. SHAREDLIBEXT=.so1
  283. FPCMADE=fpcmade.v1
  284. endif
  285. # Go32v2
  286. ifeq ($(OS_TARGET),go32v2)
  287. FPCMADE=fpcmade.dos
  288. endif
  289. # Linux
  290. ifeq ($(OS_TARGET),linux)
  291. FPCMADE=fpcmade.lnx
  292. endif
  293. # Win32
  294. ifeq ($(OS_TARGET),win32)
  295. PPUEXT=.ppw
  296. OEXT=.ow
  297. ASMEXT=.sw
  298. SMARTEXT=.slw
  299. STATICLIBEXT=.aw
  300. SHAREDLIBEXT=.dll
  301. FPCMADE=fpcmade.w32
  302. endif
  303. # OS/2
  304. ifeq ($(OS_TARGET),os2)
  305. PPUEXT=.ppo
  306. ASMEXT=.so2
  307. OEXT=.oo2
  308. SMARTEXT=.so
  309. STATICLIBEXT=.ao2
  310. SHAREDLIBEXT=.dll
  311. FPCMADE=fpcmade.os2
  312. endif
  313. # library prefix
  314. LIBPREFIX=lib
  315. ifeq ($(OS_TARGET),go32v2)
  316. LIBPREFIX=
  317. endif
  318. ifeq ($(OS_TARGET),go32v1)
  319. LIBPREFIX=
  320. endif
  321. # determine which .pas extension is used
  322. ifndef PASEXT
  323. ifdef EXEOBJECTS
  324. override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(EXEOBJECTS)))))
  325. else
  326. override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(UNITOBJECTS)))))
  327. endif
  328. ifeq ($(TESTPAS),)
  329. PASEXT=.pp
  330. else
  331. PASEXT=.pas
  332. endif
  333. endif
  334. #####################################################################
  335. # Default Directories
  336. #####################################################################
  337. # set the prefix directory where to install everything
  338. ifndef PREFIXINSTALLDIR
  339. ifdef inlinux
  340. PREFIXINSTALLDIR=/usr
  341. else
  342. PREFIXINSTALLDIR=/pp
  343. endif
  344. endif
  345. export PREFIXINSTALLDIR
  346. # Where to place the resulting zip files
  347. ifndef DESTZIPDIR
  348. DESTZIPDIR:=$(BASEDIR)
  349. endif
  350. export DESTZIPDIR
  351. #####################################################################
  352. # Install Directories
  353. #####################################################################
  354. # set the base directory where to install everything
  355. ifndef BASEINSTALLDIR
  356. ifdef inlinux
  357. BASEINSTALLDIR=$(PREFIXINSTALLDIR)/lib/fpc/$(FPC_VERSION)
  358. else
  359. BASEINSTALLDIR=$(PREFIXINSTALLDIR)
  360. endif
  361. endif
  362. # set the directory where to install the binaries
  363. ifndef BININSTALLDIR
  364. ifdef inlinux
  365. BININSTALLDIR=$(PREFIXINSTALLDIR)/bin
  366. else
  367. BININSTALLDIR=$(BASEINSTALLDIR)/bin/$(OS_TARGET)
  368. endif
  369. endif
  370. # set the directory where to install the units.
  371. ifndef UNITINSTALLDIR
  372. UNITINSTALLDIR=$(BASEINSTALLDIR)/units/$(OS_TARGET)
  373. ifdef UNITSUBDIR
  374. UNITINSTALLDIR:=$(UNITINSTALLDIR)/$(UNITSUBDIR)
  375. endif
  376. endif
  377. # Where to install shared libraries
  378. ifndef LIBINSTALLDIR
  379. ifdef inlinux
  380. LIBINSTALLDIR=$(PREFIXINSTALLDIR)/lib
  381. else
  382. LIBINSTALLDIR=$(UNITINSTALLDIR)
  383. endif
  384. endif
  385. # Where the source files will be stored
  386. ifndef SOURCEINSTALLDIR
  387. ifdef inlinux
  388. SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
  389. else
  390. SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
  391. endif
  392. ifdef SOURCESUBDIR
  393. SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
  394. endif
  395. endif
  396. # Where the doc files will be stored
  397. ifndef DOCINSTALLDIR
  398. ifdef inlinux
  399. DOCINSTALLDIR=$(PREFIXINSTALLDIR)/doc/fpc-$(FPC_VERSION)
  400. else
  401. DOCINSTALLDIR=$(BASEINSTALLDIR)/doc
  402. endif
  403. endif
  404. # Where the some extra (data)files will be stored
  405. ifndef DATAINSTALLDIR
  406. DATAINSTALLDIR=$(BASEINSTALLDIR)
  407. endif
  408. #####################################################################
  409. # Redirection
  410. #####################################################################
  411. # Release ? Then force OPT and don't use extra opts via commandline
  412. ifndef REDIRFILE
  413. REDIRFILE=log
  414. endif
  415. ifdef REDIR
  416. ifndef inlinux
  417. override FPC=redir -eo $(FPC)
  418. endif
  419. # set the verbosity to max
  420. override FPCOPT+=-va
  421. override REDIR:= >> $(REDIRFILE)
  422. endif
  423. #####################################################################
  424. # Standard rules
  425. #####################################################################
  426. all: $(addsuffix _all,$(DIROBJECTS))
  427. debug: $(addsuffix _debug,$(DIROBJECTS))
  428. examples: $(addsuffix _examples,$(DIROBJECTS))
  429. test: $(addsuffix _test,$(DIROBJECTS))
  430. smart: $(addsuffix _smart,$(DIROBJECTS))
  431. shared: $(addsuffix _shared,$(DIROBJECTS))
  432. showinstall: $(addsuffix _showinstall,$(DIROBJECTS))
  433. install: $(addsuffix _install,$(DIROBJECTS))
  434. sourceinstall: $(addsuffix _sourceinstall,$(DIROBJECTS))
  435. zipinstall: fpc_zipinstall
  436. zipsourceinstall: fpc_zipsourceinstall
  437. clean: $(addsuffix _clean,$(DIROBJECTS))
  438. cleanall: $(addsuffix _cleanall,$(DIROBJECTS))
  439. require: $(addsuffix _require,$(DIROBJECTS))
  440. .PHONY: all debug examples test smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall require
  441. #####################################################################
  442. # Zip
  443. #####################################################################
  444. .PHONY: fpc_zipinstall
  445. # Create suffix to add
  446. ifndef PACKAGESUFFIX
  447. PACKAGESUFFIX=$(OS_TARGET)
  448. ifeq ($(OS_TARGET),go32v2)
  449. PACKAGESUFFIX=go32
  450. endif
  451. ifeq ($(OS_TARGET),win32)
  452. PACKAGESUFFIX=w32
  453. endif
  454. endif
  455. # Temporary path to pack a file
  456. ifndef PACKDIR
  457. ifndef inlinux
  458. PACKDIR=$(BASEDIR)/pack_tmp
  459. else
  460. PACKDIR=/tmp/fpc-pack
  461. endif
  462. endif
  463. # Maybe create default zipname from packagename
  464. ifndef ZIPNAME
  465. ifdef PACKAGENAME
  466. ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
  467. endif
  468. endif
  469. # Use tar by default under linux
  470. ifndef USEZIP
  471. ifdef inlinux
  472. USETAR=1
  473. endif
  474. endif
  475. fpc_zipinstall:
  476. ifndef ZIPNAME
  477. @$(ECHO) "Please specify ZIPNAME!"
  478. @exit 1
  479. else
  480. $(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
  481. ifdef USETAR
  482. $(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT)
  483. cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
  484. else
  485. $(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT)
  486. cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
  487. endif
  488. $(DELTREE) $(PACKDIR)
  489. endif
  490. #####################################################################
  491. # Directories
  492. #####################################################################
  493. OBJECTDIRCOMPILER=1
  494. OBJECTDIRRTL=1
  495. OBJECTDIRUTILS=1
  496. OBJECTDIRFCL=1
  497. OBJECTDIRAPI=1
  498. OBJECTDIRFV=1
  499. OBJECTDIRPACKAGES=1
  500. OBJECTDIRIDE=1
  501. # Dir compiler
  502. ifdef OBJECTDIRCOMPILER
  503. .PHONY: compiler_all compiler_debug compiler_examples compiler_test compiler_smart compiler_shared compiler_showinstall compiler_install compiler_sourceinstall compiler_zipinstall compiler_zipsourceinstall compiler_clean compiler_cleanall compiler_require compiler_info
  504. compiler_all:
  505. $(MAKE) -C compiler all
  506. compiler_debug:
  507. $(MAKE) -C compiler debug
  508. compiler_examples:
  509. $(MAKE) -C compiler examples
  510. compiler_test:
  511. $(MAKE) -C compiler test
  512. compiler_smart:
  513. $(MAKE) -C compiler smart
  514. compiler_shared:
  515. $(MAKE) -C compiler shared
  516. compiler_showinstall:
  517. $(MAKE) -C compiler showinstall
  518. compiler_install:
  519. $(MAKE) -C compiler install
  520. compiler_sourceinstall:
  521. $(MAKE) -C compiler sourceinstall
  522. compiler_zipinstall:
  523. $(MAKE) -C compiler zipinstall
  524. compiler_zipsourceinstall:
  525. $(MAKE) -C compiler zipsourceinstall
  526. compiler_clean:
  527. $(MAKE) -C compiler clean
  528. compiler_cleanall:
  529. $(MAKE) -C compiler cleanall
  530. compiler_require:
  531. $(MAKE) -C compiler require
  532. compiler_info:
  533. $(MAKE) -C compiler info
  534. endif
  535. # Dir rtl
  536. ifdef OBJECTDIRRTL
  537. .PHONY: rtl_all rtl_debug rtl_examples rtl_test rtl_smart rtl_shared rtl_showinstall rtl_install rtl_sourceinstall rtl_zipinstall rtl_zipsourceinstall rtl_clean rtl_cleanall rtl_require rtl_info
  538. rtl_all:
  539. $(MAKE) -C rtl all
  540. rtl_debug:
  541. $(MAKE) -C rtl debug
  542. rtl_examples:
  543. $(MAKE) -C rtl examples
  544. rtl_test:
  545. $(MAKE) -C rtl test
  546. rtl_smart:
  547. $(MAKE) -C rtl smart
  548. rtl_shared:
  549. $(MAKE) -C rtl shared
  550. rtl_showinstall:
  551. $(MAKE) -C rtl showinstall
  552. rtl_install:
  553. $(MAKE) -C rtl install
  554. rtl_sourceinstall:
  555. $(MAKE) -C rtl sourceinstall
  556. rtl_zipinstall:
  557. $(MAKE) -C rtl zipinstall
  558. rtl_zipsourceinstall:
  559. $(MAKE) -C rtl zipsourceinstall
  560. rtl_clean:
  561. $(MAKE) -C rtl clean
  562. rtl_cleanall:
  563. $(MAKE) -C rtl cleanall
  564. rtl_require:
  565. $(MAKE) -C rtl require
  566. rtl_info:
  567. $(MAKE) -C rtl info
  568. endif
  569. # Dir utils
  570. ifdef OBJECTDIRUTILS
  571. .PHONY: utils_all utils_debug utils_examples utils_test utils_smart utils_shared utils_showinstall utils_install utils_sourceinstall utils_zipinstall utils_zipsourceinstall utils_clean utils_cleanall utils_require utils_info
  572. utils_all:
  573. $(MAKE) -C utils all
  574. utils_debug:
  575. $(MAKE) -C utils debug
  576. utils_examples:
  577. $(MAKE) -C utils examples
  578. utils_test:
  579. $(MAKE) -C utils test
  580. utils_smart:
  581. $(MAKE) -C utils smart
  582. utils_shared:
  583. $(MAKE) -C utils shared
  584. utils_showinstall:
  585. $(MAKE) -C utils showinstall
  586. utils_install:
  587. $(MAKE) -C utils install
  588. utils_sourceinstall:
  589. $(MAKE) -C utils sourceinstall
  590. utils_zipinstall:
  591. $(MAKE) -C utils zipinstall
  592. utils_zipsourceinstall:
  593. $(MAKE) -C utils zipsourceinstall
  594. utils_clean:
  595. $(MAKE) -C utils clean
  596. utils_cleanall:
  597. $(MAKE) -C utils cleanall
  598. utils_require:
  599. $(MAKE) -C utils require
  600. utils_info:
  601. $(MAKE) -C utils info
  602. endif
  603. # Dir fcl
  604. ifdef OBJECTDIRFCL
  605. .PHONY: fcl_all fcl_debug fcl_examples fcl_test fcl_smart fcl_shared fcl_showinstall fcl_install fcl_sourceinstall fcl_zipinstall fcl_zipsourceinstall fcl_clean fcl_cleanall fcl_require fcl_info
  606. fcl_all:
  607. $(MAKE) -C fcl all
  608. fcl_debug:
  609. $(MAKE) -C fcl debug
  610. fcl_examples:
  611. $(MAKE) -C fcl examples
  612. fcl_test:
  613. $(MAKE) -C fcl test
  614. fcl_smart:
  615. $(MAKE) -C fcl smart
  616. fcl_shared:
  617. $(MAKE) -C fcl shared
  618. fcl_showinstall:
  619. $(MAKE) -C fcl showinstall
  620. fcl_install:
  621. $(MAKE) -C fcl install
  622. fcl_sourceinstall:
  623. $(MAKE) -C fcl sourceinstall
  624. fcl_zipinstall:
  625. $(MAKE) -C fcl zipinstall
  626. fcl_zipsourceinstall:
  627. $(MAKE) -C fcl zipsourceinstall
  628. fcl_clean:
  629. $(MAKE) -C fcl clean
  630. fcl_cleanall:
  631. $(MAKE) -C fcl cleanall
  632. fcl_require:
  633. $(MAKE) -C fcl require
  634. fcl_info:
  635. $(MAKE) -C fcl info
  636. endif
  637. # Dir api
  638. ifdef OBJECTDIRAPI
  639. .PHONY: api_all api_debug api_examples api_test api_smart api_shared api_showinstall api_install api_sourceinstall api_zipinstall api_zipsourceinstall api_clean api_cleanall api_require api_info
  640. api_all:
  641. $(MAKE) -C api all
  642. api_debug:
  643. $(MAKE) -C api debug
  644. api_examples:
  645. $(MAKE) -C api examples
  646. api_test:
  647. $(MAKE) -C api test
  648. api_smart:
  649. $(MAKE) -C api smart
  650. api_shared:
  651. $(MAKE) -C api shared
  652. api_showinstall:
  653. $(MAKE) -C api showinstall
  654. api_install:
  655. $(MAKE) -C api install
  656. api_sourceinstall:
  657. $(MAKE) -C api sourceinstall
  658. api_zipinstall:
  659. $(MAKE) -C api zipinstall
  660. api_zipsourceinstall:
  661. $(MAKE) -C api zipsourceinstall
  662. api_clean:
  663. $(MAKE) -C api clean
  664. api_cleanall:
  665. $(MAKE) -C api cleanall
  666. api_require:
  667. $(MAKE) -C api require
  668. api_info:
  669. $(MAKE) -C api info
  670. endif
  671. # Dir fv
  672. ifdef OBJECTDIRFV
  673. .PHONY: fv_all fv_debug fv_examples fv_test fv_smart fv_shared fv_showinstall fv_install fv_sourceinstall fv_zipinstall fv_zipsourceinstall fv_clean fv_cleanall fv_require fv_info
  674. fv_all:
  675. $(MAKE) -C fv all
  676. fv_debug:
  677. $(MAKE) -C fv debug
  678. fv_examples:
  679. $(MAKE) -C fv examples
  680. fv_test:
  681. $(MAKE) -C fv test
  682. fv_smart:
  683. $(MAKE) -C fv smart
  684. fv_shared:
  685. $(MAKE) -C fv shared
  686. fv_showinstall:
  687. $(MAKE) -C fv showinstall
  688. fv_install:
  689. $(MAKE) -C fv install
  690. fv_sourceinstall:
  691. $(MAKE) -C fv sourceinstall
  692. fv_zipinstall:
  693. $(MAKE) -C fv zipinstall
  694. fv_zipsourceinstall:
  695. $(MAKE) -C fv zipsourceinstall
  696. fv_clean:
  697. $(MAKE) -C fv clean
  698. fv_cleanall:
  699. $(MAKE) -C fv cleanall
  700. fv_require:
  701. $(MAKE) -C fv require
  702. fv_info:
  703. $(MAKE) -C fv info
  704. endif
  705. # Dir packages
  706. ifdef OBJECTDIRPACKAGES
  707. .PHONY: packages_all packages_debug packages_examples packages_test packages_smart packages_shared packages_showinstall packages_install packages_sourceinstall packages_zipinstall packages_zipsourceinstall packages_clean packages_cleanall packages_require packages_info
  708. packages_all:
  709. $(MAKE) -C packages all
  710. packages_debug:
  711. $(MAKE) -C packages debug
  712. packages_examples:
  713. $(MAKE) -C packages examples
  714. packages_test:
  715. $(MAKE) -C packages test
  716. packages_smart:
  717. $(MAKE) -C packages smart
  718. packages_shared:
  719. $(MAKE) -C packages shared
  720. packages_showinstall:
  721. $(MAKE) -C packages showinstall
  722. packages_install:
  723. $(MAKE) -C packages install
  724. packages_sourceinstall:
  725. $(MAKE) -C packages sourceinstall
  726. packages_zipinstall:
  727. $(MAKE) -C packages zipinstall
  728. packages_zipsourceinstall:
  729. $(MAKE) -C packages zipsourceinstall
  730. packages_clean:
  731. $(MAKE) -C packages clean
  732. packages_cleanall:
  733. $(MAKE) -C packages cleanall
  734. packages_require:
  735. $(MAKE) -C packages require
  736. packages_info:
  737. $(MAKE) -C packages info
  738. endif
  739. # Dir ide
  740. ifdef OBJECTDIRIDE
  741. .PHONY: ide_all ide_debug ide_examples ide_test ide_smart ide_shared ide_showinstall ide_install ide_sourceinstall ide_zipinstall ide_zipsourceinstall ide_clean ide_cleanall ide_require ide_info
  742. ide_all:
  743. $(MAKE) -C ide all
  744. ide_debug:
  745. $(MAKE) -C ide debug
  746. ide_examples:
  747. $(MAKE) -C ide examples
  748. ide_test:
  749. $(MAKE) -C ide test
  750. ide_smart:
  751. $(MAKE) -C ide smart
  752. ide_shared:
  753. $(MAKE) -C ide shared
  754. ide_showinstall:
  755. $(MAKE) -C ide showinstall
  756. ide_install:
  757. $(MAKE) -C ide install
  758. ide_sourceinstall:
  759. $(MAKE) -C ide sourceinstall
  760. ide_zipinstall:
  761. $(MAKE) -C ide zipinstall
  762. ide_zipsourceinstall:
  763. $(MAKE) -C ide zipsourceinstall
  764. ide_clean:
  765. $(MAKE) -C ide clean
  766. ide_cleanall:
  767. $(MAKE) -C ide cleanall
  768. ide_require:
  769. $(MAKE) -C ide require
  770. ide_info:
  771. $(MAKE) -C ide info
  772. endif
  773. #####################################################################
  774. # Local Makefile
  775. #####################################################################
  776. ifneq ($(wildcard fpcmake.loc),)
  777. include fpcmake.loc
  778. endif
  779. #####################################################################
  780. # Users rules
  781. #####################################################################
  782. #####################################################################
  783. # Main targets
  784. #####################################################################
  785. .PHONY: compiler_cycle \
  786. idezips ide_allzip ide_gdbzip ide_fullzip ide_fullgdbzip \
  787. fclzip gtkzip fvzip compilerzip utilszip
  788. info:
  789. @echo
  790. @echo Please use one of the following targets:
  791. @echo
  792. @echo $(DIROBJECTS)
  793. @echo
  794. @echo All targets can follow after a _ with:
  795. @echo all,clean,install,staticinstall,sharedinstall
  796. @echo
  797. @echo example: make api_staticinstall
  798. @exit
  799. #####################################################################
  800. # Dependencies
  801. #####################################################################
  802. #######################################
  803. # Compiler
  804. #######################################
  805. compiler_cycle:
  806. $(MAKE) -C compiler cycle
  807. #######################################
  808. # IDE
  809. #######################################
  810. ide_gdb:
  811. $(MAKE) -C ide gdb
  812. ide_full:
  813. $(MAKE) -C ide full
  814. ide_fullgdb:
  815. $(MAKE) -C ide fullgdb
  816. #######################################
  817. # Install targets
  818. #######################################
  819. demo_install:
  820. $(MAKE) -C demo installexamples
  821. man_install:
  822. $(MAKE) -C man installman
  823. doc_install:
  824. $(MAKE) -C doc installdoc
  825. #######################################
  826. # Packaging targets
  827. #######################################
  828. ifndef DESTZIPDIR
  829. export DESTZIPDIR:=$(BASEDIR)
  830. endif
  831. idezips: clean ide_allzip ide_gdbzip ide_fullzip ide_fullgdbzip
  832. ide_allzip:
  833. $(MAKE) ide_clean
  834. $(MAKE) ide_all
  835. $(MAKE) -C ide/text zipinstall ZIPNAME=ide-fake-$(PACKAGESUFFIX)
  836. ide_gdbzip:
  837. $(MAKE) ide_clean
  838. $(MAKE) ide_gdb
  839. $(MAKE) -C ide/text zipinstall ZIPNAME=ide-gdb-$(PACKAGESUFFIX)
  840. ide_fullzip:
  841. $(MAKE) compiler_clean
  842. $(MAKE) ide_clean
  843. $(MAKE) ide_full
  844. $(MAKE) -C ide/text zipinstall ZIPNAME=ide-comp-$(PACKAGESUFFIX)
  845. ide_fullgdbzip:
  846. $(MAKE) ide_clean
  847. $(MAKE) ide_fullgdb
  848. $(MAKE) -C ide/text zipinstall ZIPNAME=ide-full-$(PACKAGESUFFIX)
  849. fvzip: rtl_clean
  850. $(MAKE) api_clean
  851. $(MAKE) fv_clean
  852. $(MAKE) fv_all
  853. $(MAKE) zipinstall ZIPTARGET='api_install fv_install' ZIPNAME=fv-$(PACKAGESUFFIX)
  854. gtkzip: rtl_clean
  855. $(MAKE) -C packages gtk_clean
  856. $(MAKE) -C packages gtk_all
  857. $(MAKE) -C packages gtk_zipinstall ZIPNAME=gtk-$(PACKAGESUFFIX)
  858. compilerzip:
  859. # compiler_clean rtl_clean
  860. $(MAKE) rtl_all
  861. $(MAKE) compiler_all
  862. $(MAKE) zipinstall ZIPTARGET='compiler_install rtl_install' ZIPNAME=compiler-$(PACKAGESUFFIX)
  863. fclzip: rtl_clean fcl_clean
  864. $(MAKE) fcl_all
  865. $(MAKE) fcl_zipinstall ZIPNAME=fcl-$(PACKAGESUFFIX)
  866. utilszip: utils_clean rtl_clean fcl_clean
  867. $(MAKE) utils_all
  868. $(MAKE) utils_zipinstall ZIPNAME=utils-$(PACKAGESUFFIX)