pandora_vc_build.m4 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. dnl Copyright (C) 2009 Sun Microsystems
  2. dnl This file is free software; Sun Microsystems
  3. dnl gives unlimited permission to copy and/or distribute it,
  4. dnl with or without modifications, as long as this notice is preserved.
  5. AC_DEFUN([PANDORA_BUILDING_FROM_VC],[
  6. ac_cv_building_from_vc=no
  7. AS_IF([test -d "${srcdir}/.bzr"],[
  8. ac_cv_building_from_bzr=yes
  9. ac_cv_building_from_vc=yes
  10. ],[
  11. ac_cv_building_from_bzr=no
  12. ])
  13. AS_IF([test -d "${srcdir}/.svn"],[
  14. ac_cv_building_from_svn=yes
  15. ac_cv_building_from_vc=yes
  16. ],[
  17. ac_cv_building_from_svn=no
  18. ])
  19. AS_IF([test -d "${srcdir}/.hg"],[
  20. ac_cv_building_from_hg=yes
  21. ac_cv_building_from_vc=yes
  22. ],[
  23. ac_cv_building_from_hg=no
  24. ])
  25. AS_IF([test -d "${srcdir}/.git"],[
  26. ac_cv_building_from_git=yes
  27. ac_cv_building_from_vc=yes
  28. ],[
  29. ac_cv_building_from_git=no
  30. ])
  31. ])
  32. dnl Takes one argument which is the prefix to append
  33. AC_DEFUN([PANDORA_EXPORT_BZR_INFO],[
  34. m4_ifval(m4_normalize([$1]),[
  35. m4_define([PEBI_PREFIX],[])
  36. ],[
  37. m4_define([PEBI_PREFIX],m4_toupper(m4_normalize($1))[_])
  38. ])
  39. AC_DEFINE(PEBI_PREFIX[BZR_REVID], ["BZR_REVID"], [bzr revision ID])
  40. AC_DEFINE(PEBI_PREFIX[BZR_BRANCH], ["BZR_BRANCH"], [bzr branch name])
  41. AC_DEFINE(PEBI_PREFIX[RELEASE_DATE], ["RELEASE_DATE"], [Release date based on the date of the repo checkout])
  42. AC_DEFINE(PEBI_PREFIX[RELEASE_VERSION], ["RELEASE_VERSION"], [$1 version number formatted for display])
  43. AC_DEFINE(PEBI_PREFIX[RELEASE_COMMENT], ["RELEASE_COMMENT"], [Set to trunk if the branch is the main $1 branch])
  44. AC_DEFINE(PEBI_PREFIX[RELEASE_ID], [RELEASE_ID], [$1 version number formatted for numerical comparison])
  45. ])
  46. AC_DEFUN([_PANDORA_READ_FROM_FILE],[
  47. $1=`grep $1 $2 | cut -f2 -d=`
  48. ])
  49. AC_DEFUN([PANDORA_VC_VERSION],[
  50. AC_REQUIRE([PANDORA_BUILDING_FROM_VC])
  51. PANDORA_RELEASE_DATE=`date +%Y.%m`
  52. PANDORA_RELEASE_NODOTS_DATE=`date +%Y%m`
  53. dnl Set some defaults
  54. PANDORA_VC_REVNO="0"
  55. PANDORA_VC_REVID="unknown"
  56. PANDORA_VC_BRANCH="bzr-export"
  57. AS_IF([test -f ${srcdir}/config/bzr_revinfo],[
  58. _PANDORA_READ_FROM_FILE([PANDORA_VC_REVNO],${srcdir}/config/bzr_revinfo)
  59. _PANDORA_READ_FROM_FILE([PANDORA_VC_REVID],${srcdir}/config/bzr_revinfo)
  60. _PANDORA_READ_FROM_FILE([PANDORA_VC_BRANCH],
  61. ${srcdir}/config/bzr_revinfo)
  62. _PANDORA_READ_FROM_FILE([PANDORA_RELEASE_DATE],
  63. ${srcdir}/config/bzr_revinfo)
  64. _PANDORA_READ_FROM_FILE([PANDORA_RELEASE_NODOTS_DATE],
  65. ${srcdir}/config/bzr_revinfo)
  66. _PANDORA_READ_FROM_FILE([PANDORA_RELEASE_COMMENT],
  67. ${srcdir}/config/bzr_revinfo)
  68. ])
  69. AS_IF([test "${ac_cv_building_from_bzr}" = "yes"],[
  70. dnl echo "Grabbing changelog and version information from bzr"
  71. dnl bzr log --short > ChangeLog || touch ChangeLog
  72. PANDORA_BZR_REVNO=`bzr revno`
  73. AS_IF([test "x$PANDORA_BZR_REVNO" != "${PANDORA_VC_REVNO}"],[
  74. PANDORA_VC_REVNO="${PANDORA_BZR_REVNO}"
  75. PANDORA_VC_REVID=`bzr log -r-1 --show-ids | grep revision-id | awk '{print $[]2}' | head -1`
  76. PANDORA_VC_BRANCH=`bzr nick`
  77. AS_IF([test "x${PANDORA_VC_BRANCH}" != "${PACKAGE}"],[
  78. PANDORA_RELEASE_COMMENT="${PANDORA_VC_BRANCH}"
  79. ],[
  80. PANDORA_RELEASE_COMMENT="trunk"
  81. ])
  82. ])
  83. ])
  84. AS_IF([! test -d config],[mkdir -p config])
  85. cat > "config/bzr_revinfo" <<EOF
  86. PANDORA_VC_REVNO=${PANDORA_VC_REVNO}
  87. PANDORA_VC_REVID=${PANDORA_VC_REVID}
  88. PANDORA_VC_BRANCH=${PANDORA_VC_BRANCH}
  89. PANDORA_RELEASE_DATE=${PANDORA_RELEASE_DATE}
  90. PANDORA_RELEASE_NODOTS_DATE=${PANDORA_RELEASE_NODOTS_DATE}
  91. PANDORA_RELEASE_COMMENT=${PANDORA_RELEASE_COMMENT}
  92. EOF
  93. PANDORA_RELEASE_VERSION="${PANDORA_RELEASE_DATE}.${PANDORA_VC_REVNO}"
  94. PANDORA_RELEASE_ID="${PANDORA_RELEASE_NODOTS_DATE}${PANDORA_VC_REVNO}"
  95. VERSION="${PANDORA_RELEASE_VERSION}"
  96. AC_DEFINE_UNQUOTED([PANDORA_RELEASE_VERSION],["${PANDORA_RELEASE_VERSION}"],
  97. [The real version of the software])
  98. AC_SUBST(PANDORA_VC_REVNO)
  99. AC_SUBST(PANDORA_VC_REVID)
  100. AC_SUBST(PANDORA_VC_BRANCH)
  101. AC_SUBST(PANDORA_RELEASE_DATE)
  102. AC_SUBST(PANDORA_RELEASE_NODOTS_DATE)
  103. AC_SUBST(PANDORA_RELEASE_COMMENT)
  104. AC_SUBST(PANDORA_RELEASE_VERSION)
  105. AC_SUBST(PANDORA_RELEASE_ID)
  106. ])