Makefile 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. MODULE_TOPDIR = ..
  2. include $(MODULE_TOPDIR)/include/Make/Vars.make
  3. SUBDIRS =
  4. ifeq ($(MACOSX_APP),1)
  5. SUBDIRS = app
  6. endif
  7. include $(MODULE_TOPDIR)/include/Make/Dir.make
  8. MACOSX_APP_NAME = GRASS-${GRASS_VERSION_MAJOR}.${GRASS_VERSION_MINOR}.app
  9. MACOSX_APPDIR = ${MACOSX_APP_NAME}/Contents/MacOS
  10. INST_DIR_MACOSX = ${prefix}/${MACOSX_APPDIR}
  11. MACOSX_SUPPDIR = /Library/Application Support/GRASS/${GRASS_VERSION_MAJOR}.${GRASS_VERSION_MINOR}
  12. MACOSX_BUNDLE_PREFIX = ${GRASS_HOME}/macosx/dist/${MACOSX_APPDIR}
  13. VER_MINOR_REL = `printf "%d0%d" ${GRASS_VERSION_MINOR} ${GRASS_VERSION_RELEASE}`
  14. VER_DATE = `date +"%g%m%d"`
  15. MAKE_DIR_CMD = mkdir -p -m 755
  16. LN = /bin/ln -sf
  17. LN_DIR = /bin/ln -sfh
  18. # get python version - use python in path, should be config'd python
  19. PYVER = `python -V 2>&1 | cut -d \ -f 2 | cut -d . -f 1,2`
  20. # packagemaker location, options and behaviour changed in xcode 3
  21. ifeq ($(findstring darwin9,$(ARCH)),darwin9)
  22. XCODE_VER = xcode3
  23. PACKAGEMAKER = /Developer/usr/bin/packagemaker
  24. PKG_INST_DIR = ${prefix}
  25. else
  26. XCODE_VER = xcode2
  27. PACKAGEMAKER = /Developer/Tools/packagemaker
  28. PKG_INST_DIR = ${prefix}/${MACOSX_APP_NAME}
  29. endif
  30. default: subdirs
  31. include bundle.make
  32. install-macosx:
  33. echo ${ARCH_DISTDIR}/${MACOSX_APP_NAME}
  34. @ if [ ! -d ${ARCH_DISTDIR}/${MACOSX_APP_NAME} ] ; then \
  35. echo "ERROR: GRASS.app has not been compiled. Try \"make\" in the top level source dir first."; \
  36. echo " Installation aborted, exiting Make."; \
  37. exit; \
  38. fi; \
  39. ${MAKE} real-install-macosx
  40. # Duplicated, mostly, from the top-level makefile.
  41. real-install-macosx: INST_DIR_TARGET = ${INST_DIR}
  42. real-install-macosx: PREFIX_TARGET = ${prefix}
  43. real-install-macosx: install-basic-macosx macosx-support-dir bundle-macosx
  44. -cd ${GISBASE} ; tar cBf - modbuild | (cd ${MACOSX_SUPPDIR} ; tar xBf - ) 2>/dev/null
  45. @# help file package
  46. ${LN_DIR} "${INST_DIR_TARGET}/docs/html" /Library/Documentation/Help/GRASS-${GRASS_VERSION_MAJOR}.${GRASS_VERSION_MINOR}
  47. # create a packagemaker installer package.
  48. # pretty much the same as install, but needs intermediate install location
  49. # to assemble package parts.
  50. bindist-macosx: INST_DIR_TARGET = ${MACOSX_BUNDLE_PREFIX}
  51. bindist-macosx: PREFIX_TARGET = ${GRASS_HOME}/macosx/dist
  52. bindist-macosx: install-basic-macosx bundle-macosx
  53. @# installer pkg resources
  54. ${MAKE_DIR_CMD} dist/resources
  55. -sed -e "s#@INST_DIR@#${INST_DIR}#g" -e "s#@MACOSX_SUPPDIR@#${MACOSX_SUPPDIR}#g" -e "s#@GRASS_VER@#${GRASS_VERSION_MAJOR}.${GRASS_VERSION_MINOR}#g" -e "s#@PYVER@#${PYVER}#g" pkg/resources/postflight.in > dist/resources/postflight
  56. -chmod a+rx dist/resources/postflight
  57. -sed -e "s#@GRASS_VER@#${GRASS_VERSION_MAJOR}.${GRASS_VERSION_MINOR}#g" pkg/resources/Description.plist.in > dist/Description.plist
  58. -sed -e "s#@GRASS_VERSION_MAJOR@#${GRASS_VERSION_MAJOR}#g" -e "s#@GRASS_VERSION_MINOR@#${GRASS_VERSION_MINOR}#g" -e "s#@GRASS_VERSION_RELEASE@#${GRASS_VERSION_RELEASE}#g" -e "s#@VER_MINOR_REL@#${VER_MINOR_REL}#g" -e "s#@VER_DATE@#${VER_DATE}#g" -e "s#@PKG_INST_DIR@#${PKG_INST_DIR}#g" pkg/resources/Info.plist.in > dist/Info.plist
  59. -${INSTALL_DATA} pkg/resources/License.rtf dist/resources
  60. -${INSTALL_DATA} pkg/resources/ReadMe.rtf dist/resources
  61. @#-cd ${GISBASE} ; tar cBf - modbuild | (cd ${GRASS_HOME}/macosx/dist/resources ; tar xBf - ) 2>/dev/null
  62. @# build the package
  63. ifeq ($(XCODE_VER),xcode3)
  64. ${PACKAGEMAKER} --target 10.4 --root-volume-only --id org.osgeo.grass --root dist/${MACOSX_APP_NAME} --info dist/Info.plist --out "GRASS-${GRASS_VERSION_MAJOR}.${GRASS_VERSION_MINOR}.pkg" --resources dist/resources
  65. rm -f "GRASS-${GRASS_VERSION_MAJOR}.${GRASS_VERSION_MINOR}.pkg/Contents/Resources/TokenDefinitions.plist"
  66. else
  67. ${PACKAGEMAKER} -build -ds -p "GRASS-${GRASS_VERSION_MAJOR}.${GRASS_VERSION_MINOR}.pkg" -f dist/${MACOSX_APP_NAME} -r dist/resources -i dist/Info.plist -d dist/Description.plist
  68. endif
  69. @# remove intermediate files
  70. @# -rm -rf dist 2>/dev/null
  71. install-basic-macosx:
  72. ${MAKE_DIR_CMD} ${INST_DIR_TARGET}
  73. -cd ${GISBASE} ; tar cBf - ${MACOSX_APP_NAME} | (cd ${PREFIX_TARGET} ; tar xBf - ) 2>/dev/null
  74. -cd ${GISBASE} ; tar cBf - bin | (cd ${INST_DIR_TARGET} ; tar xBf - ) 2>/dev/null
  75. -cd ${GISBASE} ; tar cBf - docs | (cd ${INST_DIR_TARGET} ; tar xBf - ) 2>/dev/null
  76. -cd ${GISBASE} ; tar cBf - driver | (cd ${INST_DIR_TARGET} ; tar xBf - ) 2>/dev/null
  77. -cd ${GISBASE} ; tar cBf - etc | (cd ${INST_DIR_TARGET} ; tar xBf - ) 2>/dev/null
  78. -cd ${GISBASE} ; tar cBf - fonts | (cd ${INST_DIR_TARGET} ; tar xBf - ) 2>/dev/null
  79. -cd ${GISBASE} ; tar cBf - man | (cd ${INST_DIR_TARGET} ; tar xBf - ) 2>/dev/null
  80. -cd ${GISBASE} ; tar cBf - scripts | (cd ${INST_DIR_TARGET} ; tar xBf - ) 2>/dev/null
  81. if [ ${LOCALE} -eq 1 ] ; then cd ${GISBASE} ; tar cBf - locale | (cd ${INST_DIR_TARGET} ; tar xBf - ) 2>/dev/null ; fi
  82. -cd ${GISBASE} ; tar cBf - include | (cd ${INST_DIR_TARGET} ; tar xBf - ) 2>/dev/null
  83. -cd ${GISBASE} ; tar cBf - lib | (cd ${INST_DIR_TARGET} ; tar xBf - ) 2>/dev/null
  84. -sed 's#'${GISBASE}'#'${INST_DIR_TARGET}'#g' ${GISBASE}/etc/monitorcap > ${INST_DIR_TARGET}/etc/monitorcap
  85. -chmod -R a+rX ${PREFIX_TARGET}/${MACOSX_APP_NAME} 2>/dev/null
  86. @#-cd ${GRASS_HOME} ; tar cBf - gem/skeleton | (cd ${INST_DIR_TARGET}/etc ; tar xBf - ) 2>/dev/null
  87. @#-${INSTALL} ${GRASS_HOME}/gem/gem6 ${INST_DIR_TARGET} 2>/dev/null
  88. -touch ${PREFIX_TARGET}/${MACOSX_APP_NAME}
  89. macosx-support-dir:
  90. ${MAKE_DIR_CMD} "${MACOSX_SUPPDIR}"
  91. ${MAKE_DIR_CMD} "${MACOSX_SUPPDIR}/Modules/bin"
  92. ${MAKE_DIR_CMD} "${MACOSX_SUPPDIR}/Modules/docs/html"
  93. ${MAKE_DIR_CMD} "${MACOSX_SUPPDIR}/Modules/etc"
  94. ${MAKE_DIR_CMD} "${MACOSX_SUPPDIR}/Modules/lib"