Mercurial > octave-antonio
diff bootstrap.conf @ 15920:b91fc9348e2e
use hook functions for gnulib's bootrap script instead of our wrapper script
* bootstrap: Rename from build-aux/bootstrap_gnulib, replacing our
bootstrap wrapper script.
* bootstrap.conf: Rename from build-aux/bootstrap_gnulib.conf.
(AUTOMAKE): Define here instead of in top-level bootstrap wrapper
script.
(bootstrap_epilogue, bootstrap_post_import_hook): New functions to
perform pre- and post- autoreconf bootstrap actions.
* Makefile.am (EXTRA_DIST): Distribute bootstrap.conf. Remove
build-aux/bootstrap_gnulib and build-aux/bootstrap_gnulib.conf from
the list.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 10 Jan 2013 10:28:43 -0500 |
parents | build-aux/bootstrap_gnulib.conf@9b9f6dba39e0 |
children | 8122286c69a9 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bootstrap.conf Thu Jan 10 10:28:43 2013 -0500 @@ -0,0 +1,192 @@ +# Bootstrap configuration. + +# Copyright (C) 2006-2007, 2009-2012 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + + +# gnulib modules used by this package. +gnulib_modules=" + base64 + canonicalize + chdir + close + closedir + copysign + copysignf + crypto/md5 + dup2 + fclose + fcntl + fflush + filemode + float + floor + floorf + fnmatch + fopen + fseek + ftell + getcwd + gethostname + getopt-gnu + gettimeofday + glob + isatty + link + lstat + malloc-gnu + mkdir + mkfifo + mkostemp + mktime + nanosleep + nproc + open + opendir + pathmax + putenv + progname + readdir + readlink + realloc-gnu + rename + rmdir + round + roundf + select + sigaction + signal + sigprocmask + sleep + stat + stddef + stdint + stdio + strerror + strftime + strptime + symlink + sys_stat + sys_time + sys_times + time + times + tmpfile + trunc + truncf + unistd + unlink + vasprintf +" + +# Additional xgettext options to use. Use "\\\newline" to break lines. +XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\ + --from-code=UTF-8\\\ + --flag=asprintf:2:c-format --flag=vasprintf:2:c-format\\\ + --flag=asnprintf:3:c-format --flag=vasnprintf:3:c-format\\\ + --flag=wrapf:1:c-format\\\ +' + +# If "AM_GNU_GETTEXT(external" or "AM_GNU_GETTEXT([external]" +# appears in configure.ac, exclude some unnecessary files. +# Without grep's -E option (not portable enough, pre-configure), +# the following test is ugly. Also, this depends on the existence +# of configure.ac, not the obsolescent-named configure.in. But if +# you're using this infrastructure, you should care about such things. + +gettext_external=0 +grep '^[ ]*AM_GNU_GETTEXT(external\>' configure.ac > /dev/null && + gettext_external=1 +grep '^[ ]*AM_GNU_GETTEXT(\[external\]' configure.ac > /dev/null && + gettext_external=1 + +if test $gettext_external = 1; then + # Gettext supplies these files, but we don't need them since + # we don't have an intl subdirectory. + excluded_files=' + m4/glibc2.m4 + m4/intdiv0.m4 + m4/lcmessage.m4 + m4/lock.m4 + m4/printf-posix.m4 + m4/size_max.m4 + m4/uintmax_t.m4 + m4/ulonglong.m4 + m4/visibility.m4 + m4/xsize.m4 + ' +fi + +# Build prerequisites +buildreq="\ +autoconf 2.59 +automake 1.9.6 +git 1.5.5 +tar - +" +checkout_only_file=etc/HACKING +gnulib_tool_option_extras="--libtool" +gnulib_name="libgnu" +source_base="libgnu" + +## Use --foreign since we auto-generate the AUTHORS file and the default +## --gnu strictness level doesn't like it if the AUTHORS file is missing. + +AUTOMAKE="automake --foreign --warnings=no-portability" +export AUTOMAKE + +bootstrap_post_import_hook () +{ + ## Check for files that automake --gnu would normally look for, except + ## AUTHORS, which we autogenerate from the documentation files along + ## with building the rest of Octave, and INSTALL, which is linked from + ## gnulib/doc/INSTALL by the bootstrap script. + + for f in NEWS README COPYING; do + if ! test -f $f; then + echo "required file $f is missing" 2>&1 + exit 1 + fi + done + + echo "generating source lists for liboctave/operators/module.mk..." + + (cd liboctave/operators; ./config-ops.sh) + + echo "generating doc/interpreter/images.mk..." + + (cd doc/interpreter; ./config-images.sh) + + echo "generating libinterp/dldfcn/module.mk..." + + (cd libinterp/dldfcn; ./config-module.sh) +} + +bootstrap_epilogue () +{ + ## G77 is obsolete, but it is still the first option in the autoconf + ## Fortran macros. We should avoid it, because mixing old versions of + ## g77 with modern gcc and g++ causes trouble. The following will + ## make it harder (but not impossible) for users to make this mistake. + ## + ## FIXME -- we should really work to fix autoconf so that it prefers + ## gfortran over g77 even when searching for a Fortran 77 compiler. + + echo "replacing all occurrences of g77 with gfortran in configure script..." + + sed 's/g77/gfortran/g' configure > configure.t + mv configure.t configure + chmod 755 configure +}