public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Mike Frysinger <vapier@gentoo.org>
To: gdb-patches@sourceware.org
Subject: [PATCH 38/83] sim: build: add basic framework for compiling arch objects in top-level
Date: Tue,  3 Jan 2023 02:55:20 -0500	[thread overview]
Message-ID: <20230103075605.13606-39-vapier@gentoo.org> (raw)
In-Reply-To: <20230103075605.13606-1-vapier@gentoo.org>

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.
---
 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 e47244d7b8dd..3c46925976f3 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/common/defs.h b/sim/common/defs.h
index bbaee4ebd0ce..0f4062c2031d 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 debb55da933b..32b5db6a6eea 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
-- 
2.39.0


  parent reply	other threads:[~2023-01-03  7:57 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-03  7:54 [PATCH 00/83] sim: merge subdir makefiles into top-level Mike Frysinger
2023-01-03  7:54 ` [PATCH 01/83] sim: mips: add multi source to built sources Mike Frysinger
2023-01-03  7:54 ` [PATCH 02/83] sim: modules: trigger generation from top-level Mike Frysinger
2023-01-03  7:54 ` [PATCH 03/83] sim: build: drop support for subdir extra deps Mike Frysinger
2023-01-03  7:54 ` [PATCH 04/83] sim: aarch64: move libsim.a creation to top-level Mike Frysinger
2023-01-03  7:54 ` [PATCH 05/83] sim: arm: " Mike Frysinger
2023-01-03  7:54 ` [PATCH 06/83] sim: avr: " Mike Frysinger
2023-01-03  7:54 ` [PATCH 07/83] sim: bfin: " Mike Frysinger
2023-01-03  7:54 ` [PATCH 08/83] sim: bpf: " Mike Frysinger
2023-01-03  7:54 ` [PATCH 09/83] sim: cr16: " Mike Frysinger
2023-01-03  7:54 ` [PATCH 10/83] sim: cris: " Mike Frysinger
2023-01-03  7:54 ` [PATCH 11/83] sim: d10v: " Mike Frysinger
2023-01-03  7:54 ` [PATCH 12/83] sim: erc32: " Mike Frysinger
2023-01-03  7:54 ` [PATCH 13/83] sim: example-synacor: " Mike Frysinger
2023-01-03  7:54 ` [PATCH 14/83] sim: frv: " Mike Frysinger
2023-01-03  7:54 ` [PATCH 15/83] sim: ft32: " Mike Frysinger
2023-01-03  7:54 ` [PATCH 16/83] sim: h8300: " Mike Frysinger
2023-01-03  7:54 ` [PATCH 17/83] sim: iq2000: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 18/83] sim: lm32: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 19/83] sim: m32c: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 20/83] sim: m32r: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 21/83] sim: m68hc11: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 22/83] sim: mcore: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 23/83] sim: microblaze: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 24/83] sim: mips: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 25/83] sim: mn10300: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 26/83] sim: moxie: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 27/83] sim: msp430: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 28/83] sim: or1k: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 29/83] sim: pru: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 30/83] sim: riscv: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 31/83] sim: rl78: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 32/83] sim: rx: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 33/83] sim: sh: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 34/83] sim: v850: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 35/83] sim: build: drop support for creating libsim.a in subdirs Mike Frysinger
2023-01-03  7:55 ` [PATCH 36/83] sim: build: drop common/nrun.o subdir hack Mike Frysinger
2023-01-03  7:55 ` [PATCH 37/83] sim: modules.c: move generation to top-level Mike Frysinger
2023-01-03  7:55 ` Mike Frysinger [this message]
2023-01-03  7:55 ` [PATCH 39/83] sim: aarch64: move arch-specific file compilation " Mike Frysinger
2023-01-03  7:55 ` [PATCH 40/83] sim: arm: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 41/83] sim: avr: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 42/83] sim: bpf: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 43/83] sim: bfin: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 44/83] sim: cr16: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 45/83] sim: cris: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 46/83] sim: d10v: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 47/83] sim: erc32: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 48/83] sim: example-synacor: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 49/83] sim: frv: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 50/83] sim: ft32: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 51/83] sim: h8300: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 52/83] sim: iq2000: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 53/83] sim: lm32: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 54/83] sim: m32c: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 55/83] sim: m32r: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 56/83] sim: m68hc11: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 57/83] sim: mcore: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 58/83] sim: microblaze: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 59/83] sim: mips: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 60/83] sim: mn10300: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 61/83] sim: moxie: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 62/83] sim: msp430: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 63/83] sim: or1k: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 64/83] sim: pru: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 65/83] sim: riscv: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 66/83] sim: rl78: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 67/83] sim: rx: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 68/83] sim: sh: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 69/83] sim: v850: " Mike Frysinger
2023-01-03  7:55 ` [PATCH 70/83] sim: move arch-specific file compilation of common/ files " Mike Frysinger
2023-01-03  7:55 ` [PATCH 71/83] sim: common: move test-hw-events to top-level build Mike Frysinger
2023-01-03  7:55 ` [PATCH 72/83] sim: disable recursive make in (most) subdirs Mike Frysinger
2023-01-03  7:55 ` [PATCH 73/83] sim: build: drop subdir Makefile.in files Mike Frysinger
2023-01-03  7:55 ` [PATCH 74/83] sim: build: delete Make-common.in logic Mike Frysinger
2023-01-03  7:55 ` [PATCH 75/83] sim: build: drop AM_MAKEFLAGS settings Mike Frysinger
2023-01-03  7:55 ` [PATCH 76/83] sim: common: simplify hw-config.h deps Mike Frysinger
2023-01-03  7:55 ` [PATCH 77/83] sim: igen: simplify build dep Mike Frysinger
2023-01-03  7:56 ` [PATCH 78/83] sim: common: move libcommon.a objects to sources Mike Frysinger
2023-01-03  7:56 ` [PATCH 79/83] sim: build: drop most recursive build deps Mike Frysinger
2023-01-03  7:56 ` [PATCH 80/83] sim: common: move libcommon.a dep to ppc code Mike Frysinger
2023-01-03  7:56 ` [PATCH 81/83] sim: common: move modules.c to source tracking Mike Frysinger
2023-01-03  7:56 ` [PATCH 82/83] sim: common: simplify modules.c deps Mike Frysinger
2023-01-03  7:56 ` [PATCH 83/83] sim: build: drop depdir subdir hack Mike Frysinger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230103075605.13606-39-vapier@gentoo.org \
    --to=vapier@gentoo.org \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).