public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] sim: build: add basic framework for compiling arch objects in top-level
@ 2023-01-10  6:25 Michael Frysinger
  0 siblings, 0 replies; only message in thread
From: Michael Frysinger @ 2023-01-10  6:25 UTC (permalink / raw)
  To: gdb-cvs

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

commit bc438b3e5931e7af87bf51b1365d9401cd69d519
Author: Mike Frysinger <vapier@gentoo.org>
Date:   Mon Dec 26 23:20:46 2022 -0500

    sim: build: add basic framework for compiling arch objects in top-level
    
    The code so far has been assuming that we only compile common/ objects.
    Now that we're ready to compile arch-specific objects, refactor some of
    the flags & checks a bit to support both.

Diff:
---
 sim/Makefile.am     | 18 +++++++++++++++---
 sim/Makefile.in     | 18 +++++++++++++-----
 sim/common/defs.h   |  2 +-
 sim/common/local.mk |  3 ++-
 4 files changed, 31 insertions(+), 10 deletions(-)

diff --git a/sim/Makefile.am b/sim/Makefile.am
index e47244d7b8d..3c46925976f 100644
--- a/sim/Makefile.am
+++ b/sim/Makefile.am
@@ -41,15 +41,27 @@ BUILT_SOURCES =
 CLEANFILES =
 DISTCLEANFILES =
 MOSTLYCLEANFILES = core
-
-AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS)
+## We build some objects ourselves directly that Automake doesn't track, so
+## make sure all objects in subdirs get cleaned up.
+MOSTLYCLEANFILES += $(SIM_ENABLED_ARCHES:%=%/*.o)
+
+AM_CFLAGS = \
+	$(WERROR_CFLAGS) \
+	$(WARN_CFLAGS) \
+	$(AM_CFLAGS_$(subst -,_,$(@D))) \
+	$(AM_CFLAGS_$(subst -,_,$(@D)_$(@F)))
 AM_CPPFLAGS = \
 	$(INCGNU) \
+	-I$(srcroot) \
 	-I$(srcroot)/include \
 	-I../bfd \
 	-I.. \
+	-I$(@D) \
+	-I$(srcdir)/$(@D) \
 	$(SIM_HW_CFLAGS) \
-	$(SIM_INLINE)
+	$(SIM_INLINE) \
+	$(AM_CPPFLAGS_$(subst -,_,$(@D))) \
+	$(AM_CPPFLAGS_$(subst -,_,$(@D)_$(@F)))
 
 AM_CPPFLAGS_FOR_BUILD = \
 	-I$(srcroot)/include \
diff --git a/sim/Makefile.in b/sim/Makefile.in
index 839e6e17e27..6f2042a3523 100644
--- a/sim/Makefile.in
+++ b/sim/Makefile.in
@@ -1789,7 +1789,8 @@ CLEANFILES = common/version.c common/version.c-stamp \
 	testsuite/common/bits32m31.c testsuite/common/bits64m0.c \
 	testsuite/common/bits64m63.c
 DISTCLEANFILES = $(am__append_100)
-MOSTLYCLEANFILES = core $(common_HW_CONFIG_H_TARGETS) $(patsubst \
+MOSTLYCLEANFILES = core $(SIM_ENABLED_ARCHES:%=%/*.o) \
+	$(common_HW_CONFIG_H_TARGETS) $(patsubst \
 	%,%/stamp-hw,$(SIM_ENABLED_ARCHES)) \
 	$(common_GEN_MODULES_C_TARGETS) $(patsubst \
 	%,%/stamp-modules,$(SIM_ENABLED_ARCHES)) $(am__append_7) \
@@ -1799,10 +1800,16 @@ MOSTLYCLEANFILES = core $(common_HW_CONFIG_H_TARGETS) $(patsubst \
 	$(am__append_71) $(am__append_77) $(am__append_83) \
 	$(am__append_99) $(am__append_106) $(am__append_115) \
 	$(am__append_130) $(am__append_135)
-AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS)
-AM_CPPFLAGS = $(INCGNU) -I$(srcroot)/include -I../bfd -I.. \
-	$(SIM_HW_CFLAGS) $(SIM_INLINE) -I$(srcdir)/common \
-	-DSIM_COMMON_BUILD
+AM_CFLAGS = \
+	$(WERROR_CFLAGS) \
+	$(WARN_CFLAGS) \
+	$(AM_CFLAGS_$(subst -,_,$(@D))) \
+	$(AM_CFLAGS_$(subst -,_,$(@D)_$(@F)))
+
+AM_CPPFLAGS = $(INCGNU) -I$(srcroot) -I$(srcroot)/include -I../bfd \
+	-I.. -I$(@D) -I$(srcdir)/$(@D) $(SIM_HW_CFLAGS) $(SIM_INLINE) \
+	$(AM_CPPFLAGS_$(subst -,_,$(@D))) $(AM_CPPFLAGS_$(subst \
+	-,_,$(@D)_$(@F))) -I$(srcdir)/common -DSIM_TOPDIR_BUILD
 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)
@@ -1818,6 +1825,7 @@ SIM_ALL_RECURSIVE_DEPS = common/libcommon.a \
 SIM_INSTALL_DATA_LOCAL_DEPS = 
 SIM_INSTALL_EXEC_LOCAL_DEPS = $(am__append_43)
 SIM_UNINSTALL_LOCAL_DEPS = $(am__append_44)
+AM_CPPFLAGS_common = -DSIM_COMMON_BUILD
 common_libcommon_a_SOURCES = \
 	common/callback.c \
 	common/portability.c \
diff --git a/sim/common/defs.h b/sim/common/defs.h
index bbaee4ebd0c..0f4062c2031 100644
--- a/sim/common/defs.h
+++ b/sim/common/defs.h
@@ -35,7 +35,7 @@
 #undef PACKAGE_VERSION
 
 /* Include common sim's various configure tests.  */
-#ifndef SIM_COMMON_BUILD
+#ifndef SIM_TOPDIR_BUILD
 #include "../config.h"
 #else
 #include "config.h"
diff --git a/sim/common/local.mk b/sim/common/local.mk
index debb55da933..32b5db6a6ee 100644
--- a/sim/common/local.mk
+++ b/sim/common/local.mk
@@ -20,7 +20,8 @@
 
 AM_CPPFLAGS += \
 	-I$(srcdir)/%D% \
-	-DSIM_COMMON_BUILD
+	-DSIM_TOPDIR_BUILD
+AM_CPPFLAGS_%C% = -DSIM_COMMON_BUILD
 AM_CPPFLAGS_FOR_BUILD += -I$(srcdir)/%D%
 
 ## This makes sure common parts are available before building the arch-subdirs

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

only message in thread, other threads:[~2023-01-10  6:25 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-10  6:25 [binutils-gdb] sim: build: add basic framework for compiling arch objects in 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).