Fixes undominating relaxed loads issue
[oota-llvm.git] / autoconf / AutoRegen.sh
index 4014e2c06f8777b8b821d104330f85b7e0513ea2..86a26d925fc40495948a0ddb3219d8dcb4be2c3f 100755 (executable)
@@ -1,33 +1,54 @@
-#!/bin/sh
-die () {
-       echo "$@" 1>&2
-       exit 1
+#!/bin/bash
+
+die() {
+  echo "$@" 1>&2
+  exit 1
 }
-test -d autoconf && test -f autoconf/configure.ac && cd autoconf
-test -f configure.ac || die "Can't find 'autoconf' dir; please cd into it first"
-autoconf --version | egrep '2\.59' > /dev/null
-if test $? -ne 0 ; then
-  die "Your autoconf was not detected as being 2.59"
-fi
-aclocal --version | egrep '1\.9\.1' > /dev/null
-if test $? -ne 0 ; then
-  die "Your aclocal was not detected as being 1.9.1"
-fi
-autoheader --version | egrep '2\.59' > /dev/null
-if test $? -ne 0 ; then
-  die "Your autoheader was not detected as being 2.59"
-fi
-libtool --version | grep '1.5.10' > /dev/null
-if test $? -ne 0 ; then
-  die "Your libtool was not detected as being 1.5.10"
-fi
-echo "Note: Warnings about 'AC_CONFIG_SUBDIRS: you should use literals' are ok"
-echo "Regenerating aclocal.m4 with aclocal"
+
+clean() {
+  echo $1 | sed -e 's/\\//g'
+}
+
+### NOTE: ############################################################
+### These variables specify the tool versions we want to use.
+### Periods should be escaped with backslash for use by grep.
+###
+### If you update these, please also update docs/GettingStarted.rst
+want_autoconf_version='2\.60'
+want_autoheader_version=$want_autoconf_version
+want_aclocal_version='1\.9\.6'
+### END NOTE #########################################################
+
+outfile=configure
+configfile=configure.ac
+
+want_autoconf_version_clean=$(clean $want_autoconf_version)
+want_autoheader_version_clean=$(clean $want_autoheader_version)
+want_aclocal_version_clean=$(clean $want_aclocal_version)
+
+test -d autoconf && test -f autoconf/$configfile && cd autoconf
+test -f $configfile || die "Can't find 'autoconf' dir; please cd into it first"
+autoconf --version | grep $want_autoconf_version > /dev/null
+test $? -eq 0 || die "Your autoconf was not detected as being $want_autoconf_version_clean"
+aclocal --version | grep '^aclocal.*'$want_aclocal_version > /dev/null
+test $? -eq 0 || die "Your aclocal was not detected as being $want_aclocal_version_clean"
+autoheader --version | grep '^autoheader.*'$want_autoheader_version > /dev/null
+test $? -eq 0 || die "Your autoheader was not detected as being $want_autoheader_version_clean"
+echo ""
+echo "### NOTE: ############################################################"
+echo "### If you get *any* warnings from autoconf below you MUST fix the"
+echo "### scripts in the m4 directory because there are future forward"
+echo "### compatibility or platform support issues at risk. Please do NOT"
+echo "### commit any configure script that was generated with warnings"
+echo "### present. You should get just three 'Regenerating..' lines."
+echo "######################################################################"
+echo ""
+echo "Regenerating aclocal.m4 with aclocal $want_aclocal_version_clean"
 cwd=`pwd`
 aclocal --force -I $cwd/m4 || die "aclocal failed"
-echo "Regenerating configure with autoconf 2.5x"
-autoconf --force --warnings=all -o ../configure configure.ac || die "autoconf failed"
+echo "Regenerating configure with autoconf $want_autoconf_version_clean"
+autoconf --force --warnings=all -o ../$outfile $configfile || die "autoconf failed"
 cd ..
-echo "Regenerating config.h.in with autoheader 2.5x"
-autoheader -I autoconf -I autoconf/m4 autoconf/configure.ac || die "autoheader failed"
+echo "Regenerating config.h.in with autoheader $want_autoheader_version_clean"
+autoheader --warnings=all -I autoconf -I autoconf/m4 autoconf/$configfile || die "autoheader failed"
 exit 0