From 3b2942e671eadc31ca5cacf4c2965a1cac4edf04 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 15 Sep 2006 18:59:40 +0000 Subject: [PATCH] Use some of gnulib's new modules, taken from coreutils. * bootstrap: Sync from coreutils, except add support for gnulib_files. * bootstrap.conf: New file. (gnulib_modules): Add configmake, inttypes, unistd. (XGETTEXT_OPTIONS): Add complain, complain_at, fatal, fatal_at, warn, warn_at, unexpected_end. * configure.ac (AC_CONFIG_HEADERS): config.h is now in lib, not here. (gl_USE_SYSTEM_EXTENSIONS): Remove; gl_EARLY now does this. (gl_EARLY): Add. (AM_STDBOOL_H): Remove; gl_INIT now dows this. (gl_INIT): Add (GNULIB_AUTOCONF_SNIPPET): Remove. (AM_GNU_GETTEXT): Add; require formatstring macros since that's the pickiest. * lib/.cvsignore: Add inttypes_.h. * lib/Makefile.am: Include gnulib.mk first so we can append to it. (AM_CFLAGS): Add WERROR_CFLAGS, to be more like coreutils. (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES): Remove no-longer-necessary initializations. (lib_SOURCES): Remove, replacing by libbison_a_SOURCES. * lib/subpipe.c: Include unconditionally, now that we use the unistd module. * src/system.h: Likewise. * m4/.cvsignore: Remove *_gl.m4, gnulib.m4, inttypes_h.m4, uintmax_t.m4, ulonglong.m4. Add gettext.m4, gnulib-cache.m4, gnulib-comp.m4, gnulib-tool.m4, inttypes-h.m4, inttypes-pri.m4, inttypes.m4. * src/Makefile.am (DEFS): Remove, since configmake does this for us. (AM_CPPFLAGS): Remove -I../lib, since Automake does that for us. * src/system.h: Include inttypes.h unconditionally, now that we use the inttypes module. Don't bother to include stdint.h, since inttypes.h now does that for us. (LOCALEDIR): Remove, now that we use the configmake module. * src/getargs.c: Include configmake.h. * src/main.c: Likewise. * src/output.c: Likewise. * tests/atlocal.in (CPPFLAGS): Include from $abs_top_builddir/lib, not from $abs_top_builddir, since config.h moved. --- ChangeLog | 40 +++++ bootstrap | 438 +++++++++++++++++++++++++---------------------- bootstrap.conf | 64 +++++++ configure.ac | 17 +- lib/.cvsignore | 1 + lib/Makefile.am | 62 +++---- lib/subpipe.c | 4 +- m4/.cvsignore | 12 +- src/Makefile.am | 31 ++-- src/getargs.c | 1 + src/main.c | 6 +- src/output.c | 1 + src/system.h | 20 +-- tests/atlocal.in | 6 +- 14 files changed, 414 insertions(+), 289 deletions(-) create mode 100644 bootstrap.conf diff --git a/ChangeLog b/ChangeLog index ab7be133..f1cc07eb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,45 @@ 2006-09-15 Paul Eggert + Use some of gnulib's new modules, taken from coreutils. + + * bootstrap: Sync from coreutils, except add support for gnulib_files. + * bootstrap.conf: New file. + (gnulib_modules): Add configmake, inttypes, unistd. + (XGETTEXT_OPTIONS): Add complain, complain_at, + fatal, fatal_at, warn, warn_at, unexpected_end. + * configure.ac (AC_CONFIG_HEADERS): config.h is now in lib, not here. + (gl_USE_SYSTEM_EXTENSIONS): Remove; gl_EARLY now does this. + (gl_EARLY): Add. + (AM_STDBOOL_H): Remove; gl_INIT now dows this. + (gl_INIT): Add + (GNULIB_AUTOCONF_SNIPPET): Remove. + (AM_GNU_GETTEXT): Add; require formatstring macros since that's + the pickiest. + * lib/.cvsignore: Add inttypes_.h. + * lib/Makefile.am: Include gnulib.mk first so we can append to it. + (AM_CFLAGS): Add WERROR_CFLAGS, to be more like coreutils. + (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES): Remove + no-longer-necessary initializations. + (lib_SOURCES): Remove, replacing by libbison_a_SOURCES. + * lib/subpipe.c: Include unconditionally, now that we + use the unistd module. + * src/system.h: Likewise. + * m4/.cvsignore: Remove *_gl.m4, gnulib.m4, inttypes_h.m4, uintmax_t.m4, + ulonglong.m4. Add gettext.m4, gnulib-cache.m4, gnulib-comp.m4, + gnulib-tool.m4, inttypes-h.m4, inttypes-pri.m4, inttypes.m4. + * src/Makefile.am (DEFS): Remove, since configmake does this for us. + (AM_CPPFLAGS): Remove -I../lib, since Automake does that for us. + * src/system.h: Include inttypes.h unconditionally, now that we + use the inttypes module. Don't bother to include stdint.h, since + inttypes.h now does that for us. + (LOCALEDIR): Remove, now that we use the configmake module. + * src/getargs.c: Include configmake.h. + * src/main.c: Likewise. + * src/output.c: Likewise. + * tests/atlocal.in (CPPFLAGS): Include from $abs_top_builddir/lib, + not from $abs_top_builddir, since config.h moved. + + Port to GCC 2.95. First two problems reported by Michael Deutschmann in . diff --git a/bootstrap b/bootstrap index 62a8977e..0cd3e410 100755 --- a/bootstrap +++ b/bootstrap @@ -21,16 +21,76 @@ # Written by Paul Eggert. -package=bison - -# Translation Project URL, for the registry of all projects. -TP_URL='http://www.iro.umontreal.ca/translation/registry.cgi?domain=' +nl=' +' # Ensure file names are sorted consistently across platforms. # Also, ensure diagnostics are in English, e.g., "wget --help" below. LC_ALL=C export LC_ALL + +# Configuration. + +# List of gnulib modules needed. +gnulib_modules= + +# Any gnulib files needed that are not in modules. +gnulib_files= + +# Translation Project URL, for the registry of all projects +# and for the translation-team master directory. +TP_URL='http://www.iro.umontreal.ca/translation/registry.cgi?domain=' +TP_PO_URL='http://www.iro.umontreal.ca/translation/teams/PO/' + +extract_package_name=' + /^AC_INIT(/{ + /.*,.*,.*,/{ + s/// + s/[][]//g + p + q + } + s/AC_INIT(\[*// + s/]*,.*// + s/^GNU // + y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ + s/[^A-Za-z0-9_]/-/g + p + } +' +package=`sed -n "$extract_package_name" configure.ac` || exit + +# Extra files from gnulib, which override files from other sources. +gnulib_extra_files=' + build-aux/install-sh + build-aux/missing + build-aux/mdate-sh + build-aux/texinfo.tex + build-aux/depcomp + build-aux/config.guess + build-aux/config.sub + doc/INSTALL +' + +# Other locale categories that need message catalogs. +EXTRA_LOCALE_CATEGORIES= + +# Additional xgettext options to use. Use "\\\newline" to break lines. +XGETTEXT_OPTIONS='\\\ + --flag=_:1:pass-c-format\\\ + --flag=N_:1:pass-c-format\\\ + --flag=error:3:c-format --flag=error_at_line:5:c-format\\\ +' + +# Files we don't want to import. +excluded_files= + +# Override the default configuration, if necessary. +test -r bootstrap.conf && . ./bootstrap.conf + +# Translate configuration into internal form. + # Parse options. for option @@ -77,7 +137,7 @@ case ${GNULIB_SRCDIR--} in esac case $CVS_RSH in - '') export CVS_RSH=ssh;; + '') CVS_RSH=ssh; export CVS_RSH;; esac trap cleanup_gnulib 1 2 13 15 @@ -93,187 +153,176 @@ esac gnulib_tool=$GNULIB_SRCDIR/gnulib-tool <$gnulib_tool || exit -gnulib_modules=' -argmatch -dirname -error -extensions -fopen-safer -getopt -gettext -hash -malloc -mbswidth -obstack -quote -quotearg -stdbool -stdint -stpcpy -strerror -strtoul -strverscmp -unistd-safer -unlocked-io -verify -xalloc -xalloc-die -xstrndup -' - -previous_gnulib_modules= -while [ "$gnulib_modules" != "$previous_gnulib_modules" ]; do - previous_gnulib_modules=$gnulib_modules - gnulib_modules=` - (echo "$gnulib_modules" - for gnulib_module in $gnulib_modules; do - $gnulib_tool --extract-dependencies $gnulib_module - done) | sort -u - ` -done - -gnulib_files=` - (echo m4/warning.m4 - for gnulib_module in $gnulib_modules; do - $gnulib_tool --extract-filelist $gnulib_module - done) | sort -u -` - -gnulib_dirs=`echo "$gnulib_files" | sed 's,/[^/]*$,,' | sort -u` -mkdir -p $gnulib_dirs || exit - -for gnulib_file in $gnulib_files; do - dest=$gnulib_file - rm -f $dest && - echo "$0: Copying file $GNULIB_SRCDIR/$gnulib_file" && - cp -p $GNULIB_SRCDIR/$gnulib_file $dest || exit -done - -# This suppresses a bogus diagnostic -# "warning: macro `AM_LANGINFO_CODESET' not found in library". -echo "$0: patching m4/gettext.m4 to remove need for intl/* ..." -sed ' - /^AC_DEFUN(\[AM_INTL_SUBDIR],/,/^]/c\ - AC_DEFUN([AM_INTL_SUBDIR], []) - /^AC_DEFUN(\[gt_INTL_SUBDIR_CORE],/,/^]/c\ - AC_DEFUN([gt_INTL_SUBDIR_CORE], []) -' m4/gettext.m4 >m4/gettext_gl.m4 || exit - - # Get translations. get_translations() { subdir=$1 domain=$2 - echo "$0: getting translations into $subdir for $domain..." - (cd $subdir && rm -f dummy `ls | sed -n '/\.gmo$/p; /\.po/p'`) && - - $WGET_COMMAND -O "$subdir/$domain.html" "$TP_URL$domain" && - - sed -n 's|.*"http://[^"]*/translation/teams/PO/\([^/"]*\)/'"$domain"'-\([^/"]*\)\.[^."]*\.po".*|\1.\2|p' <"$subdir/$domain.html" | - sort -k 1,1 -k 2,2n -k2,2 -k3,3n -k3,3 -k4,4n -k4,4 -k5,5n -k5.5 | - awk -F. ' - { if (lang && $1 != lang) print lang, ver } - { lang = $1; ver = substr($0, index($0, ".") + 1) } - END { if (lang) print lang, ver } - ' | awk -v domain="$domain" -v subdir="$subdir" ' - { - lang = $1 - - # Work around bugs in Bison 2.3 translations uncovered by gettext 0.15. - # This workaround can be removed once the translations are fixed. - if (lang == "id" || lang == "tr") next - - ver = $2 - urlfmt = "" - printf "$WGET_COMMAND -O %s/%s.po 'http://www.iro.umontreal.ca/translation/teams/PO/%s/%s-%s.%s.po' &&\n", subdir, lang, lang, domain, ver, lang - } - END { print ":" } - ' | sh && - ls "$subdir"/*.po | sed 's|.*/||; s|\.po$||' >"$subdir/LINGUAS" && - rm "$subdir/$domain.html" + case $WGET_COMMAND in + '') + echo "$0: wget not available; skipping translations";; + ?*) + echo "$0: getting translations into $subdir for $domain..." && + + (cd $subdir && rm -f dummy `ls | sed -n '/\.gmo$/p; /\.po/p'`) && + $WGET_COMMAND -O "$subdir/$domain.html" "$TP_URL$domain" && + + sed -n 's|.*"http://[^"]*/translation/teams/PO/\([^/"]*\)/'"$domain"'-\([^/"]*\)\.[^."]*\.po".*|\1.\2|p' <"$subdir/$domain.html" | + sort -k 1,1 -k 2,2n -k2,2 -k3,3n -k3,3 -k4,4n -k4,4 -k5,5n -k5.5 | + awk -F. ' + { if (lang && $1 != lang) print lang, ver } + { lang = $1; ver = substr($0, index($0, ".") + 1) } + END { if (lang) print lang, ver } + ' | awk -v domain="$domain" -v subdir="$subdir" ' + { + lang = $1 + ver = $2 + urlfmt = "" + printf "{ $WGET_COMMAND -O %s/%s.po '\'"$TP_PO_URL"'/%s/%s-%s.%s.po'\'' &&\n", subdir, lang, lang, domain, ver, lang + printf " msgfmt -c -o /dev/null %s/%s.po || {\n", subdir, lang + printf " echo >&2 '\'"$0"': omitting translation for %s'\''\n", lang + printf " rm -f %s/%s.po; }; } &&\n", subdir, lang + } + END { print ":" } + ' | WGET_COMMAND="$WGET_COMMAND" sh;; + esac && + ls "$subdir"/*.po 2>/dev/null | + sed 's|.*/||; s|\.po$||' >"$subdir/LINGUAS" && + rm -f "$subdir/$domain.html" } case $SKIP_PO in '') case `wget --help` in *'--no-cache'*) - no_cache='--no-cache';; + WGET_COMMAND='wget -nv --no-cache';; *'--cache=on/off'*) - no_cache='--cache=off';; + WGET_COMMAND='wget -nv --cache=off';; + *'--non-verbose'*) + WGET_COMMAND='wget -nv';; *) - no_cache='';; + WGET_COMMAND='';; esac - WGET_COMMAND="wget -nv $no_cache" - export WGET_COMMAND - get_translations po $package || exit - case $package in - bison) + if test -d runtime-po; then get_translations runtime-po $package-runtime || exit - esac;; + fi;; esac +cp_mark_as_generated() +{ + cp_src=$1 + cp_dst=$2 + case $cp_dst in + *.[ch]) c1='/* '; c2=' */';; + *.texi) c1='@c '; c2= ;; + *.m4|*/Make*|Make*) c1='# ' ; c2= ;; + *) c1= ; c2= ;; + esac -# Generate autoconf and automake snippets. + if test -z "$c1"; then + cp "$cp_src" "$cp_dst" + return + fi -(echo '# This file is generated automatically by "bootstrap".' && - echo 'AC_DEFUN([GNULIB_AUTOCONF_SNIPPET],[' && - $gnulib_tool --extract-autoconf-snippet $gnulib_modules | - sed 's/AM_GNU_GETTEXT(\[external]/&, [need-ngettext]/' && - echo '])' -) >m4/gnulib.m4 || exit + ( + echo "$c1-*- buffer-read-only: t -*- vi: set ro:$c2" + echo "${c1}DO NOT EDIT! GENERATED AUTOMATICALLY!$c2" + cat "$cp_src" + ) >> "$cp_dst" +} -(echo '# This file is generated automatically by "bootstrap".' && - $gnulib_tool --extract-automake-snippet $gnulib_modules | - sed 's/^[ ]*AM_CPPFLAGS[ ]*+=/# (commented out by bootstrap) &/' -) >lib/gnulib.mk || exit +slurp() { + for dir in . `(cd $1 && find * -type d -print)`; do + copied= + sep= + for file in `ls $1/$dir`; do + test -d $1/$dir/$file && continue + for excluded_file in $excluded_files; do + test "$dir/$file" = "$excluded_file" && continue 2 + done + if test $file = Makefile.am; then + copied=$copied${sep}gnulib.mk; sep=$nl + echo "$0: Copying $1/$dir/$file to $dir/gnulib.mk ..." && + rm -f $dir/gnulib.mk + sed '/^[^#].*\/intl/s/^/#/' $1/$dir/$file >$dir/gnulib.mk + elif test -r ${2-no/such/dir}/$dir/$file || + grep -F "/$file/" $dir/CVS/Entries 2>/dev/null | + grep -q '^/[^/]*/[0-9]'; then + echo "$0: $dir/$file overrides $1/$dir/$file" + else + copied=$copied$sep$file; sep=$nl + if test $file = gettext.m4; then + echo "$0: patching m4/gettext.m4 to remove need for intl/* ..." + rm -f $dir/$file + sed ' + /^AC_DEFUN(\[AM_INTL_SUBDIR],/,/^]/c\ + AC_DEFUN([AM_INTL_SUBDIR], [ + /^AC_DEFUN(\[gt_INTL_SUBDIR_CORE],/,/^]/c\ + AC_DEFUN([gt_INTL_SUBDIR_CORE], []) + $a\ + AC_DEFUN([gl_LOCK_EARLY], []) + ' $1/$dir/$file >$dir/$file + else + rm -f $dir/$file + cp_mark_as_generated $1/$dir/$file $dir/$file + fi + fi || exit + done + + ig=$dir/.cvsignore + if test -n "$copied" && test -f $ig; then + echo "$copied" | sort -u - $ig | cmp -s - $ig || + echo "$copied" | sort -u - $ig -o $ig || exit + fi + done +} -# Reconfigure, getting other files. +# Create boot temporary directories to import from gnulib and gettext. + +bt='.#bootmp' +bt2=${bt}2 +rm -fr $bt $bt2 && +mkdir $bt $bt2 || exit + +# Import from gnulib. + +gnulib_tool_options="\ + --import\ + --no-changelog\ + --aux-dir $bt/build-aux\ + --doc-base $bt/doc\ + --lib lib$package\ + --m4-base $bt/m4/\ + --source-base $bt/lib/\ + --tests-base $bt/tests\ +" +echo "$0: $gnulib_tool $gnulib_tool_options --import ..." +$gnulib_tool $gnulib_tool_options --import $gnulib_modules && +slurp $bt || exit + +for file in $gnulib_files; do + src=$GNULIB_SRCDIR/$file + echo "$0: cp -fp $src $file" && + cp -fp $src $file || exit +done -echo "$0: autopoint --force ..." -autopoint --force || exit - -# We don't need intl, so remove it. -intl_files_to_remove=' - intl - m4/codeset.m4 - m4/gettext.m4 - m4/glibc2.m4 - m4/glibc21.m4 - m4/intdiv0.m4 - m4/intmax.m4 - m4/inttypes-h.m4 - m4/inttypes-pri.m4 - m4/lcmessage.m4 - m4/lock.m4 - m4/longdouble.m4 - m4/printf-posix.m4 - m4/signed.m4 - m4/size_max.m4 - m4/visibility.m4 - m4/wint_t.m4 - m4/xsize.m4 -' -echo $0: rm -fr $intl_files_to_remove ... -rm -fr $intl_files_to_remove || exit +# Import from gettext. -# Undo changes to gnulib files that autoreconf made. -for gnulib_file in $gnulib_files; do - test ! -f $gnulib_file || cmp -s $gnulib_file $GNULIB_SRCDIR/$gnulib_file || { - rm -f $gnulib_file && - echo "$0: Copying file $GNULIB_SRCDIR/$gnulib_file again" && - cp -p $GNULIB_SRCDIR/$gnulib_file $gnulib_file || exit - } -done +echo "$0: (cd $bt2; autopoint) ..." +cp configure.ac $bt2 && +(cd $bt2 && autopoint && rm configure.ac) && +slurp $bt2 $bt || exit -# Make sure aclocal.m4 is not older than input files. -sleep 1 +rm -fr $bt $bt2 || exit + + +# Reconfigure, getting other files. for command in \ 'aclocal --force -I m4' \ @@ -286,60 +335,43 @@ do done -# Put bug-reporting address into po/Makevars. +# Get some extra files from gnulib, overriding existing files. + +for file in $gnulib_extra_files; do + src=$GNULIB_SRCDIR/$file + case $file in + */INSTALL) dest=.;; + *) dest=$file;; + esac + echo "$0: cp -fp $src $dest" && + cp -fp $src $dest || exit +done + + +# Create gettext configuration. echo "$0: Creating po/Makevars from po/Makevars.template ..." +rm -f po/Makevars sed ' - /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-bison@gnu.org/ + /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/ + /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/ /^XGETTEXT_OPTIONS *=/{ s/$/ \\/ a\ - --flag=_:1:pass-c-format \\\ - --flag=N_:1:pass-c-format \\\ - --flag=error:3:c-format --flag=error_at_line:5:c-format \\\ - --flag=warn:1:c-format --flag=warn_at:2:c-format \\\ - --flag=complain:1:c-format --flag=complain_at:2:c-format \\\ - --flag=fatal:1:c-format --flag=fatal_at:2:c-format + '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+} } ' po/Makevars.template >po/Makevars -# Likewise for runtime-po/Makevars, except also change a few other parameters. -sed ' - s/^\(DOMAIN\) *=.*/\1 = bison-runtime/ - s/^\(subdir\) *=.*/\1 = runtime-po/ - s/^\(XGETTEXT_OPTIONS\) *=.*/\1 = --keyword=YY_/ -' runtime-po/Makevars - -# Copy identical files from po to runtime-po. -(cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po) - -# if src/parse-gram.[ch] are out of date, rebuild them. -parse_gram_y=`find src/parse-gram.y \ - '(' -newer src/parse-gram.c -o -newer src/parse-gram.h ')' \ - -print` || exit -case $parse_gram_y in -?*) - echo "$0: warning: bootstrapping with old src/parse-gram.[ch] files." - - echo "$0: touch -c src/parse-gram.[ch] ... " - touch -c src/parse-gram.[ch] || exit - - echo "$0: ./configure --disable-nls ..." - ./configure --disable-nls || exit - - echo "$0: (cd lib && make) ..." - (cd lib && make) || exit - - echo "$0: (cd src && make) ..." - (cd src && make) || exit - - echo "$0: rm -f src/parse-gram.c src/parse-gram.h ..." - rm -f src/parse-gram.c src/parse-gram.h || exit - - echo "$0: (cd src && make parse-gram.c parse-gram.h) ..." - (cd src && make parse-gram.c parse-gram.h) || exit - - echo "$0: make distclean ..." - make distclean || exit;; -esac +if test -d runtime-po; then + # Likewise for runtime-po/Makevars, except also change a few other parameters. + rm -f runtime-po/Makevars + sed ' + s/^\(DOMAIN\) *=.*/\1 = '"$package"'-runtime/ + s/^\(subdir\) *=.*/\1 = runtime-po/ + s/^\(XGETTEXT_OPTIONS\) *=.*/\1 = '"$XGETTEXT_OPTIONS_RUNTIME"'/ + ' runtime-po/Makevars + + # Copy identical files from po to runtime-po. + (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po) +fi echo "$0: done. Now you can run './configure'." diff --git a/bootstrap.conf b/bootstrap.conf new file mode 100644 index 00000000..f4b02b1c --- /dev/null +++ b/bootstrap.conf @@ -0,0 +1,64 @@ +# Bootstrap configuration. + +# Copyright (C) 2006 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 2, 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, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + + +# gnulib modules used by this package. +gnulib_modules=' + argmatch configmake dirname error extensions fopen-safer + getopt gettext hash inttypes malloc mbswidth obstack quote + quotearg stdbool stpcpy strerror strtoul strverscmp unistd + unistd-safer unlocked-io verify xalloc xalloc-die xstrndup +' + +# Any gnulib files needed that are not in modules. +gnulib_files=' + m4/warning.m4 +' + +# Additional xgettext options to use. Use "\\\newline" to break lines. +XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\ + --from-code=UTF-8\\\ + --flag=asprintf:2:c-format\\\ + --flag=complain:1:c-format --flag=complain_at:2:c-format\\\ + --flag=fatal:1:c-format --flag=fatal_at:2:c-format\\\ + --flag=warn:1:c-format --flag=warn_at:2:c-format\\\ + --flag=unexpected_end:2:c-format\\\ +' + +# Gettext supplies these files, but we don't need them since +# we don't have an intl subdirectory. +excluded_files=' + m4/codeset.m4 + m4/glibc2.m4 + m4/glibc21.m4 + m4/intdiv0.m4 + m4/intmax.m4 + m4/inttypes_h.m4 + m4/lcmessage.m4 + m4/lock.m4 + m4/longdouble.m4 + m4/printf-posix.m4 + m4/signed.m4 + m4/size_max.m4 + m4/uintmax_t.m4 + m4/ulonglong.m4 + m4/visibility.m4 + m4/wint_t.m4 + m4/xsize.m4 +' diff --git a/configure.ac b/configure.ac index dccca007..79dff3ac 100644 --- a/configure.ac +++ b/configure.ac @@ -27,13 +27,15 @@ AC_CONFIG_MACRO_DIR([m4]) # We don't have a file m4/Makefile.am, so we need Automake 1.8 or later. AM_INIT_AUTOMAKE([1.8 check-news readme-alpha dist-bzip2]) -AC_CONFIG_HEADERS([config.h:config.hin]) - -gl_USE_SYSTEM_EXTENSIONS +AC_CONFIG_HEADERS([lib/config.h:lib/config.hin]) # Checks for the compiler. AC_PROG_CC AM_PROG_CC_STDC + +# Gnulib (early checks). +gl_EARLY + AC_ARG_ENABLE(gcc-warnings, [ --enable-gcc-warnings turn on lots of GCC warnings (not recommended)], [case "${enableval}" in @@ -91,20 +93,23 @@ AC_DEFINE_UNQUOTED([M4], ["$M4"], [Define to the GNU M4 executable name.]) # Checks for header files. AC_CHECK_HEADERS_ONCE([locale.h]) -AM_STDBOOL_H # Checks for compiler characteristics. AC_C_INLINE +# Gnulib (later checks). Putting them here rather than right after +# gl_EARLY avoids some redundant checks. +gl_INIT + # Checks for library functions. AC_CHECK_FUNCS_ONCE([setlocale]) AM_WITH_DMALLOC BISON_PREREQ_SUBPIPE BISON_PREREQ_TIMEVAR -# gnulib and gettext. -GNULIB_AUTOCONF_SNIPPET +# Gettext. # We've never tested with gettext versions before 0.15, so play it safe. +AM_GNU_GETTEXT([external], [need-formatstring-macros]) AM_GNU_GETTEXT_VERSION([0.15]) BISON_I18N diff --git a/lib/.cvsignore b/lib/.cvsignore index a9280efe..843dfabc 100644 --- a/lib/.cvsignore +++ b/lib/.cvsignore @@ -23,6 +23,7 @@ gettext.h gnulib.mk hash.c hash.h +inttypes_.h malloc.c mbswidth.c mbswidth.h diff --git a/lib/Makefile.am b/lib/Makefile.am index f4d783e2..147a32f1 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -1,39 +1,27 @@ -## Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +# Make bison/lib. -## 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 2 of the License, or -## (at your option) any later version. +# Copyright (C) 2001, 2002, 2003, 2004, 2006 Free Software Foundation, Inc. -## 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. +# 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 2, or (at your option) +# any later version. -## You should have received a copy of the GNU General Public License -## along with this program; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -## 02110-1301 USA +# 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. -AM_CFLAGS = $(WARNING_CFLAGS) +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. -BUILT_SOURCES = -EXTRA_DIST = -MOSTLYCLEANFILES = - -lib_LIBRARIES = $(YACC_LIBRARY) -EXTRA_LIBRARIES = liby.a -noinst_LIBRARIES = libbison.a - -liby_a_SOURCES = main.c yyerror.c +include gnulib.mk -libbison_a_SOURCES = $(lib_SOURCES) -lib_SOURCES = \ - get-errno.h get-errno.c \ - subpipe.h subpipe.c \ - $(bitsets_sources) $(additional_bitsets_sources) $(timevars_sources) +AM_CFLAGS = $(WARNING_CFLAGS) $(WERROR_CFLAGS) -# Implementation of bitsets +# Implementation of bitsets. bitsets_sources = \ abitset.c abitset.h bbitset.h bitset.c bitset.h bitset_stats.c \ bitset_stats.h bitsetv.c bitsetv.h ebitset.c ebitset.h lbitset.c \ @@ -41,13 +29,19 @@ bitsets_sources = \ # Additional bitset operations. additional_bitsets_sources = \ - bitsetv-print.h bitsetv-print.c + bitsetv-print.h bitsetv-print.c # timevars, stolen from GCC. timevars_sources = \ - timevar.h timevar.c timevar.def + timevar.h timevar.c timevar.def -libbison_a_LIBADD = $(LIBOBJS) $(ALLOCA) -libbison_a_DEPENDENCIES = $(libbison_a_LIBADD) +# Non-gnulib sources in Bison's internal library. +libbison_a_SOURCES += \ + get-errno.h get-errno.c \ + subpipe.h subpipe.c \ + $(bitsets_sources) $(additional_bitsets_sources) $(timevars_sources) -include gnulib.mk +# The Yacc compatibility library. +lib_LIBRARIES = $(YACC_LIBRARY) +EXTRA_LIBRARIES = liby.a +liby_a_SOURCES = main.c yyerror.c diff --git a/lib/subpipe.c b/lib/subpipe.c index a6764d37..3b7fb31a 100644 --- a/lib/subpipe.c +++ b/lib/subpipe.c @@ -34,9 +34,7 @@ #include -#if HAVE_UNISTD_H -# include -#endif +#include #ifndef STDIN_FILENO # define STDIN_FILENO 0 #endif diff --git a/m4/.cvsignore b/m4/.cvsignore index 8a80997f..dd41312e 100644 --- a/m4/.cvsignore +++ b/m4/.cvsignore @@ -1,4 +1,3 @@ -*_gl.m4 absolute-header.m4 argmatch.m4 dirname.m4 @@ -8,10 +7,15 @@ error.m4 exitfail.m4 extensions.m4 getopt.m4 -gnulib.m4 +gettext.m4 +gnulib-cache.m4 +gnulib-comp.m4 +gnulib-tool.m4 hash.m4 iconv.m4 -inttypes_h.m4 +inttypes-h.m4 +inttypes-pri.m4 +inttypes.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 @@ -35,8 +39,6 @@ strnlen.m4 strtol.m4 strtoul.m4 strverscmp.m4 -uintmax_t.m4 -ulonglong.m4 unistd-safer.m4 unistd_h.m4 unlocked-io.m4 diff --git a/src/Makefile.am b/src/Makefile.am index 1a00d5c7..04e5ead3 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,24 +1,25 @@ -## Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# Make bison/src. -## 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 2 of the License, or -## (at your option) any later version. +# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 Free Software +# Foundation, Inc. -## 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. +# 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 2, or (at your option) +# any later version. -## You should have received a copy of the GNU General Public License -## along with this program; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -## 02110-1301 USA +# 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. -DEFS += -DPKGDATADIR=\"$(pkgdatadir)\" -DLOCALEDIR=\"$(datadir)/locale\" +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. AM_CFLAGS = $(WARNING_CFLAGS) $(WERROR_CFLAGS) -AM_CPPFLAGS = -I$(top_srcdir)/lib -I../lib +AM_CPPFLAGS = -I$(top_srcdir)/lib AM_YFLAGS = "-dv" LDADD = ../lib/libbison.a $(LIBINTL) diff --git a/src/getargs.c b/src/getargs.c index 597e2da5..026109f5 100644 --- a/src/getargs.c +++ b/src/getargs.c @@ -25,6 +25,7 @@ #include "revision.h" #include +#include #include /* Hack to get to declare getopt with a prototype. */ diff --git a/src/main.c b/src/main.c index 69e72fec..cd2867ea 100644 --- a/src/main.c +++ b/src/main.c @@ -1,8 +1,7 @@ /* Top level entry point of Bison. - Copyright (C) 1984, 1986, 1989, 1992, 1995, 2000, 2001, 2002, 2004, 2005, - 2006 - Free Software Foundation, Inc. + Copyright (C) 1984, 1986, 1989, 1992, 1995, 2000, 2001, 2002, 2004, + 2005, 2006 Free Software Foundation, Inc. This file is part of Bison, the GNU Compiler Compiler. @@ -26,6 +25,7 @@ #include #include +#include #include #include "LR0.h" diff --git a/src/output.c b/src/output.c index ae8bf136..d3a39f78 100644 --- a/src/output.c +++ b/src/output.c @@ -23,6 +23,7 @@ #include #include "system.h" +#include #include #include #include diff --git a/src/system.h b/src/system.h index 8c086616..ba0aea3e 100644 --- a/src/system.h +++ b/src/system.h @@ -45,15 +45,8 @@ # include #endif -#if HAVE_UNISTD_H -# include -#endif - -#if HAVE_INTTYPES_H -# include -#endif - -#include +#include +#include #ifndef UINTPTR_MAX /* This isn't perfect, but it's good enough for Bison, which needs @@ -120,15 +113,6 @@ typedef size_t uintptr_t; #define N_(Msgid) (Msgid) -/*-------------------------------. -| Fix broken compilation flags. | -`-------------------------------*/ - -#ifndef LOCALEDIR -# define LOCALEDIR "/usr/local/share/locale" -#endif - - /*-----------. | Booleans. | `-----------*/ diff --git a/tests/atlocal.in b/tests/atlocal.in index 15c99e62..9f258d7d 100644 --- a/tests/atlocal.in +++ b/tests/atlocal.in @@ -1,6 +1,8 @@ # @configure_input@ -*- shell-script -*- # Configurable variable values for Bison test suite. -# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + +# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software +# Foundation, Inc. # We need a C compiler. CC='@CC@' @@ -9,7 +11,7 @@ CC='@CC@' CFLAGS='@O0CFLAGS@ @WARNING_CFLAGS@ @WERROR_CFLAGS@' # We need `config.h'. -CPPFLAGS="-DHAVE_CONFIG_H=1 -I$abs_top_builddir @CPPFLAGS@" +CPPFLAGS="-DHAVE_CONFIG_H=1 -I$abs_top_builddir/lib @CPPFLAGS@" # Is the compiler GCC? GCC='@GCC@' -- 2.47.2