8
if [ "$(uname)" == "FreeBSD" -o "$(uname)" == "OpenBSD" ]; then
9
if which autoconf259 >/dev/null; then \
14
autoreconf --install --force || exit 1
15
./configure --enable-maintainer-mode "$@"
4
# Copyright (c) 2005-2009 United States Government as represented by
5
# the U.S. Army Research Laboratory.
7
# Redistribution and use in source and binary forms, with or without
8
# modification, are permitted provided that the following conditions
11
# 1. Redistributions of source code must retain the above copyright
12
# notice, this list of conditions and the following disclaimer.
14
# 2. Redistributions in binary form must reproduce the above
15
# copyright notice, this list of conditions and the following
16
# disclaimer in the documentation and/or other materials provided
17
# with the distribution.
19
# 3. The name of the author may not be used to endorse or promote
20
# products derived from this software without specific prior written
23
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
24
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
25
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
27
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
29
# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
31
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
32
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
# Script for automatically preparing the sources for compilation by
38
# performing the myrid of necessary steps. The script attempts to
39
# detect proper version support, and outputs warnings about particular
40
# systems that have autotool peculiarities.
42
# Basically, if everything is set up and installed correctly, the
43
# script will validate that minimum versions of the GNU Build System
44
# tools are installed, account for several common configuration
45
# issues, and then simply run autoreconf for you.
47
# If autoreconf fails, which can happen for many valid configurations,
48
# this script proceeds to run manual preparation steps effectively
49
# providing a POSIX shell script (mostly complete) reimplementation of
52
# The AUTORECONF, AUTOCONF, AUTOMAKE, LIBTOOLIZE, ACLOCAL, AUTOHEADER
53
# environment variables and corresponding _OPTIONS variables (e.g.
54
# AUTORECONF_OPTIONS) may be used to override the default automatic
55
# detection behaviors. Similarly the _VERSION variables will override
56
# the minimum required version numbers.
60
# To obtain help on usage:
63
# To obtain verbose output:
64
# ./autogen.sh --verbose
66
# To skip autoreconf and prepare manually:
67
# AUTORECONF=false ./autogen.sh
69
# To verbosely try running with an older (unsupported) autoconf:
70
# AUTOCONF_VERSION=2.50 ./autogen.sh --verbose
73
# Christopher Sean Morrison <morrison@brlcad.org>
76
# Sebastian Pipping <sebastian@pipping.org>
78
######################################################################
80
# set to minimum acceptible version of autoconf
81
if [ "x$AUTOCONF_VERSION" = "x" ] ; then
84
# set to minimum acceptible version of automake
85
if [ "x$AUTOMAKE_VERSION" = "x" ] ; then
86
AUTOMAKE_VERSION=1.6.0
88
# set to minimum acceptible version of libtool
89
if [ "x$LIBTOOL_VERSION" = "x" ] ; then
98
# extract copyright from header
99
__copyright="`grep Copyright $AUTOGEN_SH | head -${HEAD_N}1 | awk '{print $4}'`"
100
if [ "x$__copyright" = "x" ] ; then
101
__copyright="`date +%Y`"
104
# extract version from CVS Id string
105
__id="$Id: autogen.sh,v 1.8 2009/08/06 04:44:39 gfinch Exp $"
106
__version="`echo $__id | sed 's/.*\([0-9][0-9][0-9][0-9]\)[-\/]\([0-9][0-9]\)[-\/]\([0-9][0-9]\).*/\1\2\3/'`"
107
if [ "x$__version" = "x" ] ; then
111
echo "autogen.sh build preparation script by Christopher Sean Morrison"
112
echo " + config.guess download patch by Sebastian Pipping (2008-12-03)"
113
echo "revised 3-clause BSD-style license, copyright (c) $__copyright"
114
echo "script version $__version, ISO/IEC 9945 POSIX shell script"
122
echo "Usage: $AUTOGEN_SH [-h|--help] [-v|--verbose] [-q|--quiet] [-d|--download] [--version]"
123
echo " --help Help on $NAME_OF_AUTOGEN usage"
124
echo " --verbose Verbose progress output"
125
echo " --quiet Quiet suppressed progress output"
126
echo " --download Download the latest config.guess from gnulib"
127
echo " --version Only perform GNU Build System version checks"
129
echo "Description: This script will validate that minimum versions of the"
130
echo "GNU Build System tools are installed and then run autoreconf for you."
131
echo "Should autoreconf fail, manual preparation steps will be run"
132
echo "potentially accounting for several common preparation issues. The"
134
echo "AUTORECONF, AUTOCONF, AUTOMAKE, LIBTOOLIZE, ACLOCAL, AUTOHEADER,"
135
echo "PROJECT, & CONFIGURE environment variables and corresponding _OPTIONS"
136
echo "variables (e.g. AUTORECONF_OPTIONS) may be used to override the"
137
echo "default automatic detection behavior."
146
##########################
147
# VERSION_ERROR FUNCTION #
148
##########################
150
if [ "x$1" = "x" ] ; then
151
echo "INTERNAL ERROR: version_error was not provided a version"
154
if [ "x$2" = "x" ] ; then
155
echo "INTERNAL ERROR: version_error was not provided an application name"
159
$ECHO "ERROR: To prepare the ${PROJECT} build system from scratch,"
160
$ECHO " at least version $1 of $2 must be installed."
162
$ECHO "$NAME_OF_AUTOGEN does not need to be run on the same machine that will"
163
$ECHO "run configure or make. Either the GNU Autotools will need to be installed"
164
$ECHO "or upgraded on this system, or $NAME_OF_AUTOGEN must be run on the source"
165
$ECHO "code on another system and then transferred to here. -- Cheers!"
169
##########################
170
# VERSION_CHECK FUNCTION #
171
##########################
173
if [ "x$1" = "x" ] ; then
174
echo "INTERNAL ERROR: version_check was not provided a minimum version"
178
if [ "x$2" = "x" ] ; then
179
echo "INTERNAL ERROR: version check was not provided a comparison version"
184
# needed to handle versions like 1.10 and 1.4-p6
185
_min="`echo ${_min}. | sed 's/[^0-9]/./g' | sed 's/\.\././g'`"
186
_cur="`echo ${_cur}. | sed 's/[^0-9]/./g' | sed 's/\.\././g'`"
188
_min_major="`echo $_min | cut -d. -f1`"
189
_min_minor="`echo $_min | cut -d. -f2`"
190
_min_patch="`echo $_min | cut -d. -f3`"
192
_cur_major="`echo $_cur | cut -d. -f1`"
193
_cur_minor="`echo $_cur | cut -d. -f2`"
194
_cur_patch="`echo $_cur | cut -d. -f3`"
196
if [ "x$_min_major" = "x" ] ; then
199
if [ "x$_min_minor" = "x" ] ; then
202
if [ "x$_min_patch" = "x" ] ; then
205
if [ "x$_cur_minor" = "x" ] ; then
208
if [ "x$_cur_minor" = "x" ] ; then
211
if [ "x$_cur_patch" = "x" ] ; then
215
$VERBOSE_ECHO "Checking if ${_cur_major}.${_cur_minor}.${_cur_patch} is greater than ${_min_major}.${_min_minor}.${_min_patch}"
217
if [ $_min_major -lt $_cur_major ] ; then
219
elif [ $_min_major -eq $_cur_major ] ; then
220
if [ $_min_minor -lt $_cur_minor ] ; then
222
elif [ $_min_minor -eq $_cur_minor ] ; then
223
if [ $_min_patch -lt $_cur_patch ] ; then
225
elif [ $_min_patch -eq $_cur_patch ] ; then
234
######################################
235
# LOCATE_CONFIGURE_TEMPLATE FUNCTION #
236
######################################
237
locate_configure_template ( ) {
239
if test -f "./configure.ac" ; then
240
echo "./configure.ac"
241
elif test -f "./configure.in" ; then
242
echo "./configure.in"
243
elif test -f "$_pwd/configure.ac" ; then
244
echo "$_pwd/configure.ac"
245
elif test -f "$_pwd/configure.in" ; then
246
echo "$_pwd/configure.in"
247
elif test -f "$PATH_TO_AUTOGEN/configure.ac" ; then
248
echo "$PATH_TO_AUTOGEN/configure.ac"
249
elif test -f "$PATH_TO_AUTOGEN/configure.in" ; then
250
echo "$PATH_TO_AUTOGEN/configure.in"
259
PATH_TO_AUTOGEN="`dirname $0`"
260
NAME_OF_AUTOGEN="`basename $0`"
261
AUTOGEN_SH="$PATH_TO_AUTOGEN/$NAME_OF_AUTOGEN"
263
LIBTOOL_M4="${PATH_TO_AUTOGEN}/misc/libtool.m4"
265
if [ "x$HELP" = "x" ] ; then
268
if [ "x$QUIET" = "x" ] ; then
271
if [ "x$VERBOSE" = "x" ] ; then
274
if [ "x$VERSION_ONLY" = "x" ] ; then
277
if [ "x$DOWNLOAD" = "x" ] ; then
280
if [ "x$AUTORECONF_OPTIONS" = "x" ] ; then
281
AUTORECONF_OPTIONS="-i -f"
283
if [ "x$AUTOCONF_OPTIONS" = "x" ] ; then
284
AUTOCONF_OPTIONS="-f"
286
if [ "x$AUTOMAKE_OPTIONS" = "x" ] ; then
287
AUTOMAKE_OPTIONS="-a -c -f"
289
ALT_AUTOMAKE_OPTIONS="-a -c"
290
if [ "x$LIBTOOLIZE_OPTIONS" = "x" ] ; then
291
LIBTOOLIZE_OPTIONS="--automake -c -f"
293
ALT_LIBTOOLIZE_OPTIONS="--automake --copy --force"
294
if [ "x$ACLOCAL_OPTIONS" = "x" ] ; then
297
if [ "x$AUTOHEADER_OPTIONS" = "x" ] ; then
298
AUTOHEADER_OPTIONS=""
300
if [ "x$CONFIG_GUESS_URL" = "x" ] ; then
301
CONFIG_GUESS_URL="http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob_plain;f=build-aux/config.guess;hb=HEAD"
303
for arg in $ARGS ; do
307
x--quiet) QUIET=yes ;;
309
x--verbose) VERBOSE=yes ;;
310
x-[dD]) DOWNLOAD=yes ;;
311
x--download) DOWNLOAD=yes ;;
312
x-[vV]) VERBOSE=yes ;;
313
x--version) VERSION_ONLY=yes ;;
315
echo "Unknown option: $arg"
324
#####################
325
# environment check #
326
#####################
328
# sanity check before recursions potentially begin
329
if [ ! -f "$AUTOGEN_SH" ] ; then
330
echo "INTERNAL ERROR: $AUTOGEN_SH does not exist"
331
if [ ! "x$0" = "x$AUTOGEN_SH" ] ; then
332
echo "INTERNAL ERROR: dirname/basename inconsistency: $0 != $AUTOGEN_SH"
337
# force locale setting to C so things like date output as expected
340
# commands that this script expects
341
for __cmd in echo head tail pwd ; do
342
echo "test" | $__cmd > /dev/null 2>&1
343
if [ $? != 0 ] ; then
344
echo "INTERNAL ERROR: '${__cmd}' command is required"
348
echo "test" | grep "test" > /dev/null 2>&1
349
if test ! x$? = x0 ; then
350
echo "INTERNAL ERROR: grep command is required"
353
echo "test" | sed "s/test/test/" > /dev/null 2>&1
354
if test ! x$? = x0 ; then
355
echo "INTERNAL ERROR: sed command is required"
360
# determine the behavior of echo
361
case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
362
*c*,-n*) ECHO_N= ECHO_C='
364
*c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
365
*) ECHO_N= ECHO_C='\c' ECHO_T= ;;
368
# determine the behavior of head
369
case "x`echo 'head' | head -n 1 2>&1`" in
370
*xhead*) HEAD_N="n " ;;
374
# determine the behavior of tail
375
case "x`echo 'tail' | tail -n 1 2>&1`" in
376
*xtail*) TAIL_N="n " ;;
382
if [ "x$QUIET" = "xyes" ] ; then
383
if [ "x$VERBOSE" = "xyes" ] ; then
384
echo "Verbose output quelled by quiet option. Further output disabled."
388
if [ "x$VERBOSE" = "xyes" ] ; then
389
echo "Verbose output enabled"
395
# allow a recursive run to disable further recursions
396
if [ "x$RUN_RECURSIVE" = "x" ] ; then
401
################################################
402
# check for help arg and bypass version checks #
403
################################################
404
if [ "x`echo $ARGS | sed 's/.*[hH][eE][lL][pP].*/help/'`" = "xhelp" ] ; then
407
if [ "x$HELP" = "xyes" ] ; then
410
$ECHO "Help was requested. No preparation or configuration will be performed."
415
#######################
416
# set up signal traps #
417
#######################
418
untrap_abnormal ( ) {
419
for sig in 1 2 13 15; do
424
# do this cleanup whenever we exit.
426
# start from the root
427
if test -d "$START_PATH" ; then
431
# restore/delete backup files
432
if test "x$PFC_INIT" = "x1" ; then
437
# trap SIGHUP (1), SIGINT (2), SIGPIPE (13), SIGTERM (15)
438
for sig in 1 2 13 15; do
441
$ECHO "Aborting $NAME_OF_AUTOGEN: caught signal '$sig'"
443
# start from the root
444
if test -d "$START_PATH" ; then
448
# clean up on abnormal exit
449
$VERBOSE_ECHO "rm -rf autom4te.cache"
450
rm -rf autom4te.cache
452
if test -f "acinclude.m4.$$.backup" ; then
453
$VERBOSE_ECHO "cat acinclude.m4.$$.backup > acinclude.m4"
454
chmod u+w acinclude.m4
455
cat acinclude.m4.$$.backup > acinclude.m4
457
$VERBOSE_ECHO "rm -f acinclude.m4.$$.backup"
458
rm -f acinclude.m4.$$.backup
461
{ (exit 1); exit 1; }
466
#############################
467
# look for a configure file #
468
#############################
469
if [ "x$CONFIGURE" = "x" ] ; then
470
CONFIGURE="`locate_configure_template`"
471
if [ ! "x$CONFIGURE" = "x" ] ; then
472
$VERBOSE_ECHO "Found a configure template: $CONFIGURE"
475
$ECHO "Using CONFIGURE environment variable override: $CONFIGURE"
477
if [ "x$CONFIGURE" = "x" ] ; then
478
if [ "x$VERSION_ONLY" = "xyes" ] ; then
482
$ECHO "A configure.ac or configure.in file could not be located implying"
483
$ECHO "that the GNU Build System is at least not used in this directory. In"
484
$ECHO "any case, there is nothing to do here without one of those files."
486
$ECHO "ERROR: No configure.in or configure.ac file found in `pwd`"
494
if [ "x$PROJECT" = "x" ] ; then
495
PROJECT="`grep AC_INIT $CONFIGURE | grep -v '.*#.*AC_INIT' | tail -${TAIL_N}1 | sed 's/^[ ]*AC_INIT(\([^,)]*\).*/\1/' | sed 's/.*\[\(.*\)\].*/\1/'`"
496
if [ "x$PROJECT" = "xAC_INIT" ] ; then
497
# projects might be using the older/deprecated arg-less AC_INIT .. look for AM_INIT_AUTOMAKE instead
498
PROJECT="`grep AM_INIT_AUTOMAKE $CONFIGURE | grep -v '.*#.*AM_INIT_AUTOMAKE' | tail -${TAIL_N}1 | sed 's/^[ ]*AM_INIT_AUTOMAKE(\([^,)]*\).*/\1/' | sed 's/.*\[\(.*\)\].*/\1/'`"
500
if [ "x$PROJECT" = "xAM_INIT_AUTOMAKE" ] ; then
503
if [ "x$PROJECT" = "x" ] ; then
507
$ECHO "Using PROJECT environment variable override: $PROJECT"
509
$ECHO "Preparing the $PROJECT build system...please wait"
513
########################
514
# check for autoreconf #
515
########################
517
if [ "x$AUTORECONF" = "x" ] ; then
518
for AUTORECONF in autoreconf ; do
519
$VERBOSE_ECHO "Checking autoreconf version: $AUTORECONF --version"
520
$AUTORECONF --version > /dev/null 2>&1
528
$ECHO "Using AUTORECONF environment variable override: $AUTORECONF"
532
##########################
533
# autoconf version check #
534
##########################
536
if [ "x$AUTOCONF" = "x" ] ; then
537
for AUTOCONF in autoconf ; do
538
$VERBOSE_ECHO "Checking autoconf version: $AUTOCONF --version"
539
$AUTOCONF --version > /dev/null 2>&1
547
$ECHO "Using AUTOCONF environment variable override: $AUTOCONF"
551
if [ ! "x$_acfound" = "xyes" ] ; then
552
$ECHO "ERROR: Unable to locate GNU Autoconf."
555
_version="`$AUTOCONF --version | head -${HEAD_N}1 | sed 's/[^0-9]*\([0-9\.][0-9\.]*\)/\1/'`"
556
if [ "x$_version" = "x" ] ; then
559
$ECHO "Found GNU Autoconf version $_version"
560
version_check "$AUTOCONF_VERSION" "$_version"
561
if [ $? -ne 0 ] ; then
565
if [ "x$_report_error" = "xyes" ] ; then
566
version_error "$AUTOCONF_VERSION" "GNU Autoconf"
571
##########################
572
# automake version check #
573
##########################
575
if [ "x$AUTOMAKE" = "x" ] ; then
576
for AUTOMAKE in automake ; do
577
$VERBOSE_ECHO "Checking automake version: $AUTOMAKE --version"
578
$AUTOMAKE --version > /dev/null 2>&1
586
$ECHO "Using AUTOMAKE environment variable override: $AUTOMAKE"
591
if [ ! "x$_amfound" = "xyes" ] ; then
593
$ECHO "ERROR: Unable to locate GNU Automake."
596
_version="`$AUTOMAKE --version | head -${HEAD_N}1 | sed 's/[^0-9]*\([0-9\.][0-9\.]*\)/\1/'`"
597
if [ "x$_version" = "x" ] ; then
600
$ECHO "Found GNU Automake version $_version"
601
version_check "$AUTOMAKE_VERSION" "$_version"
602
if [ $? -ne 0 ] ; then
606
if [ "x$_report_error" = "xyes" ] ; then
607
version_error "$AUTOMAKE_VERSION" "GNU Automake"
612
########################
613
# check for libtoolize #
614
########################
616
HAVE_ALT_LIBTOOLIZE=no
618
if [ "x$LIBTOOLIZE" = "x" ] ; then
619
LIBTOOLIZE=libtoolize
620
$VERBOSE_ECHO "Checking libtoolize version: $LIBTOOLIZE --version"
621
$LIBTOOLIZE --version > /dev/null 2>&1
622
if [ ! $? = 0 ] ; then
625
if [ "x$HAVE_AUTORECONF" = "xno" ] ; then
626
$ECHO "Warning: libtoolize does not appear to be available."
628
$ECHO "Warning: libtoolize does not appear to be available. This means that"
629
$ECHO "the automatic build preparation via autoreconf will probably not work."
630
$ECHO "Preparing the build by running each step individually, however, should"
631
$ECHO "work and will be done automatically for you if autoreconf fails."
634
# look for some alternates
635
for tool in glibtoolize libtoolize15 libtoolize14 libtoolize13 ; do
636
$VERBOSE_ECHO "Checking libtoolize alternate: $tool --version"
637
_glibtoolize="`$tool --version > /dev/null 2>&1`"
639
$VERBOSE_ECHO "Found $tool --version"
640
_glti="`which $tool`"
641
if [ "x$_glti" = "x" ] ; then
642
$VERBOSE_ECHO "Cannot find $tool with which"
645
if test ! -f "$_glti" ; then
646
$VERBOSE_ECHO "Cannot use $tool, $_glti is not a file"
649
_gltidir="`dirname $_glti`"
650
if [ "x$_gltidir" = "x" ] ; then
651
$VERBOSE_ECHO "Cannot find $tool path with dirname of $_glti"
654
if test ! -d "$_gltidir" ; then
655
$VERBOSE_ECHO "Cannot use $tool, $_gltidir is not a directory"
658
HAVE_ALT_LIBTOOLIZE=yes
661
$ECHO "Fortunately, $tool was found which means that your system may simply"
662
$ECHO "have a non-standard or incomplete GNU Autotools install. If you have"
663
$ECHO "sufficient system access, it may be possible to quell this warning by"
666
sudo -V > /dev/null 2>&1
668
$ECHO " sudo ln -s $_glti $_gltidir/libtoolize"
671
$ECHO " ln -s $_glti $_gltidir/libtoolize"
673
$ECHO "Run that as root or with proper permissions to the $_gltidir directory"
685
$ECHO "Using LIBTOOLIZE environment variable override: $LIBTOOLIZE"
689
############################
690
# libtoolize version check #
691
############################
693
if [ ! "x$_ltfound" = "xyes" ] ; then
695
$ECHO "ERROR: Unable to locate GNU Libtool."
698
_version="`$LIBTOOLIZE --version | head -${HEAD_N}1 | sed 's/[^0-9]*\([0-9\.][0-9\.]*\)/\1/'`"
699
if [ "x$_version" = "x" ] ; then
702
$ECHO "Found GNU Libtool version $_version"
703
version_check "$LIBTOOL_VERSION" "$_version"
704
if [ $? -ne 0 ] ; then
708
if [ "x$_report_error" = "xyes" ] ; then
709
version_error "$LIBTOOL_VERSION" "GNU Libtool"
714
#####################
715
# check for aclocal #
716
#####################
717
if [ "x$ACLOCAL" = "x" ] ; then
718
for ACLOCAL in aclocal ; do
719
$VERBOSE_ECHO "Checking aclocal version: $ACLOCAL --version"
720
$ACLOCAL --version > /dev/null 2>&1
726
$ECHO "Using ACLOCAL environment variable override: $ACLOCAL"
729
export ACLOCAL="$ACLOCAL -I mk/autoconf"
732
########################
733
# check for autoheader #
734
########################
735
if [ "x$AUTOHEADER" = "x" ] ; then
736
for AUTOHEADER in autoheader ; do
737
$VERBOSE_ECHO "Checking autoheader version: $AUTOHEADER --version"
738
$AUTOHEADER --version > /dev/null 2>&1
744
$ECHO "Using AUTOHEADER environment variable override: $AUTOHEADER"
748
#########################
749
# check if version only #
750
#########################
751
$VERBOSE_ECHO "Checking whether to only output version information"
752
if [ "x$VERSION_ONLY" = "xyes" ] ; then
756
$ECHO "Version requested. No preparation or configuration will be performed."
761
#################################
762
# PROTECT_FROM_CLOBBER FUNCTION #
763
#################################
764
protect_from_clobber ( ) {
767
# protect COPYING & INSTALL from overwrite by automake. the
768
# automake force option will (inappropriately) ignore the existing
769
# contents of a COPYING and/or INSTALL files (depending on the
770
# version) instead of just forcing *missing* files like it does
771
# for AUTHORS, NEWS, and README. this is broken but extremely
772
# prevalent behavior, so we protect against it by keeping a backup
773
# of the file that can later be restored.
775
for file in COPYING INSTALL ; do
776
if test -f ${file} ; then
777
if test -f ${file}.$$.protect_from_automake.backup ; then
778
$VERBOSE_ECHO "Already backed up ${file} in `pwd`"
780
$VERBOSE_ECHO "Backing up ${file} in `pwd`"
781
$VERBOSE_ECHO "cp -p ${file} ${file}.$$.protect_from_automake.backup"
782
cp -p ${file} ${file}.$$.protect_from_automake.backup
789
##############################
790
# RECURSIVE_PROTECT FUNCTION #
791
##############################
792
recursive_protect ( ) {
794
# for projects using recursive configure, run the build
795
# preparation steps for the subdirectories. this function assumes
796
# START_PATH was set to pwd before recursion begins so that
797
# relative paths work.
799
# git 'r done, protect COPYING and INSTALL from being clobbered
802
if test -d autom4te.cache ; then
803
$VERBOSE_ECHO "Found an autom4te.cache directory, deleting it"
804
$VERBOSE_ECHO "rm -rf autom4te.cache"
805
rm -rf autom4te.cache
808
# find configure template
809
_configure="`locate_configure_template`"
810
if [ "x$_configure" = "x" ] ; then
813
# $VERBOSE_ECHO "Looking for configure template found `pwd`/$_configure"
816
# $VERBOSE_ECHO "Looking for subdirs in `pwd`"
817
_det_config_subdirs="`grep AC_CONFIG_SUBDIRS $_configure | grep -v '.*#.*AC_CONFIG_SUBDIRS' | sed 's/^[ ]*AC_CONFIG_SUBDIRS(\(.*\)).*/\1/' | sed 's/.*\[\(.*\)\].*/\1/'`"
819
for dir in $_det_config_subdirs ; do
820
if test -d "`pwd`/$dir" ; then
821
CHECK_DIRS="$CHECK_DIRS \"`pwd`/$dir\""
826
if [ ! "x$CHECK_DIRS" = "x" ] ; then
827
$VERBOSE_ECHO "Recursively scanning the following directories:"
828
$VERBOSE_ECHO " $CHECK_DIRS"
829
for dir in $CHECK_DIRS ; do
830
$VERBOSE_ECHO "Protecting files from automake in $dir"
834
# recursively git 'r done
838
} # end of recursive_protect
841
#############################
842
# RESTORE_CLOBBERED FUNCION #
843
#############################
844
restore_clobbered ( ) {
846
# The automake (and autoreconf by extension) -f/--force-missing
847
# option may overwrite COPYING and INSTALL even if they do exist.
848
# Here we restore the files if necessary.
852
for file in COPYING INSTALL ; do
853
if test -f ${file}.$$.protect_from_automake.backup ; then
854
if test -f ${file} ; then
855
# compare entire content, restore if needed
856
if test "x`cat ${file}`" != "x`cat ${file}.$$.protect_from_automake.backup`" ; then
857
if test "x$spacer" = "xno" ; then
862
$VERBOSE_ECHO "Restoring ${file} from backup (automake -f likely clobbered it)"
863
$VERBOSE_ECHO "rm -f ${file}"
865
$VERBOSE_ECHO "mv ${file}.$$.protect_from_automake.backup ${file}"
866
mv ${file}.$$.protect_from_automake.backup ${file}
868
elif test -f ${file}.$$.protect_from_automake.backup ; then
869
$VERBOSE_ECHO "mv ${file}.$$.protect_from_automake.backup ${file}"
870
mv ${file}.$$.protect_from_automake.backup ${file}
874
$VERBOSE_ECHO "rm -f ${file}.$$.protect_from_automake.backup"
875
rm -f ${file}.$$.protect_from_automake.backup
876
fi # -f ${file}.$$.protect_from_automake.backup
879
CONFIGURE="`locate_configure_template`"
880
if [ "x$CONFIGURE" = "x" ] ; then
884
_aux_dir="`grep AC_CONFIG_AUX_DIR $CONFIGURE | grep -v '.*#.*AC_CONFIG_AUX_DIR' | tail -${TAIL_N}1 | sed 's/^[ ]*AC_CONFIG_AUX_DIR(\(.*\)).*/\1/' | sed 's/.*\[\(.*\)\].*/\1/'`"
885
if test ! -d "$_aux_dir" ; then
889
for file in config.guess config.sub ltmain.sh ; do
890
if test -f "${_aux_dir}/${file}" ; then
891
$VERBOSE_ECHO "rm -f \"${_aux_dir}/${file}.backup\""
892
rm -f "${_aux_dir}/${file}.backup"
895
} # end of restore_clobbered
898
##############################
899
# RECURSIVE_RESTORE FUNCTION #
900
##############################
901
recursive_restore ( ) {
903
# restore COPYING and INSTALL from backup if they were clobbered
904
# for each directory recursively.
909
# find configure template
910
_configure="`locate_configure_template`"
911
if [ "x$_configure" = "x" ] ; then
916
_det_config_subdirs="`grep AC_CONFIG_SUBDIRS $_configure | grep -v '.*#.*AC_CONFIG_SUBDIRS' | sed 's/^[ ]*AC_CONFIG_SUBDIRS(\(.*\)).*/\1/' | sed 's/.*\[\(.*\)\].*/\1/'`"
918
for dir in $_det_config_subdirs ; do
919
if test -d "`pwd`/$dir" ; then
920
CHECK_DIRS="$CHECK_DIRS \"`pwd`/$dir\""
925
if [ ! "x$CHECK_DIRS" = "x" ] ; then
926
$VERBOSE_ECHO "Recursively scanning the following directories:"
927
$VERBOSE_ECHO " $CHECK_DIRS"
928
for dir in $CHECK_DIRS ; do
929
$VERBOSE_ECHO "Checking files for automake damage in $dir"
933
# recursively git 'r undone
937
} # end of recursive_restore
940
#######################
941
# INITIALIZE FUNCTION #
942
#######################
945
# this routine performs a variety of directory-specific
946
# initializations. some are sanity checks, some are preventive,
947
# and some are necessary setup detection.
949
# this function sets:
954
##################################
955
# check for a configure template #
956
##################################
957
CONFIGURE="`locate_configure_template`"
958
if [ "x$CONFIGURE" = "x" ] ; then
960
$ECHO "A configure.ac or configure.in file could not be located implying"
961
$ECHO "that the GNU Build System is at least not used in this directory. In"
962
$ECHO "any case, there is nothing to do here without one of those files."
964
$ECHO "ERROR: No configure.in or configure.ac file found in `pwd`"
968
#####################
969
# detect an aux dir #
970
#####################
971
_aux_dir="`grep AC_CONFIG_AUX_DIR $CONFIGURE | grep -v '.*#.*AC_CONFIG_AUX_DIR' | tail -${TAIL_N}1 | sed 's/^[ ]*AC_CONFIG_AUX_DIR(\(.*\)).*/\1/' | sed 's/.*\[\(.*\)\].*/\1/'`"
972
if test ! -d "$_aux_dir" ; then
975
$VERBOSE_ECHO "Detected auxillary directory: $_aux_dir"
978
################################
979
# detect a recursive configure #
980
################################
982
_det_config_subdirs="`grep AC_CONFIG_SUBDIRS $CONFIGURE | grep -v '.*#.*AC_CONFIG_SUBDIRS' | sed 's/^[ ]*AC_CONFIG_SUBDIRS(\(.*\)).*/\1/' | sed 's/.*\[\(.*\)\].*/\1/'`"
983
for dir in $_det_config_subdirs ; do
984
if test -d "`pwd`/$dir" ; then
985
$VERBOSE_ECHO "Detected recursive configure directory: `pwd`/$dir"
986
CONFIG_SUBDIRS="$CONFIG_SUBDIRS `pwd`/$dir"
990
###########################################################
991
# make sure certain required files exist for GNU projects #
992
###########################################################
994
_marker_found_message_intro='Detected non-GNU marker "'
995
_marker_found_message_mid='" in '
996
for marker in foreign cygnus ; do
997
_marker_found_message=${_marker_found_message_intro}${marker}${_marker_found_message_mid}
998
_marker_found="`grep 'AM_INIT_AUTOMAKE.*'${marker} $CONFIGURE`"
999
if [ ! "x$_marker_found" = "x" ] ; then
1000
$VERBOSE_ECHO "${_marker_found_message}`basename \"$CONFIGURE\"`"
1003
if test -f "`dirname \"$CONFIGURE\"/Makefile.am`" ; then
1004
_marker_found="`grep 'AUTOMAKE_OPTIONS.*'${marker} Makefile.am`"
1005
if [ ! "x$_marker_found" = "x" ] ; then
1006
$VERBOSE_ECHO "${_marker_found_message}Makefile.am"
1011
if [ "x${_marker_found}" = "x" ] ; then
1013
for file in AUTHORS COPYING ChangeLog INSTALL NEWS README ; do
1014
if [ ! -f $file ] ; then
1015
$VERBOSE_ECHO "Touching ${file} since it does not exist"
1016
_suggest_foreign=yes
1021
if [ "x${_suggest_foreign}" = "xyes" ] ; then
1023
$ECHO "Warning: Several files expected of projects that conform to the GNU"
1024
$ECHO "coding standards were not found. The files were automatically added"
1025
$ECHO "for you since you do not have a 'foreign' declaration specified."
1027
$ECHO "Considered adding 'foreign' to AM_INIT_AUTOMAKE in `basename \"$CONFIGURE\"`"
1028
if test -f "`dirname \"$CONFIGURE\"/Makefile.am`" ; then
1029
$ECHO "or to AUTOMAKE_OPTIONS in your top-level Makefile.am file."
1035
##################################################
1036
# make sure certain generated files do not exist #
1037
##################################################
1038
for file in config.guess config.sub ltmain.sh ; do
1039
if test -f "${_aux_dir}/${file}" ; then
1040
$VERBOSE_ECHO "mv -f \"${_aux_dir}/${file}\" \"${_aux_dir}/${file}.backup\""
1041
mv -f "${_aux_dir}/${file}" "${_aux_dir}/${file}.backup"
1045
############################
1046
# search alternate m4 dirs #
1047
############################
1050
if [ -d $dir ] ; then
1051
$VERBOSE_ECHO "Found extra aclocal search directory: $dir"
1052
SEARCH_DIRS="$SEARCH_DIRS -I $dir"
1056
######################################
1057
# remove any previous build products #
1058
######################################
1059
if test -d autom4te.cache ; then
1060
$VERBOSE_ECHO "Found an autom4te.cache directory, deleting it"
1061
$VERBOSE_ECHO "rm -rf autom4te.cache"
1062
rm -rf autom4te.cache
1064
# tcl/tk (and probably others) have a customized aclocal.m4, so can't delete it
1065
# if test -f aclocal.m4 ; then
1066
# $VERBOSE_ECHO "Found an aclocal.m4 file, deleting it"
1067
# $VERBOSE_ECHO "rm -f aclocal.m4"
1071
} # end of initialize()
1081
# Before running autoreconf or manual steps, some prep detection work
1082
# is necessary or useful. Only needs to occur once per directory, but
1083
# does need to traverse the entire subconfigure hierarchy to protect
1084
# files from being clobbered even by autoreconf.
1087
# start from where we started
1090
# get ready to process
1094
#########################################
1095
# DOWNLOAD_GNULIB_CONFIG_GUESS FUNCTION #
1096
#########################################
1098
# TODO - should make sure wget/curl exist and/or work before trying to
1101
download_gnulib_config_guess () {
1102
# abuse gitweb to download gnulib's latest config.guess via HTTP
1103
config_guess_temp="config.guess.$$.download"
1105
for __cmd in wget curl fetch ; do
1106
$VERBOSE_ECHO "Checking for command ${__cmd}"
1107
${__cmd} --version > /dev/null 2>&1
1109
if [ ! $ret = 0 ] ; then
1113
__cmd_version=`${__cmd} --version | head -n 1 | sed -e 's/^[^0-9]\+//' -e 's/ .*//'`
1114
$VERBOSE_ECHO "Found ${__cmd} ${__cmd_version}"
1129
$VERBOSE_ECHO "Running $__cmd \"${CONFIG_GUESS_URL}\" $opts \"${config_guess_temp}\""
1130
eval "$__cmd \"${CONFIG_GUESS_URL}\" $opts \"${config_guess_temp}\"" > /dev/null 2>&1
1131
if [ $? = 0 ] ; then
1132
mv -f "${config_guess_temp}" ${_aux_dir}/config.guess
1138
if [ ! $ret = 0 ] ; then
1139
$ECHO "Warning: config.guess download failed from: $CONFIG_GUESS_URL"
1140
rm -f "${config_guess_temp}"
1145
##############################
1146
# LIBTOOLIZE_NEEDED FUNCTION #
1147
##############################
1148
libtoolize_needed () {
1149
ret=1 # means no, don't need libtoolize
1150
for feature in AC_PROG_LIBTOOL AM_PROG_LIBTOOL LT_INIT ; do
1151
$VERBOSE_ECHO "Searching for $feature in $CONFIGURE"
1152
found="`grep \"^$feature.*\" $CONFIGURE`"
1153
if [ ! "x$found" = "x" ] ; then
1154
ret=0 # means yes, need to run libtoolize
1163
############################################
1164
# prepare build via autoreconf or manually #
1165
############################################
1166
reconfigure_manually=no
1167
if [ "x$HAVE_AUTORECONF" = "xyes" ] ; then
1169
$ECHO $ECHO_N "Automatically preparing build ... $ECHO_C"
1171
$VERBOSE_ECHO "$AUTORECONF -v $SEARCH_DIRS $AUTORECONF_OPTIONS"
1172
autoreconf_output="`$AUTORECONF -v $SEARCH_DIRS $AUTORECONF_OPTIONS 2>&1`"
1174
$VERBOSE_ECHO "$autoreconf_output"
1176
if [ ! $ret = 0 ] ; then
1177
if [ "x$HAVE_ALT_LIBTOOLIZE" = "xyes" ] ; then
1178
if [ ! "x`echo \"$autoreconf_output\" | grep libtoolize | grep \"No such file or directory\"`" = "x" ] ; then
1180
$ECHO "Warning: autoreconf failed but due to what is usually a common libtool"
1181
$ECHO "misconfiguration issue. This problem is encountered on systems that"
1182
$ECHO "have installed libtoolize under a different name without providing a"
1183
$ECHO "symbolic link or without setting the LIBTOOLIZE environment variable."
1185
$ECHO "Restarting the preparation steps with LIBTOOLIZE set to $LIBTOOLIZE"
1189
export RUN_RECURSIVE
1192
$VERBOSE_ECHO sh $AUTOGEN_SH "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9"
1193
sh "$AUTOGEN_SH" "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9"
1198
$ECHO "Warning: $AUTORECONF failed"
1200
if test -f ltmain.sh ; then
1201
$ECHO "libtoolize being run by autoreconf is not creating ltmain.sh in the auxillary directory like it should"
1204
$ECHO "Attempting to run the preparation steps individually"
1205
reconfigure_manually=yes
1207
if [ "x$DOWNLOAD" = "xyes" ] ; then
1208
if libtoolize_needed ; then
1209
download_gnulib_config_guess
1214
reconfigure_manually=yes
1218
############################
1219
# LIBTOOL_FAILURE FUNCTION #
1220
############################
1221
libtool_failure ( ) {
1223
# libtool is rather error-prone in comparison to the other
1224
# autotools and this routine attempts to compensate for some
1225
# common failures. the output after a libtoolize failure is
1226
# parsed for an error related to AC_PROG_LIBTOOL and if found, we
1227
# attempt to inject a project-provided libtool.m4 file.
1229
_autoconf_output="$1"
1231
if [ "x$RUN_RECURSIVE" = "xno" ] ; then
1232
# we already tried the libtool.m4, don't try again
1236
if test -f "$LIBTOOL_M4" ; then
1237
found_libtool="`$ECHO $_autoconf_output | grep AC_PROG_LIBTOOL`"
1238
if test ! "x$found_libtool" = "x" ; then
1239
if test -f acinclude.m4 ; then
1240
rm -f acinclude.m4.$$.backup
1241
$VERBOSE_ECHO "cat acinclude.m4 > acinclude.m4.$$.backup"
1242
cat acinclude.m4 > acinclude.m4.$$.backup
1244
$VERBOSE_ECHO "cat \"$LIBTOOL_M4\" >> acinclude.m4"
1245
chmod u+w acinclude.m4
1246
cat "$LIBTOOL_M4" >> acinclude.m4
1248
# don't keep doing this
1250
export RUN_RECURSIVE
1254
$ECHO "Restarting the preparation steps with libtool macros in acinclude.m4"
1255
$VERBOSE_ECHO sh $AUTOGEN_SH "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9"
1256
sh "$AUTOGEN_SH" "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9"
1263
###########################
1264
# MANUAL_AUTOGEN FUNCTION #
1265
###########################
1266
manual_autogen ( ) {
1268
##################################################
1269
# Manual preparation steps taken are as follows: #
1271
# libtoolize --automake -c -f #
1275
# automake -a -c -f #
1276
##################################################
1281
$VERBOSE_ECHO "$ACLOCAL $SEARCH_DIRS $ACLOCAL_OPTIONS"
1282
aclocal_output="`$ACLOCAL $SEARCH_DIRS $ACLOCAL_OPTIONS 2>&1`"
1284
$VERBOSE_ECHO "$aclocal_output"
1285
if [ ! $ret = 0 ] ; then $ECHO "ERROR: $ACLOCAL failed" && exit 2 ; fi
1290
if libtoolize_needed ; then
1291
if [ "x$HAVE_LIBTOOLIZE" = "xyes" ] ; then
1292
$VERBOSE_ECHO "$LIBTOOLIZE $LIBTOOLIZE_OPTIONS"
1293
libtoolize_output="`$LIBTOOLIZE $LIBTOOLIZE_OPTIONS 2>&1`"
1295
$VERBOSE_ECHO "$libtoolize_output"
1297
if [ ! $ret = 0 ] ; then $ECHO "ERROR: $LIBTOOLIZE failed" && exit 2 ; fi
1299
if [ "x$HAVE_ALT_LIBTOOLIZE" = "xyes" ] ; then
1300
$VERBOSE_ECHO "$LIBTOOLIZE $ALT_LIBTOOLIZE_OPTIONS"
1301
libtoolize_output="`$LIBTOOLIZE $ALT_LIBTOOLIZE_OPTIONS 2>&1`"
1303
$VERBOSE_ECHO "$libtoolize_output"
1305
if [ ! $ret = 0 ] ; then $ECHO "ERROR: $LIBTOOLIZE failed" && exit 2 ; fi
1312
# re-run again as instructed by libtoolize
1313
$VERBOSE_ECHO "$ACLOCAL $SEARCH_DIRS $ACLOCAL_OPTIONS"
1314
aclocal_output="`$ACLOCAL $SEARCH_DIRS $ACLOCAL_OPTIONS 2>&1`"
1316
$VERBOSE_ECHO "$aclocal_output"
1318
# libtoolize might put ltmain.sh in the wrong place
1319
if test -f ltmain.sh ; then
1320
if test ! -f "${_aux_dir}/ltmain.sh" ; then
1322
$ECHO "Warning: $LIBTOOLIZE is creating ltmain.sh in the wrong directory"
1324
$ECHO "Fortunately, the problem can be worked around by simply copying the"
1325
$ECHO "file to the appropriate location (${_aux_dir}/). This has been done for you."
1327
$VERBOSE_ECHO "cp -p ltmain.sh \"${_aux_dir}/ltmain.sh\""
1328
cp -p ltmain.sh "${_aux_dir}/ltmain.sh"
1329
$ECHO $ECHO_N "Continuing build preparation ... $ECHO_C"
1333
if [ "x$DOWNLOAD" = "xyes" ] ; then
1334
download_gnulib_config_guess
1336
fi # libtoolize_needed
1342
$VERBOSE_ECHO "$AUTOCONF $AUTOCONF_OPTIONS"
1343
autoconf_output="`$AUTOCONF $AUTOCONF_OPTIONS 2>&1`"
1345
$VERBOSE_ECHO "$autoconf_output"
1347
if [ ! $ret = 0 ] ; then
1348
# retry without the -f and check for usage of macros that are too new
1349
ac2_59_macros="AC_C_RESTRICT AC_INCLUDES_DEFAULT AC_LANG_ASSERT AC_LANG_WERROR AS_SET_CATFILE"
1350
ac2_55_macros="AC_COMPILER_IFELSE AC_FUNC_MBRTOWC AC_HEADER_STDBOOL AC_LANG_CONFTEST AC_LANG_SOURCE AC_LANG_PROGRAM AC_LANG_CALL AC_LANG_FUNC_TRY_LINK AC_MSG_FAILURE AC_PREPROC_IFELSE"
1351
ac2_54_macros="AC_C_BACKSLASH_A AC_CONFIG_LIBOBJ_DIR AC_GNU_SOURCE AC_PROG_EGREP AC_PROG_FGREP AC_REPLACE_FNMATCH AC_FUNC_FNMATCH_GNU AC_FUNC_REALLOC AC_TYPE_MBSTATE_T"
1354
ac_major="`echo ${AUTOCONF_VERSION}. | cut -d. -f1 | sed 's/[^0-9]//g'`"
1355
ac_minor="`echo ${AUTOCONF_VERSION}. | cut -d. -f2 | sed 's/[^0-9]//g'`"
1357
if [ $ac_major -lt 2 ] ; then
1358
macros_to_search="$ac2_59_macros $ac2_55_macros $ac2_54_macros"
1360
if [ $ac_minor -lt 54 ] ; then
1361
macros_to_search="$ac2_59_macros $ac2_55_macros $ac2_54_macros"
1362
elif [ $ac_minor -lt 55 ] ; then
1363
macros_to_search="$ac2_59_macros $ac2_55_macros"
1364
elif [ $ac_minor -lt 59 ] ; then
1365
macros_to_search="$ac2_59_macros"
1369
configure_ac_macros=__none__
1370
for feature in $macros_to_search ; do
1371
$VERBOSE_ECHO "Searching for $feature in $CONFIGURE"
1372
found="`grep \"^$feature.*\" $CONFIGURE`"
1373
if [ ! "x$found" = "x" ] ; then
1374
if [ "x$configure_ac_macros" = "x__none__" ] ; then
1375
configure_ac_macros="$feature"
1377
configure_ac_macros="$feature $configure_ac_macros"
1381
if [ ! "x$configure_ac_macros" = "x__none__" ] ; then
1383
$ECHO "Warning: Unsupported macros were found in $CONFIGURE"
1385
$ECHO "The `basename \"$CONFIGURE\"` file was scanned in order to determine if any"
1386
$ECHO "unsupported macros are used that exceed the minimum version"
1387
$ECHO "settings specified within this file. As such, the following macros"
1388
$ECHO "should be removed from configure.ac or the version numbers in this"
1389
$ECHO "file should be increased:"
1391
$ECHO "$configure_ac_macros"
1393
$ECHO $ECHO_N "Ignorantly continuing build preparation ... $ECHO_C"
1400
$VERBOSE_ECHO "$AUTOCONF"
1401
autoconf_output="`$AUTOCONF 2>&1`"
1403
$VERBOSE_ECHO "$autoconf_output"
1405
if [ ! $ret = 0 ] ; then
1406
# test if libtool is busted
1407
libtool_failure "$autoconf_output"
1409
# let the user know what went wrong
1413
$ECHO "ERROR: $AUTOCONF failed"
1416
# autoconf sans -f and possibly sans unsupported options succeed so warn verbosely
1418
$ECHO "Warning: autoconf seems to have succeeded by removing the following options:"
1419
$ECHO " AUTOCONF_OPTIONS=\"$AUTOCONF_OPTIONS\""
1421
$ECHO "Removing those options should not be necessary and indicate some other"
1422
$ECHO "problem with the build system. The build preparation is highly suspect"
1423
$ECHO "and may result in configuration or compilation errors. Consider"
1424
if [ "x$VERBOSE_ECHO" = "x:" ] ; then
1425
$ECHO "rerunning the build preparation with verbose output enabled."
1426
$ECHO " $AUTOGEN_SH --verbose"
1428
$ECHO "reviewing the minimum GNU Autotools version settings contained in"
1429
$ECHO "this script along with the macros being used in your `basename \"$CONFIGURE\"` file."
1432
$ECHO $ECHO_N "Continuing build preparation ... $ECHO_C"
1433
fi # autoconf ret = 0
1434
fi # autoconf ret = 0
1440
for feature in AM_CONFIG_HEADER AC_CONFIG_HEADER ; do
1441
$VERBOSE_ECHO "Searching for $feature in $CONFIGURE"
1442
found="`grep \"^$feature.*\" $CONFIGURE`"
1443
if [ ! "x$found" = "x" ] ; then
1448
if [ "x$need_autoheader" = "xyes" ] ; then
1449
$VERBOSE_ECHO "$AUTOHEADER $AUTOHEADER_OPTIONS"
1450
autoheader_output="`$AUTOHEADER $AUTOHEADER_OPTIONS 2>&1`"
1452
$VERBOSE_ECHO "$autoheader_output"
1453
if [ ! $ret = 0 ] ; then $ECHO "ERROR: $AUTOHEADER failed" && exit 2 ; fi
1454
fi # need_autoheader
1460
for feature in AM_INIT_AUTOMAKE ; do
1461
$VERBOSE_ECHO "Searching for $feature in $CONFIGURE"
1462
found="`grep \"^$feature.*\" $CONFIGURE`"
1463
if [ ! "x$found" = "x" ] ; then
1469
if [ "x$need_automake" = "xyes" ] ; then
1470
$VERBOSE_ECHO "$AUTOMAKE $AUTOMAKE_OPTIONS"
1471
automake_output="`$AUTOMAKE $AUTOMAKE_OPTIONS 2>&1`"
1473
$VERBOSE_ECHO "$automake_output"
1475
if [ ! $ret = 0 ] ; then
1481
$VERBOSE_ECHO "$AUTOMAKE $ALT_AUTOMAKE_OPTIONS"
1482
# retry without the -f
1483
automake_output="`$AUTOMAKE $ALT_AUTOMAKE_OPTIONS 2>&1`"
1485
$VERBOSE_ECHO "$automake_output"
1487
if [ ! $ret = 0 ] ; then
1488
# test if libtool is busted
1489
libtool_failure "$automake_output"
1491
# let the user know what went wrong
1495
$ECHO "ERROR: $AUTOMAKE failed"
1498
fi # automake ret = 0
1500
} # end of manual_autogen
1503
#####################################
1504
# RECURSIVE_MANUAL_AUTOGEN FUNCTION #
1505
#####################################
1506
recursive_manual_autogen ( ) {
1508
# run the build preparation steps manually for this directory
1511
# for projects using recursive configure, run the build
1512
# preparation steps for the subdirectories.
1513
if [ ! "x$CONFIG_SUBDIRS" = "x" ] ; then
1514
$VERBOSE_ECHO "Recursively configuring the following directories:"
1515
$VERBOSE_ECHO " $CONFIG_SUBDIRS"
1516
for dir in $CONFIG_SUBDIRS ; do
1517
$VERBOSE_ECHO "Processing recursive configure in $dir"
1521
# new directory, prepare
1524
# run manual steps for the subdir and any others below
1525
recursive_manual_autogen
1531
################################
1532
# run manual preparation steps #
1533
################################
1534
if [ "x$reconfigure_manually" = "xyes" ] ; then
1536
$ECHO $ECHO_N "Preparing build ... $ECHO_C"
1538
recursive_manual_autogen
1542
#########################
1543
# restore and summarize #
1544
#########################
1547
# restore COPYING and INSTALL from backup if necessary
1550
# make sure we end up with a configure script
1551
config_ac="`locate_configure_template`"
1552
config="`echo $config_ac | sed 's/\.ac$//' | sed 's/\.in$//'`"
1553
if [ "x$config" = "x" ] ; then
1554
$VERBOSE_ECHO "Could not locate the configure template (from `pwd`)"
1560
if test "x$config" = "x" -o ! -f "$config" ; then
1561
$ECHO "WARNING: The $PROJECT build system should now be prepared but there"
1562
$ECHO "does not seem to be a resulting configure file. This is unexpected"
1563
$ECHO "and likely the result of an error. You should run $NAME_OF_AUTOGEN"
1564
$ECHO "with the --verbose option to get more details on a potential"
1565
$ECHO "misconfiguration."
1567
$ECHO "The $PROJECT build system is now prepared. To build here, run:"
1576
# sh-basic-offset: 4
1578
# indent-tabs-mode: t
1580
# ex: shiftwidth=4 tabstop=8