bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gnulib and C++


From: John W. Eaton
Subject: Re: gnulib and C++
Date: Thu, 18 Feb 2010 15:49:05 -0500

On 18-Feb-2010, Ralf Wildenhues wrote:

| * John W. Eaton wrote on Thu, Feb 18, 2010 at 09:22:39PM CET:
| > On 18-Feb-2010, Ralf Wildenhues wrote:
| > | $ autoconf '--trace=AC_DEFINE:$1:$2' | grep ':rpl_[^:]*$'
| > 
| > Running this with the Octave configure.ac file produces only
| > 
| >   gmtime:rpl_gmtime
| >   localtime:rpl_localtime
| > 
| > but I know that this is far from a complete list, as shown by grep
| > rpl_ on all the files in the libgnu directory of the Octave sources
| > (where the gnulib module files are copied in the Octave source/build
| > trees).
| 
| Try it after autoreconf/aclocal have been run, or whatever other means
| you use to produce fully resolved autoconf macro files and includes.

I ran the autoconf comand after the Octave autogen.sh script was
run.  The autogen.sh script is

  #! /bin/sh
  # autogen.sh
  # Run this to generate all the initial makefiles, etc.

  set -e

  AUTOMAKE="automake --warnings=no-portability"

  echo "generating source lists for liboctave/Makefile..."

  (cd liboctave; ./config-ops.sh)

  echo "generating doc/interpreter/images.mk..."

  (cd doc/interpreter; ./config-images.sh)

  echo "generating src/DLD-FUNCTIONS/module.mk..."

  (cd src/DLD-FUNCTIONS; ./config-module.sh)

  echo "bootstrapping..."

  ./bootstrap "$@"

The various config-*.sh scripts that are called by autogen.sh generate
some Makefile fragments that are mostly just lists of filenames and
some dependencies that are more easily managed if they are
automatically generated rather than created entirely by hand.

The bootstrap script is from gnulib. The bootstrap.conf file that it
requires is

  # Bootstrap configuration.

  # Copyright (C) 2006, 2007 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="
    c-strcase
    crypto/md5
    fcntl
    fnmatch
    getcwd
    gethostname
    getopt-gnu
    gettimeofday
    glob
    link
    lstat
    mkdir
    mkfifo
    sleep
    nanosleep
    pathmax
    progname
    readlink
    rename
    rmdir
    sigaction
    signal
    sigprocmask
    sleep
    stat
    stdint
    strftime
    strptime
    symlink
    sys_stat
    sys_time
    sys_times
    time
    times
    unistd
    unlink
    vsnprintf
    round
  "

  # 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

  checkout_only_file=HACKING
  gnulib_tool_option_extras="--libtool"
  gnulib_name="libgnu"
  source_base="libgnu"
  is

| If that still doesn't work, I'd be interested in Autoconf and Automake
| versions, and a way to reproduce this.

I'm working on a Debian system and using

  $ autoconf --version 
  autoconf (GNU Autoconf) 2.65
  Copyright (C) 2009 Free Software Foundation, Inc.
  License GPLv3+/Autoconf: GNU GPL version 3 or later
  <http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html>
  This is free software: you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.

  Written by David J. MacKenzie and Akim Demaille.

  $ automake --version
  automake (GNU automake) 1.11.1
  Copyright (C) 2009 Free Software Foundation, Inc.
  License GPLv2+: GNU GPL version 2 or later 
<http://gnu.org/licenses/gpl-2.0.html>
  This is free software: you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.

  Written by Tom Tromey <address@hidden>
         and Alexandre Duret-Lutz <address@hidden>.

The current Octave sources are in a Mercurial archive on Savannah:

  hg clone http://hg.savannah.gnu.org/hgweb/octave/

if you are interested in checking this out, then clone the archive,
run ./autogen.sh, then you should be able to run configure.

Thanks,

jwe




reply via email to

[Prev in Thread] Current Thread [Next in Thread]