autogen.sh 1.94 KB
#!/bin/bash

APPLEVEL="0"

test -n "$srcdir" || srcdir=`dirname "$0"`
test -n "$srcdir" || srcdir=.

olddir=`pwd`
cd "$srcdir"

if test -e revision ; then
	. revision
fi

touch ChangeLog

# Inicia com os defaults
TEMPFILE=autogen.tmp

if [ -d .svn ]; then

	# Tenta detectar a versão
	SVNVERSION=$(which svnversion 2> /dev/null)
	if test -x "${SVNVERSION}" ; then
		svnversion | cut -d: -f2 | sed 's@[M|m]@@g' > ${TEMPFILE} 2> /dev/null
		if [ "$?" == "0" ]; then
			PACKAGE_REVISION=$(cat ${TEMPFILE})
		fi
	fi

	# Tenta detectar a URL
	SVN=$(which svn 2> /dev/null)
	if test -x "${SVN}" ; then

		LANG="EN_US" "${SVN}" info > ${TEMPFILE} 2>&1
		if [ "$?" == "0" ]; then
			PACKAGE_SOURCE=$(cat ${TEMPFILE} | grep "^URL: " | cut -d" " -f2)
		fi

	fi

elif [ -d .git ]; then

	# Obtém revisão via git
	# Referência: http://stackoverflow.com/questions/4120001/what-is-the-git-equivalent-for-revision-number

	# Obtém URL via git
	PACKAGE_SOURCE=$(git config --get remote.origin.url)

	# Obtém número total de commits
	PACKAGE_REVISION=$(git rev-list HEAD --count)

fi


rm -f $TEMPFILE

if test -z ${PACKAGE_REVISION} ; then
	echo "Can´t detect package revision, using current date"
	PACKAGE_REVISION=`date +%y%m%d`
fi

if test -z ${PACKAGE_SOURCE} ; then
	echo "Can´t detect package source"
	exit -1
fi

#echo "PACKAGE_REVISION=${PACKAGE_REVISION}" > $srcdir/revision
#echo "PACKAGE_SOURCE=${PACKAGE_SOURCE}" >> $srcdir/revision
#echo "PACKAGE_LEVEL=${APPLEVEL}" >> $srcdir/revision

#echo "m4_define([SVN_REVISION], ${PACKAGE_REVISION})" > $srcdir/revision.m4
#echo "m4_define([SVN_URL], ${PACKAGE_SOURCE})" >> $srcdir/revision.m4
#echo "m4_define([APP_LEVEL], ${APPLEVEL})" >> $srcdir/revision.m4

aclocal
if test $? != 0 ; then
	echo "aclocal failed."
	exit -1
fi

autoconf
if test $? != 0 ; then
	echo "autoconf failed."
	exit -1
fi

cd "$olddir"
test -n "$NOCONFIGURE" || "$srcdir/configure" "$@"

echo "Package set to revision $PACKAGE_REVISION and source $PACKAGE_SOURCE"