New changes from Andrew
[deliverable/binutils-gdb.git] / sim / ppc / Makefile.in
index c5e9ff4ea2b6171368e6b967dfa4b9155b2693c4..d92ca568de86994498a492317dd1dd61e4ca7689 100644 (file)
@@ -80,7 +80,11 @@ INCLUDES     = -I. -I$(srcdir) $(LIB_INCLUDES) $(BFD_INCLUDES) $(GDB_INCLUDES)
 CONFIG_FILE    = std-config.h
 
 # See inline.h for appropriate flags to set
-INLINE_CFLAGS  = -DDEFAULT_INLINE=2
+INLINE_CFLAGS  =                       # -g0 -DDEFAULT_INLINE=2
+IGEN_FLAGS = -f 64                     # -f 64 -e
+IGEN_OPCODE_RULES = ppc-opcode-simple  # ppc-opcode-complex
+DGEN_FLAGS =                           # # -s
+
 
 LIBIBERTY_LIB  = ../../libiberty/libiberty.a
 BFD_LIB                = ../../bfd/libbfd.a
@@ -128,7 +132,15 @@ CPU_H = \
        events.h \
        interrupts.h \
        psim.h \
-       icache.h
+       icache.h \
+       itable.h \
+       mon.h
+
+EMUL_GENERIC_H = \
+       $(CPU_H) \
+       $(IDECODE_H) \
+       emul_generic.h \
+       os_emul.h
 
 
 INLINE = \
@@ -139,35 +151,43 @@ BUILT_SRC = \
        icache.h \
        idecode.h idecode.c \
        semantics.h semantics.c \
+       itable.h itable.c \
        spreg.h spreg.c \
        config.h \
-       ppc-config.h
+       ppc-config.h 
 
 LIB_SRC = \
        psim.c \
        bits.c \
-       ppc-endian.c \
        debug.c \
+       ppc-endian.c \
        vm.c \
        core.c \
        events.c \
-       system.c \
+       os_emul.c \
+       emul_generic.c \
+       emul_netbsd.c \
        registers.c \
        cpu.c \
        interrupts.c \
        devices.c \
-       device_tree.c
+       device_tree.c \
+       mon.c
 
 MAIN_SRC = \
        main.c \
        sim_calls.c
 
 
+# NOTE: semantics, idecode and psim put last so smaller files are compiled
+#       first
 LIB_OBJ = \
        debug.o \
        bits.o \
        ppc-endian.o \
-       system.o \
+       os_emul.o \
+       emul_generic.o \
+       emul_netbsd.o \
        registers.o \
        vm.o \
        core.o \
@@ -177,6 +197,8 @@ LIB_OBJ = \
        events.o \
        devices.o \
        device_tree.o \
+       itable.o \
+       mon.o \
        semantics.o \
        idecode.o \
        psim.o
@@ -192,7 +214,7 @@ run: psim
        rm -f run
        ln psim run
 
-$(TARGETLIB): tmp-gencode $(LIB_OBJ) $(GDB_OBJ)
+$(TARGETLIB): tmp-igen tmp-dgen $(LIB_OBJ) $(GDB_OBJ)
        rm -f $(TARGETLIB)
        $(AR) $(AR_FLAGS) $(TARGETLIB) $(LIB_OBJ) $(GDB_OBJ)
        $(RANLIB) $(TARGETLIB)
@@ -201,27 +223,29 @@ $(TARGETLIB): tmp-gencode $(LIB_OBJ) $(GDB_OBJ)
 # anything changes.
 psim.o: psim.c psim.h $(CPU_H) $(IDECODE_H) $(INLINE) $(LIB_SRC)
 
-bits.o: bits.c bits.h
+bits.o: bits.c $(BASICS_H)
 
 debug.o: debug.c $(BASICS_H)
 
 ppc-endian.o: ppc-endian.c ppc-endian.h \
        config.h ppc-config.h words.h sim_callbacks.h
 
-system.o: system.c system.h $(CPU_H) $(IDECODE_H)
+os_emul.o: os_emul.c $(EMUL_GENERIC_H)
+emul_generic.o: emul_generic.c $(EMUL_GENERIC_H)
+emul_netbsd.o: emul_netbsd.c emul_netbsd.h $(EMUL_GENERIC_H)
 
 registers.o: registers.c $(REGISTERS_H) $(BASICS_H) 
 
 cpu.o: cpu.c $(CPU_H) $(IDECODE_H)
 
-interrupts.o: interrupts.c $(CPU_H) $(IDECODE_H) system.h
+interrupts.o: interrupts.c $(CPU_H) $(IDECODE_H) os_emul.h
 
 idecode.o: idecode.c $(CPU_H) $(IDECODE_H) semantics.h
 
 # double.o: double.c dp-bit.c
 
 vm.o: vm.c vm.h vm_n.h $(BASICS_H) $(REGISTERS_H) \
-       device_tree.h core.h interrupts.h
+       device_tree.h core.h interrupts.h itable.h mon.h
 
 core.o: core.c core.h $(BASICS_H) device_tree.h
 
@@ -240,6 +264,9 @@ device_tree.o: device_tree.c device_tree.h devices.h $(BASICS_H)
 
 semantics.o: semantics.c semantics.h $(CPU_H) $(IDECODE_H)
 
+itable.o: itable.c itable.h
+
+mon.o: $(CPU_H)
 
 #
 # Rules to create the built c source code files
@@ -249,47 +276,63 @@ ppc-config.h: $(CONFIG_FILE)
        cp $(srcdir)/$(CONFIG_FILE) ppc-config.h
 
 
-tmp-gencode: gen ppc-instructions ppc-spr-table $(srcdir)/../../move-if-change
-       ./gen   -r $(srcdir)/ppc-spr-table \
-               -i $(srcdir)/ppc-instructions \
+tmp-dgen: dgen ppc-spr-table $(srcdir)/../../move-if-change
+       ./dgen $(DGEN_FLAGS) \
+               -r $(srcdir)/ppc-spr-table \
                -n spreg.h     -P tmp-spreg.h \
-               -n spreg.c     -p tmp-spreg.c \
+               -n spreg.c     -p tmp-spreg.c
+       $(srcdir)/../../move-if-change tmp-spreg.h spreg.h
+       $(srcdir)/../../move-if-change tmp-spreg.c spreg.c
+       touch tmp-dgen
+
+
+tmp-igen: igen ppc-instructions $(IGEN_OPCODE_RULES) ppc-cache-rules $(srcdir)/../../move-if-change
+       ./igen  $(IGEN_FLAGS) \
+               -o $(srcdir)/$(IGEN_OPCODE_RULES) \
+               -k $(srcdir)/ppc-cache-rules \
+               -i $(srcdir)/ppc-instructions \
                -n icache.h    -C tmp-icache.h \
                -n semantics.h -S tmp-semantics.h \
                -n semantics.c -s tmp-semantics.c \
                -n idecode.h   -D tmp-idecode.h \
-               -n idecode.c   -d tmp-idecode.c
+               -n idecode.c   -d tmp-idecode.c \
+               -n itable.h    -T tmp-itable.h \
+               -n itable.c    -t tmp-itable.c
        $(srcdir)/../../move-if-change tmp-icache.h icache.h
        $(srcdir)/../../move-if-change tmp-idecode.h idecode.h
        $(srcdir)/../../move-if-change tmp-idecode.c idecode.c
        $(srcdir)/../../move-if-change tmp-semantics.h semantics.h
        $(srcdir)/../../move-if-change tmp-semantics.c semantics.c
-       $(srcdir)/../../move-if-change tmp-spreg.h spreg.h
-       $(srcdir)/../../move-if-change tmp-spreg.c spreg.c
-       touch tmp-gencode
+       $(srcdir)/../../move-if-change tmp-itable.h itable.h
+       $(srcdir)/../../move-if-change tmp-itable.c itable.c
+       touch tmp-igen
 
 # NOTE: Some versions of make don't handle files created as side-effects
 # uncomment the below if that is the case.
 #
-# $(TARGETLIB): tmp-gencode
-# icache.h idecode.h idecode.c semantics.h semantics.c spreg.h spreg.c: tmp-gencode
+# $(TARGETLIB): tmp-igen tmp-dgen
+# itable.h itable.c icache.h idecode.h idecode.c semantics.h semantics.c: tmp-igen
+# spreg.h spreg.c: tmp-dgen
 
-gen.o: gen.c config.h ppc-config.h
-       $(CC_FOR_BUILD) -c $(CFLAGS) $(INLINE_CFLAGS) $(HDEFINES) $(TDEFINES) $(INCLUDES) $(srcdir)/gen.c
+dgen: dgen.o table.o lf.o misc.o
+       $(CC_FOR_BUILD) $(CFLAGS) $(LDFLAGS) -o dgen dgen.o table.o lf.o misc.o $(LIBIBERTY_LIB) $(LIBS)
 
-gen: gen.o config.h ppc-config.h $(LIBIBERTY_LIB) $(LIBS)
-       $(CC_FOR_BUILD) $(CFLAGS) $(LDFLAGS) -o gen gen.o $(LIBIBERTY_LIB) $(LIBS)
+igen: igen.o table.o lf.o misc.o
+       $(CC_FOR_BUILD) $(CFLAGS) $(LDFLAGS) -o igen igen.o table.o lf.o misc.o $(LIBIBERTY_LIB) $(LIBS)
 
-#
+table.o: misc.h lf.h table.h
+lf.o: misc.h lf.h
+dgen.o igen.o: misc.h lf.h table.h
+misc.o: misc.h
+# With out this #, make thinks that misc.o doesn't have a rule
 
 tags etags: TAGS
 
-TAGS: tmp-gencode config.h ppc-config.h
+TAGS: tmp-igen tmp-dgen config.h ppc-config.h
        etags $(srcdir)/*.h $(srcdir)/*.c $(BUILT_SRC)
 
 clean mostlyclean:
-       rm -f tmp-* *.[ioas] *.out core psim run gen config.log
-       rm -f icache.h idecode.h idecode.c semantics.h semantics.c spreg.h spreg.c ppc-config.h
+       rm -f tmp-* *.[oas] core psim run igen dgen config.log
 
 distclean maintainer-clean realclean: clean
        rm -f TAGS $(BUILT_SRC) Makefile config.cache config.status config.h stamp-h
This page took 0.025187 seconds and 4 git commands to generate.