diff --git a/gcc/ChangeLog b/gcc/ChangeLog index df2365ba706..b081a2c0674 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,18 @@ +2010-09-30 Ralf Wildenhues + + PR bootstrap/45796 + * Makefile.in (build/gen%$(build_exeext)): Move rule after all + special-casing for generators and turn into ... + ((genprog:%=build/gen%$(build_exeext))): ... this static pattern + rule, for better error messages in case of toplevel dependency + errors. + (genprog): Add hooks, rename to ... + (genprogerr): ... this, and let genprog also contain check, + checksum, condmd. + ((genprog:%=build/gen%$(build_exeext))): Rename to ... + ((genprogerr:%=build/gen%$(build_exeext))): ... this. + (build/genhooks$(build_exeext)): Remove now-unneeded dependency. + 2010-09-30 Jonathan Wakely Ralf Wildenhues diff --git a/gcc/Makefile.in b/gcc/Makefile.in index dc10c58a124..924fb86539f 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -3903,11 +3903,6 @@ build/genhooks.o : genhooks.c target.def $(BCONFIG_H) $(SYSTEM_H) errors.h # since they need to run on this machine # even if GCC is being compiled to run on some other machine. -# As a general rule... -build/gen%$(build_exeext): build/gen%.o $(BUILD_LIBDEPS) - $(LINKER_FOR_BUILD) $(BUILD_LINKERFLAGS) $(BUILD_LDFLAGS) -o $@ \ - $(filter-out $(BUILD_LIBDEPS), $^) $(BUILD_LIBS) - # All these programs use the RTL reader ($(BUILD_RTL)). genprogrtl = attr attrtab automata codes conditions config emit \ extract flags opinit output peep preds recog @@ -3917,16 +3912,23 @@ $(genprogrtl:%=build/gen%$(build_exeext)): $(BUILD_RTL) genprogmd = $(genprogrtl) mddeps constants enums $(genprogmd:%=build/gen%$(build_exeext)): $(BUILD_MD) -# All generator programs need to report errors -genprog = $(genprogmd) genrtl modes gtype -$(genprog:%=build/gen%$(build_exeext)): $(BUILD_ERRORS) +# All these programs need to report errors. +genprogerr = $(genprogmd) genrtl modes gtype hooks +$(genprogerr:%=build/gen%$(build_exeext)): $(BUILD_ERRORS) + +# Remaining build programs. +genprog = $(genprogerr) check checksum condmd # These programs need libs over and above what they get from the above list. build/genautomata$(build_exeext) : BUILD_LIBS += -lm # These programs are not linked with the MD reader. build/gengtype$(build_exeext) : build/gengtype-lex.o build/gengtype-parse.o -build/genhooks$(build_exeext) : $(BUILD_ERRORS) + +# Rule for the generator programs: +$(genprog:%=build/gen%$(build_exeext)): build/gen%$(build_exeext): build/gen%.o $(BUILD_LIBDEPS) + $(LINKER_FOR_BUILD) $(BUILD_LINKERFLAGS) $(BUILD_LDFLAGS) -o $@ \ + $(filter-out $(BUILD_LIBDEPS), $^) $(BUILD_LIBS) # Generated source files for gengtype. gengtype-lex.c : gengtype-lex.l