From a88fdc2ac3e9fb02fc1efd68dd8d40123b7ce4e3 Mon Sep 17 00:00:00 2001 From: Nicola Pero Date: Fri, 29 Apr 2011 17:31:51 +0000 Subject: [PATCH] In gcc/: 2011-04-29 Nicola Pero In gcc/: 2011-04-29 Nicola Pero * Makefile.in (ENABLE_MAINTAINER_RULES): New. In gcc/cp/: 2011-04-29 Nicola Pero , Mike Stump * Make-lang.in ($(srcdir)/cp/cfns.h): Enable the dependency only in maintainer mode. Use the --output-file option of gperf instead of > to prevent creating an empty cp/cfns.h when gperf is not available. From-SVN: r173178 --- gcc/ChangeLog | 4 ++++ gcc/Makefile.in | 11 +++++++++++ gcc/cp/ChangeLog | 8 ++++++++ gcc/cp/Make-lang.in | 14 ++++++++++++-- 4 files changed, 35 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ced5c1f13f6..f097822601b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2011-04-29 Nicola Pero + + * Makefile.in (ENABLE_MAINTAINER_RULES): New. + 2011-04-27 Xinliang David Li * tree-profile.c (init_ic_make_global_vars): Set diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 618046c0b1a..d6c176ad91b 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -165,8 +165,19 @@ C_STRICT_WARN = @c_strict_warn@ NOCOMMON_FLAG = @nocommon_flag@ # This is set by --disable-maintainer-mode (default) to "#" +# FIXME: 'MAINT' will always be set to an empty string, no matter if +# --disable-maintainer-mode is used or not. This is because the +# following will expand to "MAINT := " in maintainer mode, and to +# "MAINT := #" in non-maintainer mode, but because '#' starts a comment, +# they mean exactly the same thing for make. MAINT := @MAINT@ +# The following provides the variable ENABLE_MAINTAINER_RULES that can +# be used in language Make-lang.in makefile fragments to enable +# maintainer rules. So, ENABLE_MAINTAINER_RULES is 'true' in +# maintainer mode, and '' otherwise. +@MAINT@ ENABLE_MAINTAINER_RULES = true + # These are set by --enable-checking=valgrind. RUN_GEN = @valgrind_command@ VALGRIND_DRIVER_DEFINES = @valgrind_path_defines@ diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index e34f03f464f..7cd5eb66bcf 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,11 @@ +2011-04-29 Nicola Pero , + Mike Stump + + * Make-lang.in ($(srcdir)/cp/cfns.h): Enable the dependency only + in maintainer mode. Use the --output-file option of gperf instead + of > to prevent creating an empty cp/cfns.h when gperf is not + available. + 2011-04-28 Paolo Carlini PR c++/48798 diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in index d8bd9054919..3aef055346c 100644 --- a/gcc/cp/Make-lang.in +++ b/gcc/cp/Make-lang.in @@ -104,10 +104,20 @@ cc1plus$(exeext): $(CXX_OBJS) cc1plus-checksum.o $(BACKEND) $(LIBDEPS) +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \ $(CXX_OBJS) cc1plus-checksum.o $(BACKEND) $(LIBS) $(BACKENDLIBS) -# Special build rules. +ifeq ($(ENABLE_MAINTAINER_RULES), true) +# Special build rule. This is a maintainer rule, that is only +# available when GCC is configured with --enable-maintainer-mode. In +# other cases, it is not available to avoid triggering rebuilds if a +# user has the source checked out with unusual timestamps. $(srcdir)/cp/cfns.h: $(srcdir)/cp/cfns.gperf +else +# We keep the rule so that you can still force a rebuild, even if you +# didn't configure GCC with --enable-maintainer-mode, by manually +# deleting the $(srcdir)/cp/cfns.h file. +$(srcdir)/cp/cfns.h: +endif gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L ANSI-C \ - $(srcdir)/cp/cfns.gperf > $(srcdir)/cp/cfns.h + $(srcdir)/cp/cfns.gperf --output-file $(srcdir)/cp/cfns.h # # Build hooks: -- 2.11.4.GIT