12cf89b61b009b2aa3cff107d2d3c01564c58b9e7Misha Brukman#!/bin/bash
22cf89b61b009b2aa3cff107d2d3c01564c58b9e7Misha Brukman
32cf89b61b009b2aa3cff107d2d3c01564c58b9e7Misha Brukmandie() {
49d63530e5a0c38206adf1da5a2fe81e40f556f97Misha Brukman  echo "$@" 1>&2
59d63530e5a0c38206adf1da5a2fe81e40f556f97Misha Brukman  exit 1
64940c57a1e1123f7e2db67bf109c16ac0bead489Brian Gaeke}
7f70414f3d06cacd8a681bd756248ca71e50d1817Gabor Greif
82cf89b61b009b2aa3cff107d2d3c01564c58b9e7Misha Brukmanclean() {
92cf89b61b009b2aa3cff107d2d3c01564c58b9e7Misha Brukman  echo $1 | sed -e 's/\\//g'
102cf89b61b009b2aa3cff107d2d3c01564c58b9e7Misha Brukman}
112cf89b61b009b2aa3cff107d2d3c01564c58b9e7Misha Brukman
122cf89b61b009b2aa3cff107d2d3c01564c58b9e7Misha Brukman### NOTE: ############################################################
132cf89b61b009b2aa3cff107d2d3c01564c58b9e7Misha Brukman### These variables specify the tool versions we want to use.
142cf89b61b009b2aa3cff107d2d3c01564c58b9e7Misha Brukman### Periods should be escaped with backslash for use by grep.
1568cecbde18da8a8fd84e03ef346a308019975f8aNick Lewycky###
160fa62a3122ee29be7275fd487398e69d71eb955aDmitri Gribenko### If you update these, please also update docs/GettingStarted.rst
17ee85bbcae15e6a2e400ce0f44791d753b37a6df6Scott Michelwant_autoconf_version='2\.60'
18f70414f3d06cacd8a681bd756248ca71e50d1817Gabor Greifwant_autoheader_version=$want_autoconf_version
192cf89b61b009b2aa3cff107d2d3c01564c58b9e7Misha Brukmanwant_aclocal_version='1\.9\.6'
202cf89b61b009b2aa3cff107d2d3c01564c58b9e7Misha Brukman### END NOTE #########################################################
21f70414f3d06cacd8a681bd756248ca71e50d1817Gabor Greif
22d00b82eacd344df260e5356c3fa2f09db11adb72Reid Spenceroutfile=configure
23d00b82eacd344df260e5356c3fa2f09db11adb72Reid Spencerconfigfile=configure.ac
24f70414f3d06cacd8a681bd756248ca71e50d1817Gabor Greif
252cf89b61b009b2aa3cff107d2d3c01564c58b9e7Misha Brukmanwant_autoconf_version_clean=$(clean $want_autoconf_version)
262cf89b61b009b2aa3cff107d2d3c01564c58b9e7Misha Brukmanwant_autoheader_version_clean=$(clean $want_autoheader_version)
272cf89b61b009b2aa3cff107d2d3c01564c58b9e7Misha Brukmanwant_aclocal_version_clean=$(clean $want_aclocal_version)
28f70414f3d06cacd8a681bd756248ca71e50d1817Gabor Greif
296843e38cb163bc4183f9a20375d90f5b0abb9256Reid Spencertest -d autoconf && test -f autoconf/$configfile && cd autoconf
306843e38cb163bc4183f9a20375d90f5b0abb9256Reid Spencertest -f $configfile || die "Can't find 'autoconf' dir; please cd into it first"
31f70414f3d06cacd8a681bd756248ca71e50d1817Gabor Greifautoconf --version | grep $want_autoconf_version > /dev/null
32f70414f3d06cacd8a681bd756248ca71e50d1817Gabor Greiftest $? -eq 0 || die "Your autoconf was not detected as being $want_autoconf_version_clean"
332cf89b61b009b2aa3cff107d2d3c01564c58b9e7Misha Brukmanaclocal --version | grep '^aclocal.*'$want_aclocal_version > /dev/null
342cf89b61b009b2aa3cff107d2d3c01564c58b9e7Misha Brukmantest $? -eq 0 || die "Your aclocal was not detected as being $want_aclocal_version_clean"
35f70414f3d06cacd8a681bd756248ca71e50d1817Gabor Greifautoheader --version | grep '^autoheader.*'$want_autoheader_version > /dev/null
36f70414f3d06cacd8a681bd756248ca71e50d1817Gabor Greiftest $? -eq 0 || die "Your autoheader was not detected as being $want_autoheader_version_clean"
378eacb0c3a7489b86a7f5523ff4992452bc0b7941Reid Spencerecho ""
388eacb0c3a7489b86a7f5523ff4992452bc0b7941Reid Spencerecho "### NOTE: ############################################################"
395d6c4a55816a01001bcd6df633c86bf313e098cfReid Spencerecho "### If you get *any* warnings from autoconf below you MUST fix the"
405d6c4a55816a01001bcd6df633c86bf313e098cfReid Spencerecho "### scripts in the m4 directory because there are future forward"
418eacb0c3a7489b86a7f5523ff4992452bc0b7941Reid Spencerecho "### compatibility or platform support issues at risk. Please do NOT"
426843e38cb163bc4183f9a20375d90f5b0abb9256Reid Spencerecho "### commit any configure script that was generated with warnings"
436843e38cb163bc4183f9a20375d90f5b0abb9256Reid Spencerecho "### present. You should get just three 'Regenerating..' lines."
448eacb0c3a7489b86a7f5523ff4992452bc0b7941Reid Spencerecho "######################################################################"
458eacb0c3a7489b86a7f5523ff4992452bc0b7941Reid Spencerecho ""
462cf89b61b009b2aa3cff107d2d3c01564c58b9e7Misha Brukmanecho "Regenerating aclocal.m4 with aclocal $want_aclocal_version_clean"
47dcd38750536329ed7f7e7085927b07cb4c4d682aReid Spencercwd=`pwd`
48b03adb8cab6122347d062427a27fef8d4bf85c70Reid Spenceraclocal --force -I $cwd/m4 || die "aclocal failed"
49f70414f3d06cacd8a681bd756248ca71e50d1817Gabor Greifecho "Regenerating configure with autoconf $want_autoconf_version_clean"
506843e38cb163bc4183f9a20375d90f5b0abb9256Reid Spencerautoconf --force --warnings=all -o ../$outfile $configfile || die "autoconf failed"
514940c57a1e1123f7e2db67bf109c16ac0bead489Brian Gaekecd ..
52f70414f3d06cacd8a681bd756248ca71e50d1817Gabor Greifecho "Regenerating config.h.in with autoheader $want_autoheader_version_clean"
53abec8f96e3e35fbb306c957674809c4ace04a620Reid Spencerautoheader --warnings=all -I autoconf -I autoconf/m4 autoconf/$configfile || die "autoheader failed"
544940c57a1e1123f7e2db67bf109c16ac0bead489Brian Gaekeexit 0
55