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 74/83] sim: build: delete Make-common.in logic
Date: Tue,  3 Jan 2023 02:55:56 -0500	[thread overview]
Message-ID: <20230103075605.13606-75-vapier@gentoo.org> (raw)
In-Reply-To: <20230103075605.13606-1-vapier@gentoo.org>

Now that all (other than ppc) build in the top-level, this logic is
unused, so punt it all.
---
 sim/Makefile.in           |   4 -
 sim/README-HACKING        |  45 +-------
 sim/common/Make-common.in | 210 --------------------------------------
 sim/common/local.mk       |   1 -
 sim/configure             |  16 +--
 sim/configure.ac          |  13 ---
 6 files changed, 3 insertions(+), 286 deletions(-)
 delete mode 100644 sim/common/Make-common.in

diff --git a/sim/README-HACKING b/sim/README-HACKING
index fd6461e5ae90..55caa7b15b20 100644
--- a/sim/README-HACKING
+++ b/sim/README-HACKING
@@ -17,54 +17,11 @@ The common directory contains:
 
 - common documentation files (e.g. run.1, and maybe in time .texi files)
 - common source files (e.g. run.c)
-- common Makefile fragment and configury (e.g. Make-common.in, aclocal.m4).
+- common Makefile fragment and configury (e.g. common/local.mk)
 
 In addition "common" contains portions of the system call support
 (e.g. callback.c, target-newlib-*.c).
 \f
-Common Makefile Support
-=======================
-
-A common configuration framework is available for simulators that want
-to use it.  The common framework exists to remove a lot of duplication
-in configure.ac and Makefile.in, and it also provides a foundation for
-enhancing the simulators uniformly (e.g. the more they share in common
-the easier a feature added to one is added to all).
-
-The Makefile.in of a simulator using the common framework should look like:
-
---- snip ---
-# Makefile for blah ...
-# Copyright blah ...
-
-## COMMON_PRE_CONFIG_FRAG
-
-# These variables are given default values in COMMON_PRE_CONFIG_FRAG.
-# We override the ones we need to here.
-# Not all of these need to be mentioned, only the necessary ones.
-# In fact it is better to *not* mention ones if the value is the default.
-
-# List of flags to always pass to $(CC).
-SIM_EXTRA_CFLAGS =
-# Dependency of `clean' to clean any extra files.
-SIM_EXTRA_CLEAN =
-
-## COMMON_POST_CONFIG_FRAG
-
-... target specific rules ...
---- snip ---
-
-COMMON_{PRE,POST}_CONFIG_FRAG are markers for configure to tell it
-where to insert the two pieces of common/Make-common.in.
-The resulting Makefile is created by doing autoconf substitions on
-both the target's Makefile.in and Make-common.in, and inserting
-the two pieces of Make-common.in into the target's Makefile.in at
-COMMON_{PRE,POST}_CONFIG_FRAG.
-
-Note that SIM_EXTRA_{INSTALL,CLEAN} could be removed and "::" targets
-could be used instead.  However, it's not clear yet whether "::" targets
-are portable enough.
-\f
 TAGS support
 ============
 
diff --git a/sim/common/Make-common.in b/sim/common/Make-common.in
deleted file mode 100644
index a081525c91ce..000000000000
--- a/sim/common/Make-common.in
+++ /dev/null
@@ -1,210 +0,0 @@
-# Makefile fragment for common parts of all simulators.
-# Copyright 1997-2023 Free Software Foundation, Inc.
-# Contributed by Cygnus Support.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# This Makefile fragment consists of two separate parts.
-# They are merged into the final Makefile at points denoted by
-# "## COMMON_PRE_CONFIG_FRAG" and "## COMMON_POST_CONFIG_FRAG".
-#
-# The target Makefile should look like:
-#
-#># Copyright blah blah
-#>
-#>## COMMON_PRE_CONFIG_FRAG
-#>
-#># Any overrides necessary for the SIM_FOO config vars.
-#>SIM_FOO = ...
-#>
-#>## COMMON_POST_CONFIG_FRAG
-#>
-#># Rules to build target specific .o's.
-
-## COMMON_PRE_CONFIG_FRAG
-
-srcdir = @abs_srcdir@
-VPATH = $(srcdir):$(srccom)
-srccom = $(srcdir)/../common
-srcroot = $(srcdir)/../..
-srcsim = $(srcdir)/..
-
-@SIM_COMMON_BUILD_FALSE@config.status = config.status
-@SIM_COMMON_BUILD_TRUE@config.status = ../config.status
-
-# Settings from top-level configure.
-include ../arch-subdir.mk
-
-include $(srcroot)/gdb/silent-rules.mk
-
-ifeq ($(V),0)
-ECHO_STAMP = @echo "  GEN   "
-else
-ECHO_STAMP = @:
-endif
-
-# Helper code from gnulib.
-GNULIB_PARENT_DIR = ../..
-include $(GNULIB_PARENT_DIR)/gnulib/Makefile.gnulib.inc
-
-# This can be referenced by the gettext configuration code.
-top_builddir = ..
-
-SHELL = @SHELL@
-
-SIM_BITSIZE = @sim_bitsize@
-SIM_FLOAT = @sim_float@
-SIM_WARN_CFLAGS = $(WARN_CFLAGS)
-SIM_WERROR_CFLAGS = $(WERROR_CFLAGS)
-
-# Dependency tracking information.
-depcomp = $(SHELL) $(srcroot)/depcomp
-
-# Note that these are overridden by GNU make-specific code below if
-# GNU make is used.  The overrides implement dependency tracking.
-COMPILE.pre = $(CC) $(C_DIALECT)
-COMPILE.post = -c -o $@
-COMPILE = $(ECHO_CC) $(COMPILE.pre) $(ALL_CFLAGS) $(COMPILE.post)
-POSTCOMPILE = @true
-
-# Each simulator's Makefile.in defines one or more of these variables
-# to override our settings as necessary.  There is no need to define these
-# in the simulator's Makefile.in if one is using the default value.  In fact
-# it's preferable not to.
-
-# List of flags to always pass to $(CC).
-SIM_EXTRA_CFLAGS =
-# Dependency of `clean' to clean any extra files.
-SIM_EXTRA_CLEAN =
-
-# Every time a new general purpose source file was added every target's
-# Makefile.in needed to be updated to include the file.
-# This doesn't scale.
-# This variable specifies all the generic stuff common to the newer simulators.
-# Things like sim-reason.o can't go here as the cpu may provide its own
-# (though hopefully in time that won't be so).  Things like sim-bits.o can go
-# here.  Some files are used by all simulators (e.g. callback.o).
-
-## End COMMON_PRE_CONFIG_FRAG
-
-## COMMON_POST_CONFIG_FRAG
-
-CONFIG_CFLAGS = \
-	-DHAVE_CONFIG_H \
-	$(SIM_BITSIZE) \
-	$(SIM_FLOAT) \
-	$(SIM_HW_CFLAGS) \
-	$(SIM_INLINE) \
-	$(SIM_WARN_CFLAGS) \
-	$(SIM_WERROR_CFLAGS)
-CSEARCH = -I. -I$(srcdir) -I$(srccom) \
-  -I$(srcroot)/include \
-  -I../../bfd \
-  -I$(srcroot) \
-  -I../..
-ALL_CFLAGS = $(CONFIG_CFLAGS) $(CSEARCH) $(INCGNU) $(SIM_EXTRA_CFLAGS) $(CFLAGS)
-BUILD_CFLAGS = $(CFLAGS_FOR_BUILD) $(CSEARCH)
-
-COMMON_DEP_CFLAGS = $(CONFIG_CFLAGS) $(CSEARCH) $(SIM_EXTRA_CFLAGS)
-
-LIBIBERTY_LIB = ../../libiberty/libiberty.a
-BFD_LIB = ../../bfd/libbfd.la
-OPCODES_LIB = ../../opcodes/libopcodes.la
-LIBDEPS = $(BFD_LIB) $(OPCODES_LIB) $(LIBIBERTY_LIB)
-EXTRA_LIBS = $(BFD_LIB) $(OPCODES_LIB) $(LIBIBERTY_LIB) \
-	$(COMMON_LIBS) $(LIBGNU) $(LIBGNU_EXTRA_LIBS)
-
-COMPILE_FOR_BUILD = $(CC_FOR_BUILD) $(BUILD_CFLAGS)
-LINK_FOR_BUILD = $(CC_FOR_BUILD) $(BUILD_CFLAGS) $(LDFLAGS_FOR_BUILD) -o $@
-
-RUNTESTFLAGS =
-
-all:
-
-#
-# Dependency tracking.  Most of this is conditional on GNU Make being
-# found by configure; if GNU Make is not found, we fall back to a
-# simpler scheme.
-#
-
-ifeq ($(DEPMODE),depmode=gcc3)
-# Note that we put the dependencies into a .Tpo file, then move them
-# into place if the compile succeeds.  We need this because gcc does
-# not atomically write the dependency output file.
-override COMPILE.post = -c -o $@ -MT $@ -MMD -MP \
-	-MF $(DEPDIR)/$(basename $(@F)).Tpo
-override POSTCOMPILE = @mv $(DEPDIR)/$(basename $(@F)).Tpo \
-	$(DEPDIR)/$(basename $(@F)).Po
-else
-override COMPILE.pre = source='$<' object='$@' libtool=no \
-	DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) $(CC)
-# depcomp handles atomicity for us, so we don't need a postcompile
-# step.
-override POSTCOMPILE =
-endif
-
-# Support targets.
-
-install:
-installdirs:
-uninstall:
-
-check:
-
-html:
-clean-html:
-install-html:
-
-info:
-clean-info:
-install-info:
-
-pdf:
-clean-pdf:
-install-pdf:
-
-.NOEXPORT:
-MAKEOVERRIDES=
-
-tags etags: TAGS
-
-# Macros like EXTERN_SIM_CORE confuse tags.
-# And the sim-n-foo.h files create functions that can't be found either.
-TAGS: force
-	cd $(srcdir) && \
-	etags --regex '/^\([[:lower:]_]+\) (/\1/' --regex '/^\/[*] TAGS: .*/' \
-		*.[ch] ../common/*.[ch]
-
-mostlyclean clean: $(SIM_EXTRA_CLEAN)
-	rm -f *.[oa] *~ core
-
-distclean maintainer-clean realclean: clean
-	rm -f TAGS Makefile
-
-.c.o:
-	$(COMPILE) $<
-	$(POSTCOMPILE)
-
-# Dummy target to force execution of dependent targets.
-force:
-
-Makefile: Makefile.in $(srccom)/Make-common.in $(config.status)
-@SIM_COMMON_BUILD_FALSE@	$(ECHO_GEN) CONFIG_HEADERS= $(SHELL) ./config.status
-@SIM_COMMON_BUILD_TRUE@	$(ECHO_GEN) pwd=`pwd` && subdir=`basename "$$pwd"` && cd .. && \
-@SIM_COMMON_BUILD_TRUE@		$(SHELL) ./config.status Make-common.sim $$subdir/Makefile.sim $$subdir/Makefile
-
-@SIM_COMMON_BUILD_FALSE@config.status: configure
-@SIM_COMMON_BUILD_FALSE@	$(ECHO_GEN) $(SHELL) ./config.status --recheck
-
-## End COMMON_POST_CONFIG_FRAG
diff --git a/sim/common/local.mk b/sim/common/local.mk
index f79a30113740..0ed18359ae43 100644
--- a/sim/common/local.mk
+++ b/sim/common/local.mk
@@ -16,7 +16,6 @@
 ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ## Parts of the common/ sim code that have been unified.
-## Most still lives in common/Make-common.in.
 
 AM_CPPFLAGS += \
 	-I$(srcdir)/%D% \
diff --git a/sim/configure.ac b/sim/configure.ac
index 8198780c1eb1..91447ae4c655 100644
--- a/sim/configure.ac
+++ b/sim/configure.ac
@@ -52,12 +52,6 @@ dnl List of enabled arch backends.
 SIM_ENABLED_ARCHES=
 AC_SUBST(SIM_ENABLED_ARCHES)
 
-dnl Used by common/Make-common.in to see which configure script created it.
-SIM_COMMON_BUILD_TRUE=
-SIM_COMMON_BUILD_FALSE='#'
-AC_SUBST(SIM_COMMON_BUILD_TRUE)
-AC_SUBST(SIM_COMMON_BUILD_FALSE)
-
 ENABLE_SIM=no
 dnl Build a particular arch subdir.
 dnl arg[1] is the arch subdir name.
@@ -176,13 +170,6 @@ if test $sim_cv_decl_getopt_unistd_h = yes; then
 	    [Is the prototype for getopt in <unistd.h> in the expected format?])
 fi
 
-dnl These are unfortunate.  They are conditionally called by other sim macros
-dnl but always used by common/Make-common.in.  So we have to subst here even
-dnl when the rest of the code is in the respective macros.  Once we merge the
-dnl respective SIM_AC_OPTION_xxx call above, we can drop these.
-AC_SUBST(sim_bitsize)
-AC_SUBST(sim_float)
-
 dnl Some arches have unique configure flags.
 m4_include([frv/acinclude.m4])
 m4_include([mips/acinclude.m4])
-- 
2.39.0


  parent reply	other threads:[~2023-01-03  7:58 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 ` [PATCH 38/83] sim: build: add basic framework for compiling arch objects in top-level Mike Frysinger
2023-01-03  7:55 ` [PATCH 39/83] sim: aarch64: move arch-specific file compilation to top-level 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 ` Mike Frysinger [this message]
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-75-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).