#!/bin/sh # This script installs modern versions of GNU Autotools # in $HOME/autotools. The install path can be changed below. # For installation, a directory AutotoolsBuild is created in the # current working directory. # # install_autotools.sh /this/path --> install to /this/path # install_autotools.sh --> install to $HOME/autotools # # - This script requires wget to work. # - Only minimal error checking. # - You must delete AutotoolsBuild before running the script # a second time. # - Under OSX, a crash report window may pop up while m4 is configured. # There is no need to worry about this, just click "Ignore". # Install path # prefix to $HOME if you want to put the binaries into # $HOME/bin and other files into $HOME/{lib,include,share, ...} if [ $# -gt 0 ] ; then prefix=$1 else prefix=$HOME/autotools fi # Package versions to install pkgs="m4 autoconf automake libtool" m4_ver=1.4.16 autoconf_ver=2.68 automake_ver=1.11.1 libtool_ver=2.4.2 wgetprog=`which wget` if [ -z $wgetprog ] ; then echo echo "This script requires wget, which seems unavailable on you machine." echo "Please download the following files" echo for pkg in $pkgs ; do vname=${pkg}_ver eval pkgfull=${pkg}-"\$$vname" pkgtar=${pkgfull}.tar.gz echo " ftp://anonymous@ftp.gnu.org/gnu/${pkg}/${pkgtar}" done echo echo "unpack them and run" echo echo " ./configure --prefix=xxx && make && make install" echo echo "in each directory in the order given above." echo "Make sure that prefix/bin is in your PATH!" echo exit 1 fi # current directory currdir=`pwd` # Work dir wrkdir=$currdir/AutotoolsBuild mkdir -p $wrkdir cd $wrkdir # ensure we see newly installed pkgs when building next in line savepath=$PATH export PATH=$prefix/bin:$PATH # fetch, configure, build installed_pkg="" for pkg in $pkgs ; do vname=${pkg}_ver eval pkgfull=${pkg}-"\$$vname" pkgtar=${pkgfull}.tar.gz $wgetprog ftp://anonymous@ftp.gnu.org/gnu/${pkg}/${pkgtar} tar zxf $pkgtar gunzip $pkgtar cd $pkgfull ./configure --prefix=$prefix && make && make install && installed_pkg="${installed_pkg} ${pkgfull}" if [ $? -ne 0 ] ; then echo echo "Something went wrong while building $pkg" echo "Only these packages are installed: $installed_pkg" echo exit 2 fi cd .. done cd $currdir rm -rf $wrkdir # link libtoolize to glibtoolize cd $prefix/bin ln -s libtoolize glibtoolize cd $currdir # restore old path export PATH=$savepath echo echo echo " ********************************************** " echo echo " Installed $installed_pkg " echo " to ${prefix}." echo echo " Remember to add" echo " $prefix/bin" echo " to the start of your PATH!" echo echo " ********************************************** " echo