X-Git-Url: http://cgit.sxemacs.org/?p=sxemacs;a=blobdiff_plain;f=autogen.sh;h=1b64347f2bfb9e9649d29ef3a24777c0e3e218fe;hp=bc39a4cb1b098112c129f0b469f1f12a5437f61f;hb=4e3d7030d24968ceec61d1aca0a21feefef88632;hpb=c879e5b17b3d5fef34ab58fc66e1cbb4269e5bb4 diff --git a/autogen.sh b/autogen.sh index bc39a4c..1b64347 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,9 +1,35 @@ #!/bin/sh +# Configure script bootstrap for SXEmacs +# +# Copyright (C) 2005 - 2012 Steve Youngs. +# Copyright (C) 2006, 2007, 2008 Sebastian Freundt. +# Copyright (C) 2007, 2010, 2011 Nelson Ferreira + +# This file is part of SXEmacs. + +# SXEmacs is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# SXEmacs is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Parts of SXEmacs are also distributed under a BSD-like licence. +# Check file headers for more information. # BSD's m4 probably isn't gonna cut it, use gm4 if it is available -type gm4 >/dev/null 2>&1 && M4=gm4 || M4=m4 +if test -z "$M4" +then + type gm4 >/dev/null 2>&1 && M4=gm4 || M4=m4 +fi -M4_VERSION=$($M4 --version | head -1 | sed -e 's/^\(m4 \)\?(\?GNU M4)\? *//g' ) +M4_VERSION=$($M4 --version | head -n1 | sed -e 's/^\(m4 \)\?(\?GNU M4)\? *//g' ) GOOD_M4=$( echo $M4_VERSION | awk -F. '{if( ($1>1) || ( ($1==1) && ($2>4) ) || ( ($1==1) && ($2==4) && ($3>=6) )) print 1 }') if [ "$GOOD_M4" != "1" ]; then @@ -13,87 +39,149 @@ fi # To cater for Solaris if test -d "/usr/xpg4/bin"; then - PATH=/usr/xpg4/bin:$PATH + # don't add xpg4 dir to PATH if on OpenIndiana + grep -q OpenIndiana /etc/release 2>/dev/null||PATH=/usr/xpg4/bin:$PATH export PATH fi -type tla >/dev/null 2>&1 && TLA=tla +if test -z "$GIT" +then + type git >/dev/null 2>&1 && GIT=git +fi + olddir=$(pwd) srcdir=$(dirname $0) cd "$srcdir" +EXPECTED_TREE_VERSION="22.1.15" + emacs_is_beta=t -if test -n "$TLA" -a -n "$($TLA tree-version | grep '/sxemacs')"; then - TREE_VERSION="$($TLA tree-version)" - ARCH_VERSION="$($TLA logs -f|tail -n1)" - MAIN_VERSION="$($TLA log-versions|grep -- '--main--'|tail -n1)" - MAIN_ARCH_VERSION="$(tla logs -f $MAIN_VERSION|tail -n1)" -elif test -d "{arch}" -a -s "{arch}/++default-version"; then - TREE_VERSION=$(cat "{arch}/++default-version") - ARCH_VERSION="$TREE_VERSION--version-X" - CURDIR=$(pwd) - cd "{arch}/sxemacs/sxemacs--main" - MAIN_VERSION="$(/bin/ls|tail -n1)" - cd "$MAIN_VERSION" - MAIN_VERSION="$(/bin/ls)/$MAIN_VERSION" - cd "$(/bin/ls)/patch-log" - MAIN_ARCH_VERSION="$MAIN_VERSION--$(/bin/ls|grep -v base|sort -k1.7|tail -n1)" - cd "$CURDIR" -else - TREE_VERSION="--22.1.12" - ARCH_VERSION="no_arch_version" - MAIN_ARCH_VERSION="no_arch_version" -fi - -emacs_major_version="$(echo $TREE_VERSION|sed -e s/"^.*--"//|cut -d . -f1)" -emacs_minor_version="$(echo $TREE_VERSION|sed -e s/"^.*--"//|cut -d . -f2)" -emacs_beta_version="$(echo $TREE_VERSION|sed -e s/"^.*--"//|cut -d . -f3)" -sxemacs_codename="Fiat" -sxemacs_arch_version="$ARCH_VERSION" -sxemacs_main_arch_version="$MAIN_ARCH_VERSION" - -autoconf_ver=$(autoconf --version 2>/dev/null | head -n1) -autoheader_ver=$(autoheader --version 2>/dev/null | head -n1) -automake_ver=$(automake --version 2>/dev/null | head -n1) -aclocal_ver=$(aclocal --version 2>/dev/null | head -n1) -libtool_ver=$(libtool --version 2>/dev/null | head -n1) +if test -n "$GIT" -a -n "$($GIT symbolic-ref HEAD 2>/dev/null)"; then + TREE_VERSION="$($GIT tag|tail -n1|tr -d v)" + GIT_VERSION="$($GIT describe | head -n1)" + GIT_BRANCH="$(git branch --no-color | awk '/^\*/ { print $2 }')" + IN_GIT="1" +fi +if test -z "$TREE_VERSION"; then + TREE_VERSION="$EXPECTED_TREE_VERSION" + if test -n "$IN_GIT"; then + echo "If you cloned this branch into your own you could issue:" + echo "\tgit tag -s v${TREE_VERSION}." + echo "" + echo "Be careful about pushing the tags as they probably will be " + echo "more of a nuisance..." + echo "" + TREE_VERSION="$EXPECTED_TREE_VERSION.$GIT_BRANCH" + echo "For now I am assuming the tre version will be $TREE_VERSION" + echo "" + fi +fi +if test -z "$GIT_VERSION"; then + GIT_VERSION="${TREE_VERSION}-no_git_version" +fi +emacs_major_version="$(echo $TREE_VERSION|cut -d. -f1)" +emacs_minor_version="$(echo $TREE_VERSION|cut -d. -f2)" +emacs_beta_version="$(echo $TREE_VERSION|cut -d. -f3)" +emacs_full_version="$emacs_major_version.$emacs_minor_version.$emacs_beta_version" +sxemacs_codename="Goggomobil" +sxemacs_git_version="$GIT_VERSION" + +if test "$emacs_full_version" != "$EXPECTED_TREE_VERSION"; then + # Note, there is no need check for git repos, because + # it can only happen in such a case anyway... + echo "*******************************************" + echo " WARNING: Your git tags may be out of date " + echo "" + echo " Expected tree version $EXPECTED_TREE_VERSION " + echo " got $emacs_full_version (from $TREE_VERSION) " + set -x + git tag + git describe + git describe --long + git config -l + set +x + echo "*******************************************" +fi -# When things go wrong... get a bigger hammer! -_regexp='++log\|=b\(ui\)*ld' +test -z "$AUTOCONF" && type autoconf >/dev/null 2>&1 && AUTOCONF=autoconf +export AUTOCONF +test -z "$AUTORECONF" && type autoreconf >/dev/null 2>&1 && AUTORECONF=autoreconf +export AUTORECONF +test -z "$AUTOHEADER" && type autoheader >/dev/null 2>&1 && AUTOHEADER=autoheader +export AUTOHEADER +test -z "$AUTOMAKE" && type automake >/dev/null 2>&1 && AUTOMAKE=automake +export AUTOMAKE +test -z "$ACLOCAL" && type aclocal >/dev/null 2>&1 && ACLOCAL=aclocal +export ACLOCAL +test -z "$LIBTOOL" && type libtool >/dev/null 2>&1 && LIBTOOL=libtool +export LIBTOOL +if test -z "$LIBTOOLIZE"; then + if type glibtoolize >/dev/null 2>&1; then + LIBTOOLIZE=glibtoolize + elif type libtoolize >/dev/null 2>&1; then + LIBTOOLIZE=libtoolize + fi +fi +export LIBTOOLIZE + +autoconf_ver=$($AUTOCONF --version 2>/dev/null | head -n1) +if test -z "$autoconf_ver"; then + echo Could not determine autoconf + exit 1 +fi +autoreconf_ver=$($AUTORECONF --version 2>/dev/null | head -n1) +if test -z "$autoreconf_ver"; then + echo Could not determine autoreconf + exit 1 +fi +autoheader_ver=$($AUTOHEADER --version 2>/dev/null | head -n1) +if test -z "$autoheader_ver"; then + echo Could not determine autoheader + exit 1 +fi +automake_ver=$($AUTOMAKE --version 2>/dev/null | head -n1) +if test -z "$automake_ver"; then + echo Could not determine automake + exit 1 +fi +aclocal_ver=$($ACLOCAL --version 2>/dev/null | head -n1) +if test -z "$aclocal_ver"; then + echo Could not determine aclocal + exit 1 +fi +libtool_ver=$($LIBTOOL --version 2>/dev/null | head -n1) +if test -z "$libtool_ver" -a -n "$LIBTOOLIZE"; then + libtool_ver=$($LIBTOOLIZE --version 2>/dev/null | head -n1) +fi +if test -z "$libtool_ver"; then + echo WARNING: Could not determine libtool +fi +# When things go wrong... get a bigger hammer! if test -n "$PHAMMER"; then HAMMER=$PHAMMER fi -if test -n "$HAMMER" -o -n "$REGEXP"; then - if test -n "$TLA" -a -n "$($TLA tree-version | grep '/sxemacs')"; then - if test -n "$REGEXP" -a "$HAMMER" != "BHFH"; then - $TLA inventory -pbB|grep -v "$_regexp\|$REGEXP"|xargs rm -vrf - unset REGEXP +if test -n "$HAMMER"; then + if test -n "$GIT" -a -n "$($GIT symbolic-ref HEAD 2>/dev/null)"; then + $GIT clean -fxd else - if test "$HAMMER" = "BHFH"; then - $TLA inventory -pjubB|xargs rm -vrf - else - $TLA inventory -pbB|grep -v "$_regexp"|xargs rm -vrf - fi + echo "ERROR: Not a git workspace, or you don't have git" >&2 + exit 1 fi - else - echo "ERROR: Could not HAMMER=$HAMMER because we are not inside a tla controled workspace" - exit 1 - fi - unset HAMMER + unset HAMMER fi + cat>sxemacs_version.m4</dev/null; then - LIBTOOLIZE=glibtoolize -else - LIBTOOLIZE=libtoolize -fi -autoreconf $FORCE --verbose --install -Wall +# using libtoolize as we did before doesn't work anymore, so just mkdir --Horst +test -d libtld/m4 || mkdir -p libltdl/m4 +$AUTORECONF --force --verbose --install -Wall # hack-o-matic. Using gmp's config.{guess,sub} lets us have properer # detected machine configurations --SY. guess=$(grep GMP config.guess) sub=$(grep GMP config.sub) if test -z "${guess}"; then - mv -vf config.guess configfsf.guess - cp -v configgmp.guess config.guess + mv -f config.guess configfsf.guess + cp configgmp.guess config.guess fi if test -z "${sub}"; then - mv -vf config.sub configfsf.sub - cp -v configgmp.sub config.sub + mv -f config.sub configfsf.sub + cp configgmp.sub config.sub fi cd $olddir