| # |
| # This file is part of the program psim. |
| # |
| # Copyright 1994, 1995, 1996, 1997, 2003 Andrew Cagney |
| # |
| # 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/>. |
| # |
| |
| default: all |
| |
| VPATH = @srcdir@ |
| srcdir = @srcdir@ |
| srccom = $(srcdir)/../common |
| srcroot = $(srcdir)/../.. |
| srcsim = $(srcdir)/.. |
| |
| include $(srcroot)/gdb/silent-rules.mk |
| |
| # Helper code from gnulib. |
| GNULIB_PARENT_DIR = ../.. |
| include $(GNULIB_PARENT_DIR)/gnulib/Makefile.gnulib.inc |
| |
| # Settings from top-level configure. |
| include ../arch-subdir.mk |
| |
| prefix = @prefix@ |
| exec_prefix = @exec_prefix@ |
| |
| datarootdir = @datarootdir@ |
| datadir = @datadir@ |
| mandir = @mandir@ |
| man1dir = $(mandir)/man1 |
| man2dir = $(mandir)/man2 |
| man3dir = $(mandir)/man3 |
| man4dir = $(mandir)/man4 |
| man5dir = $(mandir)/man5 |
| man6dir = $(mandir)/man6 |
| man7dir = $(mandir)/man7 |
| man8dir = $(mandir)/man8 |
| man9dir = $(mandir)/man9 |
| infodir = @infodir@ |
| includedir = @includedir@ |
| |
| # This can be referenced by the gettext configuration code. |
| top_builddir = .. |
| |
| SHELL = /bin/sh |
| |
| BISON = bison |
| MAKEINFO = makeinfo |
| |
| INLINE_CFLAGS = $(SIM_INLINE) |
| SMP_CFLAGS = @sim_ppc_smp@ |
| XOR_ENDIAN_CFLAGS = @sim_ppc_xor_endian@ |
| BITSIZE_CFLAGS = @sim_ppc_bitsize@ |
| TIMEBASE_CFLAGS = @sim_ppc_timebase@ |
| FLOAT_CFLAGS = @sim_ppc_float@ |
| MONITOR_CFLAGS = @sim_ppc_monitor@ |
| MODEL_CFLAGS = @sim_ppc_model@ @sim_ppc_default_model@ @sim_ppc_model_issue@ |
| SWITCH_CFLAGS = @sim_ppc_switch@ |
| CONFIG_CFLAGS = \ |
| -DHAVE_CONFIG_H \ |
| $(SMP_CFLAGS) \ |
| $(XOR_ENDIAN_CFLAGS) \ |
| $(BITSIZE_CFLAGS) \ |
| $(TIMEBASE_CFLAGS) \ |
| $(FLOAT_CFLAGS) \ |
| $(MONITOR_CFLAGS) \ |
| $(MODEL_CFLAGS) \ |
| $(SWITCH_CFLAGS) |
| SIM_FPU_CFLAGS = -DHAVE_COMMON_FPU -I../common -I${srcdir}/../common |
| |
| STD_CFLAGS = $(CFLAGS) $(WERROR_CFLAGS) $(INLINE_CFLAGS) $(CONFIG_CFLAGS) $(WARN_CFLAGS) $(INCLUDES) $(INCGNU) $(SIM_FPU_CFLAGS) |
| NOWARN_CFLAGS = $(CFLAGS) $(INLINE_CFLAGS) $(CONFIG_CFLAGS) $(INCLUDES) $(SIM_FPU_CFLAGS) |
| |
| LIBS = $(COMMON_LIBS) @LIBS@ $(LIBGNU) $(LIBGNU_EXTRA_LIBS) |
| |
| .NOEXPORT: |
| MAKEOVERRIDES= |
| |
| LIB_INCLUDES = -I$(srcdir)/../../include |
| BFD_INCLUDES = -I../../bfd -I$(srcdir)/../../bfd |
| |
| INCLUDES = -I. -I$(srcdir) $(LIB_INCLUDES) $(BFD_INCLUDES) -I../.. |
| |
| LIBIBERTY_LIB = ../../libiberty/libiberty.a |
| BFD_LIB = ../../bfd/libbfd.la |
| |
| |
| TARGETLIB = libsim.a |
| |
| all: main.o $(TARGETLIB) $(GDB_OBJ) |
| |
| .c.o: |
| $(ECHO_CC) $(CC) -c $(STD_CFLAGS) $< |
| |
| |
| # Headers outside sim/ppc. |
| ANSIDECL_H = $(srcroot)/include/ansidecl.h |
| BFD_H = ../../bfd/bfd.h |
| GDB_CALLBACK_H = $(srcroot)/include/sim/callback.h |
| GDB_REMOTE_SIM_H = $(srcroot)/include/sim/sim.h |
| GDB_SIM_PPC_H = $(srcroot)/include/sim/sim-ppc.h |
| COMMON_SIM_BASE_H = $(srcroot)/sim/common/sim-base.h |
| COMMON_SIM_BASICS_H = $(srcroot)/sim/common/sim-basics.h |
| COMMON_SIM_FPU_H = $(srcroot)/sim/common/sim-fpu.h |
| COMMON_SIM_INLINE_H = $(srcroot)/sim/common/sim-inline.h |
| COMMON_SIM_SIGNAL_H = $(srcroot)/sim/common/sim-signal.h |
| |
| # Headers in sim/ppc. |
| ALTIVEC_EXPRESSION_H = \ |
| altivec_expression.h |
| |
| ALTIVEC_REGISTERS_H = \ |
| altivec_registers.h |
| |
| BASICS_H = \ |
| basics.h \ |
| $(INLINE_H) \ |
| $(SIM_CALLBACKS_H) \ |
| $(DEBUG_H) \ |
| $(WORDS_H) \ |
| $(BITS_H) \ |
| $(SIM_ENDIAN_H) |
| |
| BITS_H = \ |
| bits.h \ |
| bits.c |
| |
| CAP_H = \ |
| cap.h \ |
| $(BASICS_H) |
| |
| COREFILE_H = \ |
| corefile.h |
| |
| COREFILE_N_H = \ |
| corefile-n.h |
| |
| CPU_H = \ |
| cpu.h \ |
| $(BASICS_H) \ |
| $(REGISTERS_H) \ |
| $(DEVICE_H) \ |
| $(COREFILE_H) \ |
| $(VM_H) \ |
| $(EVENTS_H) \ |
| $(INTERRUPTS_H) \ |
| $(PSIM_H) \ |
| $(IDECODE_H) \ |
| $(ITABLE_H) \ |
| $(OS_EMUL_H) \ |
| $(MON_H) \ |
| $(MODEL_H) \ |
| cpu.c |
| |
| DEBUG_H = \ |
| debug.h |
| |
| DEVICE_H = \ |
| device.h |
| |
| DEVICE_TABLE_H = \ |
| device_table.h \ |
| $(BASICS_H) \ |
| $(DEVICE_H) \ |
| $(TREE_H) \ |
| $(HW_H) |
| |
| E500_EXPRESSION_H = \ |
| e500_expression.h |
| |
| E500_REGISTERS_H = \ |
| e500_registers.h |
| |
| EMUL_BUGAPI_H = \ |
| emul_bugapi.h |
| |
| EMUL_CHIRP_H = \ |
| emul_chirp.h |
| |
| EMUL_GENERIC_H = \ |
| emul_generic.h \ |
| $(CPU_H) \ |
| $(IDECODE_H) \ |
| $(OS_EMUL_H) \ |
| $(TREE_H) \ |
| $(BFD_H) |
| |
| EMUL_NETBSD_H = \ |
| emul_netbsd.h |
| |
| EMUL_UNIX_H = \ |
| emul_unix.h |
| |
| EVENTS_H = \ |
| events.h |
| |
| FILTER_H = \ |
| filter.h |
| |
| GEN_ICACHE_H = \ |
| gen-icache.h |
| |
| GEN_IDECODE_H = \ |
| gen-idecode.h |
| |
| GEN_ITABLE_H = \ |
| gen-itable.h |
| |
| GEN_MODEL_H = \ |
| gen-model.h |
| |
| GEN_SEMANTICS_H = \ |
| gen-semantics.h |
| |
| GEN_SUPPORT_H = \ |
| gen-support.h |
| |
| HW_CPU_H = \ |
| hw_cpu.h |
| |
| HW_PHB_H = \ |
| hw_phb.h |
| |
| IDECODE_BRANCH_H = \ |
| idecode_branch.h |
| |
| IDECODE_EXPRESSION_H = \ |
| idecode_expression.h \ |
| $(ALTIVEC_EXPRESSION_H) \ |
| $(E500_EXPRESSION_H) |
| |
| IDECODE_FIELDS_H = \ |
| idecode_fields.h |
| |
| INLINE_H = \ |
| inline.h |
| |
| INTERRUPTS_H = \ |
| interrupts.h |
| |
| LD_CACHE_H = \ |
| ld-cache.h |
| |
| LD_DECODE_H = \ |
| ld-decode.h |
| |
| LD_INSN_H = \ |
| ld-insn.h |
| |
| LF_H = \ |
| lf.h |
| |
| MISC_H = \ |
| misc.h |
| |
| MON_H = \ |
| mon.h \ |
| $(BASICS_H) \ |
| $(ITABLE_H) |
| |
| OPTIONS_H = \ |
| options.h |
| |
| OS_EMUL_H = \ |
| os_emul.h |
| |
| PSIM_H = \ |
| psim.h \ |
| $(BASICS_H) |
| |
| REGISTERS_H = \ |
| registers.h \ |
| $(E500_REGISTERS_H) \ |
| $(ALTIVEC_REGISTERS_H) \ |
| $(SPREG_H) |
| |
| SIM_CALLBACKS_H = \ |
| sim_callbacks.h |
| |
| SIM_ENDIAN_H = \ |
| sim-endian.h \ |
| sim-endian.c |
| |
| SIM_ENDIAN_N_H = \ |
| sim-endian-n.h |
| |
| SIM_MAIN_H = \ |
| sim-main.h \ |
| $(COMMON_SIM_BASICS_H) \ |
| $(COMMON_SIM_SIGNAL_H) \ |
| $(COMMON_SIM_BASE_H) |
| |
| STD_CONFIG_H = \ |
| std-config.h |
| |
| TABLE_H = \ |
| table.h |
| |
| TREE_H = \ |
| tree.h |
| |
| VM_H = \ |
| vm.h |
| |
| VM_N_H = \ |
| vm_n.h |
| |
| WORDS_H = \ |
| words.h |
| |
| |
| # Generated headers. |
| DEFINES_H = \ |
| defines.h |
| |
| HW_H = \ |
| hw.h |
| |
| ICACHE_H = \ |
| icache.h |
| |
| IDECODE_H = \ |
| idecode.h \ |
| $(IDECODE_EXPRESSION_H) \ |
| $(IDECODE_FIELDS_H) \ |
| $(IDECODE_BRANCH_H) |
| |
| ITABLE_H = \ |
| itable.h |
| |
| MODEL_H = \ |
| model.h |
| |
| PK_H = \ |
| pk.h |
| |
| SEMANTICS_H = \ |
| semantics.h |
| |
| SPREG_H = \ |
| spreg.h |
| |
| SUPPORT_H = \ |
| support.h \ |
| support.c |
| |
| INLINE = \ |
| inline.h \ |
| inline.c |
| |
| LIB_INLINE_SRC = \ |
| psim.c \ |
| bits.c \ |
| debug.c \ |
| sim-endian.c \ |
| sim-endian.h \ |
| sim-endian-n.h \ |
| vm.c \ |
| vm_n.h \ |
| corefile.c \ |
| events.c \ |
| os_emul.c \ |
| registers.c \ |
| cpu.c \ |
| interrupts.c \ |
| device.c \ |
| tree.c \ |
| device_table.c \ |
| cap.c \ |
| mon.c \ |
| options.c |
| |
| LIB_SRC = \ |
| $(PACKAGE_SRC) \ |
| $(HW_SRC) \ |
| $(LIB_INLINE_SRC) |
| |
| MAIN_SRC = \ |
| main.c \ |
| gdb-sim.c \ |
| sim_calls.c |
| |
| COMMON_OBJS_NAMES = \ |
| callback.o \ |
| target-newlib-errno.o \ |
| target-newlib-open.o \ |
| target-newlib-signal.o \ |
| target-newlib-syscall.o \ |
| version.o |
| COMMON_OBJS = $(COMMON_OBJS_NAMES:%=../common/%) |
| |
| # NOTE: semantics, idecode and psim put last so smaller files are compiled |
| # first |
| LIB_OBJ = \ |
| debug.o \ |
| bits.o \ |
| sim-endian.o \ |
| os_emul.o \ |
| emul_generic.o \ |
| emul_bugapi.o \ |
| emul_chirp.o \ |
| emul_netbsd.o \ |
| emul_unix.o \ |
| registers.o \ |
| vm.o \ |
| corefile.o \ |
| model.o \ |
| spreg.o \ |
| cpu.o \ |
| interrupts.o \ |
| events.o \ |
| cap.o \ |
| device.o \ |
| tree.o \ |
| device_table.o \ |
| itable.o \ |
| mon.o \ |
| icache.o \ |
| semantics.o \ |
| idecode.o \ |
| support.o \ |
| sim-fpu.o \ |
| psim.o \ |
| $(COMMON_OBJS) \ |
| $(PACKAGE_OBJ) \ |
| $(HW_OBJ) \ |
| options.o |
| |
| |
| GDB_OBJ = gdb-sim.o sim_calls.o |
| |
| HW_SRC = @sim_ppc_hw_src@ |
| HW_OBJ = @sim_ppc_hw_obj@ |
| |
| PACKAGE_SRC = pk_disklabel.c |
| PACKAGE_OBJ = $(PACKAGE_SRC:.c=.o) |
| |
| |
| $(TARGETLIB): defines.h $(LIB_OBJ) $(GDB_OBJ) |
| $(ECHO_AR) $(AR) $(AR_FLAGS) $(TARGETLIB) $(LIB_OBJ) $(GDB_OBJ) |
| $(ECHO_RANLIB) $(RANLIB) $(TARGETLIB) |
| |
| psim.o: psim.c $(CPU_H) $(IDECODE_H) $(OPTIONS_H) $(TREE_H) $(BFD_H) |
| |
| bits.o: bits.c $(BASICS_H) |
| |
| debug.o: debug.c $(BASICS_H) |
| |
| sim-endian.o: sim-endian.c $(BASICS_H) $(SIM_ENDIAN_N_H) |
| |
| os_emul.o: os_emul.c $(CPU_H) $(IDECODE_H) $(OS_EMUL_H) $(EMUL_GENERIC_H) $(EMUL_NETBSD_H) $(EMUL_UNIX_H) $(EMUL_CHIRP_H) $(EMUL_BUGAPI_H) |
| emul_generic.o: emul_generic.c $(EMUL_GENERIC_H) |
| |
| emul_bugapi.o: emul_bugapi.c $(EMUL_GENERIC_H) $(EMUL_BUGAPI_H) |
| emul_chirp.o: emul_chirp.c $(EMUL_GENERIC_H) $(EMUL_CHIRP_H) |
| emul_netbsd.o: emul_netbsd.c $(EMUL_GENERIC_H) $(EMUL_NETBSD_H) |
| emul_unix.o: emul_unix.c $(EMUL_GENERIC_H) $(EMUL_UNIX_H) |
| |
| registers.o: registers.c $(BASICS_H) $(REGISTERS_H) |
| |
| cpu.o: cpu.c $(CPU_H) $(IDECODE_H) |
| |
| interrupts.o: interrupts.c $(CPU_H) $(IDECODE_H) $(OS_EMUL_H) |
| |
| # Given that inlines are turned on now, rebuild idecode whenever |
| # anything changes. |
| idecode.o: idecode.c $(CPU_H) $(IDECODE_H) $(SEMANTICS_H) $(LIB_INLINE_SRC) |
| |
| # double.o: double.c dp-bit.c |
| |
| vm.o: vm.c $(BASICS_H) $(REGISTERS_H) $(DEVICE_H) $(COREFILE_H) $(VM_H) $(INTERRUPTS_H) $(MON_H) $(CPU_H) $(VM_N_H) |
| |
| corefile.o: corefile.c $(BASICS_H) $(DEVICE_TABLE_H) $(COREFILE_H) $(COREFILE_N_H) |
| |
| model.o: model.c $(CPU_H) $(MON_H) |
| |
| events.o: events.c $(BASICS_H) $(EVENTS_H) |
| |
| sim_calls.o: sim_calls.c $(PSIM_H) $(OPTIONS_H) $(DEFS_H) $(BFD_H) $(GDB_CALLBACK_H) $(GDB_REMOTE_SIM_H) |
| |
| gdb-sim.o: gdb-sim.c $(PSIM_H) $(OPTIONS_H) $(REGISTERS_H) $(GDB_REMOTE_SIM_H) $(GDB_SIM_PPC_H) $(SIM_CALLBACK_H) |
| |
| spreg.o: spreg.c $(BASICS_H) $(SPREG_H) |
| |
| main.o: main.c $(PSIM_H) $(OPTIONS_H) $(DEVICE_H) $(EVENTS_H) $(BFD_H) $(GDB_CALLBACK_H) $(GDB_REMOTE_SIM_H) |
| |
| device.o: device.c $(DEVICE_TABLE_H) $(CAP_H) $(EVENTS_H) $(PSIM_H) |
| |
| tree.o: tree.c $(BASICS_H) $(DEVICE_H) $(TREE_H) |
| |
| device_table.o: device_table.c $(DEVICE_TABLE_H) hw.c |
| |
| cap.o: cap.c $(CAP_H) |
| |
| semantics.o: semantics.c $(CPU_H) $(IDECODE_H) $(SEMANTICS_H) $(COMMON_SIM_INLINE_H) $(COMMON_SIM_FPU_H) $(SUPPORT_H) |
| |
| icache.o: icache.c $(CPU_H) $(IDECODE_H) $(SEMANTICS_H) $(ICACHE_H) $(COMMON_SIM_INLINE_H) $(COMMON_SIM_FPU_H) $(SUPPORT_H) |
| |
| support.o: support.c $(CPU_H) $(IDECODE_H) $(COMMON_SIM_INLINE_H) $(COMMON_SIM_FPU_H) $(SUPPORT_H) |
| |
| itable.o: itable.c $(ITABLE_H) |
| |
| mon.o: mon.c $(BASICS_H) $(CPU_H) $(MON_H) |
| |
| sim-fpu.o: $(srcdir)/../common/sim-fpu.c |
| $(ECHO_CC) $(CC) -c $(STD_CFLAGS) -DHAVE_CONFIG_H $(srcdir)/../common/sim-fpu.c |
| |
| # Rebuild options whenever something changes so the date/time is up to date. |
| options.o: options.c $(CPU_H) $(OPTIONS_H) $(DEFINES_H) $(BASICS_H) $(IDECODE_H) $(INLINE) $(LIB_SRC) ../config.status Makefile |
| $(ECHO_CC) $(CC) -c $(STD_CFLAGS) '-DOPCODE_RULES="@sim_ppc_opcode@"' '-DIGEN_FLAGS="$(ppc_IGEN_FLAGS)"' $(srcdir)/options.c |
| |
| hw_cpu.o: hw_cpu.c $(DEVICE_TABLE_H) $(HW_CPU_H) $(INTERRUPTS_H) $(CPU_H) |
| hw_com.o: hw_com.c $(DEVICE_TABLE_H) |
| hw_core.o: hw_core.c $(DEVICE_TABLE_H) $(COREFILE_H) |
| hw_disk.o: hw_disk.c $(DEVICE_TABLE_H) $(PK_H) |
| hw_eeprom.o: hw_eeprom.c $(DEVICE_TABLE_H) |
| hw_glue.o: hw_glue.c $(DEVICE_TABLE_H) |
| hw_htab.o: hw_htab.c $(DEVICE_TABLE_H) $(BFD_H) |
| hw_ide.o: hw_ide.c $(DEVICE_TABLE_H) |
| hw_init.o: hw_init.c $(DEVICE_TABLE_H) $(BFD_H) $(PSIM_H) |
| hw_iobus.o: hw_iobus.c $(DEVICE_TABLE_H) |
| hw_memory.o: hw_memory.c $(DEVICE_TABLE_H) |
| hw_nvram.o: hw_nvram.c $(DEVICE_TABLE_H) |
| hw_opic.o: hw_opic.c $(DEVICE_TABLE_H) |
| hw_pal.o: hw_pal.c $(DEVICE_TABLE_H) $(CPU_H) |
| hw_phb.o: hw_phb.c $(DEVICE_TABLE_H) $(HW_PHB_H) $(COREFILE_H) |
| hw_register.o: hw_register.c $(DEVICE_TABLE_H) $(PSIM_H) |
| hw_sem.o: hw_sem.c $(DEVICE_TABLE_H) $(PSIM_H) |
| hw_shm.o: hw_shm.c $(DEVICE_TABLE_H) $(PSIM_H) |
| hw_trace.o: hw_trace.c $(DEVICE_TABLE_H) |
| hw_vm.o: hw_vm.c $(DEVICE_TABLE_H) $(CPU_H) |
| # ignore this line, it stops make from getting confused |
| |
| |
| |
| pk_disklabel.o: pk_disklabel.c $(DEVICE_TABLE_H) $(PK_H) |
| # ignore this line, it stops make from getting confused |
| |
| |
| |
| tags etags: TAGS |
| |
| TAGS: |
| etags $(srcdir)/*.h $(srcdir)/*.c |
| |
| clean mostlyclean: |
| rm -f tmp-* *.[oasi] core |
| |
| distclean realclean: clean |
| rm -f TAGS Makefile |
| |
| maintainer-clean: distclean |
| rm -f *~ *.log core *.core |
| |
| Makefile: Makefile.in ../config.status |
| cd .. && $(SHELL) ./config.status ppc/Makefile |
| |
| ../config.status: ../configure |
| cd .. && $(SHELL) ./config.status --recheck |
| |
| check: |
| |
| html: |
| clean-html: |
| install-html: |
| |
| info: |
| clean-info: |
| install-info: |
| |
| pdf: |
| clean-pdf: |
| install-pdf: |
| |
| install: |
| installdirs: |
| uninstall: |