Makefile 30 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429
  1. #
  2. # Makefile generated by fpcmake v1.00 [2000/12/19]
  3. #
  4. defaultrule: all
  5. #####################################################################
  6. # Autodetect OS (Linux or Dos or Windows NT or OS/2)
  7. # define inUnix when running under Unix (Linux,FreeBSD)
  8. # define inWinNT when running under WinNT
  9. # define inOS2 when running under OS/2
  10. #####################################################################
  11. # We need only / in the path
  12. override PATH:=$(subst \,/,$(PATH))
  13. # Search for PWD and determine also if we are under linux
  14. PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH)))))
  15. ifeq ($(PWD),)
  16. PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH)))))
  17. ifeq ($(PWD),)
  18. nopwd:
  19. @echo You need the GNU utils package to use this Makefile!
  20. @echo Get ftp://ftp.freepascal.org/pub/fpc/dist/go32v2/utilgo32.zip
  21. @exit
  22. else
  23. inUnix=1
  24. PWD:=$(firstword $(PWD))
  25. endif
  26. else
  27. PWD:=$(firstword $(PWD))
  28. endif
  29. # Detect NT - NT sets OS to Windows_NT
  30. # Detect OS/2 - OS/2 has OS2_SHELL defined
  31. ifndef inUnix
  32. ifeq ($(OS),Windows_NT)
  33. inWinNT=1
  34. else
  35. ifdef OS2_SHELL
  36. inOS2=1
  37. endif
  38. endif
  39. endif
  40. # The extension of executables
  41. ifdef inUnix
  42. SRCEXEEXT=
  43. else
  44. SRCEXEEXT=.exe
  45. endif
  46. # The path which is searched separated by spaces
  47. ifdef inUnix
  48. SEARCHPATH=$(subst :, ,$(PATH))
  49. else
  50. SEARCHPATH=$(subst ;, ,$(PATH))
  51. endif
  52. # Base dir
  53. ifdef PWD
  54. BASEDIR:=$(shell $(PWD))
  55. else
  56. BASEDIR=.
  57. endif
  58. #####################################################################
  59. # FPC version/target Detection
  60. #####################################################################
  61. # What compiler to use ?
  62. ifndef FPC
  63. # Compatibility with old makefiles
  64. ifdef PP
  65. FPC=$(PP)
  66. else
  67. FPC=ppc386
  68. endif
  69. endif
  70. override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
  71. override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
  72. # Target OS
  73. ifndef OS_TARGET
  74. OS_TARGET:=$(shell $(FPC) -iTO)
  75. endif
  76. # Source OS
  77. ifndef OS_SOURCE
  78. OS_SOURCE:=$(shell $(FPC) -iSO)
  79. endif
  80. # Target CPU
  81. ifndef CPU_TARGET
  82. CPU_TARGET:=$(shell $(FPC) -iTP)
  83. endif
  84. # Source CPU
  85. ifndef CPU_SOURCE
  86. CPU_SOURCE:=$(shell $(FPC) -iSP)
  87. endif
  88. # FPC version
  89. ifndef FPC_VERSION
  90. FPC_VERSION:=$(shell $(FPC) -iV)
  91. endif
  92. export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
  93. #####################################################################
  94. # FPCDIR Setting
  95. #####################################################################
  96. # Test FPCDIR to look if the RTL dir exists
  97. ifdef FPCDIR
  98. override FPCDIR:=$(subst \,/,$(FPCDIR))
  99. ifeq ($(wildcard $(FPCDIR)/rtl),)
  100. ifeq ($(wildcard $(FPCDIR)/units),)
  101. override FPCDIR=wrong
  102. endif
  103. endif
  104. else
  105. override FPCDIR=wrong
  106. endif
  107. # Detect FPCDIR
  108. ifeq ($(FPCDIR),wrong)
  109. ifdef inUnix
  110. override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
  111. ifeq ($(wildcard $(FPCDIR)/units),)
  112. override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
  113. endif
  114. else
  115. override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
  116. override FPCDIR:=$(FPCDIR)/..
  117. ifeq ($(wildcard $(FPCDIR)/rtl),)
  118. ifeq ($(wildcard $(FPCDIR)/units),)
  119. override FPCDIR:=$(FPCDIR)/..
  120. ifeq ($(wildcard $(FPCDIR)/rtl),)
  121. ifeq ($(wildcard $(FPCDIR)/units),)
  122. override FPCDIR=c:/pp
  123. endif
  124. endif
  125. endif
  126. endif
  127. endif
  128. endif
  129. #####################################################################
  130. # User Settings
  131. #####################################################################
  132. # Targets
  133. ifeq ($(OS_TARGET),linux)
  134. override DIROBJECTS+=$(wildcard linux gtkgl)
  135. endif
  136. ifeq ($(OS_TARGET),win32)
  137. override DIROBJECTS+=$(wildcard win32 gtkgl)
  138. endif
  139. override EXAMPLEDIROBJECTS+=examples
  140. # Clean
  141. # Install
  142. EXAMPLESUBDIR=opengl
  143. PACKAGENAME=opengl
  144. ZIPTARGET=install
  145. # Defaults
  146. # Directories
  147. # Packages
  148. # Libraries
  149. # Info
  150. INFOTARGET=fpc_infocfg fpc_infoobjects fpc_infoinstall
  151. #####################################################################
  152. # Shell tools
  153. #####################################################################
  154. # echo
  155. ifndef ECHO
  156. ECHO:=$(strip $(wildcard $(addsuffix /gecho$(EXEEXT),$(SEARCHPATH))))
  157. ifeq ($(ECHO),)
  158. ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
  159. ifeq ($(ECHO),)
  160. ECHO:=echo
  161. ECHOE:=echo
  162. else
  163. ECHO:=$(firstword $(ECHO))
  164. ECHOE=$(ECHO) -E
  165. endif
  166. else
  167. ECHO:=$(firstword $(ECHO))
  168. ECHOE=$(ECHO) -E
  169. endif
  170. endif
  171. # To copy pograms
  172. ifndef COPY
  173. COPY:=cp -fp
  174. endif
  175. # Copy a whole tree
  176. ifndef COPYTREE
  177. COPYTREE:=cp -rfp
  178. endif
  179. # To move pograms
  180. ifndef MOVE
  181. MOVE:=mv -f
  182. endif
  183. # Check delete program
  184. ifndef DEL
  185. DEL:=rm -f
  186. endif
  187. # Check deltree program
  188. ifndef DELTREE
  189. DELTREE:=rm -rf
  190. endif
  191. # To install files
  192. ifndef INSTALL
  193. ifdef inUnix
  194. INSTALL:=install -c -m 644
  195. else
  196. INSTALL:=$(COPY)
  197. endif
  198. endif
  199. # To install programs
  200. ifndef INSTALLEXE
  201. ifdef inUnix
  202. INSTALLEXE:=install -c -m 755
  203. else
  204. INSTALLEXE:=$(COPY)
  205. endif
  206. endif
  207. # To make a directory.
  208. ifndef MKDIR
  209. ifdef inUnix
  210. MKDIR:=install -m 755 -d
  211. else
  212. MKDIR:=ginstall -m 755 -d
  213. endif
  214. endif
  215. export ECHO ECHOE COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
  216. #####################################################################
  217. # Default Tools
  218. #####################################################################
  219. # assembler, redefine it if cross compiling
  220. ifndef AS
  221. AS=as
  222. endif
  223. # linker, but probably not used
  224. ifndef LD
  225. LD=ld
  226. endif
  227. # ppas.bat / ppas.sh
  228. ifdef inUnix
  229. PPAS=ppas.sh
  230. else
  231. ifdef inOS2
  232. PPAS=ppas.cmd
  233. else
  234. PPAS=ppas.bat
  235. endif
  236. endif
  237. # ldconfig to rebuild .so cache
  238. ifdef inUnix
  239. LDCONFIG=ldconfig
  240. else
  241. LDCONFIG=
  242. endif
  243. # ppumove
  244. ifndef PPUMOVE
  245. PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
  246. ifeq ($(PPUMOVE),)
  247. PPUMOVE=
  248. else
  249. PPUMOVE:=$(firstword $(PPUMOVE))
  250. endif
  251. endif
  252. export PPUMOVE
  253. # ppufiles
  254. ifndef PPUFILES
  255. PPUFILES:=$(strip $(wildcard $(addsuffix /ppufiles$(SRCEXEEXT),$(SEARCHPATH))))
  256. ifeq ($(PPUFILES),)
  257. PPUFILES=
  258. else
  259. PPUFILES:=$(firstword $(PPUFILES))
  260. endif
  261. endif
  262. export PPUFILES
  263. # Look if UPX is found for go32v2 and win32. We can't use $UPX becuase
  264. # upx uses that one itself (PFV)
  265. ifndef UPXPROG
  266. ifeq ($(OS_TARGET),go32v2)
  267. UPXPROG:=1
  268. endif
  269. ifeq ($(OS_TARGET),win32)
  270. UPXPROG:=1
  271. endif
  272. ifdef UPXPROG
  273. UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
  274. ifeq ($(UPXPROG),)
  275. UPXPROG=
  276. else
  277. UPXPROG:=$(firstword $(UPXPROG))
  278. endif
  279. else
  280. UPXPROG=
  281. endif
  282. endif
  283. export UPXPROG
  284. # ZipProg, you can't use Zip as the var name (PFV)
  285. ifndef ZIPPROG
  286. ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
  287. ifeq ($(ZIPPROG),)
  288. ZIPPROG=
  289. else
  290. ZIPPROG:=$(firstword $(ZIPPROG))
  291. endif
  292. endif
  293. export ZIPPROG
  294. ZIPOPT=-9
  295. ZIPEXT=.zip
  296. # Tar
  297. ifndef TARPROG
  298. TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
  299. ifeq ($(TARPROG),)
  300. TARPROG=
  301. else
  302. TARPROG:=$(firstword $(TARPROG))
  303. endif
  304. endif
  305. export TARPROG
  306. ifeq ($(USETAR),bz2)
  307. TAROPT=vI
  308. TAREXT=.tar.bz2
  309. else
  310. TAROPT=vz
  311. TAREXT=.tar.gz
  312. endif
  313. #####################################################################
  314. # Default extensions
  315. #####################################################################
  316. # Default needed extensions (Go32v2,Linux)
  317. LOADEREXT=.as
  318. EXEEXT=.exe
  319. PPLEXT=.ppl
  320. PPUEXT=.ppu
  321. OEXT=.o
  322. ASMEXT=.s
  323. SMARTEXT=.sl
  324. STATICLIBEXT=.a
  325. SHAREDLIBEXT=.so
  326. RSTEXT=.rst
  327. FPCMADE=fpcmade
  328. # Go32v1
  329. ifeq ($(OS_TARGET),go32v1)
  330. PPUEXT=.pp1
  331. OEXT=.o1
  332. ASMEXT=.s1
  333. SMARTEXT=.sl1
  334. STATICLIBEXT=.a1
  335. SHAREDLIBEXT=.so1
  336. FPCMADE=fpcmade.v1
  337. endif
  338. # Go32v2
  339. ifeq ($(OS_TARGET),go32v2)
  340. FPCMADE=fpcmade.dos
  341. endif
  342. # Linux
  343. ifeq ($(OS_TARGET),linux)
  344. EXEEXT=
  345. HASSHAREDLIB=1
  346. FPCMADE=fpcmade.lnx
  347. endif
  348. # Linux
  349. ifeq ($(OS_TARGET),freebsd)
  350. EXEEXT=
  351. HASSHAREDLIB=1
  352. FPCMADE=fpcmade.freebsd
  353. endif
  354. # Win32
  355. ifeq ($(OS_TARGET),win32)
  356. PPUEXT=.ppw
  357. OEXT=.ow
  358. ASMEXT=.sw
  359. SMARTEXT=.slw
  360. STATICLIBEXT=.aw
  361. SHAREDLIBEXT=.dll
  362. FPCMADE=fpcmade.w32
  363. endif
  364. # OS/2
  365. ifeq ($(OS_TARGET),os2)
  366. PPUEXT=.ppo
  367. ASMEXT=.so2
  368. OEXT=.oo2
  369. SMARTEXT=.so
  370. STATICLIBEXT=.ao2
  371. SHAREDLIBEXT=.dll
  372. FPCMADE=fpcmade.os2
  373. endif
  374. # library prefix
  375. LIBPREFIX=lib
  376. ifeq ($(OS_TARGET),go32v2)
  377. LIBPREFIX=
  378. endif
  379. ifeq ($(OS_TARGET),go32v1)
  380. LIBPREFIX=
  381. endif
  382. # determine which .pas extension is used
  383. ifndef PASEXT
  384. ifdef EXEOBJECTS
  385. override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(EXEOBJECTS)))))
  386. else
  387. override TESTPAS:=$(strip $(wildcard $(addsuffix .pas,$(firstword $(UNITOBJECTS)))))
  388. endif
  389. ifeq ($(TESTPAS),)
  390. PASEXT=.pp
  391. else
  392. PASEXT=.pas
  393. endif
  394. endif
  395. #####################################################################
  396. # Default Directories
  397. #####################################################################
  398. # Linux and freebsd use unix dirs with /usr/bin, /usr/lib
  399. # When zipping use the target as default, when normal install then
  400. # use the source os as default
  401. ifdef ZIPNAME
  402. # Zipinstall
  403. ifeq ($(OS_TARGET),linux)
  404. UNIXINSTALLDIR=1
  405. endif
  406. ifeq ($(OS_TARGET),freebsd)
  407. UNIXINSTALLDIR=1
  408. endif
  409. else
  410. # Normal install
  411. ifeq ($(OS_SOURCE),linux)
  412. UNIXINSTALLDIR=1
  413. endif
  414. ifeq ($(OS_SOURCE),freebsd)
  415. UNIXINSTALLDIR=1
  416. endif
  417. endif
  418. # set the prefix directory where to install everything
  419. ifndef PREFIXINSTALLDIR
  420. ifdef UNIXINSTALLDIR
  421. PREFIXINSTALLDIR=/usr
  422. else
  423. PREFIXINSTALLDIR=/pp
  424. endif
  425. endif
  426. export PREFIXINSTALLDIR
  427. # Where to place the resulting zip files
  428. ifndef DESTZIPDIR
  429. DESTZIPDIR:=$(BASEDIR)
  430. endif
  431. export DESTZIPDIR
  432. #####################################################################
  433. # Install Directories
  434. #####################################################################
  435. # set the base directory where to install everything
  436. ifndef BASEINSTALLDIR
  437. ifdef UNIXINSTALLDIR
  438. BASEINSTALLDIR=$(PREFIXINSTALLDIR)/lib/fpc/$(FPC_VERSION)
  439. else
  440. BASEINSTALLDIR=$(PREFIXINSTALLDIR)
  441. endif
  442. endif
  443. # set the directory where to install the binaries
  444. ifndef BININSTALLDIR
  445. ifdef UNIXINSTALLDIR
  446. BININSTALLDIR=$(PREFIXINSTALLDIR)/bin
  447. else
  448. BININSTALLDIR=$(BASEINSTALLDIR)/bin/$(OS_TARGET)
  449. endif
  450. endif
  451. # set the directory where to install the units.
  452. ifndef UNITINSTALLDIR
  453. UNITINSTALLDIR=$(BASEINSTALLDIR)/units/$(OS_TARGET)
  454. ifdef UNITSUBDIR
  455. UNITINSTALLDIR:=$(UNITINSTALLDIR)/$(UNITSUBDIR)
  456. endif
  457. endif
  458. # Where to install shared libraries
  459. ifndef LIBINSTALLDIR
  460. ifdef UNIXINSTALLDIR
  461. LIBINSTALLDIR=$(PREFIXINSTALLDIR)/lib
  462. else
  463. LIBINSTALLDIR=$(UNITINSTALLDIR)
  464. endif
  465. endif
  466. # Where the source files will be stored
  467. ifndef SOURCEINSTALLDIR
  468. ifdef UNIXINSTALLDIR
  469. SOURCEINSTALLDIR=$(PREFIXINSTALLDIR)/src/fpc-$(FPC_VERSION)
  470. else
  471. SOURCEINSTALLDIR=$(BASEINSTALLDIR)/source
  472. endif
  473. ifdef SOURCESUBDIR
  474. SOURCEINSTALLDIR:=$(SOURCEINSTALLDIR)/$(SOURCESUBDIR)
  475. endif
  476. endif
  477. # Where the doc files will be stored
  478. ifndef DOCINSTALLDIR
  479. ifdef UNIXINSTALLDIR
  480. DOCINSTALLDIR=$(PREFIXINSTALLDIR)/doc/fpc-$(FPC_VERSION)
  481. else
  482. DOCINSTALLDIR=$(BASEINSTALLDIR)/doc
  483. endif
  484. endif
  485. # Where to install the examples, under linux we use the doc dir
  486. # because the copytree command will create a subdir itself
  487. ifndef EXAMPLEINSTALLDIR
  488. ifdef UNIXINSTALLDIR
  489. EXAMPLEINSTALLDIR=$(DOCINSTALLDIR)/examples
  490. else
  491. EXAMPLEINSTALLDIR=$(BASEINSTALLDIR)/examples
  492. endif
  493. ifdef EXAMPLESUBDIR
  494. EXAMPLEINSTALLDIR:=$(EXAMPLEINSTALLDIR)/$(EXAMPLESUBDIR)
  495. endif
  496. endif
  497. # Where the some extra (data)files will be stored
  498. ifndef DATAINSTALLDIR
  499. DATAINSTALLDIR=$(BASEINSTALLDIR)
  500. endif
  501. #####################################################################
  502. # Redirection
  503. #####################################################################
  504. ifndef REDIRFILE
  505. REDIRFILE=log
  506. endif
  507. ifdef REDIR
  508. ifndef inUnix
  509. override FPC=redir -eo $(FPC)
  510. endif
  511. # set the verbosity to max
  512. override FPCOPT+=-va
  513. override REDIR:= >> $(REDIRFILE)
  514. endif
  515. #####################################################################
  516. # Compiler Command Line
  517. #####################################################################
  518. # Load commandline OPTDEF and add FPC_CPU define
  519. override FPCOPTDEF:=-d$(CPU_TARGET)
  520. # Load commandline OPT and add target and unit dir to be sure
  521. ifneq ($(OS_TARGET),$(OS_SOURCE))
  522. override FPCOPT+=-T$(OS_TARGET)
  523. endif
  524. # User dirs should be first, so they are looked at first
  525. ifdef UNITDIR
  526. override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
  527. endif
  528. ifdef LIBDIR
  529. override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
  530. endif
  531. ifdef OBJDIR
  532. override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
  533. endif
  534. ifdef INCDIR
  535. override FPCOPT+=$(addprefix -Fi,$(INCDIR))
  536. endif
  537. # Smartlinking
  538. ifdef LINKSMART
  539. override FPCOPT+=-XX
  540. endif
  541. # Smartlinking creation
  542. ifdef CREATESMART
  543. override FPCOPT+=-CX
  544. endif
  545. # Debug
  546. ifdef DEBUG
  547. override FPCOPT+=-gl -dDEBUG
  548. endif
  549. # Release mode (strip, optimize and don't load ppc386.cfg)
  550. # 0.99.12b has a bug in the optimizer so don't use it by default
  551. ifdef RELEASE
  552. ifeq ($(FPC_VERSION),0.99.12)
  553. override FPCOPT+=-Xs -OGp3 -n
  554. else
  555. override FPCOPT+=-Xs -OG2p3 -n
  556. endif
  557. endif
  558. # Strip
  559. ifdef STRIP
  560. override FPCOPT+=-Xs
  561. endif
  562. # Optimizer
  563. ifdef OPTIMIZE
  564. override FPCOPT+=-OG2p3
  565. endif
  566. # Verbose settings (warning,note,info)
  567. ifdef VERBOSE
  568. override FPCOPT+=-vwni
  569. endif
  570. ifdef UNITSDIR
  571. override FPCOPT+=-Fu$(UNITSDIR)
  572. endif
  573. # Target dirs and the prefix to use for clean/install
  574. ifdef TARGETDIR
  575. override FPCOPT+=-FE$(TARGETDIR)
  576. ifeq ($(TARGETDIR),.)
  577. override TARGETDIRPREFIX=
  578. else
  579. override TARGETDIRPREFIX=$(TARGETDIR)/
  580. endif
  581. endif
  582. ifdef UNITTARGETDIR
  583. override FPCOPT+=-FU$(UNITTARGETDIR)
  584. ifeq ($(UNITTARGETDIR),.)
  585. override UNITTARGETDIRPREFIX=
  586. else
  587. override UNITTARGETDIRPREFIX=$(TARGETDIR)/
  588. endif
  589. else
  590. ifdef TARGETDIR
  591. override UNITTARGETDIR=$(TARGETDIR)
  592. override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
  593. endif
  594. endif
  595. # Add commandline options last so they can override
  596. ifdef OPT
  597. override FPCOPT+=$(OPT)
  598. endif
  599. # Add defines from FPCOPTDEF to FPCOPT
  600. ifdef FPCOPTDEF
  601. override FPCOPT+=$(FPCOPTDEF)
  602. endif
  603. # Error file ?
  604. ifdef ERRORFILE
  605. override FPCOPT+=-Fr$(ERRORFILE)
  606. endif
  607. # Was a config file specified ?
  608. ifdef CFGFILE
  609. override FPCOPT+=@$(CFGFILE)
  610. endif
  611. # For win32 the options are passed using the environment FPCEXTCMD
  612. ifeq ($(OS_SOURCE),win32)
  613. override FPCEXTCMD:=$(FPCOPT)
  614. override FPCOPT:=!FPCEXTCMD
  615. export FPCEXTCMD
  616. endif
  617. # Compiler commandline
  618. override COMPILER:=$(FPC) $(FPCOPT)
  619. # also call ppas if with command option -s
  620. # but only if the OS_SOURCE and OS_TARGE are equal
  621. ifeq (,$(findstring -s ,$(COMPILER)))
  622. EXECPPAS=
  623. else
  624. ifeq ($(OS_SOURCE),$(OS_TARGET))
  625. EXECPPAS:=@$(PPAS)
  626. endif
  627. endif
  628. #####################################################################
  629. # Standard rules
  630. #####################################################################
  631. all: fpc_all $(addsuffix _all,$(DIROBJECTS))
  632. debug: fpc_debug $(addsuffix _debug,$(DIROBJECTS))
  633. examples: fpc_examples
  634. test: fpc_test
  635. smart: fpc_smart $(addsuffix _smart,$(DIROBJECTS))
  636. shared: fpc_shared $(addsuffix _shared,$(DIROBJECTS))
  637. showinstall: fpc_showinstall $(addsuffix _showinstall,$(DIROBJECTS))
  638. install: fpc_install $(addsuffix _install,$(DIROBJECTS))
  639. sourceinstall: fpc_sourceinstall
  640. exampleinstall: fpc_exampleinstall
  641. zipinstall: fpc_zipinstall
  642. zipsourceinstall: fpc_zipsourceinstall
  643. zipexampleinstall: fpc_zipexampleinstall
  644. clean: fpc_clean $(addsuffix _clean,$(DIROBJECTS)) $(addsuffix _clean,$(EXAMPLEDIROBJECTS))
  645. distclean: fpc_distclean $(addsuffix _distclean,$(DIROBJECTS))
  646. cleanall: fpc_cleanall $(addsuffix _cleanall,$(DIROBJECTS))
  647. require: $(addsuffix _require,$(DIROBJECTS))
  648. info: fpc_info
  649. .PHONY: all debug examples test smart shared showinstall install sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall clean distclean cleanall require info
  650. #####################################################################
  651. # Examples
  652. #####################################################################
  653. .PHONY: fpc_examples fpc_test
  654. ifdef EXAMPLEOBJECTS
  655. override EXAMPLESOURCEFILES:=$(addsuffix $(PASEXT),$(EXAMPLEOBJECTS))
  656. override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(EXAMPLEOBJECTS))
  657. override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(EXAMPLEOBJECTS)) $(addprefix $(LIBPREFIX),$(addsuffix $(STATICLIBEXT),$(EXAMPLEOBJECTS)))
  658. override CLEANEXEFILES+=$(EXAMPLEFILES) $(EXAMPLEOFILES)
  659. endif
  660. fpc_examples: all $(EXAMPLEFILES) $(addsuffix _all,$(EXAMPLEDIROBJECTS))
  661. fpc_test: examples
  662. #####################################################################
  663. # General compile rules
  664. #####################################################################
  665. .PHONY: fpc_packages fpc_all fpc_debug
  666. $(FPCMADE): $(ALLTARGET)
  667. @$(ECHO) Compiled > $(FPCMADE)
  668. fpc_packages: $(COMPILEPACKAGES)
  669. fpc_all: fpc_packages $(FPCMADE)
  670. fpc_debug:
  671. $(MAKE) all DEBUG=1
  672. # Search paths for .ppu if targetdir is set
  673. ifdef UNITTARGETDIR
  674. vpath %$(PPUEXT) $(UNITTARGETDIR)
  675. endif
  676. # General compile rules, available for both possible PASEXT
  677. .SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp
  678. %$(PPUEXT): %.pp
  679. $(COMPILER) $< $(REDIR)
  680. $(EXECPPAS)
  681. %$(PPUEXT): %.pas
  682. $(COMPILER) $< $(REDIR)
  683. $(EXECPPAS)
  684. %$(EXEEXT): %.pp
  685. $(COMPILER) $< $(REDIR)
  686. $(EXECPPAS)
  687. %$(EXEEXT): %.pas
  688. $(COMPILER) $< $(REDIR)
  689. $(EXECPPAS)
  690. #####################################################################
  691. # Library
  692. #####################################################################
  693. .PHONY: fpc_smart fpc_shared
  694. ifdef LIBVERSION
  695. LIBFULLNAME=$(LIBNAME).$(LIBVERSION)
  696. else
  697. LIBFULLNAME=$(LIBNAME)
  698. endif
  699. # Default sharedlib units are all unit objects
  700. ifndef SHAREDLIBUNITOBJECTS
  701. SHAREDLIBUNITOBJECTS:=$(UNITOBJECTS)
  702. endif
  703. fpc_smart:
  704. $(MAKE) all LINKSMART=1 CREATESMART=1
  705. fpc_shared: all
  706. ifdef HASSHAREDLIB
  707. ifndef LIBNAME
  708. @$(ECHO) "LIBNAME not set"
  709. else
  710. $(PPUMOVE) $(SHAREDLIBUNITOBJECTS) -o$(LIBFULLNAME)
  711. endif
  712. else
  713. @$(ECHO) "Shared Libraries not supported"
  714. endif
  715. #####################################################################
  716. # Install rules
  717. #####################################################################
  718. .PHONY: fpc_showinstall fpc_install
  719. ifdef EXTRAINSTALLUNITS
  720. override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRAINSTALLUNITS))
  721. endif
  722. ifdef INSTALLPPUFILES
  723. override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILES))
  724. ifdef PPUFILES
  725. INSTALLPPULINKFILES:=$(shell $(PPUFILES) -S -O $(INSTALLPPUFILES))
  726. else
  727. INSTALLPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))))
  728. endif
  729. override INSTALLPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILES))
  730. endif
  731. ifdef INSTALLEXEFILES
  732. override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(INSTALLEXEFILES))
  733. endif
  734. fpc_showinstall: $(SHOWINSTALLTARGET)
  735. ifdef INSTALLEXEFILES
  736. @$(ECHO) -e $(addprefix "\n"$(BININSTALLDIR)/,$(INSTALLEXEFILES))
  737. endif
  738. ifdef INSTALLPPUFILES
  739. @$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPUFILES))
  740. ifneq ($(INSTALLPPULINKFILES),)
  741. @$(ECHO) -e $(addprefix "\n"$(UNITINSTALLDIR)/,$(INSTALLPPULINKFILES))
  742. endif
  743. ifneq ($(wildcard $(LIBFULLNAME)),)
  744. @$(ECHO) $(LIBINSTALLDIR)/$(LIBFULLNAME)
  745. ifdef HASSHAREDLIB
  746. @$(ECHO) $(LIBINSTALLDIR)/$(LIBNAME)
  747. endif
  748. endif
  749. endif
  750. ifdef EXTRAINSTALLFILES
  751. @$(ECHO) -e $(addprefix "\n"$(DATAINSTALLDIR)/,$(EXTRAINSTALLFILES))
  752. endif
  753. fpc_install: $(INSTALLTARGET)
  754. # Create UnitInstallFiles
  755. ifdef INSTALLEXEFILES
  756. $(MKDIR) $(BININSTALLDIR)
  757. # Compress the exes if upx is defined
  758. ifdef UPXPROG
  759. -$(UPXPROG) $(INSTALLEXEFILES)
  760. endif
  761. $(INSTALLEXE) $(INSTALLEXEFILES) $(BININSTALLDIR)
  762. endif
  763. ifdef INSTALLPPUFILES
  764. $(MKDIR) $(UNITINSTALLDIR)
  765. $(INSTALL) $(INSTALLPPUFILES) $(UNITINSTALLDIR)
  766. ifneq ($(INSTALLPPULINKFILES),)
  767. $(INSTALL) $(INSTALLPPULINKFILES) $(UNITINSTALLDIR)
  768. endif
  769. ifneq ($(wildcard $(LIBFULLNAME)),)
  770. $(MKDIR) $(LIBINSTALLDIR)
  771. $(INSTALL) $(LIBFULLNAME) $(LIBINSTALLDIR)
  772. ifdef inUnix
  773. ln -sf $(LIBFULLNAME) $(LIBINSTALLDIR)/$(LIBNAME)
  774. endif
  775. endif
  776. endif
  777. ifdef EXTRAINSTALLFILES
  778. $(MKDIR) $(DATAINSTALLDIR)
  779. $(INSTALL) $(EXTRAINSTALLFILES) $(DATAINSTALLDIR)
  780. endif
  781. #####################################################################
  782. # SourceInstall rules
  783. #####################################################################
  784. .PHONY: fpc_sourceinstall
  785. ifndef SOURCETOPDIR
  786. SOURCETOPDIR=$(BASEDIR)
  787. endif
  788. fpc_sourceinstall: clean
  789. $(MKDIR) $(SOURCEINSTALLDIR)
  790. $(COPYTREE) $(SOURCETOPDIR) $(SOURCEINSTALLDIR)
  791. #####################################################################
  792. # exampleinstall rules
  793. #####################################################################
  794. .PHONY: fpc_exampleinstall
  795. fpc_exampleinstall: $(addsuffix _clean,$(EXAMPLEDIROBJECTS))
  796. ifdef EXAMPLESOURCEFILES
  797. $(MKDIR) $(EXAMPLEINSTALLDIR)
  798. $(COPY) $(EXAMPLESOURCEFILES) $(EXAMPLEINSTALLDIR)
  799. endif
  800. ifdef EXAMPLEDIROBJECTS
  801. ifndef EXAMPLESOURCEFILES
  802. $(MKDIR) $(EXAMPLEINSTALLDIR)
  803. endif
  804. $(COPYTREE) $(addsuffix /*,$(EXAMPLEDIROBJECTS)) $(EXAMPLEINSTALLDIR)
  805. endif
  806. #####################################################################
  807. # Zip
  808. #####################################################################
  809. .PHONY: fpc_zipinstall
  810. # Create suffix to add
  811. ifndef PACKAGESUFFIX
  812. PACKAGESUFFIX=$(OS_TARGET)
  813. ifeq ($(OS_TARGET),go32v2)
  814. PACKAGESUFFIX=go32
  815. endif
  816. ifeq ($(OS_TARGET),win32)
  817. PACKAGESUFFIX=w32
  818. endif
  819. ifeq ($(OS_TARGET),os2)
  820. PACKAGESUFFIX=emx
  821. endif
  822. endif
  823. # Temporary path to pack a file
  824. ifndef PACKDIR
  825. ifndef inUnix
  826. PACKDIR=$(BASEDIR)/pack_tmp
  827. else
  828. PACKDIR=/tmp/fpc-pack
  829. endif
  830. endif
  831. # Maybe create default zipname from packagename
  832. ifndef ZIPNAME
  833. ifdef PACKAGENAME
  834. ZIPNAME=$(PACKAGEPREFIX)$(PACKAGENAME)$(PACKAGESUFFIX)
  835. endif
  836. endif
  837. # Use tar by default under linux
  838. ifndef USEZIP
  839. ifdef inUnix
  840. USETAR=1
  841. endif
  842. endif
  843. fpc_zipinstall:
  844. ifndef ZIPNAME
  845. @$(ECHO) "Please specify ZIPNAME!"
  846. @exit 1
  847. else
  848. $(MAKE) $(ZIPTARGET) PREFIXINSTALLDIR=$(PACKDIR)
  849. ifdef USETAR
  850. $(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT)
  851. cd $(PACKDIR) ; $(TARPROG) cf$(TAROPT) $(DESTZIPDIR)/$(ZIPNAME)$(TAREXT) * ; cd $(BASEDIR)
  852. else
  853. $(DEL) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT)
  854. cd $(PACKDIR) ; $(ZIPPROG) -Dr $(ZIPOPT) $(DESTZIPDIR)/$(ZIPNAME)$(ZIPEXT) * ; cd $(BASEDIR)
  855. endif
  856. $(DELTREE) $(PACKDIR)
  857. endif
  858. .PHONY: fpc_zipsourceinstall
  859. fpc_zipsourceinstall:
  860. $(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall PACKAGESUFFIX=src
  861. .PHONY: fpc_zipexampleinstall
  862. fpc_zipexampleinstall:
  863. $(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall PACKAGESUFFIX=exm
  864. #####################################################################
  865. # Clean rules
  866. #####################################################################
  867. .PHONY: fpc_clean fpc_cleanall fpc_distclean
  868. ifdef EXEFILES
  869. override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
  870. endif
  871. ifdef EXTRACLEANUNITS
  872. override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(EXTRACLEANUNITS))
  873. endif
  874. ifdef CLEANPPUFILES
  875. override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
  876. # Get the .o and .a files created for the units
  877. ifdef PPUFILES
  878. CLEANPPULINKFILES:=$(shell $(PPUFILES) $(CLEANPPUFILES))
  879. else
  880. CLEANPPULINKFILES:=$(wildcard $(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))))
  881. endif
  882. override CLEANPPULINKFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))
  883. endif
  884. fpc_clean: $(CLEANTARGET)
  885. ifdef CLEANEXEFILES
  886. -$(DEL) $(CLEANEXEFILES)
  887. endif
  888. ifdef CLEANPPUFILES
  889. -$(DEL) $(CLEANPPUFILES)
  890. endif
  891. ifneq ($(CLEANPPULINKFILES),)
  892. -$(DEL) $(CLEANPPULINKFILES)
  893. endif
  894. ifdef CLEANRSTFILES
  895. -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
  896. endif
  897. ifdef EXTRACLEANFILES
  898. -$(DEL) $(EXTRACLEANFILES)
  899. endif
  900. ifdef LIBNAME
  901. -$(DEL) $(LIBNAME) $(LIBFULLNAME)
  902. endif
  903. -$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
  904. fpc_distclean: fpc_clean
  905. # Also run clean first if targetdir is set. Unittargetdir is always
  906. # set if targetdir or unittargetdir is specified
  907. ifdef UNITTARGETDIR
  908. TARGETDIRCLEAN=fpc_clean
  909. endif
  910. fpc_cleanall: $(CLEANTARGET) $(TARGETDIRCLEAN)
  911. ifdef CLEANEXEFILES
  912. -$(DEL) $(CLEANEXEFILES)
  913. endif
  914. -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
  915. -$(DELTREE) *$(SMARTEXT)
  916. -$(DEL) $(FPCMADE) $(PPAS) link.res $(FPCEXTFILE) $(REDIRFILE)
  917. #####################################################################
  918. # Info rules
  919. #####################################################################
  920. .PHONY: fpc_info fpc_cfginfo fpc_objectinfo fpc_toolsinfo fpc_installinfo \
  921. fpc_dirinfo
  922. fpc_info: $(INFOTARGET)
  923. fpc_infocfg:
  924. @$(ECHO)
  925. @$(ECHO) == Configuration info ==
  926. @$(ECHO)
  927. @$(ECHO) FPC....... $(FPC)
  928. @$(ECHO) Version... $(FPC_VERSION)
  929. @$(ECHO) CPU....... $(CPU_TARGET)
  930. @$(ECHO) Source.... $(OS_SOURCE)
  931. @$(ECHO) Target.... $(OS_TARGET)
  932. @$(ECHO)
  933. fpc_infoobjects:
  934. @$(ECHO)
  935. @$(ECHO) == Object info ==
  936. @$(ECHO)
  937. @$(ECHO) LoaderObjects..... $(LOADEROBJECTS)
  938. @$(ECHO) UnitObjects....... $(UNITOBJECTS)
  939. @$(ECHO) ExeObjects........ $(EXEOBJECTS)
  940. @$(ECHO)
  941. @$(ECHO) ExtraCleanUnits... $(EXTRACLEANUNITS)
  942. @$(ECHO) ExtraCleanFiles... $(EXTRACLEANFILES)
  943. @$(ECHO)
  944. @$(ECHO) ExtraInstallUnits. $(EXTRAINSTALLUNITS)
  945. @$(ECHO) ExtraInstallFiles. $(EXTRAINSTALLFILES)
  946. @$(ECHO)
  947. fpc_infoinstall:
  948. @$(ECHO)
  949. @$(ECHO) == Install info ==
  950. @$(ECHO)
  951. ifdef DATE
  952. @$(ECHO) DateStr.............. $(DATESTR)
  953. endif
  954. ifdef PACKAGEPREFIX
  955. @$(ECHO) PackagePrefix........ $(PACKAGEPREFIX)
  956. endif
  957. ifdef PACKAGENAME
  958. @$(ECHO) PackageName.......... $(PACKAGENAME)
  959. endif
  960. @$(ECHO) PackageSuffix........ $(PACKAGESUFFIX)
  961. @$(ECHO)
  962. @$(ECHO) BaseInstallDir....... $(BASEINSTALLDIR)
  963. @$(ECHO) BinInstallDir........ $(BININSTALLDIR)
  964. @$(ECHO) LibInstallDir........ $(LIBINSTALLDIR)
  965. @$(ECHO) UnitInstallDir....... $(UNITINSTALLDIR)
  966. @$(ECHO) SourceInstallDir..... $(SOURCEINSTALLDIR)
  967. @$(ECHO) DocInstallDir........ $(DOCINSTALLDIR)
  968. @$(ECHO) DataInstallDir....... $(DATAINSTALLDIR)
  969. @$(ECHO)
  970. @$(ECHO) DestZipDir........... $(DESTZIPDIR)
  971. @$(ECHO) ZipName.............. $(ZIPNAME)
  972. @$(ECHO)
  973. #####################################################################
  974. # Directories
  975. #####################################################################
  976. ifeq ($(OS_TARGET),linux)
  977. OBJECTDIRLINUX=1
  978. OBJECTDIRGTKGL=1
  979. endif
  980. ifeq ($(OS_TARGET),win32)
  981. OBJECTDIRWIN32=1
  982. OBJECTDIRGTKGL=1
  983. endif
  984. # Dir linux
  985. ifdef OBJECTDIRLINUX
  986. .PHONY: linux_all linux_debug linux_examples linux_test linux_smart linux_shared linux_showinstall linux_install linux_sourceinstall linux_exampleinstall linux_zipinstall linux_zipsourceinstall linux_zipexampleinstall linux_clean linux_distclean linux_cleanall linux_require linux_info
  987. linux_all:
  988. $(MAKE) -C linux all
  989. linux_debug:
  990. $(MAKE) -C linux debug
  991. linux_examples:
  992. $(MAKE) -C linux examples
  993. linux_test:
  994. $(MAKE) -C linux test
  995. linux_smart:
  996. $(MAKE) -C linux smart
  997. linux_shared:
  998. $(MAKE) -C linux shared
  999. linux_showinstall:
  1000. $(MAKE) -C linux showinstall
  1001. linux_install:
  1002. $(MAKE) -C linux install
  1003. linux_sourceinstall:
  1004. $(MAKE) -C linux sourceinstall
  1005. linux_exampleinstall:
  1006. $(MAKE) -C linux exampleinstall
  1007. linux_zipinstall:
  1008. $(MAKE) -C linux zipinstall
  1009. linux_zipsourceinstall:
  1010. $(MAKE) -C linux zipsourceinstall
  1011. linux_zipexampleinstall:
  1012. $(MAKE) -C linux zipexampleinstall
  1013. linux_clean:
  1014. $(MAKE) -C linux clean
  1015. linux_distclean:
  1016. $(MAKE) -C linux distclean
  1017. linux_cleanall:
  1018. $(MAKE) -C linux cleanall
  1019. linux_require:
  1020. $(MAKE) -C linux require
  1021. linux_info:
  1022. $(MAKE) -C linux info
  1023. endif
  1024. # Dir gtkgl
  1025. ifdef OBJECTDIRGTKGL
  1026. .PHONY: gtkgl_all gtkgl_debug gtkgl_examples gtkgl_test gtkgl_smart gtkgl_shared gtkgl_showinstall gtkgl_install gtkgl_sourceinstall gtkgl_exampleinstall gtkgl_zipinstall gtkgl_zipsourceinstall gtkgl_zipexampleinstall gtkgl_clean gtkgl_distclean gtkgl_cleanall gtkgl_require gtkgl_info
  1027. gtkgl_all:
  1028. $(MAKE) -C gtkgl all
  1029. gtkgl_debug:
  1030. $(MAKE) -C gtkgl debug
  1031. gtkgl_examples:
  1032. $(MAKE) -C gtkgl examples
  1033. gtkgl_test:
  1034. $(MAKE) -C gtkgl test
  1035. gtkgl_smart:
  1036. $(MAKE) -C gtkgl smart
  1037. gtkgl_shared:
  1038. $(MAKE) -C gtkgl shared
  1039. gtkgl_showinstall:
  1040. $(MAKE) -C gtkgl showinstall
  1041. gtkgl_install:
  1042. $(MAKE) -C gtkgl install
  1043. gtkgl_sourceinstall:
  1044. $(MAKE) -C gtkgl sourceinstall
  1045. gtkgl_exampleinstall:
  1046. $(MAKE) -C gtkgl exampleinstall
  1047. gtkgl_zipinstall:
  1048. $(MAKE) -C gtkgl zipinstall
  1049. gtkgl_zipsourceinstall:
  1050. $(MAKE) -C gtkgl zipsourceinstall
  1051. gtkgl_zipexampleinstall:
  1052. $(MAKE) -C gtkgl zipexampleinstall
  1053. gtkgl_clean:
  1054. $(MAKE) -C gtkgl clean
  1055. gtkgl_distclean:
  1056. $(MAKE) -C gtkgl distclean
  1057. gtkgl_cleanall:
  1058. $(MAKE) -C gtkgl cleanall
  1059. gtkgl_require:
  1060. $(MAKE) -C gtkgl require
  1061. gtkgl_info:
  1062. $(MAKE) -C gtkgl info
  1063. endif
  1064. # Dir win32
  1065. ifdef OBJECTDIRWIN32
  1066. .PHONY: win32_all win32_debug win32_examples win32_test win32_smart win32_shared win32_showinstall win32_install win32_sourceinstall win32_exampleinstall win32_zipinstall win32_zipsourceinstall win32_zipexampleinstall win32_clean win32_distclean win32_cleanall win32_require win32_info
  1067. win32_all:
  1068. $(MAKE) -C win32 all
  1069. win32_debug:
  1070. $(MAKE) -C win32 debug
  1071. win32_examples:
  1072. $(MAKE) -C win32 examples
  1073. win32_test:
  1074. $(MAKE) -C win32 test
  1075. win32_smart:
  1076. $(MAKE) -C win32 smart
  1077. win32_shared:
  1078. $(MAKE) -C win32 shared
  1079. win32_showinstall:
  1080. $(MAKE) -C win32 showinstall
  1081. win32_install:
  1082. $(MAKE) -C win32 install
  1083. win32_sourceinstall:
  1084. $(MAKE) -C win32 sourceinstall
  1085. win32_exampleinstall:
  1086. $(MAKE) -C win32 exampleinstall
  1087. win32_zipinstall:
  1088. $(MAKE) -C win32 zipinstall
  1089. win32_zipsourceinstall:
  1090. $(MAKE) -C win32 zipsourceinstall
  1091. win32_zipexampleinstall:
  1092. $(MAKE) -C win32 zipexampleinstall
  1093. win32_clean:
  1094. $(MAKE) -C win32 clean
  1095. win32_distclean:
  1096. $(MAKE) -C win32 distclean
  1097. win32_cleanall:
  1098. $(MAKE) -C win32 cleanall
  1099. win32_require:
  1100. $(MAKE) -C win32 require
  1101. win32_info:
  1102. $(MAKE) -C win32 info
  1103. endif
  1104. EXAMPLEDIREXAMPLES=1
  1105. # Dir examples
  1106. ifdef EXAMPLEDIREXAMPLES
  1107. .PHONY: examples_all examples_debug examples_examples examples_test examples_smart examples_shared examples_showinstall examples_install examples_sourceinstall examples_exampleinstall examples_zipinstall examples_zipsourceinstall examples_zipexampleinstall examples_clean examples_distclean examples_cleanall examples_require examples_info
  1108. examples_all:
  1109. $(MAKE) -C examples all
  1110. examples_debug:
  1111. $(MAKE) -C examples debug
  1112. examples_examples:
  1113. $(MAKE) -C examples examples
  1114. examples_test:
  1115. $(MAKE) -C examples test
  1116. examples_smart:
  1117. $(MAKE) -C examples smart
  1118. examples_shared:
  1119. $(MAKE) -C examples shared
  1120. examples_showinstall:
  1121. $(MAKE) -C examples showinstall
  1122. examples_install:
  1123. $(MAKE) -C examples install
  1124. examples_sourceinstall:
  1125. $(MAKE) -C examples sourceinstall
  1126. examples_exampleinstall:
  1127. $(MAKE) -C examples exampleinstall
  1128. examples_zipinstall:
  1129. $(MAKE) -C examples zipinstall
  1130. examples_zipsourceinstall:
  1131. $(MAKE) -C examples zipsourceinstall
  1132. examples_zipexampleinstall:
  1133. $(MAKE) -C examples zipexampleinstall
  1134. examples_clean:
  1135. $(MAKE) -C examples clean
  1136. examples_distclean:
  1137. $(MAKE) -C examples distclean
  1138. examples_cleanall:
  1139. $(MAKE) -C examples cleanall
  1140. examples_require:
  1141. $(MAKE) -C examples require
  1142. examples_info:
  1143. $(MAKE) -C examples info
  1144. endif
  1145. #####################################################################
  1146. # Local Makefile
  1147. #####################################################################
  1148. ifneq ($(wildcard fpcmake.loc),)
  1149. include fpcmake.loc
  1150. endif