Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE
buzztrax
autogen.sh
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File autogen.sh of Package buzztrax
#!/bin/sh # Run this to generate all the initial makefiles, etc. DIE=0 package=buzztrax # a silly hack that generates autoregen.sh but it's handy if [ -f "autoregen.sh" ]; then rm autoregen.sh fi echo "#!/bin/sh" > autoregen.sh echo "./autogen.sh $@ \$@" >> autoregen.sh chmod +x autoregen.sh # helper functions for autogen.sh debug () # print out a debug message if DEBUG is a defined variable { if test ! -z "$DEBUG" then echo "DEBUG: $1" fi } version_check () # check the version of a package # first argument : package name (executable) # second argument : optional path where to look for it instead # third argument : source download url # rest of arguments : major, minor, micro version # all consecutive ones : suggestions for binaries to use # (if not specified in second argument) { PACKAGE=$1 PKG_PATH=$2 URL=$3 MAJOR=$4 MINOR=$5 MICRO=$6 # for backwards compatibility, we let PKG_PATH=PACKAGE when PKG_PATH null if test -z "$PKG_PATH"; then PKG_PATH=$PACKAGE; fi debug "major $MAJOR minor $MINOR micro $MICRO" VERSION=$MAJOR if test ! -z "$MINOR"; then VERSION=$VERSION.$MINOR; else MINOR=0; fi if test ! -z "$MICRO"; then VERSION=$VERSION.$MICRO; else MICRO=0; fi debug "major $MAJOR minor $MINOR micro $MICRO" for SUGGESTION in $PKG_PATH; do COMMAND="$SUGGESTION" # don't check if asked not to test -z "$NOCHECK" && { echo -n " checking for $COMMAND >= $VERSION ... " } || { # we set a var with the same name as the package, but stripped of # unwanted chars VAR=`echo $PACKAGE | sed 's/-//g'` debug "setting $VAR" eval $VAR="$COMMAND" return 0 } debug "checking version with $COMMAND" ($COMMAND --version) < /dev/null > /dev/null 2>&1 || { echo "not found." continue } # strip everything that's not a digit, then use cut to get the first field pkg_version=`$COMMAND --version|head -n 1|sed 's/^[^0-9]*//'|cut -d' ' -f1` debug "pkg_version $pkg_version" # remove any non-digit characters from the version numbers to permit numeric # comparison pkg_major=`echo $pkg_version | cut -d. -f1 | sed s/[a-zA-Z\-].*//g` pkg_minor=`echo $pkg_version | cut -d. -f2 | sed s/[a-zA-Z\-].*//g` pkg_micro=`echo $pkg_version | cut -d. -f3 | sed s/[a-zA-Z\-].*//g` test -z "$pkg_major" && pkg_major=0 test -z "$pkg_minor" && pkg_minor=0 test -z "$pkg_micro" && pkg_micro=0 debug "found major $pkg_major minor $pkg_minor micro $pkg_micro" #start checking the version debug "version check" # reset check WRONG= if [ ! "$pkg_major" -gt "$MAJOR" ]; then debug "major: $pkg_major <= $MAJOR" if [ "$pkg_major" -lt "$MAJOR" ]; then debug "major: $pkg_major < $MAJOR" WRONG=1 elif [ ! "$pkg_minor" -gt "$MINOR" ]; then debug "minor: $pkg_minor <= $MINOR" if [ "$pkg_minor" -lt "$MINOR" ]; then debug "minor: $pkg_minor < $MINOR" WRONG=1 elif [ "$pkg_micro" -lt "$MICRO" ]; then debug "micro: $pkg_micro < $MICRO" WRONG=1 fi fi fi if test ! -z "$WRONG"; then echo "found $pkg_version, not ok !" continue else echo "found $pkg_version, ok." # we set a var with the same name as the package, but stripped of # unwanted chars VAR=`echo $PACKAGE | sed 's/-//g'` debug "setting $VAR" eval $VAR="$COMMAND" return 0 fi done if test ! -z "$URL"; then echo "not found !" echo "You must have $PACKAGE installed to compile $package." echo "Download the appropriate package for your distribution," echo "or get the source tarball at $URL" fi return 1; } aclocal_check () { # normally aclocal is part of automake # so we expect it to be in the same place as automake # so if a different automake is supplied, we need to adapt as well # so how's about replacing automake with aclocal in the set var, # and saving that in $aclocal ? # note, this will fail if the actual automake isn't called automake* # or if part of the path before it contains it if [ -z "$automake" ]; then echo "Error: no automake variable set !" return 1 else aclocal=`echo $automake | sed s/automake/aclocal/` debug "aclocal: $aclocal" if [ "$aclocal" != "aclocal" ]; then CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-aclocal=$aclocal" fi if [ ! -x `which $aclocal` ]; then echo "Error: cannot execute $aclocal !" return 1 fi fi } autoheader_check () { # same here - autoheader is part of autoconf # use the same voodoo if [ -z "$autoconf" ]; then echo "Error: no autoconf variable set !" return 1 else autoheader=`echo $autoconf | sed s/autoconf/autoheader/` debug "autoheader: $autoheader" if [ "$autoheader" != "autoheader" ]; then CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-autoheader=$autoheader" fi if [ ! -x `which $autoheader` ]; then echo "Error: cannot execute $autoheader !" return 1 fi fi } die_check () { # call with $DIE # if set to 1, we need to print something helpful then die DIE=$1 if test "x$DIE" = "x1"; then echo echo "- Please get the right tools before proceeding." echo "- Alternatively, if you're sure we're wrong, run with --nocheck." exit 1 fi } autogen_options () { if test "x$1" = "x"; then return 0 fi while test "x$1" != "x" ; do optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` case "$1" in --noconfigure) NOCONFIGURE=defined AUTOGEN_EXT_OPT="$AUTOGEN_EXT_OPT --noconfigure" echo "+ configure run disabled" shift ;; --nocheck) AUTOGEN_EXT_OPT="$AUTOGEN_EXT_OPT --nocheck" NOCHECK=defined echo "+ autotools version check disabled" shift ;; --debug) DEBUG=defined AUTOGEN_EXT_OPT="$AUTOGEN_EXT_OPT --debug" echo "+ debug output enabled" shift ;; --prefix=*) CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT --prefix=$optarg" echo "+ passing --prefix=$optarg to configure" shift ;; --prefix) shift echo "DEBUG: $1" CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT --prefix=$1" echo "+ passing --prefix=$1 to configure" shift ;; -h|--help) echo "autogen.sh (autogen options) -- (configure options)" echo "autogen.sh help options: " echo " --noconfigure don't run the configure script" echo " --nocheck don't do version checks" echo " --debug debug the autogen process" echo " --prefix will be passed on to configure" echo echo " --with-autoconf PATH use autoconf in PATH" echo " --with-automake PATH use automake in PATH" echo echo "to pass options to configure, put them as arguments after -- " exit 1 ;; --with-automake=*) AUTOMAKE=$optarg echo "+ using alternate automake in $optarg" CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-automake=$AUTOMAKE" shift ;; --with-autoconf=*) AUTOCONF=$optarg echo "+ using alternate autoconf in $optarg" CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-autoconf=$AUTOCONF" shift ;; --disable*|--enable*|--with*) echo "+ passing option $1 to configure" CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT $1" shift ;; --) shift ; break ;; *) echo "- ignoring unknown autogen.sh argument $1"; shift ;; esac done for arg do CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT $arg"; done if test ! -z "$CONFIGURE_EXT_OPT" then echo "+ options passed to configure: $CONFIGURE_EXT_OPT" fi } toplevel_check () { srcfile=$1 test -f $srcfile || { echo "You must run this script in the top-level $package directory" exit 1 } } tool_run () { tool=$1 options=$2 echo "+ running $tool $options..." $tool $options || { echo echo $tool failed exit 1 } } CONFIGURE_DEF_OPT='--enable-debug=yes' autogen_options $@ have_gtkdoc_1_9=0 echo -n "+ check for build tools" if test ! -z "$NOCHECK"; then echo ": skipped version checks"; else echo; fi version_check "autoconf" "$AUTOCONF autoconf" \ "ftp://ftp.gnu.org/pub/gnu/autoconf/" 2 61 || DIE=1 version_check "automake" "$AUTOMAKE automake automake-1.7 automake17 automake-1.6" \ "ftp://ftp.gnu.org/pub/gnu/automake/" 1 6 || DIE=1 version_check "autopoint" "autopoint" \ "ftp://ftp.gnu.org/pub/gnu/gettext/" 0 12 1 || DIE=1 version_check "gtkdocize" "" "" 1 9 && have_gtkdoc_1_9=1 if test "x$have_gtkdoc_1_9" = "x0"; then version_check "gtkdocize" "" \ "ftp://ftp.gnome.org/pub/gnome/sources/gtk-doc/" 1 4 fi version_check "intltoolize" "" \ "ftp://ftp.gnome.org/pub/gnome/sources/intltool/" 0 1 5 || DIE=1 version_check "libtoolize" "libtoolize glibtoolize" \ "ftp://ftp.gnu.org/pub/gnu/libtool/" 2 2 0 || DIE=1 version_check "pkg-config" "" \ "ftp://ftp.gnome.org/pub/gnome/sources/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 "$*"; 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 tool_run "$autopoint --force" # must be run before aclocal, as this installs some m4 files tool_run "$libtoolize" "--copy --force" # aclocal if test -f acinclude.m4; then rm acinclude.m4; fi tool_run "$aclocal" "-I m4 $ACLOCAL_FLAGS" tool_run "$intltoolize" "--copy --force --automake" if test -n "$gtkdocize"; then if test "x$have_gtkdoc_1_9" = "x0"; then tool_run "$gtkdocize" "--copy" else tool_run "$gtkdocize" "--copy --flavour no-tmpl" fi else echo "EXTRA_DIST = " > gtk-doc.make fi tool_run "$autoheader" # touch the stamp-h.in build stamp so we don't re-run autoheader in maintainer mode -- wingo echo timestamp > stamp-h.in 2> /dev/null tool_run "$autoconf" debug "automake: $automake" tool_run "$automake" "--add-missing --copy --gnu -Wno-portability" test -n "$NOCONFIGURE" && { echo "skipping configure stage for package $package, as requested." echo "autogen.sh done." exit 0 } 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 ./configure $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT ./configure $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT || { echo " configure failed" exit 1 } echo "Now type 'make' to compile $package."
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor