aboutsummaryrefslogtreecommitdiff
path: root/sim
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2022-12-26 23:20:46 -0500
committerMike Frysinger <vapier@gentoo.org>2023-01-10 01:15:26 -0500
commitbc438b3e5931e7af87bf51b1365d9401cd69d519 (patch)
tree97a671822dee0e75c31038258f8fd84815a059b1 /sim
parent54e26255ca9e1e39b1c5d091809c3afe350c3d01 (diff)
downloadgdb-bc438b3e5931e7af87bf51b1365d9401cd69d519.zip
gdb-bc438b3e5931e7af87bf51b1365d9401cd69d519.tar.gz
gdb-bc438b3e5931e7af87bf51b1365d9401cd69d519.tar.bz2
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.
Diffstat (limited to 'sim')
-rw-r--r--sim/Makefile.am18
-rw-r--r--sim/Makefile.in18
-rw-r--r--sim/common/defs.h2
-rw-r--r--sim/common/local.mk3
4 files changed, 31 insertions, 10 deletions
diff --git a/sim/Makefile.am b/sim/Makefile.am
index e47244d..3c46925 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 839e6e1..6f2042a 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 bbaee4e..0f4062c 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 debb55d..32b5db6 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