binutils-gdb/intl/Makefile.in

262 lines
6.7 KiB
Makefile
Raw Normal View History

# Makefile for directory with message catalog handling library of GNU gettext
# Copyright (C) 1995-1998, 2000-2003 Free Software Foundation, Inc.
1999-05-03 15:29:11 +08:00
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library General Public License as published
# by the Free Software Foundation; either version 2, or (at your option)
1999-05-03 15:29:11 +08:00
# 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
# Library General Public License for more details.
1999-05-03 15:29:11 +08:00
#
# You should have received a copy of the GNU Library 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.
1999-05-03 15:29:11 +08:00
# This Makefile has been modified from the original shipped with
# gettext 0.12.1 to remove the ability to install libintl (which
# we do not need nor want), the ability to build a shared library
# (likewise), and a large number of heinous kludges.
1999-05-03 15:29:11 +08:00
SHELL = @SHELL@
1999-05-03 15:29:11 +08:00
srcdir = @srcdir@
VPATH = $(srcdir)
1999-05-03 15:29:11 +08:00
prefix = @prefix@
exec_prefix = @exec_prefix@
transform = @program_transform_name@
libdir = @libdir@
includedir = @includedir@
2008-06-17 02:15:49 +08:00
datarootdir = @datarootdir@
datadir = @datadir@
1999-05-03 15:29:11 +08:00
localedir = $(datadir)/locale
aliaspath = $(localedir)
1999-05-03 15:29:11 +08:00
AR = ar
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
1999-05-03 15:29:11 +08:00
CC = @CC@
RANLIB = @RANLIB@
YACC = @INTLBISON@ -y -d
YFLAGS = --name-prefix=__gettext
1999-05-03 15:29:11 +08:00
CPPFLAGS = @CPPFLAGS@
CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
DEFS = -DHAVE_CONFIG_H
PICFLAG = @PICFLAG@
COMPILE = $(CC) -c $(CPPFLAGS) $(CFLAGS) $(PICFLAG) $(DEFS) $(DEFS-$@) $(INCLUDES)
HEADERS = \
gmo.h \
gettextP.h \
hash-string.h \
loadinfo.h \
intl: Unbreak intl build with bison 3 when no regeneration is needed [PR92008] As Iain reported, my change broke the case when one has bison >= 3, but make decides there is no reason to regenerate plural.c, unfortunately that seems to be a scenario I haven't tested. The problem is that the pregenerated plural.c has been generated with bison 1.35, but when config.h says HAVE_BISON3, the code assumes it is the bison3 variant. What used to work fine is when one has bison >= 3 and plural.c has been regenerated (e.g. do touch intl/plural.y and it will work), or when one doesn't have any bison (then nothing is regenerated, but HAVE_BISON3 isn't defined either), or when one has bison < 3 and doesn't need to regenerate, or when one has bison < 3 and it is regenerated. The following patch fixes this, by killing the HAVE_BISON3 macro from config.h, and instead remembering the fact whether plural.c has been created with bison < 3 or bison >= 3 in a separate new plural-config.h header. The way this works: - user doesn't have bison - user has bison >= 3, but intl/{plural-config.h,plural.c} aren't older than intl/plural.y - user has bison < 3, but intl/{plural-config.h,plural.c} aren't older than intl/plural.y pregenerated !USE_BISON3 plural.c and plural-config.h from source dir is used, nothing in the objdir - user has bison >= 3 and intl/plural.y is newer Makefile generates plural.c and USE_BISON3 plural-config.h in the objdir, which is then used in preference to srcdir copies - user has bison < 3 and intl/plural.y is newer Makefile generates plural.c and !USE_BISON3 plural-config.h in the objdir, which is then used in preference to srcdir copies I have tested all these cases and make all-yes worked in all the cases. If one uses the unsupported ./configure where srcdir == objdir, I guess (though haven't tested) that it should still work, just it would be nice if such people didn't try to check in the plural{.c,-config.h} they have regenerated. What doesn't work, but didn't work before either (just tested gcc-9 branch too) is when one doesn't have bison and plural.y is newer than plural.c. Don't do that ;) intl/ChangeLog 2020-04-16 Jakub Jelinek <jakub@redhat.com> PR bootstrap/92008 * configure.ac: Remove HAVE_BISON3 AC_DEFINE. * Makefile.in (HEADERS): Add plural-config.h. (.y.c): Also create plural-config.h. (dcigettext.o loadmsgcat.o plural.o plural-exp.o): Also depend on plural-config.h. (plural-config.h): Depend on plural.c. * plural-exp.h: Include plural-config.h. Use USE_BISON3 instead of HAVE_BISON3. * plural.y: Use USE_BISON3 instead of HAVE_BISON3. * configure: Regenerated. * plural.c: Regenerated. * config.h.in: Regenerated. * plural-config.h: Generated.
2020-04-16 17:55:00 +08:00
plural-config.h \
plural-exp.h \
eval-plural.h \
localcharset.h \
relocatable.h \
libgnuintl.h
SOURCES = \
bindtextdom.c \
dcgettext.c \
dgettext.c \
gettext.c \
finddomain.c \
loadmsgcat.c \
localealias.c \
textdomain.c \
l10nflist.c \
explodename.c \
dcigettext.c \
dcngettext.c \
dngettext.c \
ngettext.c \
plural.y \
plural-exp.c \
localcharset.c \
relocatable.c \
localename.c \
log.c \
osdep.c \
intl-compat.c
OBJECTS = \
bindtextdom.o \
dcgettext.o \
dgettext.o \
gettext.o \
finddomain.o \
loadmsgcat.o \
localealias.o \
textdomain.o \
l10nflist.o \
explodename.o \
dcigettext.o \
dcngettext.o \
dngettext.o \
ngettext.o \
plural.o \
plural-exp.o \
localcharset.o \
relocatable.o \
localename.o \
log.o \
osdep.o \
intl-compat.o
DEFS-dcigettext.o = -DLOCALEDIR="\"$(localedir)\""
DEFS-localealias.o = -DLOCALE_ALIAS_PATH="\"$(aliaspath)\""
DEFS-localcharset.o = -DLIBDIR="\"$(libdir)\""
DEFS-relocatable.o = -DINSTALLDIR="\"$(libdir)\""
1999-05-03 15:29:11 +08:00
all: all-@USE_INCLUDED_LIBINTL@
all-yes: libintl.a libintl.h config.intl
all-no: # nothing
1999-05-03 15:29:11 +08:00
libintl.a: $(OBJECTS)
rm -f $@
$(AR) cru $@ $(OBJECTS)
$(RANLIB) $@
libintl.h: $(srcdir)/libgnuintl.h
cp $(srcdir)/libgnuintl.h $@
1999-05-03 15:29:11 +08:00
.SUFFIXES:
.SUFFIXES: .c .y .o
1999-05-03 15:29:11 +08:00
.c.o:
$(COMPILE) $<
1999-05-03 15:29:11 +08:00
.y.c:
intl: Unbreak intl build with bison 3 when no regeneration is needed [PR92008] As Iain reported, my change broke the case when one has bison >= 3, but make decides there is no reason to regenerate plural.c, unfortunately that seems to be a scenario I haven't tested. The problem is that the pregenerated plural.c has been generated with bison 1.35, but when config.h says HAVE_BISON3, the code assumes it is the bison3 variant. What used to work fine is when one has bison >= 3 and plural.c has been regenerated (e.g. do touch intl/plural.y and it will work), or when one doesn't have any bison (then nothing is regenerated, but HAVE_BISON3 isn't defined either), or when one has bison < 3 and doesn't need to regenerate, or when one has bison < 3 and it is regenerated. The following patch fixes this, by killing the HAVE_BISON3 macro from config.h, and instead remembering the fact whether plural.c has been created with bison < 3 or bison >= 3 in a separate new plural-config.h header. The way this works: - user doesn't have bison - user has bison >= 3, but intl/{plural-config.h,plural.c} aren't older than intl/plural.y - user has bison < 3, but intl/{plural-config.h,plural.c} aren't older than intl/plural.y pregenerated !USE_BISON3 plural.c and plural-config.h from source dir is used, nothing in the objdir - user has bison >= 3 and intl/plural.y is newer Makefile generates plural.c and USE_BISON3 plural-config.h in the objdir, which is then used in preference to srcdir copies - user has bison < 3 and intl/plural.y is newer Makefile generates plural.c and !USE_BISON3 plural-config.h in the objdir, which is then used in preference to srcdir copies I have tested all these cases and make all-yes worked in all the cases. If one uses the unsupported ./configure where srcdir == objdir, I guess (though haven't tested) that it should still work, just it would be nice if such people didn't try to check in the plural{.c,-config.h} they have regenerated. What doesn't work, but didn't work before either (just tested gcc-9 branch too) is when one doesn't have bison and plural.y is newer than plural.c. Don't do that ;) intl/ChangeLog 2020-04-16 Jakub Jelinek <jakub@redhat.com> PR bootstrap/92008 * configure.ac: Remove HAVE_BISON3 AC_DEFINE. * Makefile.in (HEADERS): Add plural-config.h. (.y.c): Also create plural-config.h. (dcigettext.o loadmsgcat.o plural.o plural-exp.o): Also depend on plural-config.h. (plural-config.h): Depend on plural.c. * plural-exp.h: Include plural-config.h. Use USE_BISON3 instead of HAVE_BISON3. * plural.y: Use USE_BISON3 instead of HAVE_BISON3. * configure: Regenerated. * plural.c: Regenerated. * config.h.in: Regenerated. * plural-config.h: Generated.
2020-04-16 17:55:00 +08:00
@BISON3_YES@ echo '#define USE_BISON3' > $(patsubst %.c,%-config.h,$@)
intl: Allow building both with old bison and bison >= 3 [PR92008] bison 3 apparently made a backwards incompatible change, dropped YYLEX_PARAM/YYPARSE_PARAM support and instead needs %param or %lex-param and %parse-param. Furthermore, there is no easy way to conditionalize on bison version in the *.y files. While e.g. glibc bumped bison requirement and just has the bison 3 compatible version, Richi said there are still systems with older bison where we want to build gcc. So, this patch instead determines during configure bison version, and depending on that when building plural.c (if building it at all) tweaks what is passed over to bison if needed. Tested with both bison 3 and bison 1.35, in each case with reconfiguring intl and building with make all-yes (as in my setup intl isn't normally used). intl/ChangeLog 2020-04-16 Jakub Jelinek <jakub@redhat.com> PR bootstrap/92008 * configure.ac: Add check for bison >= 3, AC_DEFINE HAVE_BISON3 and AC_SUBST BISON3_YES and BISON3_NO. * Makefile.in (.y.c): Prefix $(YACC) invocation with @BISON3_NO@, add @BISON3_YES@ prefixed rule to adjust the *.y source using sed and adjust output afterwards. * plural-exp.h (PLURAL_PARSE): If HAVE_BISON3 is defined, use struct parse_args * type for arg instead of void *. * plural.y: Add magic /* BISON3 ... */ comments with bison >= 3 directives. (YYLEX_PARAM, YYPARSE_PARAM): Don't define if HAVE_BISON3 is defined. (yylex, yyerror): Adjust prototypes and definitions if HAVE_BISON3 is defined. * plural.c: Regenerated. * config.h.in: Regenerated. * configure: Regenerated.
2020-04-16 16:12:30 +08:00
@BISON3_YES@ sed 's,%pure_parser,,;s,^/\* BISON3 \(.*\) \*/$$,\1,' $< > $@.y
@BISON3_YES@ $(YACC) $(YFLAGS) --output $@.c $@.y
@BISON3_YES@ sed 's/\.c\.y"/.y"/' $@.c > $@
@BISON3_YES@ rm -f $@.c $@.y $@.h
intl: Unbreak intl build with bison 3 when no regeneration is needed [PR92008] As Iain reported, my change broke the case when one has bison >= 3, but make decides there is no reason to regenerate plural.c, unfortunately that seems to be a scenario I haven't tested. The problem is that the pregenerated plural.c has been generated with bison 1.35, but when config.h says HAVE_BISON3, the code assumes it is the bison3 variant. What used to work fine is when one has bison >= 3 and plural.c has been regenerated (e.g. do touch intl/plural.y and it will work), or when one doesn't have any bison (then nothing is regenerated, but HAVE_BISON3 isn't defined either), or when one has bison < 3 and doesn't need to regenerate, or when one has bison < 3 and it is regenerated. The following patch fixes this, by killing the HAVE_BISON3 macro from config.h, and instead remembering the fact whether plural.c has been created with bison < 3 or bison >= 3 in a separate new plural-config.h header. The way this works: - user doesn't have bison - user has bison >= 3, but intl/{plural-config.h,plural.c} aren't older than intl/plural.y - user has bison < 3, but intl/{plural-config.h,plural.c} aren't older than intl/plural.y pregenerated !USE_BISON3 plural.c and plural-config.h from source dir is used, nothing in the objdir - user has bison >= 3 and intl/plural.y is newer Makefile generates plural.c and USE_BISON3 plural-config.h in the objdir, which is then used in preference to srcdir copies - user has bison < 3 and intl/plural.y is newer Makefile generates plural.c and !USE_BISON3 plural-config.h in the objdir, which is then used in preference to srcdir copies I have tested all these cases and make all-yes worked in all the cases. If one uses the unsupported ./configure where srcdir == objdir, I guess (though haven't tested) that it should still work, just it would be nice if such people didn't try to check in the plural{.c,-config.h} they have regenerated. What doesn't work, but didn't work before either (just tested gcc-9 branch too) is when one doesn't have bison and plural.y is newer than plural.c. Don't do that ;) intl/ChangeLog 2020-04-16 Jakub Jelinek <jakub@redhat.com> PR bootstrap/92008 * configure.ac: Remove HAVE_BISON3 AC_DEFINE. * Makefile.in (HEADERS): Add plural-config.h. (.y.c): Also create plural-config.h. (dcigettext.o loadmsgcat.o plural.o plural-exp.o): Also depend on plural-config.h. (plural-config.h): Depend on plural.c. * plural-exp.h: Include plural-config.h. Use USE_BISON3 instead of HAVE_BISON3. * plural.y: Use USE_BISON3 instead of HAVE_BISON3. * configure: Regenerated. * plural.c: Regenerated. * config.h.in: Regenerated. * plural-config.h: Generated.
2020-04-16 17:55:00 +08:00
@BISON3_NO@ echo '/* #define USE_BISON3 */' > $(patsubst %.c,%-config.h,$@)
intl: Allow building both with old bison and bison >= 3 [PR92008] bison 3 apparently made a backwards incompatible change, dropped YYLEX_PARAM/YYPARSE_PARAM support and instead needs %param or %lex-param and %parse-param. Furthermore, there is no easy way to conditionalize on bison version in the *.y files. While e.g. glibc bumped bison requirement and just has the bison 3 compatible version, Richi said there are still systems with older bison where we want to build gcc. So, this patch instead determines during configure bison version, and depending on that when building plural.c (if building it at all) tweaks what is passed over to bison if needed. Tested with both bison 3 and bison 1.35, in each case with reconfiguring intl and building with make all-yes (as in my setup intl isn't normally used). intl/ChangeLog 2020-04-16 Jakub Jelinek <jakub@redhat.com> PR bootstrap/92008 * configure.ac: Add check for bison >= 3, AC_DEFINE HAVE_BISON3 and AC_SUBST BISON3_YES and BISON3_NO. * Makefile.in (.y.c): Prefix $(YACC) invocation with @BISON3_NO@, add @BISON3_YES@ prefixed rule to adjust the *.y source using sed and adjust output afterwards. * plural-exp.h (PLURAL_PARSE): If HAVE_BISON3 is defined, use struct parse_args * type for arg instead of void *. * plural.y: Add magic /* BISON3 ... */ comments with bison >= 3 directives. (YYLEX_PARAM, YYPARSE_PARAM): Don't define if HAVE_BISON3 is defined. (yylex, yyerror): Adjust prototypes and definitions if HAVE_BISON3 is defined. * plural.c: Regenerated. * config.h.in: Regenerated. * configure: Regenerated.
2020-04-16 16:12:30 +08:00
@BISON3_NO@ $(YACC) $(YFLAGS) --output $@ $<
rm -f $*.h
INCLUDES = -I. -I$(srcdir)
1999-05-03 15:29:11 +08:00
check: all
# The installation targets have been disabled.
1999-05-03 15:29:11 +08:00
install: install-exec install-data
install-exec: all
install-data: all
install-strip: install
installdirs:
1999-05-03 15:29:11 +08:00
installcheck:
uninstall:
.PHONY: info dvi ps pdf html
.PHONY: install-info install-dvi install-ps install-pdf install-html
2006-05-24 10:02:46 +08:00
info dvi ps pdf html:
install-info install-dvi install-ps install-pdf install-html:
1999-05-03 15:29:11 +08:00
$(OBJECTS): config.h libintl.h
bindtextdom.o dcgettext.o dcigettext.o dcngettext.o dgettext.o \
dngettext.o finddomain.o gettext.o intl-compat.o loadmsgcat.o \
localealias.o ngettext.o textdomain.o: gettextP.h gmo.h loadinfo.h
dcigettext.o loadmsgcat.o: hash-string.h
explodename.o l10nflist.o: loadinfo.h
intl: Unbreak intl build with bison 3 when no regeneration is needed [PR92008] As Iain reported, my change broke the case when one has bison >= 3, but make decides there is no reason to regenerate plural.c, unfortunately that seems to be a scenario I haven't tested. The problem is that the pregenerated plural.c has been generated with bison 1.35, but when config.h says HAVE_BISON3, the code assumes it is the bison3 variant. What used to work fine is when one has bison >= 3 and plural.c has been regenerated (e.g. do touch intl/plural.y and it will work), or when one doesn't have any bison (then nothing is regenerated, but HAVE_BISON3 isn't defined either), or when one has bison < 3 and doesn't need to regenerate, or when one has bison < 3 and it is regenerated. The following patch fixes this, by killing the HAVE_BISON3 macro from config.h, and instead remembering the fact whether plural.c has been created with bison < 3 or bison >= 3 in a separate new plural-config.h header. The way this works: - user doesn't have bison - user has bison >= 3, but intl/{plural-config.h,plural.c} aren't older than intl/plural.y - user has bison < 3, but intl/{plural-config.h,plural.c} aren't older than intl/plural.y pregenerated !USE_BISON3 plural.c and plural-config.h from source dir is used, nothing in the objdir - user has bison >= 3 and intl/plural.y is newer Makefile generates plural.c and USE_BISON3 plural-config.h in the objdir, which is then used in preference to srcdir copies - user has bison < 3 and intl/plural.y is newer Makefile generates plural.c and !USE_BISON3 plural-config.h in the objdir, which is then used in preference to srcdir copies I have tested all these cases and make all-yes worked in all the cases. If one uses the unsupported ./configure where srcdir == objdir, I guess (though haven't tested) that it should still work, just it would be nice if such people didn't try to check in the plural{.c,-config.h} they have regenerated. What doesn't work, but didn't work before either (just tested gcc-9 branch too) is when one doesn't have bison and plural.y is newer than plural.c. Don't do that ;) intl/ChangeLog 2020-04-16 Jakub Jelinek <jakub@redhat.com> PR bootstrap/92008 * configure.ac: Remove HAVE_BISON3 AC_DEFINE. * Makefile.in (HEADERS): Add plural-config.h. (.y.c): Also create plural-config.h. (dcigettext.o loadmsgcat.o plural.o plural-exp.o): Also depend on plural-config.h. (plural-config.h): Depend on plural.c. * plural-exp.h: Include plural-config.h. Use USE_BISON3 instead of HAVE_BISON3. * plural.y: Use USE_BISON3 instead of HAVE_BISON3. * configure: Regenerated. * plural.c: Regenerated. * config.h.in: Regenerated. * plural-config.h: Generated.
2020-04-16 17:55:00 +08:00
dcigettext.o loadmsgcat.o plural.o plural-exp.o: plural-exp.h plural-config.h
dcigettext.o: eval-plural.h
localcharset.o: localcharset.h
localealias.o localcharset.o relocatable.o: relocatable.h
1999-05-03 15:29:11 +08:00
tags: TAGS
TAGS: $(HEADERS) $(SOURCES)
here=`pwd`; cd $(srcdir) && \
etags -o $$here/TAGS $(HEADERS) $(SOURCES)
1999-05-03 15:29:11 +08:00
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES)
here=`pwd`; cd $(srcdir) && \
ctags -o $$here/CTAGS $(HEADERS) $(SOURCES)
1999-05-03 15:29:11 +08:00
id: ID
1999-05-03 15:29:11 +08:00
ID: $(HEADERS) $(SOURCES)
here=`pwd`; cd $(srcdir) && \
mkid -f$$here/ID $(HEADERS) $(SOURCES)
1999-05-03 15:29:11 +08:00
mostlyclean:
rm -f *.a *.la *.o *.obj *.lo core core.* libintl.h
1999-05-03 15:29:11 +08:00
clean: mostlyclean
distclean: clean
2006-09-27 23:03:38 +08:00
rm -f config.status config.cache config.log config.intl config.h
rm -f Makefile ID TAGS
1999-05-03 15:29:11 +08:00
maintainer-clean: distclean
# The 'make dist' targets have been disabled; the GNU toolchain handles this
# with a script maintained separately from the Makefile.
dist:
distdir:
# Rules to rebuild the configuration
Makefile: $(srcdir)/Makefile.in config.status
$(SHELL) ./config.status Makefile
config.intl: $(srcdir)/config.intl.in config.status
$(SHELL) ./config.status config.intl
2006-09-27 23:03:38 +08:00
config.status: $(srcdir)/configure
$(SHELL) ./config.status --recheck
$(srcdir)/configure: @MAINT@ $(srcdir)/aclocal.m4 $(srcdir)/configure.ac
cd $(srcdir) && $(AUTOCONF)
aclocal_deps = \
$(srcdir)/configure.ac \
$(srcdir)/../config/codeset.m4 \
$(srcdir)/../config/gettext.m4 \
$(srcdir)/../config/glibc21.m4 \
$(srcdir)/../config/iconv.m4 \
$(srcdir)/../config/intdiv0.m4 \
$(srcdir)/../config/inttypes-pri.m4 \
$(srcdir)/../config/inttypes.m4 \
$(srcdir)/../config/inttypes_h.m4 \
$(srcdir)/../config/lcmessage.m4 \
$(srcdir)/../config/lib-ld.m4 \
$(srcdir)/../config/lib-link.m4 \
$(srcdir)/../config/lib-prefix.m4 \
$(srcdir)/../config/nls.m4 \
$(srcdir)/../config/po.m4 \
$(srcdir)/../config/progtest.m4 \
$(srcdir)/../config/stdint_h.m4 \
$(srcdir)/../config/uintmax_t.m4 \
$(srcdir)/../config/ulonglong.m4
$(srcdir)/aclocal.m4: @MAINT@ $(aclocal_deps)
cd $(srcdir) && $(ACLOCAL) -I ../config
config.h: stamp-h1
test -f config.h || (rm -f stamp-h1 && $(MAKE) stamp-h1)
intl: Unbreak intl build with bison 3 when no regeneration is needed [PR92008] As Iain reported, my change broke the case when one has bison >= 3, but make decides there is no reason to regenerate plural.c, unfortunately that seems to be a scenario I haven't tested. The problem is that the pregenerated plural.c has been generated with bison 1.35, but when config.h says HAVE_BISON3, the code assumes it is the bison3 variant. What used to work fine is when one has bison >= 3 and plural.c has been regenerated (e.g. do touch intl/plural.y and it will work), or when one doesn't have any bison (then nothing is regenerated, but HAVE_BISON3 isn't defined either), or when one has bison < 3 and doesn't need to regenerate, or when one has bison < 3 and it is regenerated. The following patch fixes this, by killing the HAVE_BISON3 macro from config.h, and instead remembering the fact whether plural.c has been created with bison < 3 or bison >= 3 in a separate new plural-config.h header. The way this works: - user doesn't have bison - user has bison >= 3, but intl/{plural-config.h,plural.c} aren't older than intl/plural.y - user has bison < 3, but intl/{plural-config.h,plural.c} aren't older than intl/plural.y pregenerated !USE_BISON3 plural.c and plural-config.h from source dir is used, nothing in the objdir - user has bison >= 3 and intl/plural.y is newer Makefile generates plural.c and USE_BISON3 plural-config.h in the objdir, which is then used in preference to srcdir copies - user has bison < 3 and intl/plural.y is newer Makefile generates plural.c and !USE_BISON3 plural-config.h in the objdir, which is then used in preference to srcdir copies I have tested all these cases and make all-yes worked in all the cases. If one uses the unsupported ./configure where srcdir == objdir, I guess (though haven't tested) that it should still work, just it would be nice if such people didn't try to check in the plural{.c,-config.h} they have regenerated. What doesn't work, but didn't work before either (just tested gcc-9 branch too) is when one doesn't have bison and plural.y is newer than plural.c. Don't do that ;) intl/ChangeLog 2020-04-16 Jakub Jelinek <jakub@redhat.com> PR bootstrap/92008 * configure.ac: Remove HAVE_BISON3 AC_DEFINE. * Makefile.in (HEADERS): Add plural-config.h. (.y.c): Also create plural-config.h. (dcigettext.o loadmsgcat.o plural.o plural-exp.o): Also depend on plural-config.h. (plural-config.h): Depend on plural.c. * plural-exp.h: Include plural-config.h. Use USE_BISON3 instead of HAVE_BISON3. * plural.y: Use USE_BISON3 instead of HAVE_BISON3. * configure: Regenerated. * plural.c: Regenerated. * config.h.in: Regenerated. * plural-config.h: Generated.
2020-04-16 17:55:00 +08:00
plural-config.h: plural.c
stamp-h1: $(srcdir)/config.h.in config.status
-rm -f stamp-h1
$(SHELL) ./config.status config.h
$(srcdir)/config.h.in: @MAINT@ $(srcdir)/aclocal.m4 $(srcdir)/configure.ac
cd $(srcdir) && $(AUTOHEADER)
-rm -f stamp-h1
1999-05-03 15:29:11 +08:00
# Tell versions [3.59,3.63) of GNU make not to export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: