o Add modulo argument to sim_core_attach
[binutils-gdb.git] / sim / common / Make-common.in
index 9964b925261ca0640433c74a3dd98657461f2c1a..c345d6126e3d461fa824166855b61577bd95a96b 100644 (file)
@@ -58,11 +58,9 @@ includedir = @includedir@
 
 SHELL = /bin/sh
 
-INSTALL = $(srcroot)/install.sh -c
+INSTALL = @INSTALL@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
-INSTALL_XFORM = $(INSTALL) -t='$(program_transform_name)'
-INSTALL_XFORM1= $(INSTALL_XFORM) -b=.1
 
 CC = @CC@
 CC_FOR_BUILD = @CC_FOR_BUILD@
@@ -70,11 +68,8 @@ CFLAGS = @CFLAGS@
 SIM_BSWAP = @sim_bswap@
 SIM_CFLAGS = @sim_cflags@
 SIM_DEBUG = @sim_debug@
-SIM_ENDIAN = @sim_endian@
-SIM_HOSTENDIAN = @sim_hostendian@
-SIM_INLINE = @sim_inline@
 SIM_TRACE = @sim_trace@
-SIM_WARNINGS = @sim_warnings@
+SIM_PROFILE = @sim_profile@
 
 HDEFINES = @HDEFINES@
 TDEFINES =
@@ -85,10 +80,15 @@ RANLIB = @RANLIB@
 MAKEINFO = makeinfo
 
 # Each simulator's Makefile.in defines one or more of these variables
-# to override our settings as necessary.
+# 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 object files, less common parts.
 SIM_OBJS =
+# List of extra dependencies.
+# Generally this consists of simulator specific files included by sim-main.h.
+SIM_EXTRA_DEPS =
 # List of flags to always pass to $(CC).
 SIM_EXTRA_CFLAGS =
 # List of extra libraries to link with.
@@ -108,12 +108,11 @@ SIM_EXTRA_CLEAN =
 
 ## COMMON_POST_CONFIG_FRAG
 
-CONFIG_CFLAGS = @DEFS@ $(SIM_CFLAGS) $(SIM_DEBUG) $(SIM_TRACE) $(SIM_BSWAP) \
-  $(SIM_HOSTENDIAN) $(SIM_ENDIAN) $(SIM_INLINE) $(SIM_WARNINGS) \
-  $(SIM_EXTRA_CFLAGS) $(HDEFINES) $(TDEFINES)
+CONFIG_CFLAGS = @DEFS@ $(SIM_CFLAGS) $(SIM_DEBUG) $(SIM_TRACE) $(SIM_PROFILE) \
+  $(SIM_BSWAP) $(SIM_EXTRA_CFLAGS) $(HDEFINES) $(TDEFINES)
 CSEARCH = -I. -I$(srcdir) -I../common -I$(srcdir)/../common \
   -I../../include -I$(srcroot)/include \
-  -I../../bfd -I$(srcroot)/bfd -I$(srcroot)/gdb \
+  -I../../bfd -I$(srcroot)/bfd \
   -I../../opcodes -I$(srcroot)/opcodes
 ALL_CFLAGS = $(CONFIG_CFLAGS) $(CSEARCH) $(CFLAGS)
 BUILD_CFLAGS = -g -O $(CSEARCH)
@@ -133,7 +132,7 @@ all: libsim.a run $(SIM_EXTRA_ALL)
 
 libsim.a: $(LIB_OBJS)
        rm -f libsim.a
-       $(AR) $(ARFLAGS) libsim.a $(LIB_OBJS)
+       $(AR) $(AR_FLAGS) libsim.a $(LIB_OBJS)
        $(RANLIB) libsim.a
 
 run: $(SIM_RUN_OBJS) libsim.a $(LIBDEPS)
@@ -166,10 +165,183 @@ targ-map.c: gentmap
        rm -f targ-map.c
        ./gentmap -c >targ-map.c
 
+
+#
+# Rules for building sim-* components.  Triggered by listing the corresponding
+# .o file in the list of simulator targets.
+#
+
+sim_main_headers = \
+       sim-main.h \
+       $(srcdir)/../common/sim-config.h \
+       $(srcdir)/../common/sim-base.h \
+       $(srcdir)/../common/sim-basics.h \
+       $(srcdir)/../common/sim-memopt.h \
+       $(srcdir)/../common/sim-model.h \
+       $(srcdir)/../common/sim-module.h \
+       $(srcdir)/../common/sim-trace.h \
+       $(srcdir)/../common/sim-profile.h \
+       $(srcdir)/../common/sim-engine.h \
+       $(srcdir)/../common/sim-events.h \
+       $(srcdir)/../common/sim-watch.h \
+       $(srcdir)/../common/sim-assert.h \
+       tconfig.h
+
+sim-assert_h = $(srcdir)/../common/sim-assert.h
+sim-endian_h = $(srcdir)/../common/sim-endian.h
+sim-n-endian_h = $(srcdir)/../common/sim-n-endian.h
+sim-bits_h = $(srcdir)/../common/sim-bits.h
+sim-config_h = $(srcdir)/../common/sim-config.h
+sim-n-bits_h = $(srcdir)/../common/sim-n-bits.h
+sim-core_h = $(srcdir)/../common/sim-core.h
+sim-n-core_h = $(srcdir)/../common/sim-n-core.h
+sim-engine_h = $(srcdir)/../common/sim-engine.h
+sim-events_h = $(srcdir)/../common/sim-events.h
+sim-fpu_h = $(srcdir)/../common/sim-fpu.h
+sim-io_h = $(srcdir)/../common/sim-io.h
+sim-options_h = $(srcdir)/../common/sim-options.h
+
+# FIXME: If this complicated way of building .o files from ../common is
+# necessary, the reason should be documented here.
+
+BUILT_SRC_FROM_COMMON= \
+       sim-endian.c \
+       sim-inline.c \
+       sim-bits.c \
+       sim-events.c \
+       sim-core.c \
+       sim-config.c \
+       sim-io.c
+
+sim-abort.o: $(srcdir)/../common/sim-abort.c \
+       $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-abort.c $(ALL_CFLAGS)
+
+sim-bits.o: $(srcdir)/../common/sim-bits.c $(sim-bits_h) $(sim-n-bits_h) \
+       $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-bits.c $(ALL_CFLAGS)
+
+sim-config.o: $(srcdir)/../common/sim-config.c $(sim-config_h) $(sim-nconfig_h) \
+       $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-config.c $(ALL_CFLAGS)
+
+sim-core.o: $(srcdir)/../common/sim-core.c $(sim-core_h) $(sim-n-core_h) \
+       $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-core.c $(ALL_CFLAGS)
+
+sim-endian.o: $(srcdir)/../common/sim-endian.c $(sim-endian_h) $(sim-n-endian_h) \
+       $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-endian.c $(ALL_CFLAGS)
+
+sim-engine.o: $(srcdir)/../common/sim-engine.c $(sim_main_headers) $(sim-engine_h) \
+       $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-engine.c $(ALL_CFLAGS)
+
+sim-events.o: $(srcdir)/../common/sim-events.c $(sim-events_h) \
+       $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-events.c $(ALL_CFLAGS)
+
+sim-fpu.o: $(srcdir)/../common/sim-fpu.c $(sim-fpu_h) \
+       $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-fpu.c $(ALL_CFLAGS)
+
+sim-hload.o: $(srcdir)/../common/sim-hload.c $(sim-assert_h) \
+       $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-hload.c $(ALL_CFLAGS)
+
+sim-inline.c: $(srcdir)/../common/sim-inline.c
+       rm -f $@ tmp-$@
+       echo "# 1 \"$(srcdir)/../common/$@\"" > tmp-$@
+       cat $(srcdir)/../common/$@ >> tmp-$@
+       $(srcdir)/../../move-if-change tmp-$@ $@
+
+sim-io.o: $(srcdir)/../common/sim-io.c $(sim_main_headers) $(sim-io_h) \
+       $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-io.c $(ALL_CFLAGS)
+
+sim-memopt.o: $(srcdir)/../common/sim-memopt.c $(sim_main_headers) \
+         $(sim-io_h) $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-memopt.c $(ALL_CFLAGS)
+
+sim-module.o: $(srcdir)/../common/sim-module.c $(sim_main_headers) \
+         $(sim-io_h) $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-module.c $(ALL_CFLAGS)
+
+sim-options.o: $(srcdir)/../common/sim-options.c $(sim_main_headers) \
+         $(sim-options_h) $(sim-io_h) $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-options.c $(ALL_CFLAGS)
+
+sim-reason.o: $(srcdir)/../common/sim-reason.c $(sim_main_headers) \
+       $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-reason.c $(ALL_CFLAGS)
+
+sim-resume.o: $(srcdir)/../common/sim-resume.c $(sim_main_headers) \
+       $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-resume.c $(ALL_CFLAGS)
+
+sim-run.o: $(srcdir)/../common/sim-run.c $(sim_main_headers) \
+       $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-run.c $(ALL_CFLAGS)
+
+sim-stop.o: $(srcdir)/../common/sim-stop.c $(sim_main_headers) \
+       $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-stop.c $(ALL_CFLAGS)
+
+sim-trace.o: $(srcdir)/../common/sim-trace.c $(sim_main_headers) \
+         $(sim-options_h) $(sim-io_h) $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-trace.c $(ALL_CFLAGS)
+
+sim-profile.o: $(srcdir)/../common/sim-profile.c $(sim_main_headers) \
+         $(sim-options_h) $(sim-io_h) $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-profile.c $(ALL_CFLAGS)
+
+sim-model.o: $(srcdir)/../common/sim-model.c $(sim_main_headers) \
+         $(sim-io_h) $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-model.c $(ALL_CFLAGS)
+
+sim-utils.o: $(srcdir)/../common/sim-utils.c $(sim_main_headers) \
+         $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-utils.c $(ALL_CFLAGS)
+
+sim-watch.o: $(srcdir)/../common/sim-watch.c $(sim_main_headers) \
+         $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/sim-watch.c $(ALL_CFLAGS)
+
+sim-load.o: $(srcdir)/../common/sim-load.c
+       $(CC) -c $(srcdir)/../common/sim-load.c $(ALL_CFLAGS)
+
+nrun.o: $(srcdir)/../common/nrun.c config.h tconfig.h \
+         $(srcroot)/include/callback.h $(sim_main_headers)
+       $(CC) -c $(srcdir)/../common/nrun.c $(ALL_CFLAGS)
+
+# CGEN support.
+
+cgen-run.o: $(srcdir)/../common/cgen-run.c $(sim_main_headers) \
+         $(SIM_EXTRA_DEPS)
+       $(CC) -c $(srcdir)/../common/cgen-run.c $(ALL_CFLAGS)
+
+cgen-scache.o: $(srcdir)/../common/cgen-scache.c $(sim_main_headers) \
+         $(SIM_EXTRA_DEPS) $(srcdir)/../common/cgen-scache.h
+       $(CC) -c $(srcdir)/../common/cgen-scache.c $(ALL_CFLAGS)
+
+cgen-trace.o: $(srcdir)/../common/cgen-trace.c $(sim_main_headers) \
+         $(SIM_EXTRA_DEPS) $(srcdir)/../common/cgen-trace.h
+       $(CC) -c $(srcdir)/../common/cgen-trace.c $(ALL_CFLAGS)
+
+cgen-utils.o: $(srcdir)/../common/cgen-utils.c $(sim_main_headers) \
+         $(SIM_EXTRA_DEPS) mem-ops.h sem-ops.h
+       $(CC) -c $(srcdir)/../common/cgen-utils.c $(ALL_CFLAGS)
+
+# Support targets.
+
 install: install-common $(SIM_EXTRA_INSTALL)
 
-install-common:
-       $(INSTALL_XFORM) run $(bindir)/run
+install-common: installdirs
+       n=`echo run | sed '$(program_transform_name)'`; \
+       $(INSTALL_PROGRAM) run $(bindir)/$$n
+
+installdirs:
+       $(SHELL) $(srcdir)/../../mkinstalldirs $(bindir)
 
 check:
 
@@ -183,17 +355,19 @@ MAKEOVERRIDES=
 tags etags: TAGS
 
 TAGS: force
-       etags *.c *.h
+       etags --regex '/^\/[*] TAGS: .*/' *.c *.h
 
 clean: $(SIM_EXTRA_CLEAN)
        rm -f *.[oa] *~ core
        rm -f run libsim.a
        rm -f gentmap targ-map.c targ-vals.h
+       rm -f $(BUILT_SRC_FROM_COMMON)
 
 distclean mostlyclean maintainer-clean realclean: clean
        rm -f TAGS
-       rm -f Makefile config.cache config.log config.status
+       rm -f Makefile config.cache config.log config.status .gdbinit
        rm -f tconfig.h config.h stamp-h
+       rm -f targ-vals.def
 
 .c.o:
        $(CC) -c $(ALL_CFLAGS) $<
@@ -211,4 +385,7 @@ config.h: stamp-h ; @true
 stamp-h: config.in config.status
        CONFIG_FILES= CONFIG_HEADERS=config.h:config.in $(SHELL) ./config.status
 
+.gdbinit: config.status $(srcdir)/../common/gdbinit.in
+       CONFIG_FILES=$@:../common/gdbinit.in CONFIG_HEADERS= $(SHELL) ./config.status
+
 ## End COMMON_POST_CONFIG_FRAG