2
0

Makefile 28 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402
  1. #
  2. # Makefile generated by fpcmake v0.99.13 [2000/01/14]
  3. #
  4. defaultrule: all
  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. # Target OS
  76. ifndef OS_TARGET
  77. OS_TARGET:=$(shell $(FPC) -iTO)
  78. endif
  79. # Source OS
  80. ifndef OS_SOURCE
  81. OS_SOURCE:=$(shell $(FPC) -iSO)
  82. endif
  83. # Target CPU
  84. ifndef CPU_TARGET
  85. CPU_TARGET:=$(shell $(FPC) -iTP)
  86. endif
  87. # Source CPU
  88. ifndef CPU_SOURCE
  89. CPU_SOURCE:=$(shell $(FPC) -iSP)
  90. endif
  91. # FPC version
  92. ifndef FPC_VERSION
  93. FPC_VERSION:=$(shell $(FPC) -iV)
  94. endif
  95. export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
  96. #####################################################################
  97. # FPCDIR Setting
  98. #####################################################################
  99. # Test FPCDIR to look if the RTL dir exists
  100. ifdef FPCDIR
  101. override FPCDIR:=$(subst \,/,$(FPCDIR))
  102. ifeq ($(wildcard $(FPCDIR)/rtl),)
  103. override FPCDIR=wrong
  104. endif
  105. else
  106. override FPCDIR=wrong
  107. endif
  108. # Default FPCDIR
  109. ifeq ($(FPCDIR),wrong)
  110. override FPCDIR=..
  111. ifeq ($(wildcard $(FPCDIR)/rtl),)
  112. override FPCDIR=wrong
  113. endif
  114. endif
  115. # Detect FPCDIR
  116. ifeq ($(FPCDIR),wrong)
  117. ifdef inlinux
  118. override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
  119. else
  120. override FPCDIR:=$(subst /$(FPC)$(EXEEXT),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC)$(EXEEXT),$(SEARCHPATH))))))
  121. endif
  122. endif
  123. ifndef PACKAGESDIR
  124. PACKAGESDIR=$(FPCDIR)/packages
  125. endif
  126. ifndef TOOLKITSDIR
  127. TOOLKITSDIR=
  128. endif
  129. ifndef COMPONENTSDIR
  130. COMPONENTSDIR=
  131. endif
  132. # Create units dir
  133. ifneq ($(FPCDIR),.)
  134. UNITSDIR=$(FPCDIR)/units/$(OS_TARGET)
  135. endif
  136. #####################################################################
  137. # User Settings
  138. #####################################################################
  139. # Targets
  140. override DIROBJECTS+=$(wildcard tply h2pas fprcp)
  141. override EXEOBJECTS+=ppufiles ppudump ppumove ppdep ptop rstconv data2inc fpcmake delp bin2obj
  142. # Clean
  143. override EXTRACLEANUNITS+=ppu ptopu
  144. # Install
  145. PACKAGENAME=utils
  146. ZIPTARGET=install
  147. # Defaults
  148. # Directories
  149. ifndef TARGETDIR
  150. TARGETDIR=.
  151. endif
  152. # Packages
  153. override PACKAGES+=rtl fcl
  154. ifeq ($(OS_TARGET),linux)
  155. override PACKAGES+=zlib
  156. endif
  157. ifeq ($(OS_TARGET),go32v2)
  158. override PACKAGES+=paszlib
  159. endif
  160. ifeq ($(OS_TARGET),win32)
  161. override PACKAGES+=paszlib
  162. endif
  163. ifeq ($(OS_TARGET),os2)
  164. override PACKAGES+=paszlib
  165. endif
  166. # Libraries
  167. # Info
  168. INFOTARGET=fpc_infocfg fpc_infoobjects fpc_infoinstall
  169. #####################################################################
  170. # Shell tools
  171. #####################################################################
  172. # echo
  173. ifndef ECHO
  174. ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
  175. ifeq ($(ECHO),)
  176. ECHO:=$(strip $(wildcard $(addsuffix /echo$(EXEEXT),$(SEARCHPATH))))
  177. ifeq ($(ECHO),)
  178. ECHO:=echo
  179. else
  180. ECHO:=$(firstword $(ECHO))
  181. endif
  182. else
  183. ECHO:=$(firstword $(ECHO))
  184. endif
  185. endif
  186. # To copy pograms
  187. ifndef COPY
  188. COPY:=cp -fp
  189. endif
  190. # Copy a whole tree
  191. ifndef COPYTREE
  192. COPYTREE:=cp -rfp
  193. endif
  194. # To move pograms
  195. ifndef MOVE
  196. MOVE:=mv -f
  197. endif
  198. # Check delete program
  199. ifndef DEL
  200. DEL:=rm -f
  201. endif
  202. # Check deltree program
  203. ifndef DELTREE
  204. DELTREE:=rm -rf
  205. endif
  206. # To install files
  207. ifndef INSTALL
  208. ifdef inlinux
  209. INSTALL:=install -m 644
  210. else
  211. INSTALL:=$(COPY)
  212. endif
  213. endif
  214. # To install programs
  215. ifndef INSTALLEXE
  216. ifdef inlinux
  217. INSTALLEXE:=install -m 755
  218. else
  219. INSTALLEXE:=$(COPY)
  220. endif
  221. endif
  222. # To make a directory.
  223. ifndef MKDIR
  224. ifdef inlinux
  225. MKDIR:=install -m 755 -d
  226. else
  227. MKDIR:=ginstall -m 755 -d
  228. endif
  229. endif
  230. export ECHO COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
  231. #####################################################################
  232. # Default Tools
  233. #####################################################################
  234. # assembler, redefine it if cross compiling
  235. ifndef AS
  236. AS=as
  237. endif
  238. # linker, but probably not used
  239. ifndef LD
  240. LD=ld
  241. endif
  242. # ppas.bat / ppas.sh
  243. ifdef inlinux
  244. PPAS=ppas.sh
  245. else
  246. ifdef inOS2
  247. PPAS=ppas.cmd
  248. else
  249. PPAS=ppas.bat
  250. endif
  251. endif
  252. # also call ppas if with command option -s
  253. ifeq (,$(findstring -s ,$(COMPILER)))
  254. EXECPPAS=
  255. else
  256. EXECPPAS:=@$(PPAS)
  257. endif
  258. # ldconfig to rebuild .so cache
  259. ifdef inlinux
  260. LDCONFIG=ldconfig
  261. else
  262. LDCONFIG=
  263. endif
  264. # ppumove
  265. ifndef PPUMOVE
  266. PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(EXEEXT),$(SEARCHPATH))))
  267. ifeq ($(PPUMOVE),)
  268. PPUMOVE=
  269. else
  270. PPUMOVE:=$(firstword $(PPUMOVE))
  271. endif
  272. endif
  273. export PPUMOVE
  274. # ppufiles
  275. ifndef PPUFILES
  276. PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(EXEEXT),$(SEARCHPATH))))
  277. ifeq ($(PPUFILES),)
  278. PPUFILES=
  279. else
  280. PPUFILES:=$(firstword $(PPUFILES))
  281. endif
  282. endif
  283. export PPUFILES
  284. # data2inc
  285. ifndef DATA2INC
  286. DATA2INC:=$(strip $(wildcard $(addsuffix /data2inc$(EXEEXT),$(SEARCHPATH))))
  287. ifeq ($(DATA2INC),)
  288. DATA2INC=
  289. else
  290. DATA2INC:=$(firstword $(DATA2INC))
  291. endif
  292. endif
  293. export DATA2INC
  294. # Look if UPX is found for go32v2 and win32. We can't use $UPX becuase
  295. # upx uses that one itself (PFV)
  296. ifndef UPXPROG
  297. ifeq ($(OS_TARGET),go32v2)
  298. UPXPROG:=1
  299. endif
  300. ifeq ($(OS_TARGET),win32)
  301. UPXPROG:=1
  302. endif
  303. ifdef UPXPROG
  304. UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(EXEEXT),$(SEARCHPATH))))
  305. ifeq ($(UPXPROG),)
  306. UPXPROG=
  307. else
  308. UPXPROG:=$(firstword $(UPXPROG))
  309. endif
  310. else
  311. UPXPROG=
  312. endif
  313. endif
  314. export UPXPROG
  315. # ZipProg, you can't use Zip as the var name (PFV)
  316. ifndef ZIPPROG
  317. ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(EXEEXT),$(SEARCHPATH))))
  318. ifeq ($(ZIPPROG),)
  319. ZIPPROG=
  320. else
  321. ZIPPROG:=$(firstword $(ZIPPROG)) -D9 -r
  322. endif
  323. endif
  324. export ZIPPROG
  325. ZIPOPT=-9
  326. ZIPEXT=.zip
  327. # Tar
  328. ifndef TARPROG
  329. TARPROG:=$(strip $(wildcard $(addsuffix /tar$(EXEEXT),$(SEARCHPATH))))
  330. ifeq ($(TARPROG),)
  331. TARPROG=
  332. else
  333. TARPROG:=$(firstword $(TARPROG))
  334. endif
  335. endif
  336. export TARPROG
  337. ifeq ($(USETAR),bz2)
  338. TAROPT=vI
  339. TAREXT=.tar.bz2
  340. else
  341. TAROPT=vz
  342. TAREXT=.tar.gz
  343. endif
  344. #####################################################################
  345. # Default extensions
  346. #####################################################################
  347. # Default needed extensions (Go32v2,Linux)
  348. LOADEREXT=.as
  349. PPLEXT=.ppl
  350. PPUEXT=.ppu
  351. OEXT=.o
  352. ASMEXT=.s
  353. SMARTEXT=.sl
  354. STATICLIBEXT=.a
  355. SHAREDLIBEXT=.so
  356. RSTEXT=.rst
  357. FPCMADE=fpcmade
  358. # Go32v1
  359. ifeq ($(OS_TARGET),go32v1)
  360. PPUEXT=.pp1
  361. OEXT=.o1
  362. ASMEXT=.s1
  363. SMARTEXT=.sl1
  364. STATICLIBEXT=.a1
  365. SHAREDLIBEXT=.so1
  366. FPCMADE=fpcmade.v1
  367. endif
  368. # Go32v2
  369. ifeq ($(OS_TARGET),go32v2)
  370. FPCMADE=fpcmade.dos
  371. endif
  372. # Linux
  373. ifeq ($(OS_TARGET),linux)
  374. FPCMADE=fpcmade.lnx
  375. endif
  376. # Win32
  377. ifeq ($(OS_TARGET),win32)
  378. PPUEXT=.ppw
  379. OEXT=.ow
  380. ASMEXT=.sw
  381. SMARTEXT=.slw
  382. STATICLIBEXT=.aw
  383. SHAREDLIBEXT=.dll
  384. FPCMADE=fpcmade.w32
  385. endif
  386. # OS/2
  387. ifeq ($(OS_TARGET),os2)
  388. PPUEXT=.ppo
  389. ASMEXT=.so2
  390. OEXT=.oo2
  391. SMARTEXT=.so
  392. STATICLIBEXT=.ao2
  393. SHAREDLIBEXT=.dll
  394. FPCMADE=fpcmade.os2
  395. endif
  396. # library prefix
  397. LIBPREFIX=lib
  398. ifeq ($(OS_TARGET),go32v2)
  399. LIBPREFIX=
  400. endif
  401. ifeq ($(OS_TARGET),go32v1)
  402. LIBPREFIX=
  403. endif
  404. # determine which .pas extension is used
  405. ifndef PASEXT
  406. ifdef EXEOBJECTS
  407. override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(EXEOBJECTS)))))
  408. else
  409. override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(UNITOBJECTS)))))
  410. endif
  411. ifeq ($(TESTPAS),)
  412. PASEXT=.pp
  413. else
  414. PASEXT=.pas
  415. endif
  416. endif
  417. # Check if the dirs really exists, else turn it off
  418. ifeq ($(wildcard $(UNITSDIR)),)
  419. UNITSDIR=
  420. endif
  421. ifeq ($(wildcard $(TOOLKITSDIR)),)
  422. TOOLKITSDIR=
  423. endif
  424. ifeq ($(wildcard $(PACKAGESDIR)),)
  425. PACKAGESDIR=
  426. endif
  427. ifeq ($(wildcard $(COMPONENTSDIR)),)
  428. COMPONENTSDIR=
  429. endif
  430. # PACKAGESDIR packages
  431. PACKAGERTL=1
  432. PACKAGEFCL=1
  433. ifeq ($(OS_TARGET),linux)
  434. PACKAGEZLIB=1
  435. endif
  436. ifeq ($(OS_TARGET),go32v2)
  437. PACKAGEPASZLIB=1
  438. endif
  439. ifeq ($(OS_TARGET),win32)
  440. PACKAGEPASZLIB=1
  441. endif
  442. ifeq ($(OS_TARGET),os2)
  443. PACKAGEPASZLIB=1
  444. endif
  445. ifdef PACKAGERTL
  446. ifneq ($(wildcard $(FPCDIR)/rtl),)
  447. ifneq ($(wildcard $(FPCDIR)/rtl/$(OS_TARGET)),)
  448. PACKAGEDIR_RTL=$(FPCDIR)/rtl/$(OS_TARGET)
  449. else
  450. PACKAGEDIR_RTL=$(FPCDIR)/rtl
  451. endif
  452. ifeq ($(wildcard $(PACKAGEDIR_RTL)/$(FPCMADE)),)
  453. override COMPILEPACKAGES+=package_rtl
  454. package_rtl:
  455. $(MAKE) -C $(PACKAGEDIR_RTL) all
  456. endif
  457. UNITDIR_RTL=$(PACKAGEDIR_RTL)
  458. else
  459. PACKAGEDIR_RTL=
  460. ifneq ($(wildcard $(UNITSDIR)/rtl),)
  461. ifneq ($(wildcard $(UNITSDIR)/rtl/$(OS_TARGET)),)
  462. UNITDIR_RTL=$(UNITSDIR)/rtl/$(OS_TARGET)
  463. else
  464. UNITDIR_RTL=$(UNITSDIR)/rtl
  465. endif
  466. else
  467. UNITDIR_RTL=
  468. endif
  469. endif
  470. ifdef UNITDIR_RTL
  471. override NEEDUNITDIR+=$(UNITDIR_RTL)
  472. endif
  473. endif
  474. ifdef PACKAGEFCL
  475. ifneq ($(wildcard $(FPCDIR)/fcl),)
  476. ifneq ($(wildcard $(FPCDIR)/fcl/$(OS_TARGET)),)
  477. PACKAGEDIR_FCL=$(FPCDIR)/fcl/$(OS_TARGET)
  478. else
  479. PACKAGEDIR_FCL=$(FPCDIR)/fcl
  480. endif
  481. ifeq ($(wildcard $(PACKAGEDIR_FCL)/$(FPCMADE)),)
  482. override COMPILEPACKAGES+=package_fcl
  483. package_fcl:
  484. $(MAKE) -C $(PACKAGEDIR_FCL) all
  485. endif
  486. UNITDIR_FCL=$(PACKAGEDIR_FCL)
  487. else
  488. PACKAGEDIR_FCL=
  489. ifneq ($(wildcard $(UNITSDIR)/fcl),)
  490. ifneq ($(wildcard $(UNITSDIR)/fcl/$(OS_TARGET)),)
  491. UNITDIR_FCL=$(UNITSDIR)/fcl/$(OS_TARGET)
  492. else
  493. UNITDIR_FCL=$(UNITSDIR)/fcl
  494. endif
  495. else
  496. UNITDIR_FCL=
  497. endif
  498. endif
  499. ifdef UNITDIR_FCL
  500. override NEEDUNITDIR+=$(UNITDIR_FCL)
  501. endif
  502. endif
  503. ifdef PACKAGEZLIB
  504. ifneq ($(wildcard $(PACKAGESDIR)/zlib),)
  505. ifneq ($(wildcard $(PACKAGESDIR)/zlib/$(OS_TARGET)),)
  506. PACKAGEDIR_ZLIB=$(PACKAGESDIR)/zlib/$(OS_TARGET)
  507. else
  508. PACKAGEDIR_ZLIB=$(PACKAGESDIR)/zlib
  509. endif
  510. ifeq ($(wildcard $(PACKAGEDIR_ZLIB)/$(FPCMADE)),)
  511. override COMPILEPACKAGES+=package_zlib
  512. package_zlib:
  513. $(MAKE) -C $(PACKAGEDIR_ZLIB) all
  514. endif
  515. UNITDIR_ZLIB=$(PACKAGEDIR_ZLIB)
  516. else
  517. PACKAGEDIR_ZLIB=
  518. ifneq ($(wildcard $(UNITSDIR)/zlib),)
  519. ifneq ($(wildcard $(UNITSDIR)/zlib/$(OS_TARGET)),)
  520. UNITDIR_ZLIB=$(UNITSDIR)/zlib/$(OS_TARGET)
  521. else
  522. UNITDIR_ZLIB=$(UNITSDIR)/zlib
  523. endif
  524. else
  525. UNITDIR_ZLIB=
  526. endif
  527. endif
  528. ifdef UNITDIR_ZLIB
  529. override NEEDUNITDIR+=$(UNITDIR_ZLIB)
  530. endif
  531. endif
  532. ifdef PACKAGEPASZLIB
  533. ifneq ($(wildcard $(PACKAGESDIR)/paszlib),)
  534. ifneq ($(wildcard $(PACKAGESDIR)/paszlib/$(OS_TARGET)),)
  535. PACKAGEDIR_PASZLIB=$(PACKAGESDIR)/paszlib/$(OS_TARGET)
  536. else
  537. PACKAGEDIR_PASZLIB=$(PACKAGESDIR)/paszlib
  538. endif
  539. ifeq ($(wildcard $(PACKAGEDIR_PASZLIB)/$(FPCMADE)),)
  540. override COMPILEPACKAGES+=package_paszlib
  541. package_paszlib:
  542. $(MAKE) -C $(PACKAGEDIR_PASZLIB) all
  543. endif
  544. UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
  545. else
  546. PACKAGEDIR_PASZLIB=
  547. ifneq ($(wildcard $(UNITSDIR)/paszlib),)
  548. ifneq ($(wildcard $(UNITSDIR)/paszlib/$(OS_TARGET)),)
  549. UNITDIR_PASZLIB=$(UNITSDIR)/paszlib/$(OS_TARGET)
  550. else
  551. UNITDIR_PASZLIB=$(UNITSDIR)/paszlib
  552. endif
  553. else
  554. UNITDIR_PASZLIB=
  555. endif
  556. endif
  557. ifdef UNITDIR_PASZLIB
  558. override NEEDUNITDIR+=$(UNITDIR_PASZLIB)
  559. endif
  560. endif
  561. #####################################################################
  562. # Default Directories
  563. #####################################################################
  564. # set the prefix directory where to install everything
  565. ifndef PREFIXINSTALLDIR
  566. ifdef inlinux
  567. PREFIXINSTALLDIR=/usr
  568. else
  569. PREFIXINSTALLDIR=/pp
  570. endif
  571. endif
  572. export PREFIXINSTALLDIR
  573. # Where to place the resulting zip files
  574. ifndef DESTZIPDIR
  575. DESTZIPDIR:=$(BASEDIR)
  576. endif
  577. export DESTZIPDIR
  578. #####################################################################
  579. # Install Directories
  580. #####################################################################
  581. # set the base directory where to install everything
  582. ifndef BASEINSTALLDIR
  583. ifdef inlinux
  584. BASEINSTALLDIR=$(PREFIXINSTALLDIR)/lib/fpc/$(FPC_VERSION)
  585. else
  586. BASEINSTALLDIR=$(PREFIXINSTALLDIR)
  587. endif
  588. endif
  589. # set the directory where to install the binaries
  590. ifndef BININSTALLDIR
  591. ifdef inlinux
  592. BININSTALLDIR=$(PREFIXINSTALLDIR)/bin
  593. else
  594. BININSTALLDIR=$(BASEINSTALLDIR)/bin/$(OS_TARGET)
  595. endif
  596. endif
  597. # set the directory where to install the units.
  598. ifndef UNITINSTALLDIR
  599. UNITINSTALLDIR=$(BASEINSTALLDIR)/units/$(OS_TARGET)
  600. ifdef UNITSUBDIR
  601. UNITINSTALLDIR:=$(UNITINSTALLDIR)/$(UNITSUBDIR)
  602. endif
  603. endif
  604. # Where to install shared libraries
  605. ifndef LIBINSTALLDIR
  606. ifdef inlinux
  607. LIBINSTALLDIR=$(PREFIXINSTALLDIR)/lib
  608. else
  609. LIBINSTALLDIR=$(UNITINSTALLDIR)
  610. endif
  611. endif
  612. # Where the source files will be stored
  613. ifndef SOURCEINSTALLDIR
  614. ifdef inlinux
  615. SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
  616. else
  617. SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
  618. endif
  619. ifdef SOURCESUBDIR
  620. SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
  621. endif
  622. endif
  623. # Where the doc files will be stored
  624. ifndef DOCINSTALLDIR
  625. ifdef inlinux
  626. DOCINSTALLDIR=$(PREFIXINSTALLDIR)/doc/fpc-$(FPC_VERSION)
  627. else
  628. DOCINSTALLDIR=$(BASEINSTALLDIR)/doc
  629. endif
  630. endif
  631. # Where the some extra (data)files will be stored
  632. ifndef DATAINSTALLDIR
  633. DATAINSTALLDIR=$(BASEINSTALLDIR)
  634. endif
  635. #####################################################################
  636. # Redirection
  637. #####################################################################
  638. # Release ? Then force OPT and don't use extra opts via commandline
  639. ifndef REDIRFILE
  640. REDIRFILE=log
  641. endif
  642. ifdef REDIR
  643. ifndef inlinux
  644. override FPC=redir -eo $(FPC)
  645. endif
  646. # set the verbosity to max
  647. override FPCOPT+=-va
  648. override REDIR:= >> $(REDIRFILE)
  649. endif
  650. #####################################################################
  651. # Compiler Command Line
  652. #####################################################################
  653. # Load commandline OPTDEF and add FPC_CPU define
  654. override FPCOPTDEF:=-d$(CPU_TARGET)
  655. # Load commandline OPT and add target and unit dir to be sure
  656. ifneq ($(OS_TARGET),$(OS_SOURCE))
  657. override FPCOPT+=-T$(OS_TARGET)
  658. endif
  659. ifdef NEEDUNITDIR
  660. override FPCOPT+=$(addprefix -Fu,$(NEEDUNITDIR))
  661. endif
  662. ifdef UNITSDIR
  663. override FPCOPT+=-Fu$(UNITSDIR)
  664. endif
  665. # Target dirs
  666. ifdef TARGETDIR
  667. override FPCOPT+=-FE$(TARGETDIR)
  668. endif
  669. # Smartlinking
  670. ifdef SMARTLINK
  671. override FPCOPT+=-CX
  672. endif
  673. # Debug
  674. ifdef DEBUG
  675. override FPCOPT+=-g -dDEBUG
  676. endif
  677. # Release mode (strip, optimize and don't load ppc386.cfg)
  678. ifdef RELEASE
  679. override FPCOPT+=-Xs -OG2p3 -n
  680. endif
  681. # Verbose settings (warning,note,info)
  682. ifdef VERBOSE
  683. override FPCOPT+=-vwni
  684. endif
  685. # Add commandline options
  686. ifdef OPT
  687. override FPCOPT+=$(OPT)
  688. endif
  689. ifdef UNITDIR
  690. override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
  691. endif
  692. ifdef LIBDIR
  693. override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
  694. endif
  695. ifdef OBJDIR
  696. override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
  697. endif
  698. ifdef INCDIR
  699. override FPCOPT+=$(addprefix -Fi,$(INCDIR))
  700. endif
  701. # Add defines from FPCOPTDEF to FPCOPT
  702. ifdef FPCOPTDEF
  703. override FPCOPT+=$(FPCOPTDEF)
  704. endif
  705. # Error file ?
  706. ifdef ERRORFILE
  707. override FPCOPT+=-Fr$(ERRORFILE)
  708. endif
  709. # Was a config file specified ?
  710. ifdef CFGFILE
  711. override FPCOPT+=@$(CFGFILE)
  712. endif
  713. # For win32 the options are passed using the file fpcext.cmd
  714. ifndef FPCEXTCMD
  715. FPCEXTCMD=fpcext.cmd
  716. endif
  717. ifeq ($(OS_SOURCE),win32)
  718. override TMPVAR:=$(shell "$(DEL) $(FPCEXTCMD)")
  719. override TMPVAR:=$(foreach A,$(FPCOPT),$(shell "$(ECHO) $(A) >> $(FPCEXTCMD)"))
  720. override FPCOPT:=@$(FPCEXTCMD)
  721. endif
  722. # Compiler commandline
  723. override COMPILER:=$(FPC) $(FPCOPT)
  724. #####################################################################
  725. # Standard rules
  726. #####################################################################
  727. all: fpc_all $(addsuffix _all,$(DIROBJECTS))
  728. debug: fpc_debug $(addsuffix _debug,$(DIROBJECTS))
  729. examples: $(addsuffix _examples,$(DIROBJECTS))
  730. test: $(addsuffix _test,$(DIROBJECTS))
  731. smart: fpc_smart $(addsuffix _smart,$(DIROBJECTS))
  732. shared: fpc_shared $(addsuffix _shared,$(DIROBJECTS))
  733. showinstall: fpc_showinstall $(addsuffix _showinstall,$(DIROBJECTS))
  734. install: fpc_install $(addsuffix _install,$(DIROBJECTS))
  735. sourceinstall: fpc_sourceinstall
  736. zipinstall: fpc_zipinstall
  737. zipsourceinstall: fpc_zipsourceinstall
  738. clean: fpc_clean $(addsuffix _clean,$(DIROBJECTS))
  739. cleanall: fpc_cleanall $(addsuffix _cleanall,$(DIROBJECTS))
  740. require: $(addsuffix _require,$(DIROBJECTS))
  741. info: fpc_info
  742. .PHONY: all debug examples test smart shared showinstall install sourceinstall zipinstall zipsourceinstall clean cleanall require info
  743. #####################################################################
  744. # Exes
  745. #####################################################################
  746. .PHONY: fpc_exes
  747. override EXEFILES=$(addsuffix $(EXEEXT),$(EXEOBJECTS))
  748. override EXEOFILES=$(addsuffix $(OEXT),$(EXEOBJECTS))
  749. override ALLTARGET+=fpc_exes
  750. override INSTALLEXEFILES+=$(EXEFILES)
  751. override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
  752. fpc_exes: $(EXEFILES)
  753. #####################################################################
  754. # General compile rules
  755. #####################################################################
  756. .PHONY: fpc_packages fpc_all fpc_debug
  757. $(FPCMADE): $(ALLTARGET)
  758. @$(ECHO) Compiled > $(FPCMADE)
  759. fpc_packages: $(COMPILEPACKAGES)
  760. fpc_all: fpc_packages $(FPCMADE)
  761. fpc_debug:
  762. $(MAKE) all DEBUG=1
  763. # General compile rules, available for both possible PASEXT
  764. .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp
  765. %$(PPUEXT): %.pp
  766. $(COMPILER) $< $(REDIR)
  767. $(EXECPASS)
  768. %$(PPUEXT): %.pas
  769. $(COMPILER) $< $(REDIR)
  770. $(EXECPASS)
  771. %$(EXEEXT): %.pp
  772. $(COMPILER) $< $(REDIR)
  773. $(EXECPASS)
  774. %$(EXEEXT): %.pas
  775. $(COMPILER) $< $(REDIR)
  776. $(EXECPASS)
  777. #####################################################################
  778. # Library
  779. #####################################################################
  780. .PHONY: fpc_smart fpc_shared
  781. # Default sharedlib units are all unit objects
  782. ifndef SHAREDLIBUNITOBJECTS
  783. SHAREDLIBUNITOBJECTS:=$(UNITOBJECTS)
  784. endif
  785. fpc_smart:
  786. $(MAKE) all SMARTLINK=1
  787. fpc_shared: all
  788. ifdef inlinux
  789. ifndef LIBNAME
  790. @$(ECHO) "LIBNAME not set"
  791. else
  792. $(PPUMOVE) $(SHAREDLIBUNITOBJECTS) -o$(LIBNAME)
  793. endif
  794. else
  795. @$(ECHO) "Shared Libraries not supported"
  796. endif
  797. #####################################################################
  798. # Install rules
  799. #####################################################################
  800. .PHONY: fpc_showinstall fpc_install
  801. ifdef EXTRAINSTALLUNITS
  802. override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
  803. endif
  804. ifdef INSTALLPPUFILES
  805. ifdef PPUFILES
  806. ifdef inlinux
  807. INSTALLPPULINKFILES:=$(shell $(PPUFILES) -S -O $(INSTALLPPUFILES))
  808. INSTALLPPULIBFILES:=$(shell $(PPUFILES) -L $(INSTALLPPUFILES))
  809. else
  810. INSTALLPPULINKFILES:=$(shell $(PPUFILES) $(INSTALLPPUFILES))
  811. endif
  812. else
  813. INSTALLPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)))
  814. endif
  815. endif
  816. fpc_showinstall: $(SHOWINSTALLTARGET)
  817. ifdef INSTALLEXEFILES
  818. @$(ECHO) -e $(addprefix "\n"$(BININSTALLDIR)/,$(INSTALLEXEFILES))
  819. endif
  820. ifdef INSTALLPPUFILES
  821. @$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPUFILES))
  822. ifneq ($(INSTALLPPULINKFILES),)
  823. @$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPULINKFILES))
  824. endif
  825. ifneq ($(INSTALLPPULIBFILES),)
  826. @$(ECHO) -e $(addprefix "\n"$(LIBINSTALLDIR)/,$(INSTALLPPULIBFILES))
  827. endif
  828. endif
  829. ifdef EXTRAINSTALLFILES
  830. @$(ECHO) -e $(addprefix "\n"$(DATAINSTALLDIR)/,$(EXTRAINSTALLFILES))
  831. endif
  832. fpc_install: $(INSTALLTARGET)
  833. # Create UnitInstallFiles
  834. ifdef INSTALLEXEFILES
  835. $(MKDIR) $(BININSTALLDIR)
  836. # Compress the exes if upx is defined
  837. ifdef UPXPROG
  838. -$(UPXPROG) $(INSTALLEXEFILES)
  839. endif
  840. $(INSTALLEXE) $(INSTALLEXEFILES) $(BININSTALLDIR)
  841. endif
  842. ifdef INSTALLPPUFILES
  843. $(MKDIR) $(UNITINSTALLDIR)
  844. $(INSTALL) $(INSTALLPPUFILES) $(UNITINSTALLDIR)
  845. ifneq ($(INSTALLPPULINKFILES),)
  846. $(INSTALL) $(INSTALLPPULINKFILES) $(UNITINSTALLDIR)
  847. endif
  848. ifneq ($(INSTALLPPULIBFILES),)
  849. $(MKDIR) $(LIBINSTALLDIR)
  850. $(INSTALL) $(INSTALLPPULIBFILES) $(LIBINSTALLDIR)
  851. endif
  852. endif
  853. ifdef EXTRAINSTALLFILES
  854. $(MKDIR) $(DATAINSTALLDIR)
  855. $(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
  856. endif
  857. #####################################################################
  858. # SourceInstall rules
  859. #####################################################################
  860. .PHONY: fpc_sourceinstall
  861. ifndef SOURCETOPDIR
  862. SOURCETOPDIR=$(BASEDIR)
  863. endif
  864. fpc_sourceinstall: clean
  865. $(MKDIR) $(SOURCEINSTALLDIR)
  866. $(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
  867. #####################################################################
  868. # Zip
  869. #####################################################################
  870. .PHONY: fpc_zipinstall
  871. # Create suffix to add
  872. ifndef PACKAGESUFFIX
  873. PACKAGESUFFIX=$(OS_TARGET)
  874. ifeq ($(OS_TARGET),go32v2)
  875. PACKAGESUFFIX=go32
  876. endif
  877. ifeq ($(OS_TARGET),win32)
  878. PACKAGESUFFIX=w32
  879. endif
  880. endif
  881. # Temporary path to pack a file
  882. ifndef PACKDIR
  883. ifndef inlinux
  884. PACKDIR=$(BASEDIR)/pack_tmp
  885. else
  886. PACKDIR=/tmp/fpc-pack
  887. endif
  888. endif
  889. # Maybe create default zipname from packagename
  890. ifndef ZIPNAME
  891. ifdef PACKAGENAME
  892. ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
  893. endif
  894. endif
  895. # Use tar by default under linux
  896. ifndef USEZIP
  897. ifdef inlinux
  898. USETAR=1
  899. endif
  900. endif
  901. fpc_zipinstall:
  902. ifndef ZIPNAME
  903. @$(ECHO) "Please specify ZIPNAME!"
  904. @exit 1
  905. else
  906. $(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
  907. ifdef USETAR
  908. $(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT)
  909. cd $(PACKDIR) ; $(TARPROG) c$(TAROPT) --file $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
  910. else
  911. $(DEL) $(DESTZIPDIR)/$(ZIPNAME)/$(ZIPEXT)
  912. cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
  913. endif
  914. $(DELTREE) $(PACKDIR)
  915. endif
  916. .PHONY: fpc_zipsourceinstall
  917. fpc_zipsourceinstall:
  918. $(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
  919. #####################################################################
  920. # Clean rules
  921. #####################################################################
  922. .PHONY: fpc_clean fpc_cleanall
  923. ifdef EXTRACLEANUNITS
  924. override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRACLEANUNITS))
  925. endif
  926. ifdef CLEANPPUFILES
  927. ifdef PPUFILES
  928. CLEANPPULINKFILES:=$(shell $(PPUFILES) $(CLEANPPUFILES))
  929. else
  930. CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)))
  931. endif
  932. endif
  933. fpc_clean: $(CLEANTARGET)
  934. ifdef CLEANEXEFILES
  935. -$(DEL) $(CLEANEXEFILES)
  936. endif
  937. ifdef CLEANPPUFILES
  938. -$(DEL) $(CLEANPPUFILES)
  939. endif
  940. ifneq ($(CLEANPPULINKFILES),)
  941. -$(DEL) $(CLEANPPULINKFILES)
  942. endif
  943. ifdef CLEANRSTFILES
  944. -$(DEL) $(CLEANRSTFILES)
  945. endif
  946. ifdef EXTRACLEANFILES
  947. -$(DEL) $(EXTRACLEANFILES)
  948. endif
  949. -$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTCMD) $(REDIRFILE)
  950. fpc_cleanall: $(CLEANTARGET)
  951. ifdef CLEANEXEFILES
  952. -$(DEL) $(CLEANEXEFILES)
  953. endif
  954. -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
  955. -$(DELTREE) *$(SMARTEXT)
  956. -$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTCMD) $(REDIRFILE)
  957. #####################################################################
  958. # Info rules
  959. #####################################################################
  960. .PHONY: fpc_info fpc_cfginfo fpc_objectinfo fpc_toolsinfo fpc_installinfo \
  961. fpc_dirinfo
  962. fpc_info: $(INFOTARGET)
  963. fpc_infocfg:
  964. @$(ECHO)
  965. @$(ECHO) == Configuration info ==
  966. @$(ECHO)
  967. @$(ECHO) FPC....... $(FPC)
  968. @$(ECHO) Version... $(FPC_VERSION)
  969. @$(ECHO) CPU....... $(CPU_TARGET)
  970. @$(ECHO) Source.... $(OS_SOURCE)
  971. @$(ECHO) Target.... $(OS_TARGET)
  972. @$(ECHO)
  973. fpc_infoobjects:
  974. @$(ECHO)
  975. @$(ECHO) == Object info ==
  976. @$(ECHO)
  977. @$(ECHO) LoaderObjects..... $(LOADEROBJECTS)
  978. @$(ECHO) UnitObjects....... $(UNITOBJECTS)
  979. @$(ECHO) ExeObjects........ $(EXEOBJECTS)
  980. @$(ECHO)
  981. @$(ECHO) ExtraCleanUnits... $(EXTRACLEANUNITS)
  982. @$(ECHO) ExtraCleanFiles... $(EXTRACLEANFILES)
  983. @$(ECHO)
  984. @$(ECHO) ExtraInstallUnits. $(EXTRAINSTALLUNITS)
  985. @$(ECHO) ExtraInstallFiles. $(EXTRAINSTALLFILES)
  986. @$(ECHO)
  987. fpc_infoinstall:
  988. @$(ECHO)
  989. @$(ECHO) == Install info ==
  990. @$(ECHO)
  991. ifdef DATE
  992. @$(ECHO) DateStr.............. $(DATESTR)
  993. endif
  994. ifdef PACKAGEPREFIX
  995. @$(ECHO) PackagePrefix........ $(PACKAGEPREFIX)
  996. endif
  997. ifdef PACKAGENAME
  998. @$(ECHO) PackageName.......... $(PACKAGENAME)
  999. endif
  1000. @$(ECHO) PackageSuffix........ $(PACKAGESUFFIX)
  1001. @$(ECHO)
  1002. @$(ECHO) BaseInstallDir....... $(BASEINSTALLDIR)
  1003. @$(ECHO) BinInstallDir........ $(BININSTALLDIR)
  1004. @$(ECHO) LibInstallDir........ $(LIBINSTALLDIR)
  1005. @$(ECHO) UnitInstallDir....... $(UNITINSTALLDIR)
  1006. @$(ECHO) SourceInstallDir..... $(SOURCEINSTALLDIR)
  1007. @$(ECHO) DocInstallDir........ $(DOCINSTALLDIR)
  1008. @$(ECHO) DataInstallDir....... $(DATAINSTALLDIR)
  1009. @$(ECHO)
  1010. @$(ECHO) DestZipDir........... $(DESTZIPDIR)
  1011. @$(ECHO) ZipName.............. $(ZIPNAME)
  1012. @$(ECHO)
  1013. #####################################################################
  1014. # Directories
  1015. #####################################################################
  1016. OBJECTDIRTPLY=1
  1017. OBJECTDIRH2PAS=1
  1018. OBJECTDIRFPRCP=1
  1019. # Dir tply
  1020. ifdef OBJECTDIRTPLY
  1021. .PHONY: tply_all tply_debug tply_examples tply_test tply_smart tply_shared tply_showinstall tply_install tply_sourceinstall tply_zipinstall tply_zipsourceinstall tply_clean tply_cleanall tply_require tply_info
  1022. tply_all:
  1023. $(MAKE) -C tply all
  1024. tply_debug:
  1025. $(MAKE) -C tply debug
  1026. tply_examples:
  1027. $(MAKE) -C tply examples
  1028. tply_test:
  1029. $(MAKE) -C tply test
  1030. tply_smart:
  1031. $(MAKE) -C tply smart
  1032. tply_shared:
  1033. $(MAKE) -C tply shared
  1034. tply_showinstall:
  1035. $(MAKE) -C tply showinstall
  1036. tply_install:
  1037. $(MAKE) -C tply install
  1038. tply_sourceinstall:
  1039. $(MAKE) -C tply sourceinstall
  1040. tply_zipinstall:
  1041. $(MAKE) -C tply zipinstall
  1042. tply_zipsourceinstall:
  1043. $(MAKE) -C tply zipsourceinstall
  1044. tply_clean:
  1045. $(MAKE) -C tply clean
  1046. tply_cleanall:
  1047. $(MAKE) -C tply cleanall
  1048. tply_require:
  1049. $(MAKE) -C tply require
  1050. tply_info:
  1051. $(MAKE) -C tply info
  1052. endif
  1053. # Dir h2pas
  1054. ifdef OBJECTDIRH2PAS
  1055. .PHONY: h2pas_all h2pas_debug h2pas_examples h2pas_test h2pas_smart h2pas_shared h2pas_showinstall h2pas_install h2pas_sourceinstall h2pas_zipinstall h2pas_zipsourceinstall h2pas_clean h2pas_cleanall h2pas_require h2pas_info
  1056. h2pas_all:
  1057. $(MAKE) -C h2pas all
  1058. h2pas_debug:
  1059. $(MAKE) -C h2pas debug
  1060. h2pas_examples:
  1061. $(MAKE) -C h2pas examples
  1062. h2pas_test:
  1063. $(MAKE) -C h2pas test
  1064. h2pas_smart:
  1065. $(MAKE) -C h2pas smart
  1066. h2pas_shared:
  1067. $(MAKE) -C h2pas shared
  1068. h2pas_showinstall:
  1069. $(MAKE) -C h2pas showinstall
  1070. h2pas_install:
  1071. $(MAKE) -C h2pas install
  1072. h2pas_sourceinstall:
  1073. $(MAKE) -C h2pas sourceinstall
  1074. h2pas_zipinstall:
  1075. $(MAKE) -C h2pas zipinstall
  1076. h2pas_zipsourceinstall:
  1077. $(MAKE) -C h2pas zipsourceinstall
  1078. h2pas_clean:
  1079. $(MAKE) -C h2pas clean
  1080. h2pas_cleanall:
  1081. $(MAKE) -C h2pas cleanall
  1082. h2pas_require:
  1083. $(MAKE) -C h2pas require
  1084. h2pas_info:
  1085. $(MAKE) -C h2pas info
  1086. endif
  1087. # Dir fprcp
  1088. ifdef OBJECTDIRFPRCP
  1089. .PHONY: fprcp_all fprcp_debug fprcp_examples fprcp_test fprcp_smart fprcp_shared fprcp_showinstall fprcp_install fprcp_sourceinstall fprcp_zipinstall fprcp_zipsourceinstall fprcp_clean fprcp_cleanall fprcp_require fprcp_info
  1090. fprcp_all:
  1091. $(MAKE) -C fprcp all
  1092. fprcp_debug:
  1093. $(MAKE) -C fprcp debug
  1094. fprcp_examples:
  1095. $(MAKE) -C fprcp examples
  1096. fprcp_test:
  1097. $(MAKE) -C fprcp test
  1098. fprcp_smart:
  1099. $(MAKE) -C fprcp smart
  1100. fprcp_shared:
  1101. $(MAKE) -C fprcp shared
  1102. fprcp_showinstall:
  1103. $(MAKE) -C fprcp showinstall
  1104. fprcp_install:
  1105. $(MAKE) -C fprcp install
  1106. fprcp_sourceinstall:
  1107. $(MAKE) -C fprcp sourceinstall
  1108. fprcp_zipinstall:
  1109. $(MAKE) -C fprcp zipinstall
  1110. fprcp_zipsourceinstall:
  1111. $(MAKE) -C fprcp zipsourceinstall
  1112. fprcp_clean:
  1113. $(MAKE) -C fprcp clean
  1114. fprcp_cleanall:
  1115. $(MAKE) -C fprcp cleanall
  1116. fprcp_require:
  1117. $(MAKE) -C fprcp require
  1118. fprcp_info:
  1119. $(MAKE) -C fprcp info
  1120. endif
  1121. #####################################################################
  1122. # Local Makefile
  1123. #####################################################################
  1124. ifneq ($(wildcard fpcmake.loc),)
  1125. include fpcmake.loc
  1126. endif
  1127. #####################################################################
  1128. # Users rules
  1129. #####################################################################
  1130. #
  1131. # PPU Tools
  1132. #
  1133. ppu$(PPUEXT): ppu.pas
  1134. ppudump$(EXEEXT): ppudump.pp ppu$(PPUEXT)
  1135. ppumove$(EXEEXT): ppumove.pp ppu$(PPUEXT)
  1136. #
  1137. # Pascal beautifier
  1138. #
  1139. ptop$(EXEEXT): ptop.pp ptopu$(PPUEXT)
  1140. ptopu$(PPUEXT): ptopu.pp
  1141. #
  1142. # Other
  1143. #
  1144. fpcmake.inc: fpcmake.ini
  1145. $(DATA2INC) -b -s fpcmake.ini fpcmake.inc fpcmakeini
  1146. fpcmake$(EXEEXT): fpcmake.pp fpcmake.inc
  1147. ppdep$(EXEEXT): ppdep.pp
  1148. #
  1149. # Don't export some tools, which are found in the current dir if it's in
  1150. # the path, so are not valid for the subdirs
  1151. #
  1152. unexport PPUFILES PPUMOVE DATA2INC