Makefile.fpc.fpcmake 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #
  2. # Makefile.fpc for FPCMake
  3. #
  4. [target]
  5. programs=fpcmake
  6. rsts=fpcmmain
  7. [clean]
  8. units=fpcmmain fpcmdic fpcmwr fpcmpkg
  9. [require]
  10. packages=fcl-base
  11. tools=data2inc
  12. [install]
  13. fpcpackage=y
  14. [default]
  15. fpcdir=../..
  16. [prerules]
  17. BS_UNITDIR=$(BASEDIR)/units/$(SOURCESUFFIX)
  18. # Check if revision.inc is present
  19. REVINC:=$(wildcard revision.inc)
  20. ifneq ($(REVINC),)
  21. # File revision.inc is present
  22. # Use it to compile fpcmmain.pp unit
  23. override FPCOPT+=-dREVINC
  24. endif
  25. REVINC_FILES=$(wildcard fpcm*.pp fpcmake.ini Makefile.fpc)
  26. SVN:=$(firstword $(wildcard $(addsuffix /svn$(SRCEXEEXT),$(SEARCHPATH))))
  27. SVNLOG:=svninfo.log
  28. # This one can be overriden on command line for debugging purposes
  29. GETREVEXE:=./getrev$(EXEEXT)
  30. [rules]
  31. .NOTPARALLEL:
  32. ifneq ($(DATA2INC),)
  33. fpcmake.inc: fpcmake.ini
  34. $(DATA2INC) -b -s fpcmake.ini fpcmake.inc fpcmakeini
  35. endif
  36. ifdef inUnix
  37. EnableRevIncRule=1
  38. endif
  39. ifdef inCygWin
  40. EnableRevIncRule=1
  41. endif
  42. ifneq (,$(SVN))
  43. # revision.inc rule
  44. revision.inc : $(REVINC_FILES)
  45. -$(SVN) info $(REVINC_FILES) > $(SVNLOG)
  46. $(MAKE) getrev$(EXEEXT)
  47. $(GETREVEXE) $(SVNLOG)
  48. -$(DEL) getrev$(EXEEXT)
  49. endif
  50. .PHONY : revision
  51. # Use -B option to force
  52. # regeneration of revision.inc
  53. revision :
  54. $(MAKE) -B revision.inc
  55. fpcmwr$(PPUEXT): fpcmake.inc
  56. fpcmmain$(PPUEXT): $(REVINC)
  57. fpcmake$(EXEEXT): $(wildcard fpcm*.pp) fpcmake.inc $(REVINC)
  58. fpcmake$(EXEEXT): fpcmwr$(PPUEXT) fpcmmain$(PPUEXT)
  59. # Cygwin doesn't like c:/path/
  60. ifndef inCygWin
  61. $(BS_UNITDIR):
  62. $(MKDIRTREE) $(BS_UNITDIR)
  63. bootstrap: $(BS_UNITDIR) fpcmake.inc
  64. $(FPCFPMAKE) fpcmake.pp $(FPMAKE_SKIP_CONFIG) -Fu$(UNITDIR_FPMAKE_RTL) -FU$(BS_UNITDIR) $(OPT)
  65. endif