* [PATCH 1/3] sim: build: move install steps to the top-level
@ 2022-11-05 8:27 Mike Frysinger
2022-11-05 8:27 ` [PATCH 2/3] sim: build: add uninstall support Mike Frysinger
2022-11-05 8:27 ` [PATCH 3/3] sim: run: move linking into top-level Mike Frysinger
0 siblings, 2 replies; 3+ messages in thread
From: Mike Frysinger @ 2022-11-05 8:27 UTC (permalink / raw)
To: gdb-patches
We still have to maintain custom install rules due to how we rename
arch-specific files with an arch prefix in their name, but we can at
least unify the logic in the common dir.
---
sim/Makefile.am | 27 +++++++++
sim/Makefile.in | 113 ++++++++++++++++++++++++--------------
sim/README-HACKING | 2 -
sim/common/Make-common.in | 19 +------
sim/erc32/Makefile.in | 6 --
sim/erc32/local.mk | 6 ++
sim/ppc/Makefile.in | 15 +----
7 files changed, 107 insertions(+), 81 deletions(-)
diff --git a/sim/Makefile.am b/sim/Makefile.am
index 7ea013ac1965..523d8f8dec96 100644
--- a/sim/Makefile.am
+++ b/sim/Makefile.am
@@ -59,6 +59,10 @@ LINK_FOR_BUILD = $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@
## Deps to add to the all-recursive target. These are built before descending
## into any subdirs.
SIM_ALL_RECURSIVE_DEPS =
+## Deps to add to the install-data-local target.
+SIM_INSTALL_DATA_LOCAL_DEPS =
+## Deps to add to the install-exec-local target.
+SIM_INSTALL_EXEC_LOCAL_DEPS =
# Generate target constants for newlib/libgloss from its source tree.
# This file is shipped with distributions so we build in the source dir.
@@ -138,3 +142,26 @@ include v850/local.mk
endif
all-recursive: $(SIM_ALL_RECURSIVE_DEPS)
+
+install-data-local: installdirs $(SIM_INSTALL_DATA_LOCAL_DEPS)
+ $(AM_V_at)$(MKDIR_P) $(DESTDIR)$(libdir)
+ lib=`echo sim | sed '$(program_transform_name)'`; \
+ for d in $(SUBDIRS); do \
+ if [ -e $$d/run$(EXEEXT) ]; then \
+ n="$$lib"; \
+ [ "$(SIM_PRIMARY_TARGET)" = "$$d" ] || n="$$n-$$d"; \
+ n="lib$$n.a"; \
+ $(INSTALL_DATA) $$d/libsim.a $(DESTDIR)$(libdir)/$$n || exit 1; \
+ fi; \
+ done
+
+install-exec-local: installdirs $(SIM_INSTALL_EXEC_LOCAL_DEPS)
+ $(AM_V_at)$(MKDIR_P) $(DESTDIR)$(bindir)
+ run=`echo run | sed '$(program_transform_name)'`; \
+ for d in $(SUBDIRS); do \
+ if [ -e $$d/run$(EXEEXT) ]; then \
+ n="$$run"; \
+ [ "$(SIM_PRIMARY_TARGET)" = "$$d" ] || n="$$n-$$d"; \
+ $(INSTALL_PROGRAM) $$d/run$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT) || exit 1; \
+ fi; \
+ done
diff --git a/sim/README-HACKING b/sim/README-HACKING
index 38915bf3bb94..eddd7d51b305 100644
--- a/sim/README-HACKING
+++ b/sim/README-HACKING
@@ -71,8 +71,6 @@ SIM_EXTRA_DEPS =
SIM_EXTRA_CFLAGS =
# List of extra libraries to link with.
SIM_EXTRA_LIBS =
-# Dependency of `install' to install any extra files.
-SIM_EXTRA_INSTALL =
# Dependency of `clean' to clean any extra files.
SIM_EXTRA_CLEAN =
diff --git a/sim/common/Make-common.in b/sim/common/Make-common.in
index 18dcd36a72bb..bd50f052dae9 100644
--- a/sim/common/Make-common.in
+++ b/sim/common/Make-common.in
@@ -115,8 +115,6 @@ SIM_EXTRA_CFLAGS =
SIM_EXTRA_LIBS =
# List of main object files for `run'.
SIM_RUN_OBJS = nrun.o
-# Dependency of `install' to install any extra files.
-SIM_EXTRA_INSTALL =
# Dependency of `clean' to clean any extra files.
SIM_EXTRA_CLEAN =
# Likewise `distclean'
@@ -322,23 +320,8 @@ stamp-modules: Makefile $(SIM_OBJS:.o=.c)
# Support targets.
-install: install-common $(SIM_EXTRA_INSTALL)
-
-install-common: installdirs
- a=`basename "$$(pwd)"`; \
- n=`echo run | sed '$(program_transform_name)'`; \
- [ "$(SIM_PRIMARY_TARGET)" = "$$a" ] || n="$$n-$$a"; \
- $(INSTALL_PROGRAM) run$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT)
- n=`echo sim | sed '$(program_transform_name)'`; \
- a=`basename "$$(pwd)"`; \
- [ "$(SIM_PRIMARY_TARGET)" = "$$a" ] || n="$$n-$$a"; \
- n="lib$$n.a"; \
- $(INSTALL_DATA) libsim.a $(DESTDIR)$(libdir)/$$n ; \
- ( cd $(DESTDIR)$(libdir) ; $(RANLIB) $$n )
-
+install:
installdirs:
- $(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(bindir)
- $(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(libdir)
check:
diff --git a/sim/erc32/Makefile.in b/sim/erc32/Makefile.in
index 7dd5102bccbf..eef81d9dcd6e 100644
--- a/sim/erc32/Makefile.in
+++ b/sim/erc32/Makefile.in
@@ -24,7 +24,6 @@ SIM_OBJS = exec.o erc32.o func.o help.o float.o interf.o
SIM_RUN_OBJS = sis.o
SIM_EXTRA_CFLAGS = $(READLINE_CFLAGS)
SIM_EXTRA_LIBS = $(READLINE_LIB) $(TERMCAP_LIB)
-SIM_EXTRA_INSTALL = install-sis
SIM_EXTRA_CLEAN = clean-sis
# UARTS run at about 115200 baud (simulator time). Add -DFAST_UART to
@@ -39,10 +38,5 @@ sis$(EXEEXT): run$(EXEEXT)
$(SILENCE) rm -f $@
$(ECHO_GEN) ln $< $@ 2>/dev/null || $(LN_S) $< $@ 2>/dev/null || cp -p $< $@
-# Copy the files into directories where they will be run.
-install-sis: installdirs
- n=`echo sis | sed '$(program_transform_name)'`; \
- $(INSTALL_PROGRAM) sis$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT)
-
clean-sis:
rm -f sis
diff --git a/sim/erc32/local.mk b/sim/erc32/local.mk
index cf88a71f86ab..3b858a671d80 100644
--- a/sim/erc32/local.mk
+++ b/sim/erc32/local.mk
@@ -17,3 +17,9 @@
%C%docdir = $(docdir)/%C%
%C%doc_DATA = %D%/README.erc32 %D%/README.gdb %D%/README.sis
+
+SIM_INSTALL_EXEC_LOCAL_DEPS += sim-%D-install-exec-local
+sim-%D-install-exec-local: installdirs
+ $(AM_V_at)$(MKDIR_P) $(DESTDIR)$(bindir)
+ n=`echo sis | sed '$(program_transform_name)'`; \
+ $(INSTALL_PROGRAM) %D%/sis$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT)
diff --git a/sim/ppc/Makefile.in b/sim/ppc/Makefile.in
index 72dc479d1912..4fe4fd9597c0 100644
--- a/sim/ppc/Makefile.in
+++ b/sim/ppc/Makefile.in
@@ -843,18 +843,5 @@ pdf:
clean-pdf:
install-pdf:
-install: installdirs
- a=`basename "$$(pwd)"`; \
- n=`echo run | sed '$(program_transform_name)'`; \
- [ "$(SIM_PRIMARY_TARGET)" = "$$a" ] || n="$$n-$$a"; \
- $(INSTALL_PROGRAM) run$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT)
-
-install-strip: installdirs
- a=`basename "$$(pwd)"`; \
- n=`echo run | sed '$(program_transform_name)'`; \
- [ "$(SIM_PRIMARY_TARGET)" = "$$a" ] || n="$$n-$$a"; \
- $(INSTALL_PROGRAM) run$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT)
- $(STRIP) $(DESTDIR)$(bindir)/$$n$(EXEEXT)
-
+install:
installdirs:
- $(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(bindir)
--
2.38.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 2/3] sim: build: add uninstall support
2022-11-05 8:27 [PATCH 1/3] sim: build: move install steps to the top-level Mike Frysinger
@ 2022-11-05 8:27 ` Mike Frysinger
2022-11-05 8:27 ` [PATCH 3/3] sim: run: move linking into top-level Mike Frysinger
1 sibling, 0 replies; 3+ messages in thread
From: Mike Frysinger @ 2022-11-05 8:27 UTC (permalink / raw)
To: gdb-patches
This never worked before, but adding it to the common top-level dir
is pretty easy to do now that we're unified.
---
sim/Makefile.am | 8 +++++
sim/Makefile.in | 66 ++++++++++++++++++++++-----------------
sim/common/Make-common.in | 1 +
sim/erc32/local.mk | 4 +++
sim/ppc/Makefile.in | 1 +
5 files changed, 52 insertions(+), 28 deletions(-)
diff --git a/sim/Makefile.am b/sim/Makefile.am
index 523d8f8dec96..4e4068a3539f 100644
--- a/sim/Makefile.am
+++ b/sim/Makefile.am
@@ -63,6 +63,8 @@ SIM_ALL_RECURSIVE_DEPS =
SIM_INSTALL_DATA_LOCAL_DEPS =
## Deps to add to the install-exec-local target.
SIM_INSTALL_EXEC_LOCAL_DEPS =
+## Deps to add to the uninstall-local target.
+SIM_UNINSTALL_LOCAL_DEPS =
# Generate target constants for newlib/libgloss from its source tree.
# This file is shipped with distributions so we build in the source dir.
@@ -165,3 +167,9 @@ install-exec-local: installdirs $(SIM_INSTALL_EXEC_LOCAL_DEPS)
$(INSTALL_PROGRAM) $$d/run$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT) || exit 1; \
fi; \
done
+
+uninstall-local: $(SIM_UNINSTALL_LOCAL_DEPS)
+ rm -f $(DESTDIR)$(bindir)/run $(DESTDIR)$(libdir)/libsim.a
+ for d in $(SUBDIRS); do \
+ rm -f $(DESTDIR)$(bindir)/run-$$d $(DESTDIR)$(libdir)/libsim-$$d.a; \
+ done
diff --git a/sim/common/Make-common.in b/sim/common/Make-common.in
index bd50f052dae9..290fa2c171d9 100644
--- a/sim/common/Make-common.in
+++ b/sim/common/Make-common.in
@@ -322,6 +322,7 @@ stamp-modules: Makefile $(SIM_OBJS:.o=.c)
install:
installdirs:
+uninstall:
check:
diff --git a/sim/erc32/local.mk b/sim/erc32/local.mk
index 3b858a671d80..36baeb96614c 100644
--- a/sim/erc32/local.mk
+++ b/sim/erc32/local.mk
@@ -23,3 +23,7 @@ sim-%D-install-exec-local: installdirs
$(AM_V_at)$(MKDIR_P) $(DESTDIR)$(bindir)
n=`echo sis | sed '$(program_transform_name)'`; \
$(INSTALL_PROGRAM) %D%/sis$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT)
+
+SIM_UNINSTALL_LOCAL_DEPS += sim-%D%-uninstall-local
+sim-%D%-uninstall-local:
+ rm -f $(DESTDIR)$(bindir)/sis
diff --git a/sim/ppc/Makefile.in b/sim/ppc/Makefile.in
index 4fe4fd9597c0..d7b9df0819f4 100644
--- a/sim/ppc/Makefile.in
+++ b/sim/ppc/Makefile.in
@@ -845,3 +845,4 @@ install-pdf:
install:
installdirs:
+uninstall:
--
2.38.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 3/3] sim: run: move linking into top-level
2022-11-05 8:27 [PATCH 1/3] sim: build: move install steps to the top-level Mike Frysinger
2022-11-05 8:27 ` [PATCH 2/3] sim: build: add uninstall support Mike Frysinger
@ 2022-11-05 8:27 ` Mike Frysinger
1 sibling, 0 replies; 3+ messages in thread
From: Mike Frysinger @ 2022-11-05 8:27 UTC (permalink / raw)
To: gdb-patches
Automake will run each subdir individually before moving on to the next
one. This means that the linking phase, a single threaded process, will
not run in parallel with anything else. When we have to link ~32 ports,
that's 32 link steps that don't take advantage of parallel systems. On
my really old 4-core system, this cuts a multi-target build from ~60 sec
to ~30 sec. We eventually want to move all compile+link steps to this
common dir anyways, so might as well move linking now for a nice speedup.
We use noinst_PROGRAMS instead of bin_PROGRAMS because we're taking care
of the install ourselves rather than letting automake process it.
---
sim/Makefile.am | 50 ++
sim/Makefile.in | 939 +++++++++++++++++++++++++++++++----
sim/aarch64/local.mk | 25 +
sim/arm/local.mk | 9 +
sim/avr/local.mk | 24 +
sim/bfin/local.mk | 25 +
sim/bpf/local.mk | 8 +
sim/common/Make-common.in | 7 +-
sim/common/local.mk | 19 +-
sim/configure | 18 +-
sim/configure.ac | 1 +
sim/cr16/local.mk | 8 +
sim/cris/local.mk | 8 +
sim/d10v/local.mk | 8 +
sim/erc32/Makefile.in | 9 -
sim/erc32/local.mk | 17 +
sim/example-synacor/local.mk | 25 +
sim/frv/local.mk | 8 +
sim/ft32/local.mk | 25 +
sim/h8300/local.mk | 25 +
sim/iq2000/local.mk | 8 +
sim/lm32/local.mk | 8 +
sim/m32c/local.mk | 12 +
sim/m32r/local.mk | 8 +
sim/m68hc11/local.mk | 8 +
sim/mcore/local.mk | 25 +
sim/microblaze/local.mk | 25 +
sim/mips/local.mk | 25 +
sim/mn10300/local.mk | 8 +
sim/moxie/local.mk | 18 +-
sim/msp430/local.mk | 25 +
sim/or1k/local.mk | 8 +
sim/ppc/Makefile.in | 16 +-
sim/ppc/local.mk | 15 +
sim/pru/local.mk | 25 +
sim/riscv/local.mk | 25 +
sim/rl78/local.mk | 29 ++
sim/rx/local.mk | 13 +
sim/sh/local.mk | 8 +
sim/v850/local.mk | 8 +
40 files changed, 1449 insertions(+), 126 deletions(-)
create mode 100644 sim/aarch64/local.mk
create mode 100644 sim/avr/local.mk
create mode 100644 sim/bfin/local.mk
create mode 100644 sim/example-synacor/local.mk
create mode 100644 sim/ft32/local.mk
create mode 100644 sim/h8300/local.mk
create mode 100644 sim/mcore/local.mk
create mode 100644 sim/microblaze/local.mk
create mode 100644 sim/mips/local.mk
create mode 100644 sim/msp430/local.mk
create mode 100644 sim/pru/local.mk
create mode 100644 sim/riscv/local.mk
create mode 100644 sim/rl78/local.mk
diff --git a/sim/Makefile.am b/sim/Makefile.am
index 4e4068a3539f..64847bc7abb3 100644
--- a/sim/Makefile.am
+++ b/sim/Makefile.am
@@ -33,6 +33,7 @@ AM_MAKEFLAGS = SIM_PRIMARY_TARGET=$(SIM_PRIMARY_TARGET)
## be used consistently in local.mk files we include below.
pkginclude_HEADERS =
check_PROGRAMS =
+noinst_PROGRAMS =
noinst_LIBRARIES =
EXTRA_PROGRAMS =
@@ -85,9 +86,19 @@ include igen/local.mk
endif
include testsuite/local.mk
+## Arch includes must come after common/local.mk.
+if SIM_ENABLE_ARCH_aarch64
+include aarch64/local.mk
+endif
if SIM_ENABLE_ARCH_arm
include arm/local.mk
endif
+if SIM_ENABLE_ARCH_avr
+include avr/local.mk
+endif
+if SIM_ENABLE_ARCH_bfin
+include bfin/local.mk
+endif
if SIM_ENABLE_ARCH_bpf
include bpf/local.mk
endif
@@ -103,9 +114,18 @@ endif
if SIM_ENABLE_ARCH_erc32
include erc32/local.mk
endif
+if SIM_ENABLE_ARCH_examples
+include example-synacor/local.mk
+endif
if SIM_ENABLE_ARCH_frv
include frv/local.mk
endif
+if SIM_ENABLE_ARCH_ft32
+include ft32/local.mk
+endif
+if SIM_ENABLE_ARCH_h8300
+include h8300/local.mk
+endif
if SIM_ENABLE_ARCH_iq2000
include iq2000/local.mk
endif
@@ -121,18 +141,39 @@ endif
if SIM_ENABLE_ARCH_m68hc11
include m68hc11/local.mk
endif
+if SIM_ENABLE_ARCH_mcore
+include mcore/local.mk
+endif
+if SIM_ENABLE_ARCH_microblaze
+include microblaze/local.mk
+endif
+if SIM_ENABLE_ARCH_mips
+include mips/local.mk
+endif
if SIM_ENABLE_ARCH_mn10300
include mn10300/local.mk
endif
if SIM_ENABLE_ARCH_moxie
include moxie/local.mk
endif
+if SIM_ENABLE_ARCH_msp430
+include msp430/local.mk
+endif
if SIM_ENABLE_ARCH_or1k
include or1k/local.mk
endif
if SIM_ENABLE_ARCH_ppc
include ppc/local.mk
endif
+if SIM_ENABLE_ARCH_pru
+include pru/local.mk
+endif
+if SIM_ENABLE_ARCH_riscv
+include riscv/local.mk
+endif
+if SIM_ENABLE_ARCH_rl78
+include rl78/local.mk
+endif
if SIM_ENABLE_ARCH_rx
include rx/local.mk
endif
@@ -143,6 +184,15 @@ if SIM_ENABLE_ARCH_v850
include v850/local.mk
endif
+## Helper targets for running make from the top-level when some subdirs still
+## have Makefiles in subdirs.
+
+%/libsim.a: | $(SIM_ALL_RECURSIVE_DEPS)
+ $(MAKE) -C $(@D) $(@F)
+
+%/nrun.o: common/nrun.c | %/libsim.a $(SIM_ALL_RECURSIVE_DEPS)
+ $(MAKE) -C $(@D) $(@F)
+
all-recursive: $(SIM_ALL_RECURSIVE_DEPS)
install-data-local: installdirs $(SIM_INSTALL_DATA_LOCAL_DEPS)
diff --git a/sim/aarch64/local.mk b/sim/aarch64/local.mk
new file mode 100644
index 000000000000..7e5a53797d24
--- /dev/null
+++ b/sim/aarch64/local.mk
@@ -0,0 +1,25 @@
+## See sim/Makefile.am
+##
+## Copyright (C) 2015-2022 Free Software Foundation, Inc.
+## Contributed by Red Hat.
+##
+## 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/>.
+
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
diff --git a/sim/arm/local.mk b/sim/arm/local.mk
index 84dfbdfa5367..99790c6e4e42 100644
--- a/sim/arm/local.mk
+++ b/sim/arm/local.mk
@@ -1,6 +1,7 @@
## See sim/Makefile.am
##
## Copyright (C) 1995-2022 Free Software Foundation, Inc.
+## Written 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
@@ -15,5 +16,13 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
+
%C%docdir = $(docdir)/%C%
%C%doc_DATA = %D%/README
diff --git a/sim/avr/local.mk b/sim/avr/local.mk
new file mode 100644
index 000000000000..7da400616a09
--- /dev/null
+++ b/sim/avr/local.mk
@@ -0,0 +1,24 @@
+## See sim/Makefile.am
+##
+## Copyright (C) 2009-2022 Free Software Foundation, Inc.
+##
+## 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/>.
+
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
diff --git a/sim/bfin/local.mk b/sim/bfin/local.mk
new file mode 100644
index 000000000000..f61c917d7121
--- /dev/null
+++ b/sim/bfin/local.mk
@@ -0,0 +1,25 @@
+## See sim/Makefile.am
+##
+## Copyright (C) 2005-2022 Free Software Foundation, Inc.
+## Written by Analog Devices, Inc.
+##
+## 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/>.
+
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
diff --git a/sim/bpf/local.mk b/sim/bpf/local.mk
index 9b096baf3adf..b855db359691 100644
--- a/sim/bpf/local.mk
+++ b/sim/bpf/local.mk
@@ -15,6 +15,14 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
+
%C%_BUILD_OUTPUTS = \
%D%/eng-le.h \
%D%/mloop-le.c \
diff --git a/sim/common/Make-common.in b/sim/common/Make-common.in
index 290fa2c171d9..66f5f724f55b 100644
--- a/sim/common/Make-common.in
+++ b/sim/common/Make-common.in
@@ -223,18 +223,13 @@ LINK_FOR_BUILD = $(CC_FOR_BUILD) $(BUILD_CFLAGS) $(LDFLAGS_FOR_BUILD) -o $@
RUNTESTFLAGS =
-all: libsim.a run$(EXEEXT)
+all: libsim.a $(SIM_RUN_OBJS)
libsim.a: $(LIB_OBJS)
$(SILENCE) rm -f libsim.a
$(ECHO_AR) $(AR) $(AR_FLAGS) libsim.a $(LIB_OBJS)
$(ECHO_RANLIB) $(RANLIB) libsim.a
-run$(EXEEXT): $(SIM_RUN_OBJS) libsim.a $(LIBDEPS)
- $(ECHO_CCLD) $(LIBTOOL) $(AM_V_lt) --tag=CC --mode=link \
- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o run$(EXEEXT) \
- $(SIM_RUN_OBJS) libsim.a $(EXTRA_LIBS)
-
#
# 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
diff --git a/sim/common/local.mk b/sim/common/local.mk
index 5afae9141e54..fb03bb966e03 100644
--- a/sim/common/local.mk
+++ b/sim/common/local.mk
@@ -30,7 +30,8 @@ SIM_ALL_RECURSIVE_DEPS += \
## NB: libcommon.a isn't used directly by ports. We need a target for common
## objects to be a part of, and ports use the individual objects directly.
-noinst_LIBRARIES += %D%/libcommon.a
+SIM_COMMON_LIB = %D%/libcommon.a
+noinst_LIBRARIES += $(SIM_COMMON_LIB)
%C%_libcommon_a_SOURCES = \
%D%/callback.c \
%D%/portability.c \
@@ -50,3 +51,19 @@ noinst_LIBRARIES += %D%/libcommon.a
CLEANFILES += \
%D%/version.c %D%/version.c-stamp
+
+#
+# For subdirs.
+#
+
+LIBIBERTY_LIB = ../libiberty/libiberty.a
+BFD_LIB = ../bfd/libbfd.la
+OPCODES_LIB = ../opcodes/libopcodes.la
+
+SIM_COMMON_LIBS = \
+ $(SIM_COMMON_LIB) \
+ $(BFD_LIB) \
+ $(OPCODES_LIB) \
+ $(LIBIBERTY_LIB) \
+ $(LIBGNU) \
+ $(LIBGNU_EXTRA_LIBS)
diff --git a/sim/configure.ac b/sim/configure.ac
index 30479aebc491..135aa2198cfd 100644
--- a/sim/configure.ac
+++ b/sim/configure.ac
@@ -156,6 +156,7 @@ if test "${enable_sim}" != no; then
SIM_AC_TOOLCHAIN_FOR_TARGET(example-synacor)
SIM_BUILD_TARGET([example-synacor])
fi
+ AM_CONDITIONAL([SIM_ENABLE_ARCH_examples], [test "${enable_example_sims}" = "yes"])
fi
AM_CONDITIONAL([SIM_ENABLE_IGEN], [test "$sim_igen" = "yes"])
AM_CONDITIONAL([ENABLE_SIM], [test -n "$SIM_SUBDIRS"])
diff --git a/sim/cr16/local.mk b/sim/cr16/local.mk
index f84a618889c4..a318bd4199b8 100644
--- a/sim/cr16/local.mk
+++ b/sim/cr16/local.mk
@@ -16,6 +16,14 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
+
%C%_BUILD_OUTPUTS = \
%D%/gencode$(EXEEXT) \
%D%/simops.h \
diff --git a/sim/cris/local.mk b/sim/cris/local.mk
index 62a3f8e80abf..0a3423c33897 100644
--- a/sim/cris/local.mk
+++ b/sim/cris/local.mk
@@ -16,6 +16,14 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
+
## rvdummy is just used for testing -- it runs on the same host as `run`.
## It does nothing if --enable-sim-hardware isn't active.
%C%_rvdummy_SOURCES = %D%/rvdummy.c
diff --git a/sim/d10v/local.mk b/sim/d10v/local.mk
index f72bc145c906..4edd2e90d286 100644
--- a/sim/d10v/local.mk
+++ b/sim/d10v/local.mk
@@ -16,6 +16,14 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
+
%C%_BUILD_OUTPUTS = \
%D%/gencode$(EXEEXT) \
%D%/simops.h \
diff --git a/sim/erc32/Makefile.in b/sim/erc32/Makefile.in
index eef81d9dcd6e..6675fceccf3d 100644
--- a/sim/erc32/Makefile.in
+++ b/sim/erc32/Makefile.in
@@ -24,7 +24,6 @@ SIM_OBJS = exec.o erc32.o func.o help.o float.o interf.o
SIM_RUN_OBJS = sis.o
SIM_EXTRA_CFLAGS = $(READLINE_CFLAGS)
SIM_EXTRA_LIBS = $(READLINE_LIB) $(TERMCAP_LIB)
-SIM_EXTRA_CLEAN = clean-sis
# UARTS run at about 115200 baud (simulator time). Add -DFAST_UART to
# CFLAGS if faster (infinite) UART speed is desired. Might affect the
@@ -32,11 +31,3 @@ SIM_EXTRA_CLEAN = clean-sis
SIM_EXTRA_CFLAGS += -DFAST_UART -I$(srcroot)
## COMMON_POST_CONFIG_FRAG
-
-all: sis$(EXEEXT)
-sis$(EXEEXT): run$(EXEEXT)
- $(SILENCE) rm -f $@
- $(ECHO_GEN) ln $< $@ 2>/dev/null || $(LN_S) $< $@ 2>/dev/null || cp -p $< $@
-
-clean-sis:
- rm -f sis
diff --git a/sim/erc32/local.mk b/sim/erc32/local.mk
index 36baeb96614c..d73bc5b4bfef 100644
--- a/sim/erc32/local.mk
+++ b/sim/erc32/local.mk
@@ -1,6 +1,8 @@
## See sim/Makefile.am
##
## Copyright (C) 1993-2022 Free Software Foundation, Inc.
+## Written by Cygnus Support
+## Modified by J.Gaisler ESA/ESTEC
##
## 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
@@ -15,6 +17,21 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/sis.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS) $(READLINE_LIB) $(TERMCAP_LIB)
+
+%D%/sis$(EXEEXT): %D%/run$(EXEEXT)
+ $(AM_V_GEN)ln $< $@ 2>/dev/null || $(LN_S) $< $@ 2>/dev/null || cp -p $< $@
+
+## Helper targets for running make from the top-level due to run's sis.o.
+%D%/%.o: %D%/%.c | %D%/libsim.a $(SIM_ALL_RECURSIVE_DEPS)
+ $(MAKE) -C $(@D) $(@F)
+
+noinst_PROGRAMS += %D%/run %D%/sis
+
%C%docdir = $(docdir)/%C%
%C%doc_DATA = %D%/README.erc32 %D%/README.gdb %D%/README.sis
diff --git a/sim/example-synacor/local.mk b/sim/example-synacor/local.mk
new file mode 100644
index 000000000000..20cdc53215e4
--- /dev/null
+++ b/sim/example-synacor/local.mk
@@ -0,0 +1,25 @@
+## See sim/Makefile.am
+##
+## Copyright (C) 2005-2022 Free Software Foundation, Inc.
+## Written by Mike Frysinger <vapier@gentoo.org>
+##
+## 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/>.
+
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
diff --git a/sim/frv/local.mk b/sim/frv/local.mk
index 687fb4a86667..e08a488a91df 100644
--- a/sim/frv/local.mk
+++ b/sim/frv/local.mk
@@ -16,6 +16,14 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
+
%C%docdir = $(docdir)/%C%
%C%doc_DATA = %D%/README
diff --git a/sim/ft32/local.mk b/sim/ft32/local.mk
new file mode 100644
index 000000000000..cacf9f2b7c26
--- /dev/null
+++ b/sim/ft32/local.mk
@@ -0,0 +1,25 @@
+## See sim/Makefile.am
+##
+## Copyright (C) 2008-2022 Free Software Foundation, Inc.
+## Written by FTDI
+##
+## 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/>.
+
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
diff --git a/sim/h8300/local.mk b/sim/h8300/local.mk
new file mode 100644
index 000000000000..ae29197283a7
--- /dev/null
+++ b/sim/h8300/local.mk
@@ -0,0 +1,25 @@
+## See sim/Makefile.am
+##
+## Copyright (C) 1990-2022 Free Software Foundation, Inc.
+## Written 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/>.
+
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
diff --git a/sim/iq2000/local.mk b/sim/iq2000/local.mk
index cf9195a4cffe..b9a4ada3badc 100644
--- a/sim/iq2000/local.mk
+++ b/sim/iq2000/local.mk
@@ -16,6 +16,14 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
+
%C%_BUILD_OUTPUTS = \
%D%/eng.h \
%D%/mloop.c \
diff --git a/sim/lm32/local.mk b/sim/lm32/local.mk
index bb6c7ad248ae..7add85ac98b7 100644
--- a/sim/lm32/local.mk
+++ b/sim/lm32/local.mk
@@ -16,6 +16,14 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
+
%C%_BUILD_OUTPUTS = \
%D%/eng.h \
%D%/mloop.c \
diff --git a/sim/m32c/local.mk b/sim/m32c/local.mk
index 3ec947ad037a..efdf110e6309 100644
--- a/sim/m32c/local.mk
+++ b/sim/m32c/local.mk
@@ -16,6 +16,18 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/main.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
+
+## Helper targets for running make from the top-level due to run's main.o.
+%D%/%.o: %D%/%.c | %D%/libsim.a $(SIM_ALL_RECURSIVE_DEPS)
+ $(MAKE) -C $(@D) $(@F)
+
%C%_BUILD_OUTPUTS = \
%D%/opc2c$(EXEEXT) \
%D%/m32c.c \
diff --git a/sim/m32r/local.mk b/sim/m32r/local.mk
index 4158c8b57db5..51d9d3413d6c 100644
--- a/sim/m32r/local.mk
+++ b/sim/m32r/local.mk
@@ -16,6 +16,14 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
+
%C%_BUILD_OUTPUTS = \
%D%/eng.h \
%D%/mloop.c \
diff --git a/sim/m68hc11/local.mk b/sim/m68hc11/local.mk
index 838a089516eb..3cc980bf036a 100644
--- a/sim/m68hc11/local.mk
+++ b/sim/m68hc11/local.mk
@@ -16,6 +16,14 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
+
%C%_BUILD_OUTPUTS = \
%D%/gencode$(EXEEXT) \
%D%/m68hc11int.c \
diff --git a/sim/mcore/local.mk b/sim/mcore/local.mk
new file mode 100644
index 000000000000..01a66bd1d680
--- /dev/null
+++ b/sim/mcore/local.mk
@@ -0,0 +1,25 @@
+## See sim/Makefile.am
+##
+## Copyright (C) 1990-2022 Free Software Foundation, Inc.
+## Written by Cygnus Solutions.
+##
+## 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/>.
+
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
diff --git a/sim/microblaze/local.mk b/sim/microblaze/local.mk
new file mode 100644
index 000000000000..01a66bd1d680
--- /dev/null
+++ b/sim/microblaze/local.mk
@@ -0,0 +1,25 @@
+## See sim/Makefile.am
+##
+## Copyright (C) 1990-2022 Free Software Foundation, Inc.
+## Written by Cygnus Solutions.
+##
+## 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/>.
+
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
diff --git a/sim/mips/local.mk b/sim/mips/local.mk
new file mode 100644
index 000000000000..8e266e77b36f
--- /dev/null
+++ b/sim/mips/local.mk
@@ -0,0 +1,25 @@
+## See sim/Makefile.am
+##
+## Copyright (C) 1995-2022 Free Software Foundation, Inc.
+## Written 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/>.
+
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
diff --git a/sim/mn10300/local.mk b/sim/mn10300/local.mk
index a51813c275c1..08a3d4dedc47 100644
--- a/sim/mn10300/local.mk
+++ b/sim/mn10300/local.mk
@@ -16,6 +16,14 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
+
%C%_BUILT_SRC_FROM_IGEN = \
%D%/icache.h \
%D%/icache.c \
diff --git a/sim/moxie/local.mk b/sim/moxie/local.mk
index 600d2640beca..3b5c4c25c268 100644
--- a/sim/moxie/local.mk
+++ b/sim/moxie/local.mk
@@ -1,6 +1,7 @@
## See sim/Makefile.am
##
-## Copyright (C) 1993-2022 Free Software Foundation, Inc.
+## Copyright (C) 2008-2022 Free Software Foundation, Inc.
+## Written by Anthony Green
##
## 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
@@ -15,6 +16,14 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
+
dtbdir = $(datadir)/gdb/dtb
dtb_DATA = %D%/moxie-gdb.dtb
@@ -30,10 +39,3 @@ dtb_DATA = %D%/moxie-gdb.dtb
echo "tree compiler tool (dtc) is missing. Install the tool to "; \
echo "update the device tree blob."; \
fi
-
-# Rule to create the .dirstamp file (on which moxie-gdb.dtb depends)
-# as automake fails to automatically create this rule for _DATA items.
-%D%/$(am__dirstamp):
- @$(MKDIR_P) %D%
- @: >%D%/$(am__dirstamp)
-DISTCLEANFILES += %D%/$(am__dirstamp)
diff --git a/sim/msp430/local.mk b/sim/msp430/local.mk
new file mode 100644
index 000000000000..58557e17f025
--- /dev/null
+++ b/sim/msp430/local.mk
@@ -0,0 +1,25 @@
+## See sim/Makefile.am
+##
+## Copyright (C) 2012-2022 Free Software Foundation, Inc.
+## Written by Red Hat Inc.
+##
+## 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/>.
+
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
diff --git a/sim/or1k/local.mk b/sim/or1k/local.mk
index 122f78305711..cea1c6e28955 100644
--- a/sim/or1k/local.mk
+++ b/sim/or1k/local.mk
@@ -15,6 +15,14 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
+
%C%docdir = $(docdir)/%C%
%C%doc_DATA = %D%/README
diff --git a/sim/ppc/Makefile.in b/sim/ppc/Makefile.in
index d7b9df0819f4..cb1a25b4b5e9 100644
--- a/sim/ppc/Makefile.in
+++ b/sim/ppc/Makefile.in
@@ -37,10 +37,6 @@ include ../arch-subdir.mk
prefix = @prefix@
exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-tooldir = $(libdir)/$(target_alias)
-
datarootdir = @datarootdir@
datadir = @datadir@
mandir = @mandir@
@@ -135,7 +131,7 @@ BFD_LIB = ../../bfd/libbfd.la
TARGETLIB = libsim.a
-all: run$(EXEEXT) $(TARGETLIB) $(GDB_OBJ)
+all: main.o $(TARGETLIB) $(GDB_OBJ)
.c.o:
$(ECHO_CC) $(CC) -c $(STD_CFLAGS) $<
@@ -518,14 +514,6 @@ PACKAGE_SRC = pk_disklabel.c
PACKAGE_OBJ = $(PACKAGE_SRC:.c=.o)
-psim$(EXEEXT): $(TARGETLIB) main.o $(LIBIBERTY_LIB) $(BFD_LIB)
- $(ECHO_CCLD) $(LIBTOOL) $(AM_V_lt) --tag=CC --mode=link \
- $(CC) $(CFLAGS) $(LDFLAGS) -o psim$(EXEEXT) main.o $(TARGETLIB) $(BFD_LIB) $(LIBIBERTY_LIB) $(LIBS)
-
-run$(EXEEXT): psim$(EXEEXT)
- $(SILENCE) rm -f $@
- $(ECHO_GEN) ln $< $@ 2>/dev/null || $(LN_S) $< $@ 2>/dev/null || cp -p $< $@
-
$(TARGETLIB): tmp-igen tmp-dgen tmp-hw tmp-defines $(LIB_OBJ) $(GDB_OBJ)
$(ECHO_AR) $(AR) $(AR_FLAGS) $(TARGETLIB) $(LIB_OBJ) $(GDB_OBJ)
$(ECHO_RANLIB) $(RANLIB) $(TARGETLIB)
@@ -811,7 +799,7 @@ TAGS: $(BUILT_SRC)
etags $(srcdir)/*.h $(srcdir)/*.c $(BUILT_SRC)
clean mostlyclean:
- rm -f tmp-* *.[oasi] core psim$(EXEEXT) run$(EXEEXT) igen dgen $(BUILT_SRC_WO_CONFIG)
+ rm -f tmp-* *.[oasi] core igen dgen $(BUILT_SRC_WO_CONFIG)
distclean realclean: clean
rm -f TAGS Makefile config.cache config.status config.h defines.h stamp-h config.log
diff --git a/sim/ppc/local.mk b/sim/ppc/local.mk
index 03e54fbe083e..19a8a89ba47c 100644
--- a/sim/ppc/local.mk
+++ b/sim/ppc/local.mk
@@ -15,5 +15,20 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/main.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+%D%/psim$(EXEEXT): %D%/run$(EXEEXT)
+ $(AM_V_GEN)ln $< $@ 2>/dev/null || $(LN_S) $< $@ 2>/dev/null || cp -p $< $@
+
+## Helper targets for running make from the top-level due to run's sis.o.
+%D%/%.o: %D%/%.c | %D%/libsim.a $(SIM_ALL_RECURSIVE_DEPS)
+ $(MAKE) -C $(@D) $(@F)
+
+noinst_PROGRAMS += %D%/run %D%/psim
+
%C%docdir = $(docdir)/%C%
%C%doc_DATA = %D%/BUGS %D%/INSTALL %D%/README %D%/RUN
diff --git a/sim/pru/local.mk b/sim/pru/local.mk
new file mode 100644
index 000000000000..f83a6d9c700e
--- /dev/null
+++ b/sim/pru/local.mk
@@ -0,0 +1,25 @@
+## See sim/Makefile.am
+##
+## Copyright (C) 1990-2022 Free Software Foundation, Inc.
+## Written by Dimitar Dimitrov <dimitar@dinux.eu>
+##
+## 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/>.
+
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
diff --git a/sim/riscv/local.mk b/sim/riscv/local.mk
new file mode 100644
index 000000000000..11fdceca332a
--- /dev/null
+++ b/sim/riscv/local.mk
@@ -0,0 +1,25 @@
+## See sim/Makefile.am
+##
+## Copyright (C) 2005-2022 Free Software Foundation, Inc.
+## Written by Mike Frysinger.
+##
+## 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/>.
+
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
diff --git a/sim/rl78/local.mk b/sim/rl78/local.mk
new file mode 100644
index 000000000000..132fa3abccbd
--- /dev/null
+++ b/sim/rl78/local.mk
@@ -0,0 +1,29 @@
+## See sim/Makefile.am
+##
+## Copyright (C) 2008-2022 Free Software Foundation, Inc.
+## Contributed by Red Hat, Inc.
+##
+## 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/>.
+
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/main.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
+
+## Helper targets for running make from the top-level due to run's main.o.
+%D%/%.o: %D%/%.c | %D%/libsim.a $(SIM_ALL_RECURSIVE_DEPS)
+ $(MAKE) -C $(@D) $(@F)
diff --git a/sim/rx/local.mk b/sim/rx/local.mk
index 6f2dc7eee793..119a0f7ccf8d 100644
--- a/sim/rx/local.mk
+++ b/sim/rx/local.mk
@@ -1,6 +1,7 @@
## See sim/Makefile.am
##
## Copyright (C) 2008-2022 Free Software Foundation, Inc.
+## Contributed by Red Hat, Inc.
##
## 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
@@ -15,5 +16,17 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/main.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
+
+## Helper targets for running make from the top-level due to run's main.o.
+%D%/%.o: %D%/%.c | %D%/libsim.a $(SIM_ALL_RECURSIVE_DEPS)
+ $(MAKE) -C $(@D) $(@F)
+
%C%docdir = $(docdir)/%C%
%C%doc_DATA = %D%/README.txt
diff --git a/sim/sh/local.mk b/sim/sh/local.mk
index 5e97e543c72e..34be7b223e77 100644
--- a/sim/sh/local.mk
+++ b/sim/sh/local.mk
@@ -16,6 +16,14 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
+
%C%_BUILD_OUTPUTS = \
%D%/gencode$(EXEEXT) \
%D%/code.c \
diff --git a/sim/v850/local.mk b/sim/v850/local.mk
index 028eda36f800..367ca6ef1f4a 100644
--- a/sim/v850/local.mk
+++ b/sim/v850/local.mk
@@ -16,6 +16,14 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C%_run_SOURCES =
+%C%_run_LDADD = \
+ %D%/nrun.o \
+ %D%/libsim.a \
+ $(SIM_COMMON_LIBS)
+
+noinst_PROGRAMS += %D%/run
+
%C%_BUILT_SRC_FROM_IGEN = \
%D%/icache.h \
%D%/icache.c \
--
2.38.1
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-11-05 8:27 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-05 8:27 [PATCH 1/3] sim: build: move install steps to the top-level Mike Frysinger
2022-11-05 8:27 ` [PATCH 2/3] sim: build: add uninstall support Mike Frysinger
2022-11-05 8:27 ` [PATCH 3/3] sim: run: move linking into top-level Mike 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).