From 70ab6bdd55540779cda498611010b61619f1758a Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sun, 31 Oct 2021 02:08:38 -0400 Subject: sim: hoist gencode & opc2c build rules up to common builds These rules don't depend on the target compiler settings, so hoist the build logic up to the common builds for better parallelization. --- sim/cr16/Makefile.in | 22 ---------------------- sim/cr16/local.mk | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 22 deletions(-) create mode 100644 sim/cr16/local.mk (limited to 'sim/cr16') diff --git a/sim/cr16/Makefile.in b/sim/cr16/Makefile.in index 99b2bec..4d7345a 100644 --- a/sim/cr16/Makefile.in +++ b/sim/cr16/Makefile.in @@ -23,32 +23,10 @@ SIM_OBJS = \ interp.o \ table.o \ simops.o -SIM_EXTRA_CLEAN = clean-extra SIM_EXTRA_DEPS = simops.h -INCLUDE = cr16_sim.h $(srcroot)/include/sim/callback.h targ-vals.h \ - $(srcroot)/include/gdb/sim-cr16.h - # This selects the cr16 newlib/libgloss syscall definitions. NL_TARGET = -DNL_TARGET_cr16 ## COMMON_POST_CONFIG_FRAG - -simops.h: gencode - $(ECHO_GEN) ./gencode -h >$@ - -table.c: gencode simops.h - $(ECHO_GEN) ./gencode >$@ - -gencode.o: gencode.c $(INCLUDE) - $(ECHO_CC) $(COMPILE_FOR_BUILD) $(WARN_CFLAGS) -c $(srcdir)/gencode.c - -cr16-opc.o: $(srcdir)/../../opcodes/cr16-opc.c - $(ECHO_CC) $(COMPILE_FOR_BUILD) $(WARN_CFLAGS) -c $(srcdir)/../../opcodes/cr16-opc.c - -gencode: gencode.o cr16-opc.o - $(ECHO_CCLD) $(LINK_FOR_BUILD) gencode.o cr16-opc.o - -clean-extra: - rm -f table.c simops.h gencode diff --git a/sim/cr16/local.mk b/sim/cr16/local.mk new file mode 100644 index 0000000..77866c2 --- /dev/null +++ b/sim/cr16/local.mk @@ -0,0 +1,47 @@ +# See sim/Makefile.am +# +# Copyright (C) 2008-2021 Free Software Foundation, Inc. +# Contributed by M Ranga Swami Reddy +# +# 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 . + +%C%_BUILD_OUTPUTS = \ + %D%/gencode$(EXEEXT) \ + %D%/simops.h \ + %D%/table.c + +# This makes sure build tools are available before building the arch-subdirs. +SIM_ALL_RECURSIVE_DEPS += $(%C%_BUILD_OUTPUTS) + +%C%_gencode_SOURCES = %D%/gencode.c +%C%_gencode_LDADD = %D%/cr16-opc.o + +# These rules are copied from automake, but tweaked to use FOR_BUILD variables. +%D%/gencode$(EXEEXT): $(%C%_gencode_OBJECTS) $(%C%_gencode_DEPENDENCIES) %D%/$(am__dirstamp) + $(AM_V_CCLD)$(LINK_FOR_BUILD) $(%C%_gencode_OBJECTS) $(%C%_gencode_LDADD) + +# gencode is a build-time only tool. Override the default rules for it. +%D%/gencode.o: %D%/gencode.c + $(AM_V_CC)$(COMPILE_FOR_BUILD) -c $< -o $@ +%D%/cr16-opc.o: ../opcodes/cr16-opc.c + $(AM_V_CC)$(COMPILE_FOR_BUILD) -c $< -o $@ + +%D%/simops.h: %D%/gencode$(EXEEXT) + $(AM_V_GEN)$< -h >$@ + +%D%/table.c: %D%/gencode$(EXEEXT) + $(AM_V_GEN)$< >$@ + +EXTRA_PROGRAMS += %D%/gencode +MOSTLYCLEANFILES += $(%C%_BUILD_OUTPUTS) -- cgit v1.1