view bootstrap.conf @ 17693:efbe746f8fa8

eliminate octave_comment_buffer singleton * lex.h (octave_base_lexer::comment_buffer): New class adapted from octave_comment_buffer class. No longer a singleton class. (octave_base_lexer::comment_buffer::reset): New function. (octave_base_lexer::reset): Call comment_buf.reset. (octave_base_lexer::comment_buf): New data member. (octave_base_lexer::get_comment): New function. * comment-list.h, comment-list.cc (octave_comment_buffer): Delete. Change all uses of octave_comment_buffer to use local comment_buf object instead. * parse.h (octave_base_parser::make_statement): New member function. * oct-parse.in.yy (make_statement): Delete. Change all uses of make_statement to use the member function instead. (safe_fclose): Don't extract and delete comment list here.
author John W. Eaton <jwe@octave.org>
date Fri, 18 Oct 2013 21:00:33 -0400
parents 7b305b36b87e
children d63878346099
line wrap: on
line source

# 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
  fpucw
  fseek
  ftell
  getcwd
  gethostname
  getopt-gnu
  gettimeofday
  glob
  isatty
  largefile
  link
  lstat
  malloc-gnu
  mbrtowc
  mkdir
  mkfifo
  mkostemp
  mktime
  nanosleep
  nproc
  open
  opendir
  pathmax
  putenv
  progname
  readdir
  readlink
  realloc-gnu
  rename
  rmdir
  round
  roundf
  select
  setenv
  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"

# 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)
}

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
}