diff options
-rwxr-xr-x | autogen.sh.in | 118 | ||||
-rwxr-xr-x | update-autogen | 48 |
2 files changed, 166 insertions, 0 deletions
diff --git a/autogen.sh.in b/autogen.sh.in new file mode 100755 index 0000000..c303a32 --- /dev/null +++ b/autogen.sh.in @@ -0,0 +1,118 @@ +test -n "$srcdir" || srcdir=`dirname "$0"` +test -n "$srcdir" || srcdir=. + +olddir=`pwd` +cd "$srcdir" + +DIE=0 +package=@PACKAGE@ +srcfile=@SRCFILE@ + +# Make sure we have common +if test ! -f common/gst-autogen.sh; +then + echo "+ Setting up common submodule" + git submodule init +fi +git submodule update + +# source helper functions +if test ! -f common/gst-autogen.sh; +then + echo There is something wrong with your source tree. + echo You are missing common/gst-autogen.sh + exit 1 +fi +. common/gst-autogen.sh + +# install pre-commit hook for doing clean commits +if test ! \( -x .git/hooks/pre-commit -a -L .git/hooks/pre-commit \); +then + rm -f .git/hooks/pre-commit + ln -s ../../common/hooks/pre-commit.hook .git/hooks/pre-commit +fi + +# GNU gettext automake support doesn't get along with git. +# https://bugzilla.gnome.org/show_bug.cgi?id=661128 +touch -t 200001010000 po/@PACKAGE@-@API_VERSION@.pot + +CONFIGURE_DEF_OPT='--enable-maintainer-mode --enable-failing-tests --enable-poisoning --enable-gtk-doc --enable-docbook' + +autogen_options $@ + +printf "+ check for build tools" +if test ! -z "$NOCHECK"; then echo ": skipped version checks"; else echo; fi +version_check "autoconf" "$AUTOCONF autoconf autoconf270 autoconf269 autoconf268 autoconf267 autoconf266 autoconf265 autoconf264 autoconf263 autoconf262" \ + "ftp://ftp.gnu.org/pub/gnu/autoconf/" 2 62 || DIE=1 +version_check "automake" "$AUTOMAKE automake automake-1.11" \ + "ftp://ftp.gnu.org/pub/gnu/automake/" 1 11 || DIE=1 +version_check "autopoint" "autopoint" \ + "ftp://ftp.gnu.org/pub/gnu/gettext/" 0 17 || DIE=1 +version_check "libtoolize" "libtoolize glibtoolize" \ + "ftp://ftp.gnu.org/pub/gnu/libtool/" 2 2 6 || DIE=1 +version_check "pkg-config" "" \ + "http://www.freedesktop.org/software/pkgconfig" 0 8 0 || DIE=1 + +die_check $DIE + +aclocal_check || DIE=1 +autoheader_check || DIE=1 + +die_check $DIE + +# if no arguments specified then this will be printed +if test -z "$*" && test -z "$NOCONFIGURE"; then + echo "+ checking for autogen.sh options" + echo " This autogen script will automatically run ./configure as:" + echo " ./configure $CONFIGURE_DEF_OPT" + echo " To pass any additional options, please specify them on the $0" + echo " command line." +fi + +toplevel_check $srcfile + +# autopoint +# older autopoint (< 0.12) has a tendency to complain about mkinstalldirs +if test -x mkinstalldirs; then rm mkinstalldirs; fi +# first remove patch if necessary, then run autopoint, then reapply +if test -f po/Makefile.in.in; +then + patch -p0 -R --forward < common/gettext.patch +fi +tool_run "$autopoint" "--force" "patch -p0 < common/gettext.patch" +patch -p0 < common/gettext.patch + +# aclocal +if test -f acinclude.m4; then rm acinclude.m4; fi + +tool_run "$libtoolize" "--copy --force" +tool_run "$aclocal" "-I m4 -I common/m4 $ACLOCAL_FLAGS" +tool_run "$autoheader" + +# touch the stamp-h.in build stamp so we don't re-run autoheader in maintainer mode +echo timestamp > stamp-h.in 2> /dev/null + +tool_run "$autoconf" +debug "automake: $automake" +tool_run "$automake" "--add-missing --copy" + +test -n "$NOCONFIGURE" && { + echo "skipping configure stage for package $package, as requested." + echo "autogen.sh done." + exit 0 +} + +cd "$olddir" + +echo "+ running configure ... " +test ! -z "$CONFIGURE_DEF_OPT" && echo " ./configure default flags: $CONFIGURE_DEF_OPT" +test ! -z "$CONFIGURE_EXT_OPT" && echo " ./configure external flags: $CONFIGURE_EXT_OPT" +echo + +echo "$srcdir/configure" $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT +"$srcdir/configure" $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT || { + echo " configure failed" + exit 1 +} + +echo "Now type 'make' to compile $package." diff --git a/update-autogen b/update-autogen new file mode 100755 index 0000000..d267556 --- /dev/null +++ b/update-autogen @@ -0,0 +1,48 @@ +#!/bin/bash + +if [ ! -f "common/update-autogen" ]; then + echo "Run ./common/update-autogen from the top-level source directory of a GStreamer module"; + exit 1; +fi + +if ! ls -1 *.doap 2>/dev/null >/dev/null; then + echo "Could not find *.doap file"; + exit 1; +fi + +PACKAGE=`ls -1 *.doap | head -n1 | sed -e 's/.doap$//'` + +#echo "Package: $PACKAGE" + +DIR=`mktemp -d` +if [[ $? != 0 ]]; then + echo "Could not create temp dir"; + exit 1; +fi + +TEMP_AUTOGEN_SH="$DIR/autogen.sh" +echo "\ +#!/bin/sh +# +# $PACKAGE autogen.sh +# +# Run this to generate all the initial makefiles, etc. +# +# This file has been generated from common/autogen.sh.in via common/update-autogen + +" > $TEMP_AUTOGEN_SH + +sed \ + -e "s/@API_VERSION@/1.0/g" \ + -e "s/@PACKAGE@/$PACKAGE/g" \ + -e "s/@SRCFILE@/$PACKAGE.doap/g" < common/autogen.sh.in >> $TEMP_AUTOGEN_SH + +chmod +x $TEMP_AUTOGEN_SH + +mv $TEMP_AUTOGEN_SH autogen.sh || { + echo "Failed to update autogen.sh" + exit 1; +} +rmdir $DIR + +echo "Updated $PACKAGE autogen.sh" |