public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] sim: hw-config.h: move generation to top-level
@ 2022-12-22  3:26 Michael Frysinger
  0 siblings, 0 replies; only message in thread
From: Michael Frysinger @ 2022-12-22  3:26 UTC (permalink / raw)
  To: gdb-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=f4ac2306058aecab760b05e425d089a1c86e0618

commit f4ac2306058aecab760b05e425d089a1c86e0618
Author: Mike Frysinger <vapier@gentoo.org>
Date:   Sun Nov 6 22:57:06 2022 +0700

    sim: hw-config.h: move generation to top-level
    
    In order to compile arch objects from the top-level, we need to
    generate the hw-config.h header, so move that logic up to the top
    level first.

Diff:
---
 sim/Makefile.in           | 45 +++++++++++++++++++++++++++++++++------------
 sim/common/Make-common.in | 18 ------------------
 sim/common/local.mk       | 21 +++++++++++++++++++++
 3 files changed, 54 insertions(+), 30 deletions(-)

diff --git a/sim/Makefile.in b/sim/Makefile.in
index 085afcfc632..0c9975ecbad 100644
--- a/sim/Makefile.in
+++ b/sim/Makefile.in
@@ -1193,12 +1193,14 @@ CLEANFILES = common/version.c common/version.c-stamp \
 	testsuite/common/bits32m31.c testsuite/common/bits64m0.c \
 	testsuite/common/bits64m63.c
 DISTCLEANFILES = 
-MOSTLYCLEANFILES = core $(am__append_7) site-sim-config.exp \
-	testrun.log testrun.sum $(am__append_15) $(am__append_19) \
-	$(am__append_24) $(am__append_28) $(am__append_35) \
-	$(am__append_40) $(am__append_44) $(am__append_48) \
-	$(am__append_52) $(am__append_57) $(am__append_65) \
-	$(am__append_70) $(am__append_79) $(am__append_82)
+MOSTLYCLEANFILES = core $(common_HW_CONFIG_H_TARGETS) $(patsubst \
+	%,%/stamp-hw,$(SIM_ENABLED_ARCHES)) $(am__append_7) \
+	site-sim-config.exp testrun.log testrun.sum $(am__append_15) \
+	$(am__append_19) $(am__append_24) $(am__append_28) \
+	$(am__append_35) $(am__append_40) $(am__append_44) \
+	$(am__append_48) $(am__append_52) $(am__append_57) \
+	$(am__append_65) $(am__append_70) $(am__append_79) \
+	$(am__append_82)
 AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS)
 AM_CPPFLAGS = $(INCGNU) -I$(srcroot)/include -I../bfd -I.. \
 	$(SIM_HW_CFLAGS) $(SIM_INLINE) -I$(srcdir)/common \
@@ -1207,12 +1209,13 @@ AM_CPPFLAGS_FOR_BUILD = -I$(srcroot)/include $(SIM_HW_CFLAGS) \
 	$(SIM_INLINE) -I$(srcdir)/common
 COMPILE_FOR_BUILD = $(CC_FOR_BUILD) $(AM_CPPFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD)
 LINK_FOR_BUILD = $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@
-SIM_ALL_RECURSIVE_DEPS = common/libcommon.a $(am__append_4) \
-	$(am__append_14) $(am__append_17) $(am__append_23) \
-	$(am__append_26) $(am__append_34) $(am__append_39) \
-	$(am__append_43) $(am__append_46) $(am__append_51) \
-	$(am__append_55) $(am__append_64) $(am__append_69) \
-	$(am__append_77) $(am__append_81)
+SIM_ALL_RECURSIVE_DEPS = common/libcommon.a \
+	$(common_HW_CONFIG_H_TARGETS) $(am__append_4) $(am__append_14) \
+	$(am__append_17) $(am__append_23) $(am__append_26) \
+	$(am__append_34) $(am__append_39) $(am__append_43) \
+	$(am__append_46) $(am__append_51) $(am__append_55) \
+	$(am__append_64) $(am__append_69) $(am__append_77) \
+	$(am__append_81)
 SIM_INSTALL_DATA_LOCAL_DEPS = 
 SIM_INSTALL_EXEC_LOCAL_DEPS = $(am__append_30)
 SIM_UNINSTALL_LOCAL_DEPS = $(am__append_31)
@@ -1248,6 +1251,7 @@ SIM_NEW_COMMON_OBJS = sim-arange.o sim-bits.o sim-close.o \
 	sim-signal.o sim-stop.o sim-syscall.o sim-trace.o sim-utils.o \
 	sim-watch.o $(am__append_2)
 SIM_HW_DEVICES = cfi core pal glue
+common_HW_CONFIG_H_TARGETS = $(patsubst %,%/hw-config.h,$(SIM_ENABLED_ARCHES))
 LIBIBERTY_LIB = ../libiberty/libiberty.a
 BFD_LIB = ../bfd/libbfd.la
 OPCODES_LIB = ../opcodes/libopcodes.la
@@ -3163,6 +3167,23 @@ common/version.c-stamp: $(srcroot)/gdb/version.in $(srcroot)/bfd/version.h $(src
 	$(AM_V_at)$(SHELL) $(srcroot)/move-if-change $@.tmp $(@:-stamp=)
 	$(AM_V_at)touch $@
 
+# FIXME This is one very simple-minded way of generating the file hw-config.h.
+%/hw-config.h: %/stamp-hw ; @true
+%/stamp-hw: Makefile
+	$(AM_V_GEN)set -e; \
+	( \
+	sim_hw="$(SIM_HW_DEVICES) $($(@D)_SIM_EXTRA_HW_DEVICES)" ; \
+	echo "/* generated by Makefile */" ; \
+	printf "extern const struct hw_descriptor dv_%s_descriptor[];\n" $$sim_hw ; \
+	echo "const struct hw_descriptor * const hw_descriptors[] = {" ; \
+	printf "  dv_%s_descriptor,\n" $$sim_hw ; \
+	echo "  NULL," ; \
+	echo "};" \
+	) > $@.tmp; \
+	$(SHELL) $(srcroot)/move-if-change $@.tmp $(@D)/hw-config.h; \
+	touch $@
+.PRECIOUS: %/stamp-hw
+
 # Alias for developers.
 @SIM_ENABLE_IGEN_TRUE@igen: $(IGEN)
 
diff --git a/sim/common/Make-common.in b/sim/common/Make-common.in
index ff4e1710202..52cc3c926f7 100644
--- a/sim/common/Make-common.in
+++ b/sim/common/Make-common.in
@@ -197,7 +197,6 @@ endif
 all_object_files = $(LIB_OBJS) $(SIM_RUN_OBJS)
 generated_files = \
 	$(SIM_EXTRA_DEPS) \
-	hw-config.h \
 	modules.c
 
 # Ensure that generated files are created early.  Use order-only
@@ -212,22 +211,6 @@ endif
 # Dependencies.
 -include $(patsubst %.o, $(DEPDIR)/%.Po, $(all_object_files))
 
-# FIXME This is one very simple-minded way of generating the file hw-config.h
-hw-config.h: stamp-hw ; @true
-stamp-hw: Makefile.in $(srccom)/Make-common.in $(config.status) Makefile
-	$(ECHO_STAMP) hw-config.h
-	$(SILENCE) ( \
-	sim_hw="$(SIM_HW_DEVICES)" ; \
-	echo "/* generated by Makefile */" ; \
-	printf "extern const struct hw_descriptor dv_%s_descriptor[];\n" $$sim_hw ; \
-	echo "const struct hw_descriptor * const hw_descriptors[] = {" ; \
-	printf "  dv_%s_descriptor,\n" $$sim_hw ; \
-	echo "  NULL," ; \
-	echo "};" \
-	) > tmp-hw.h
-	$(SILENCE) $(SHELL) $(srcroot)/move-if-change tmp-hw.h hw-config.h
-	$(SILENCE) touch $@
-
 test-hw-events: $(srccom)/hw-events.c libsim.a
 	$(ECHO_CCLD) $(LIBTOOL) $(AM_V_lt) --tag=CC --mode=link \
 		$(CC) $(ALL_CFLAGS) -DMAIN -o test-hw-events$(EXEEXT) \
@@ -290,7 +273,6 @@ TAGS: force
 mostlyclean clean: $(SIM_EXTRA_CLEAN)
 	rm -f *.[oa] *~ core \
 		run$(EXEEXT) libsim.a \
-		hw-config.h stamp-hw \
 		modules.c stamp-modules \
 		tmp-mloop.hin tmp-mloop.h tmp-mloop.cin tmp-mloop.c
 
diff --git a/sim/common/local.mk b/sim/common/local.mk
index bf9b97d04d7..caffca9b02d 100644
--- a/sim/common/local.mk
+++ b/sim/common/local.mk
@@ -110,6 +110,27 @@ SIM_NEW_COMMON_OBJS += \
 AM_MAKEFLAGS += SIM_HW_DEVICES_="$(SIM_HW_DEVICES)"
 endif
 
+# FIXME This is one very simple-minded way of generating the file hw-config.h.
+%/hw-config.h: %/stamp-hw ; @true
+%/stamp-hw: Makefile
+	$(AM_V_GEN)set -e; \
+	( \
+	sim_hw="$(SIM_HW_DEVICES) $($(@D)_SIM_EXTRA_HW_DEVICES)" ; \
+	echo "/* generated by Makefile */" ; \
+	printf "extern const struct hw_descriptor dv_%s_descriptor[];\n" $$sim_hw ; \
+	echo "const struct hw_descriptor * const hw_descriptors[] = {" ; \
+	printf "  dv_%s_descriptor,\n" $$sim_hw ; \
+	echo "  NULL," ; \
+	echo "};" \
+	) > $@.tmp; \
+	$(SHELL) $(srcroot)/move-if-change $@.tmp $(@D)/hw-config.h; \
+	touch $@
+.PRECIOUS: %/stamp-hw
+
+%C%_HW_CONFIG_H_TARGETS = $(patsubst %,%/hw-config.h,$(SIM_ENABLED_ARCHES))
+MOSTLYCLEANFILES += $(%C%_HW_CONFIG_H_TARGETS) $(patsubst %,%/stamp-hw,$(SIM_ENABLED_ARCHES))
+SIM_ALL_RECURSIVE_DEPS += $(%C%_HW_CONFIG_H_TARGETS)
+
 LIBIBERTY_LIB = ../libiberty/libiberty.a
 BFD_LIB = ../bfd/libbfd.la
 OPCODES_LIB = ../opcodes/libopcodes.la

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-12-22  3:26 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-22  3:26 [binutils-gdb] sim: hw-config.h: move generation to top-level Michael Frysinger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).