## See sim/Makefile.am. ## ## Copyright (C) 1997-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 . ## Parts of the common/ sim code that have been unified. ## Most still lives in common/Make-common.in. AM_CPPFLAGS += \ -I$(srcdir)/%D% \ -DSIM_COMMON_BUILD AM_CPPFLAGS_FOR_BUILD += -I$(srcdir)/%D% ## This makes sure common parts are available before building the arch-subdirs ## which will refer to these. SIM_ALL_RECURSIVE_DEPS += \ %D%/libcommon.a ## 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. SIM_COMMON_LIB = %D%/libcommon.a noinst_LIBRARIES += $(SIM_COMMON_LIB) %C%_libcommon_a_SOURCES = \ %D%/callback.c \ %D%/portability.c \ %D%/sim-load.c \ %D%/syscall.c \ %D%/target-newlib-errno.c \ %D%/target-newlib-open.c \ %D%/target-newlib-signal.c \ %D%/target-newlib-syscall.c \ %D%/version.c %D%/version.c: %D%/version.c-stamp ; @true %D%/version.c-stamp: $(srcroot)/gdb/version.in $(srcroot)/bfd/version.h $(srcdir)/%D%/create-version.sh $(AM_V_GEN)$(SHELL) $(srcdir)/%D%/create-version.sh $(srcroot)/gdb $@.tmp $(AM_V_at)$(SHELL) $(srcroot)/move-if-change $@.tmp $(@:-stamp=) $(AM_V_at)touch $@ CLEANFILES += \ %D%/version.c %D%/version.c-stamp ## ## For subdirs. ## SIM_COMMON_HW_OBJS = \ hw-alloc.o \ hw-base.o \ hw-device.o \ hw-events.o \ hw-handles.o \ hw-instances.o \ hw-ports.o \ hw-properties.o \ hw-tree.o \ sim-hw.o SIM_NEW_COMMON_OBJS = \ sim-arange.o \ sim-bits.o \ sim-close.o \ sim-command.o \ sim-config.o \ sim-core.o \ sim-cpu.o \ sim-endian.o \ sim-engine.o \ sim-events.o \ sim-fpu.o \ sim-hload.o \ sim-hrw.o \ sim-io.o \ sim-info.o \ sim-memopt.o \ sim-model.o \ sim-module.o \ sim-options.o \ sim-profile.o \ sim-reason.o \ sim-reg.o \ sim-signal.o \ sim-stop.o \ sim-syscall.o \ sim-trace.o \ sim-utils.o \ sim-watch.o AM_MAKEFLAGS += SIM_NEW_COMMON_OBJS_="$(SIM_NEW_COMMON_OBJS)" SIM_HW_DEVICES = cfi core pal glue if SIM_ENABLE_HW SIM_NEW_COMMON_OBJS += \ $(SIM_COMMON_HW_OBJS) \ $(SIM_HW_SOCKSER) AM_MAKEFLAGS += SIM_HW_DEVICES_="$(SIM_HW_DEVICES)" endif # FIXME This is one very simple-minded way of generating the file hw-config.h. %/hw-config.h: %/stamp-hw ; @true %/stamp-hw: Makefile $(AM_V_GEN)set -e; \ ( \ sim_hw="$(SIM_HW_DEVICES) $($(@D)_SIM_EXTRA_HW_DEVICES)" ; \ echo "/* generated by Makefile */" ; \ printf "extern const struct hw_descriptor dv_%s_descriptor[];\n" $$sim_hw ; \ echo "const struct hw_descriptor * const hw_descriptors[] = {" ; \ printf " dv_%s_descriptor,\n" $$sim_hw ; \ echo " NULL," ; \ echo "};" \ ) > $@.tmp; \ $(SHELL) $(srcroot)/move-if-change $@.tmp $(@D)/hw-config.h; \ touch $@ .PRECIOUS: %/stamp-hw %C%_HW_CONFIG_H_TARGETS = $(patsubst %,%/hw-config.h,$(SIM_ENABLED_ARCHES)) MOSTLYCLEANFILES += $(%C%_HW_CONFIG_H_TARGETS) $(patsubst %,%/stamp-hw,$(SIM_ENABLED_ARCHES)) SIM_ALL_RECURSIVE_DEPS += $(%C%_HW_CONFIG_H_TARGETS) 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)