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
+}