# Bootstrap configuration.

# Copyright (C) 2009-2015 John W. Eaton
# 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
  fpucw
  frexp
  frexpf
  fseek
  ftell
  getcwd
  gethostname
  getopt-gnu
  gettimeofday
  glob
  isatty
  largefile
  link
  log
  log2
  log2-ieee
  log2f
  log2f-ieee
  logf
  lstat
  malloc-gnu
  mbrtowc
  mkdir
  mkfifo
  mkostemp
  mktime
  nanosleep
  nproc
  open
  opendir
  pathmax
  progname
  putenv
  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
  tempname
  time
  times
  tmpfile
  trunc
  truncf
  uname
  unistd
  unlink
  unsetenv
  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"

# Don't use git to update gnulib sources. We keep gnulib under a
# Mercurial subrepository instead.
use_git=false
GNULIB_SRCDIR=gnulib-hg

# Don't check for translations since we don't have any in Octave yet.
# This avoids the need for sha1sum or compatible utility in bootstrap.
SKIP_PO=true

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 CITATION; 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)
}

