mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 14:49:38 +08:00
x86: correct build dependencies in opcodes/
With the command in the rule merely being "echo", i386-tbl.h won't be rebuilt if missing, when at the same time i386-init.h is present and up-to-date. Use a pattern rule instead to express the multiple targets correctly (the &: rule separator is supported only by GNU make 4.3 and newer). Note that now, for the opposite case to work (i386-tbl.h is up-to-date but i386-init.h is missing), i386-init.h also needs mentioning as a dependency somewhere: Add a fake dependency for i386-opc.lo ("fake" because i386-opc.c doesn't include that header). At the same time use $(AM_V_GEN) in the actual rule, replacing the earlier (open-coded) "echo". And while there also drop a duplicate dependency of i386-gen.o on i386-opc.h.
This commit is contained in:
@ -552,18 +552,20 @@ i386-gen$(EXEEXT_FOR_BUILD): i386-gen.o $(BUILD_LIB_DEPS)
|
|||||||
i386-gen.o: i386-gen.c i386-opc.h $(srcdir)/../include/opcode/i386.h \
|
i386-gen.o: i386-gen.c i386-opc.h $(srcdir)/../include/opcode/i386.h \
|
||||||
$(INCDIR)/ansidecl.h $(INCDIR)/getopt.h $(INCDIR)/hashtab.h \
|
$(INCDIR)/ansidecl.h $(INCDIR)/getopt.h $(INCDIR)/hashtab.h \
|
||||||
$(INCDIR)/libiberty.h $(INCDIR)/opcode/i386.h $(INCDIR)/safe-ctype.h \
|
$(INCDIR)/libiberty.h $(INCDIR)/opcode/i386.h $(INCDIR)/safe-ctype.h \
|
||||||
config.h i386-opc.h sysdep.h
|
config.h sysdep.h
|
||||||
$(COMPILE_FOR_BUILD) -c $(srcdir)/i386-gen.c
|
$(COMPILE_FOR_BUILD) -c $(srcdir)/i386-gen.c
|
||||||
|
|
||||||
$(srcdir)/i386-tbl.h: $(srcdir)/i386-init.h
|
# i386-gen will generate both headers in one go. Use a pattern rule to properly
|
||||||
@echo $@
|
# express this, with the inner dash ('-') arbitrarily chosen to be the stem.
|
||||||
|
$(srcdir)/i386%tbl.h $(srcdir)/i386%init.h: @MAINT@ i386-gen$(EXEEXT_FOR_BUILD) i386-opc.tbl i386-reg.tbl i386-opc.h
|
||||||
$(srcdir)/i386-init.h: @MAINT@ i386-gen$(EXEEXT_FOR_BUILD) i386-opc.tbl i386-reg.tbl i386-opc.h
|
$(AM_V_GEN)$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) - \
|
||||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) - \
|
|
||||||
< $(srcdir)/i386-opc.tbl \
|
< $(srcdir)/i386-opc.tbl \
|
||||||
| ./i386-gen$(EXEEXT_FOR_BUILD) --srcdir $(srcdir)
|
| ./i386-gen$(EXEEXT_FOR_BUILD) --srcdir $(srcdir)
|
||||||
|
|
||||||
i386-opc.lo: $(srcdir)/i386-tbl.h
|
i386-opc.lo: $(srcdir)/i386-tbl.h
|
||||||
|
# While not really a dependency, specify i386-init.h here as well to make sure
|
||||||
|
# it is generated even if i386-tbl.h is present and up-to-date.
|
||||||
|
i386-opc.lo: $(srcdir)/i386-init.h
|
||||||
|
|
||||||
ia64-gen$(EXEEXT_FOR_BUILD): ia64-gen.o $(BUILD_LIB_DEPS)
|
ia64-gen$(EXEEXT_FOR_BUILD): ia64-gen.o $(BUILD_LIB_DEPS)
|
||||||
$(AM_V_CCLD)$(LINK_FOR_BUILD) ia64-gen.o $(BUILD_LIBS)
|
$(AM_V_CCLD)$(LINK_FOR_BUILD) ia64-gen.o $(BUILD_LIBS)
|
||||||
|
@ -1527,18 +1527,20 @@ i386-gen$(EXEEXT_FOR_BUILD): i386-gen.o $(BUILD_LIB_DEPS)
|
|||||||
i386-gen.o: i386-gen.c i386-opc.h $(srcdir)/../include/opcode/i386.h \
|
i386-gen.o: i386-gen.c i386-opc.h $(srcdir)/../include/opcode/i386.h \
|
||||||
$(INCDIR)/ansidecl.h $(INCDIR)/getopt.h $(INCDIR)/hashtab.h \
|
$(INCDIR)/ansidecl.h $(INCDIR)/getopt.h $(INCDIR)/hashtab.h \
|
||||||
$(INCDIR)/libiberty.h $(INCDIR)/opcode/i386.h $(INCDIR)/safe-ctype.h \
|
$(INCDIR)/libiberty.h $(INCDIR)/opcode/i386.h $(INCDIR)/safe-ctype.h \
|
||||||
config.h i386-opc.h sysdep.h
|
config.h sysdep.h
|
||||||
$(COMPILE_FOR_BUILD) -c $(srcdir)/i386-gen.c
|
$(COMPILE_FOR_BUILD) -c $(srcdir)/i386-gen.c
|
||||||
|
|
||||||
$(srcdir)/i386-tbl.h: $(srcdir)/i386-init.h
|
# i386-gen will generate both headers in one go. Use a pattern rule to properly
|
||||||
@echo $@
|
# express this, with the inner dash ('-') arbitrarily chosen to be the stem.
|
||||||
|
$(srcdir)/i386%tbl.h $(srcdir)/i386%init.h: @MAINT@ i386-gen$(EXEEXT_FOR_BUILD) i386-opc.tbl i386-reg.tbl i386-opc.h
|
||||||
$(srcdir)/i386-init.h: @MAINT@ i386-gen$(EXEEXT_FOR_BUILD) i386-opc.tbl i386-reg.tbl i386-opc.h
|
$(AM_V_GEN)$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) - \
|
||||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) - \
|
|
||||||
< $(srcdir)/i386-opc.tbl \
|
< $(srcdir)/i386-opc.tbl \
|
||||||
| ./i386-gen$(EXEEXT_FOR_BUILD) --srcdir $(srcdir)
|
| ./i386-gen$(EXEEXT_FOR_BUILD) --srcdir $(srcdir)
|
||||||
|
|
||||||
i386-opc.lo: $(srcdir)/i386-tbl.h
|
i386-opc.lo: $(srcdir)/i386-tbl.h
|
||||||
|
# While not really a dependency, specify i386-init.h here as well to make sure
|
||||||
|
# it is generated even if i386-tbl.h is present and up-to-date.
|
||||||
|
i386-opc.lo: $(srcdir)/i386-init.h
|
||||||
|
|
||||||
ia64-gen$(EXEEXT_FOR_BUILD): ia64-gen.o $(BUILD_LIB_DEPS)
|
ia64-gen$(EXEEXT_FOR_BUILD): ia64-gen.o $(BUILD_LIB_DEPS)
|
||||||
$(AM_V_CCLD)$(LINK_FOR_BUILD) ia64-gen.o $(BUILD_LIBS)
|
$(AM_V_CCLD)$(LINK_FOR_BUILD) ia64-gen.o $(BUILD_LIBS)
|
||||||
|
Reference in New Issue
Block a user