X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=m4%2Fpandora_vc_build.m4;h=a1fb60b3dd1d2fc077af8c58ca82673f219deea9;hb=000909672d7d6337c2115a9f263d22e39a28917c;hp=ada6ccf6c693f7e66419ac403356745b7ffad330;hpb=17e0b84e30fe82f6a2a995484a502179c73906ea;p=m6w6%2Flibmemcached diff --git a/m4/pandora_vc_build.m4 b/m4/pandora_vc_build.m4 index ada6ccf6..a1fb60b3 100644 --- a/m4/pandora_vc_build.m4 +++ b/m4/pandora_vc_build.m4 @@ -1,32 +1,168 @@ -dnl Copyright (C) 2009 Sun Microsystems -dnl This file is free software; Sun Microsystems +dnl Copyright (C) 2009 Sun Microsystems, Inc. +dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. +AC_DEFUN([PANDORA_TEST_VC_DIR],[ + pandora_building_from_vc=no + + if test -d ".bzr" ; then + pandora_building_from_bzr=yes + pandora_building_from_vc=yes + else + pandora_building_from_bzr=no + fi + + if test -d ".svn" ; then + pandora_building_from_svn=yes + pandora_building_from_vc=yes + else + pandora_building_from_svn=no + fi + + if test -d ".hg" ; then + pandora_building_from_hg=yes + pandora_building_from_vc=yes + else + pandora_building_from_hg=no + fi + + if test -d ".git" ; then + pandora_building_from_git=yes + pandora_building_from_vc=yes + else + pandora_building_from_git=no + fi +]) + AC_DEFUN([PANDORA_BUILDING_FROM_VC],[ + m4_syscmd(PANDORA_TEST_VC_DIR + m4_if(PCT_NO_VC_CHANGELOG,yes,[ + vc_changelog=no + ],[ + vc_changelog=yes + ]) + + [ - ac_cv_building_from_vc=no + PANDORA_RELEASE_DATE=`date +%Y.%m` + PANDORA_RELEASE_NODOTS_DATE=`date +%Y%m` - AS_IF([test -d "${srcdir}/.bzr"],[ - ac_cv_building_from_bzr=yes - ac_cv_building_from_vc=yes - ],[ - ac_cv_building_from_bzr=no - ]) + # Set some defaults + PANDORA_VC_REVNO="0" + PANDORA_VC_REVID="unknown" + PANDORA_VC_BRANCH="bzr-export" - AS_IF([test -d "${srcdir}/.svn"],[ - ac_cv_building_from_svn=yes - ac_cv_building_from_vc=yes - ],[ - ac_cv_building_from_svn=no + if test "${pandora_building_from_bzr}" = "yes"; then + echo "# Grabbing changelog and version information from bzr" + PANDORA_BZR_REVNO=`bzr revno` + if test "x$PANDORA_BZR_REVNO" != "x${PANDORA_VC_REVNO}" ; then + PANDORA_VC_REVNO="${PANDORA_BZR_REVNO}" + PANDORA_VC_REVID=`bzr log -r-1 --show-ids | grep revision-id | cut -f2 -d' ' | head -1` + PANDORA_VC_BRANCH=`bzr nick` + PANDORA_VC_TAG=`bzr tags -r-1 | cut -f1 -d' ' | head -1` + PANDORA_VC_LATEST_TAG=`bzr tags --sort=time | grep -v '\?'| cut -f1 -d' ' | tail -1` + if test "x${vc_changelog}" = "xyes"; then + bzr log --gnu > ChangeLog + fi + fi + elif test "${pandora_building_from_git}" = "yes"; then + echo "# Grabbing changelog and version information from git" + PANDORA_GIT_REVID=`git --no-pager log --max-count=1 | cut -f2 -d' ' | head -1` + if test "x$PANDORA_GIT_REVID" != "x${PANDORA_VC_REVNO}" ; then + PANDORA_VC_REVID="${PANDORA_GIT_REVID}" + PANDORA_VC_BRANCH=`git branch | grep -Ei "\* (.*)" | cut -f2 -d' '` + fi + fi + + if ! test -d config ; then + mkdir -p config + fi + + if test "${pandora_building_from_bzr}" = "yes" -o ! -f config/pandora_vc_revinfo ; then + cat > config/pandora_vc_revinfo.tmp </dev/null 2>&1 ; then + mv config/pandora_vc_revinfo.tmp config/pandora_vc_revinfo + fi + rm -f config/pandora_vc_revinfo.tmp + fi ]) +]) + +AC_DEFUN([_PANDORA_READ_FROM_FILE],[ + $1=`grep $1 $2 | cut -f2 -d=` +]) - AS_IF([test -d "${srcdir}/.hg"],[ - ac_cv_building_from_hg=yes - ac_cv_building_from_vc=yes +AC_DEFUN([PANDORA_VC_VERSION],[ + AC_REQUIRE([PANDORA_BUILDING_FROM_VC]) + + PANDORA_TEST_VC_DIR + + AS_IF([test -f ${srcdir}/config/pandora_vc_revinfo],[ + _PANDORA_READ_FROM_FILE([PANDORA_VC_REVNO],${srcdir}/config/pandora_vc_revinfo) + _PANDORA_READ_FROM_FILE([PANDORA_VC_REVID],${srcdir}/config/pandora_vc_revinfo) + _PANDORA_READ_FROM_FILE([PANDORA_VC_BRANCH], + ${srcdir}/config/pandora_vc_revinfo) + _PANDORA_READ_FROM_FILE([PANDORA_VC_TAG], + ${srcdir}/config/pandora_vc_revinfo) + _PANDORA_READ_FROM_FILE([PANDORA_VC_LATEST_TAG], + ${srcdir}/config/pandora_vc_revinfo) + _PANDORA_READ_FROM_FILE([PANDORA_RELEASE_DATE], + ${srcdir}/config/pandora_vc_revinfo) + _PANDORA_READ_FROM_FILE([PANDORA_RELEASE_NODOTS_DATE], + ${srcdir}/config/pandora_vc_revinfo) + ]) + AS_IF([test "x${PANDORA_VC_BRANCH}" != x"${PACKAGE}"],[ + PANDORA_RELEASE_COMMENT="${PANDORA_VC_BRANCH}" + ],[ + PANDORA_RELEASE_COMMENT="trunk" + ]) + + AS_IF([test "x${PANDORA_VC_TAG}" != "x"],[ + PANDORA_RELEASE_VERSION="${PANDORA_VC_TAG}" + ],[ + AS_IF([test "x${PANDORA_VC_LATEST_TAG}" != "x"],[ + PANDORA_RELEASE_VERSION="${PANDORA_VC_LATEST_TAG}.${PANDORA_VC_REVNO}" ],[ - ac_cv_building_from_hg=no + PANDORA_RELEASE_VERSION="${PANDORA_RELEASE_DATE}.${PANDORA_VC_REVNO}" + ]) ]) + changequote(<<, >>)dnl + PANDORA_RELEASE_ID=`echo ${PANDORA_RELEASE_VERSION} | sed 's/[^0-9]//g'` + changequote([, ])dnl + + VERSION="${PANDORA_RELEASE_VERSION}" + AC_DEFINE_UNQUOTED([PANDORA_RELEASE_VERSION],["${PANDORA_RELEASE_VERSION}"], + [The real version of the software]) + AC_SUBST(PANDORA_VC_REVNO) + AC_SUBST(PANDORA_VC_REVID) + AC_SUBST(PANDORA_VC_BRANCH) + AC_SUBST(PANDORA_RELEASE_DATE) + AC_SUBST(PANDORA_RELEASE_NODOTS_DATE) + AC_SUBST(PANDORA_RELEASE_COMMENT) + AC_SUBST(PANDORA_RELEASE_VERSION) + AC_SUBST(PANDORA_RELEASE_ID) +]) + +AC_DEFUN([PANDORA_VC_INFO_HEADER],[ + AC_REQUIRE([PANDORA_VC_VERSION]) + m4_define([PANDORA_VC_PREFIX],m4_toupper(m4_normalize(AC_PACKAGE_NAME))[_]) + + AC_DEFINE_UNQUOTED(PANDORA_VC_PREFIX[VC_REVNO], [$PANDORA_VC_REVNO], [Version control revision number]) + AC_DEFINE_UNQUOTED(PANDORA_VC_PREFIX[VC_REVID], ["$PANDORA_VC_REVID"], [Version control revision ID]) + AC_DEFINE_UNQUOTED(PANDORA_VC_PREFIX[VC_BRANCH], ["$PANDORA_VC_BRANCH"], [Version control branch name]) + AC_DEFINE_UNQUOTED(PANDORA_VC_PREFIX[RELEASE_DATE], ["$PANDORA_RELEASE_DATE"], [Release date of version control checkout]) + AC_DEFINE_UNQUOTED(PANDORA_VC_PREFIX[RELEASE_NODOTS_DATE], [$PANDORA_RELEASE_NODOTS_DATE], [Numeric formatted release date of checkout]) + AC_DEFINE_UNQUOTED(PANDORA_VC_PREFIX[RELEASE_COMMENT], ["$PANDORA_RELEASE_COMMENT"], [Set to trunk if the branch is the main $PACKAGE branch]) + AC_DEFINE_UNQUOTED(PANDORA_VC_PREFIX[RELEASE_VERSION], ["$PANDORA_RELEASE_VERSION"], [Release date and revision number of checkout]) + AC_DEFINE_UNQUOTED(PANDORA_VC_PREFIX[RELEASE_ID], [$PANDORA_RELEASE_ID], [Numeric formatted release date and revision number of checkout]) ]) -