This commit was manufactured by cvs2svn to create branch 'binutils-
[external/binutils.git] / opcodes / Makefile.am
index 3c1778c..ec7fa3e 100644 (file)
@@ -3,7 +3,8 @@
 AUTOMAKE_OPTIONS = 1.11 foreign no-dist
 ACLOCAL_AMFLAGS = -I .. -I ../config -I ../bfd
 
-SUBDIRS = po
+# Build '.' first so all generated files exist.
+SUBDIRS = . po
 
 INCDIR = $(srcdir)/../include
 BFDDIR = $(srcdir)/../bfd
@@ -12,20 +13,34 @@ WARN_CFLAGS = @WARN_CFLAGS@
 NO_WERROR = @NO_WERROR@
 AM_CFLAGS = $(WARN_CFLAGS)
 
+COMPILE_FOR_BUILD = $(CC_FOR_BUILD) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CFLAGS_FOR_BUILD)
+LINK_FOR_BUILD = $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) \
+       $(LDFLAGS_FOR_BUILD) -o $@
+
+libopcodes_la_LDFLAGS =
+if INSTALL_LIBBFD
 bfdlibdir = @bfdlibdir@
 bfdincludedir = @bfdincludedir@
-
 bfdlib_LTLIBRARIES = libopcodes.la
+bfdinclude_DATA = $(INCDIR)/dis-asm.h
+else
+# Empty these so that the respective installation directories will not be created.
+bfdlibdir =
+bfdincludedir =
+rpath_bfdlibdir = @bfdlibdir@
+noinst_LTLIBRARIES = libopcodes.la
+libopcodes_la_LDFLAGS += -rpath $(rpath_bfdlibdir)
+endif
 
 # This is where bfd.h lives.
 BFD_H = ../bfd/bfd.h
 
-# This is where libiberty lives.
-LIBIBERTY = ../libiberty/libiberty.a
+BUILD_LIBS = @BUILD_LIBS@
+BUILD_LIB_DEPS = @BUILD_LIB_DEPS@
 
 # Header files.
 HFILES = \
-       cgen-ops.h cgen-types.h \
        fr30-desc.h fr30-opc.h \
        frv-desc.h frv-opc.h \
        h8500-opc.h \
@@ -54,13 +69,14 @@ HFILES = \
        xstormy16-desc.h xstormy16-opc.h \
        z8k-opc.h
 
-# C source files that correspond to .o's.
-CFILES = \
+# C source files that correspond to .o's ending up in libopcodes
+# for all machines.
+TARGET_LIBOPCODES_CFILES = \
        alpha-dis.c \
        alpha-opc.c \
        arc-dis.c \
-       arc-opc.c \
        arc-ext.c \
+       arc-opc.c \
        arm-dis.c \
        avr-dis.c \
        bfin-dis.c \
@@ -79,9 +95,6 @@ CFILES = \
        d30v-dis.c \
        d30v-opc.c \
        dlx-dis.c \
-       dis-buf.c \
-       dis-init.c \
-       disassemble.c \
        fr30-asm.c \
        fr30-desc.c \
        fr30-dis.c \
@@ -92,8 +105,6 @@ CFILES = \
        frv-dis.c \
        frv-ibld.c \
        frv-opc.c \
-       moxie-dis.c \
-       moxie-opc.c \
        h8300-dis.c \
        h8500-dis.c \
        hppa-dis.c \
@@ -101,19 +112,10 @@ CFILES = \
        i370-opc.c \
        i386-dis.c \
        i386-opc.c \
-       i386-gen.c \
        i860-dis.c \
        i960-dis.c \
        ia64-dis.c \
-       ia64-opc-a.c \
-       ia64-opc-b.c \
-       ia64-opc-f.c \
-       ia64-opc-i.c \
-       ia64-opc-m.c \
-       ia64-opc-d.c \
        ia64-opc.c \
-       ia64-gen.c \
-       ia64-asmtab.c \
        ip2k-asm.c \
        ip2k-desc.c \
        ip2k-dis.c \
@@ -130,6 +132,10 @@ CFILES = \
        lm32-ibld.c \
        lm32-opc.c \
        lm32-opinst.c \
+       m10200-dis.c \
+       m10200-opc.c \
+       m10300-dis.c \
+       m10300-opc.c \
        m32c-asm.c \
        m32c-desc.c \
        m32c-dis.c \
@@ -146,23 +152,22 @@ CFILES = \
        m68k-dis.c \
        m68k-opc.c \
        m88k-dis.c \
-       maxq-dis.c \
        mcore-dis.c \
        mep-asm.c \
        mep-desc.c \
        mep-dis.c \
        mep-ibld.c \
        mep-opc.c \
-       mips-dis.c \
        microblaze-dis.c \
+       micromips-opc.c \
+       mips-dis.c \
        mips-opc.c \
        mips16-opc.c \
-       m10200-dis.c \
-       m10200-opc.c \
-       m10300-dis.c \
-       m10300-opc.c \
        mmix-dis.c \
        mmix-opc.c \
+       moxie-dis.c \
+       moxie-opc.c \
+       msp430-dis.c \
        mt-asm.c \
        mt-desc.c \
        mt-dis.c \
@@ -182,9 +187,10 @@ CFILES = \
        pj-opc.c \
        ppc-dis.c \
        ppc-opc.c \
-       s390-mkopc.c \
-       s390-opc.c \
+       rx-decode.c \
+       rx-dis.c \
        s390-dis.c \
+       s390-opc.c \
        score-dis.c \
        score7-dis.c \
        sh-dis.c \
@@ -198,8 +204,13 @@ CFILES = \
        tic4x-dis.c \
        tic54x-dis.c \
        tic54x-opc.c \
+       tic6x-dis.c \
        tic80-dis.c \
        tic80-opc.c \
+       tilegx-dis.c \
+       tilegx-opc.c \
+       tilepro-dis.c \
+       tilepro-opc.c \
        v850-dis.c \
        v850-opc.c \
        vax-dis.c \
@@ -216,159 +227,31 @@ CFILES = \
        xstormy16-opc.c \
        xtensa-dis.c \
        z80-dis.c \
-       z8k-dis.c \
+       z8k-dis.c
+
+# C source files that correspond to .o's ending up in libopcodes.
+LIBOPCODES_CFILES = \
+       $(TARGET_LIBOPCODES_CFILES) \
+       dis-buf.c \
+       dis-init.c \
+       disassemble.c
+
+# C source files that correspond to .o's.
+CFILES = \
+       $(LIBOPCODES_CFILES) \
+       i386-gen.c \
+       ia64-asmtab.c \
+       ia64-gen.c \
+       ia64-opc-a.c \
+       ia64-opc-b.c \
+       ia64-opc-f.c \
+       ia64-opc-i.c \
+       ia64-opc-m.c \
+       ia64-opc-d.c \
+       s390-mkopc.c \
        z8kgen.c
 
-ALL_MACHINES = \
-       alpha-dis.lo \
-       alpha-opc.lo \
-       arc-dis.lo \
-       arc-opc.lo \
-       arc-ext.lo \
-       arm-dis.lo \
-       avr-dis.lo \
-       bfin-dis.lo \
-       cgen-asm.lo \
-       cgen-bitset.lo \
-       cgen-dis.lo \
-       cgen-opc.lo \
-       cr16-dis.lo \
-       cr16-opc.lo \
-       cris-dis.lo \
-       cris-opc.lo \
-       crx-dis.lo \
-       crx-opc.lo \
-       d10v-dis.lo \
-       d10v-opc.lo \
-       d30v-dis.lo \
-       d30v-opc.lo \
-       dlx-dis.lo \
-       fr30-asm.lo \
-       fr30-desc.lo \
-       fr30-dis.lo \
-       fr30-ibld.lo \
-       fr30-opc.lo \
-       frv-asm.lo \
-       frv-desc.lo \
-       frv-dis.lo \
-       frv-ibld.lo \
-       frv-opc.lo \
-       moxie-dis.lo \
-       moxie-opc.lo \
-       h8300-dis.lo \
-       h8500-dis.lo \
-       hppa-dis.lo \
-       i386-dis.lo \
-       i386-opc.lo \
-       i370-dis.lo \
-       i370-opc.lo \
-       i860-dis.lo \
-       i960-dis.lo \
-       ia64-dis.lo \
-       ia64-opc.lo \
-       ip2k-asm.lo \
-       ip2k-desc.lo \
-       ip2k-dis.lo \
-       ip2k-ibld.lo \
-       ip2k-opc.lo \
-       iq2000-asm.lo \
-       iq2000-desc.lo \
-       iq2000-dis.lo \
-       iq2000-ibld.lo \
-       iq2000-opc.lo \
-       lm32-asm.lo \
-       lm32-desc.lo \
-       lm32-dis.lo \
-       lm32-ibld.lo \
-       lm32-opc.lo \
-       lm32-opinst.lo \
-       m32c-asm.lo \
-       m32c-desc.lo \
-       m32c-dis.lo \
-       m32c-ibld.lo \
-       m32c-opc.lo \
-       m32r-asm.lo \
-       m32r-desc.lo \
-       m32r-dis.lo \
-       m32r-ibld.lo \
-       m32r-opc.lo \
-       m32r-opinst.lo \
-       m68hc11-dis.lo \
-       m68hc11-opc.lo \
-       m68k-dis.lo \
-       m68k-opc.lo \
-       m88k-dis.lo \
-       m10200-dis.lo \
-       m10200-opc.lo \
-       m10300-dis.lo \
-       m10300-opc.lo \
-       maxq-dis.lo \
-       mcore-dis.lo \
-       mep-asm.lo \
-       mep-desc.lo \
-       mep-dis.lo \
-       mep-ibld.lo \
-       mep-opc.lo \
-       mips-dis.lo \
-       microblaze-dis.lo \
-       mips-opc.lo \
-       mips16-opc.lo \
-       mmix-dis.lo \
-       mmix-opc.lo \
-       msp430-dis.lo \
-       mt-asm.lo \
-       mt-desc.lo \
-       mt-dis.lo \
-       mt-ibld.lo \
-       mt-opc.lo \
-       ns32k-dis.lo \
-       openrisc-asm.lo \
-       openrisc-desc.lo \
-       openrisc-dis.lo \
-       openrisc-ibld.lo \
-       openrisc-opc.lo \
-       or32-dis.lo \
-       or32-opc.lo \
-       pdp11-dis.lo \
-       pdp11-opc.lo \
-       pj-dis.lo \
-       pj-opc.lo \
-       ppc-dis.lo \
-       ppc-opc.lo \
-       s390-dis.lo \
-       s390-opc.lo \
-       score-dis.lo \
-       score7-dis.lo \
-       sh-dis.lo \
-       sh64-dis.lo \
-       sh64-opc.lo \
-       sparc-dis.lo \
-       sparc-opc.lo \
-       spu-dis.lo \
-       spu-opc.lo \
-       tic30-dis.lo \
-       tic4x-dis.lo \
-       tic54x-dis.lo \
-       tic54x-opc.lo \
-       tic80-dis.lo \
-       tic80-opc.lo \
-       v850-dis.lo \
-       v850-opc.lo \
-       vax-dis.lo \
-       w65-dis.lo \
-       xc16x-asm.lo \
-       xc16x-desc.lo \
-       xc16x-dis.lo \
-       xc16x-ibld.lo \
-       xc16x-opc.lo \
-       xstormy16-asm.lo \
-       xstormy16-desc.lo \
-       xstormy16-dis.lo \
-       xstormy16-ibld.lo \
-       xstormy16-opc.lo \
-       xtensa-dis.lo \
-       z80-dis.lo \
-       z8k-dis.lo
+ALL_MACHINES = $(TARGET_LIBOPCODES_CFILES:.c=.lo)
 
 OFILES = @BFD_MACHINES@
 
@@ -376,7 +259,7 @@ OFILES = @BFD_MACHINES@
 # that's where the version number in Makefile comes from.
 CONFIG_STATUS_DEPENDENCIES = $(BFDDIR)/configure.in
 
-INCLUDES = -I. -I$(srcdir) -I../bfd -I$(INCDIR) -I$(BFDDIR) @HDEFINES@ @INCINTL@
+AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(INCDIR) -I$(BFDDIR) @HDEFINES@ @INCINTL@
 
 disassemble.lo: disassemble.c
 if am__fastdepCC
@@ -399,9 +282,9 @@ libopcodes_la_SOURCES =  dis-buf.c disassemble.c dis-init.c
 # hardcoded path to libbfd.so instead of relying on the entries in libbfd.la.
 libopcodes_la_DEPENDENCIES = $(OFILES) @SHARED_DEPENDENCIES@
 libopcodes_la_LIBADD = $(OFILES) @SHARED_LIBADD@
-libopcodes_la_LDFLAGS = -release `cat ../bfd/libtool-soversion` @SHARED_LDFLAGS@
+libopcodes_la_LDFLAGS += -release `cat ../bfd/libtool-soversion` @SHARED_LDFLAGS@
 # Allow dependency tracking to work on all the source files.
-EXTRA_libopcodes_la_SOURCES = $(CFILES)
+EXTRA_libopcodes_la_SOURCES = $(LIBOPCODES_CFILES)
 
 # libtool will build .libs/libopcodes.a.  We create libopcodes.a in
 # the build directory so that we don't have to convert all the
@@ -409,6 +292,7 @@ EXTRA_libopcodes_la_SOURCES = $(CFILES)
 # should be removed if everything else starts using libtool.  FIXME.
 
 noinst_LIBRARIES = libopcodes.a
+libopcodes_a_SOURCES =
 
 stamp-lib: libopcodes.la
        libtooldir=`$(LIBTOOL) --config | sed -n -e 's/^objdir=//p'`; \
@@ -426,38 +310,15 @@ po/POTFILES.in: @MAINT@ Makefile
        for f in $(POTFILES); do echo $$f; done | LC_ALL=C sort > tmp \
          && mv tmp $(srcdir)/po/POTFILES.in
 
-install-bfdlibLTLIBRARIES: @INSTALL_LIBBFD_TRUE@install_libopcodes
-       @$(NORMAL_INSTALL)
-
-uninstall-bfdlibLTLIBRARIES: @INSTALL_LIBBFD_TRUE@uninstall_libopcodes
-       @$(NORMAL_UNINSTALL)
-
-.PHONY: install_libopcodes uninstall_libopcodes
-install_libopcodes: $(bfdlib_LTLIBRARIES)
-       $(mkinstalldirs) $(DESTDIR)$(bfdlibdir)
-       $(mkinstalldirs) $(DESTDIR)$(bfdincludedir)
-       @list='$(bfdlib_LTLIBRARIES)'; for p in $$list; do \
-         if test -f $$p; then \
-           echo "$(LIBTOOL)  --mode=install $(INSTALL) $$p $(DESTDIR)$(bfdlibdir)/$$p"; \
-           $(LIBTOOL)  --mode=install $(INSTALL) $$p $(DESTDIR)$(bfdlibdir)/$$p; \
-         else :; fi; \
-       done
-       $(INSTALL_DATA) $(INCDIR)/dis-asm.h $(DESTDIR)$(bfdincludedir)/dis-asm.h
-
-uninstall_libopcodes:
-       list='$(bfdlib_LTLIBRARIES)'; for p in $$list; do \
-         $(LIBTOOL)  --mode=uninstall rm -f $(DESTDIR)$(bfdlibdir)/$$p; \
-       done
-       rm -f $(DESTDIR)$(bfdincludedir)/dis-asm.h
-
 CLEANFILES = \
-       stamp-ip2k stamp-m32c stamp-m32r stamp-fr30 stamp-frv \
-       stamp-openrisc stamp-iq2000 stamp-mep stamp-mt stamp-xstormy16 stamp-xc16x\
-       libopcodes.a stamp-lib dep.sed DEP DEPA DEP1 DEP2
+       stamp-fr30 stamp-frv stamp-ip2k stamp-iq2000 stamp-lm32 \
+       stamp-m32c stamp-m32r stamp-mep stamp-mt \
+       stamp-openrisc stamp-xc16x stamp-xstormy16 \
+       libopcodes.a stamp-lib
 
 
 CGENDIR = @cgendir@
-CPUDIR = $(CGENDIR)/cpu
+CPUDIR = $(srcdir)/../cpu
 CGEN = "`if test -f ../guile/libguile/guile ; then echo ../guile/libguile/guile; else echo guile ; fi` -l ${cgendir}/guile.scm -s"
 CGENFLAGS = -v
 
@@ -468,32 +329,32 @@ CGENDEPS = \
        $(CGENDIR)/opc-opinst.scm \
        cgen-asm.in cgen-dis.in cgen-ibld.in
 
-CGEN_CPUS = fr30 frv ip2k m32c m32r mep mt openrisc xc16x xstormy16
+CGEN_CPUS = fr30 frv ip2k iq2000 lm32 m32c m32r mep mt openrisc xc16x xstormy16
 
 if CGEN_MAINT
+FR30_DEPS = stamp-fr30
+FRV_DEPS = stamp-frv
 IP2K_DEPS = stamp-ip2k
+IQ2000_DEPS = stamp-iq2000
 LM32_DEPS = stamp-lm32
 M32C_DEPS = stamp-m32c
 M32R_DEPS = stamp-m32r
-FR30_DEPS = stamp-fr30
-FRV_DEPS = stamp-frv
 MEP_DEPS = stamp-mep
 MT_DEPS = stamp-mt
 OPENRISC_DEPS = stamp-openrisc
-IQ2000_DEPS = stamp-iq2000
 XC16X_DEPS = stamp-xc16x
 XSTORMY16_DEPS = stamp-xstormy16
 else
+FR30_DEPS =
+FRV_DEPS =
 IP2K_DEPS =
+IQ2000_DEPS = 
 LM32_DEPS = 
 M32C_DEPS =
 M32R_DEPS =
-FR30_DEPS =
-FRV_DEPS =
 MEP_DEPS =
 MT_DEPS =
 OPENRISC_DEPS = 
-IQ2000_DEPS = 
 XC16X_DEPS = 
 XSTORMY16_DEPS = 
 endif
@@ -514,45 +375,55 @@ run-cgen-all:
 .PHONY: run-cgen-all
 
 # For now, require developers to configure with --enable-cgen-maint.
+
+$(srcdir)/fr30-desc.h $(srcdir)/fr30-desc.c $(srcdir)/fr30-opc.h $(srcdir)/fr30-opc.c $(srcdir)/fr30-ibld.c $(srcdir)/fr30-asm.c $(srcdir)/fr30-dis.c: $(FR30_DEPS)
+       @true
+stamp-fr30: $(CGENDEPS) $(CPUDIR)/fr30.cpu $(CPUDIR)/fr30.opc
+       $(MAKE) run-cgen arch=fr30 prefix=fr30 options= \
+               archfile=$(CPUDIR)/fr30.cpu opcfile=$(CPUDIR)/fr30.opc extrafiles=
+
+$(srcdir)/frv-desc.h $(srcdir)/frv-desc.c $(srcdir)/frv-opc.h $(srcdir)/frv-opc.c $(srcdir)/frv-ibld.c $(srcdir)/frv-asm.c $(srcdir)/frv-dis.c: $(FRV_DEPS)
+       @true
+stamp-frv: $(CGENDEPS) $(CPUDIR)/frv.cpu $(CPUDIR)/frv.opc
+       $(MAKE) run-cgen arch=frv prefix=frv options= \
+               archfile=$(CPUDIR)/frv.cpu opcfile=$(CPUDIR)/frv.opc extrafiles=
+
 $(srcdir)/ip2k-desc.h $(srcdir)/ip2k-desc.c $(srcdir)/ip2k-opc.h $(srcdir)/ip2k-opc.c $(srcdir)/ip2k-ibld.c $(srcdir)/ip2k-asm.c $(srcdir)/ip2k-dis.c: $(IP2K_DEPS)
        @true
 stamp-ip2k: $(CGENDEPS) $(CPUDIR)/ip2k.cpu $(CPUDIR)/ip2k.opc
        $(MAKE) run-cgen arch=ip2k prefix=ip2k options= \
                archfile=$(CPUDIR)/ip2k.cpu opcfile=$(CPUDIR)/ip2k.opc extrafiles=
 
+$(srcdir)/iq2000-desc.h $(srcdir)/iq2000-desc.c $(srcdir)/iq2000-opc.h $(srcdir)/iq2000-opc.c $(srcdir)/iq2000-ibld.c $(srcdir)/iq2000-asm.c $(srcdir)/iq2000-dis.c: $(IQ2000_DEPS)
+       @true
+stamp-iq2000: $(CGENDEPS) $(CPUDIR)/iq2000.cpu \
+               $(CPUDIR)/iq2000.opc $(CPUDIR)/iq2000m.cpu \
+               $(CPUDIR)/iq10.cpu
+       $(MAKE) run-cgen arch=iq2000 prefix=iq2000 options= \
+               archfile=$(CPUDIR)/iq2000.cpu \
+               opcfile=$(CPUDIR)/iq2000.opc extrafiles=
+
 $(srcdir)lm32-desc.h $(srcdir)/lm32-desc.c $(srcdir)/lm32-opc.h $(srcdir)/lm32-opc.c $(srcdir)/lm32-ibld.c $(srcdir)/lm32-opinst.c $(srcdir)/lm32-asm.c $(srcdir)/lm32-dis.c: $(LM32_DEPS)
        @true
-stamp-lm32: $(CGENDEPS) $(srcdir)/../cpu/lm32.cpu $(srcdir)/../cpu/lm32.opc
+stamp-lm32: $(CGENDEPS) $(CPUDIR)/lm32.cpu $(CPUDIR)/lm32.opc
        $(MAKE) run-cgen arch=lm32 prefix=lm32 options=opinst \
-               archfile=$(srcdir)/../cpu/lm32.cpu \
-               opcfile=$(srcdir)/../cpu/lm32.opc \
+               archfile=$(CPUDIR)/lm32.cpu \
+               opcfile=$(CPUDIR)/lm32.opc \
                extrafiles=opinst
 
 $(srcdir)/m32c-desc.h $(srcdir)/m32c-desc.c $(srcdir)/m32c-opc.h $(srcdir)/m32c-opc.c $(srcdir)/m32c-ibld.c $(srcdir)/m32c-asm.c $(srcdir)/m32c-dis.c: $(M32C_DEPS)
 #      @true
-stamp-m32c: $(CGENDEPS) $(srcdir)/../cpu/m32c.cpu $(srcdir)/../cpu/m32c.opc
+stamp-m32c: $(CGENDEPS) $(CPUDIR)/m32c.cpu $(CPUDIR)/m32c.opc
        $(MAKE) run-cgen arch=m32c prefix=m32c options= \
-               archfile=$(srcdir)/../cpu/m32c.cpu \
-               opcfile=$(srcdir)/../cpu/m32c.opc extrafiles=
+               archfile=$(CPUDIR)/m32c.cpu \
+               opcfile=$(CPUDIR)/m32c.opc extrafiles=
 
 $(srcdir)/m32r-desc.h $(srcdir)/m32r-desc.c $(srcdir)/m32r-opc.h $(srcdir)/m32r-opc.c $(srcdir)/m32r-ibld.c $(srcdir)/m32r-opinst.c $(srcdir)/m32r-asm.c $(srcdir)/m32r-dis.c: $(M32R_DEPS)
        @true
-stamp-m32r: $(CGENDEPS) $(srcdir)/../cpu/m32r.cpu $(srcdir)/../cpu/m32r.opc
+stamp-m32r: $(CGENDEPS) $(CPUDIR)/m32r.cpu $(CPUDIR)/m32r.opc
        $(MAKE) run-cgen arch=m32r prefix=m32r options=opinst \
-               archfile=$(srcdir)/../cpu/m32r.cpu \
-               opcfile=$(srcdir)/../cpu/m32r.opc extrafiles=opinst
-
-$(srcdir)/fr30-desc.h $(srcdir)/fr30-desc.c $(srcdir)/fr30-opc.h $(srcdir)/fr30-opc.c $(srcdir)/fr30-ibld.c $(srcdir)/fr30-asm.c $(srcdir)/fr30-dis.c: $(FR30_DEPS)
-       @true
-stamp-fr30: $(CGENDEPS) $(CPUDIR)/fr30.cpu $(CPUDIR)/fr30.opc
-       $(MAKE) run-cgen arch=fr30 prefix=fr30 options= \
-               archfile=$(CPUDIR)/fr30.cpu opcfile=$(CPUDIR)/fr30.opc extrafiles=
-
-$(srcdir)/frv-desc.h $(srcdir)/frv-desc.c $(srcdir)/frv-opc.h $(srcdir)/frv-opc.c $(srcdir)/frv-ibld.c $(srcdir)/frv-asm.c $(srcdir)/frv-dis.c: $(FRV_DEPS)
-       @true
-stamp-frv: $(CGENDEPS) $(srcdir)/../cpu/frv.cpu $(srcdir)/../cpu/frv.opc
-       $(MAKE) run-cgen arch=frv prefix=frv options= \
-               archfile=$(srcdir)/../cpu/frv.cpu opcfile=$(srcdir)/../cpu/frv.opc extrafiles=
+               archfile=$(CPUDIR)/m32r.cpu \
+               opcfile=$(CPUDIR)/m32r.opc extrafiles=opinst
 
 $(srcdir)/mep-desc.h $(srcdir)/mep-desc.c $(srcdir)/mep-opc.h $(srcdir)/mep-opc.c $(srcdir)/mep-ibld.c $(srcdir)/mep-asm.c $(srcdir)/mep-dis.c: $(MEP_DEPS)
        @true
@@ -562,10 +433,10 @@ stamp-mep: $(CGENDEPS) $(CPUDIR)/mep.cpu $(CPUDIR)/mep-default.cpu $(CPUDIR)/mep
 
 $(srcdir)/mt-desc.h $(srcdir)/mt-desc.c $(srcdir)/mt-opc.h $(srcdir)/mt-opc.c $(srcdir)/mt-ibld.c $(srcdir)/mt-asm.c $(srcdir)/mt-dis.c: $(MT_DEPS)
        @true
-stamp-mt: $(CGENDEPS) $(srcdir)/../cpu/mt.cpu $(srcdir)/../cpu/mt.opc
+stamp-mt: $(CGENDEPS) $(CPUDIR)/mt.cpu $(CPUDIR)/mt.opc
        $(MAKE) run-cgen arch=mt prefix=mt options= \
-               archfile=$(srcdir)/../cpu/mt.cpu \
-               opcfile=$(srcdir)/../cpu/mt.opc extrafiles=
+               archfile=$(CPUDIR)/mt.cpu \
+               opcfile=$(CPUDIR)/mt.opc extrafiles=
 
 $(srcdir)/openrisc-desc.h $(srcdir)/openrisc-desc.c $(srcdir)/openrisc-opc.h $(srcdir)/openrisc-opc.c $(srcdir)/openrisc-ibld.c $(srcdir)/openrisc-asm.c $(srcdir)/openrisc-dis.c: $(OPENRISC_DEPS)
        @true
@@ -573,14 +444,13 @@ stamp-openrisc: $(CGENDEPS) $(CPUDIR)/openrisc.cpu $(CPUDIR)/openrisc.opc
        $(MAKE) run-cgen arch=openrisc prefix=openrisc options= \
                archfile=$(CPUDIR)/openrisc.cpu opcfile=$(CPUDIR)/openrisc.opc extrafiles=
 
-$(srcdir)/iq2000-desc.h $(srcdir)/iq2000-desc.c $(srcdir)/iq2000-opc.h $(srcdir)/iq2000-opc.c $(srcdir)/iq2000-ibld.c $(srcdir)/iq2000-asm.c $(srcdir)/iq2000-dis.c: $(IQ2000_DEPS)
+$(srcdir)/xc16x-desc.h $(srcdir)/xc16x-desc.c $(srcdir)/xc16x-opc.h $(srcdir)/xc16x-opc.c $(srcdir)/xc16x-ibld.c $(srcdir)/xc16x-asm.c $(srcdir)/xc16x-dis.c: $(XC16X_DEPS)
        @true
-stamp-iq2000: $(CGENDEPS) $(srcdir)/../cpu/iq2000.cpu \
-               $(srcdir)/../cpu/iq2000.opc $(srcdir)/../cpu/iq2000m.cpu \
-               $(srcdir)/../cpu/iq10.cpu
-       $(MAKE) run-cgen arch=iq2000 prefix=iq2000 options= \
-               archfile=$(srcdir)/../cpu/iq2000.cpu \
-               opcfile=$(srcdir)/../cpu/iq2000.opc extrafiles=
+stamp-xc16x: $(CGENDEPS) $(CPUDIR)/xc16x.cpu $(CPUDIR)/xc16x.opc
+       $(MAKE) run-cgen arch=xc16x prefix=xc16x options= \
+               archfile=$(CPUDIR)/xc16x.cpu \
+               opcfile=$(CPUDIR)/xc16x.opc \
+               extrafiles=
 
 $(srcdir)/xstormy16-desc.h $(srcdir)/xstormy16-desc.c $(srcdir)/xstormy16-opc.h $(srcdir)/xstormy16-opc.c $(srcdir)/xstormy16-ibld.c $(srcdir)/xstormy16-asm.c $(srcdir)/xstormy16-dis.c: $(XSTORMY16_DEPS)
        @true
@@ -588,37 +458,78 @@ stamp-xstormy16: $(CGENDEPS) $(CPUDIR)/xstormy16.cpu $(CPUDIR)/xstormy16.opc
        $(MAKE) run-cgen arch=xstormy16 prefix=xstormy16 options= \
                archfile=$(CPUDIR)/xstormy16.cpu opcfile=$(CPUDIR)/xstormy16.opc extrafiles=
 
-$(srcdir)/xc16x-desc.h $(srcdir)/xc16x-desc.c $(srcdir)/xc16x-opc.h $(srcdir)/xc16x-opc.c $(srcdir)/xc16x-ibld.c $(srcdir)/xc16x-asm.c $(srcdir)/xc16x-dis.c: $(XC16X_DEPS)
-       @true
-stamp-xc16x: $(CGENDEPS) $(CPUDIR)/xc16x.cpu $(CPUDIR)/xc16x.opc
-       $(MAKE) run-cgen arch=xc16x prefix=xc16x options= \
-               archfile=$(CPUDIR)/xc16x.cpu opcfile=$(CPUDIR)/xc16x.opc extrafiles=
+MOSTLYCLEANFILES = i386-gen$(EXEEXT_FOR_BUILD) ia64-gen$(EXEEXT_FOR_BUILD) \
+       s390-mkopc$(EXEEXT_FOR_BUILD) s390-opc.tab z8kgen$(EXEEXT_FOR_BUILD) \
+       opc2c$(EXEEXT_FOR_BUILD)
+
+MAINTAINERCLEANFILES = $(srcdir)/i386-tbl.h $(srcdir)/i386-init.h \
+       $(srcdir)/ia64-asmtab.c $(srcdir)/z8k-opc.h \
+       $(srcdir)/rx-decode.c
+
+i386-gen$(EXEEXT_FOR_BUILD): i386-gen.o $(BUILD_LIB_DEPS)
+       $(LINK_FOR_BUILD) i386-gen.o $(BUILD_LIBS)
 
-i386-gen: i386-gen.o
-       $(LINK) i386-gen.o $(LIBIBERTY)
+i386-gen.o: i386-gen.c i386-opc.h $(srcdir)/../include/opcode/i386.h \
+       $(INCDIR)/ansidecl.h $(INCDIR)/getopt.h $(INCDIR)/hashtab.h \
+       $(INCDIR)/libiberty.h $(INCDIR)/opcode/i386.h $(INCDIR)/safe-ctype.h \
+       config.h i386-opc.h sysdep.h
+       $(COMPILE_FOR_BUILD) -c $(srcdir)/i386-gen.c
 
 $(srcdir)/i386-tbl.h: $(srcdir)/i386-init.h 
        @echo $@
 
-$(srcdir)/i386-init.h: @MAINT@ i386-gen i386-opc.tbl i386-reg.tbl
-       ./i386-gen --srcdir $(srcdir)
+$(srcdir)/i386-init.h: @MAINT@ i386-gen$(EXEEXT_FOR_BUILD) i386-opc.tbl i386-reg.tbl
+       ./i386-gen$(EXEEXT_FOR_BUILD) --srcdir $(srcdir)
+
+i386-opc.lo: $(srcdir)/i386-tbl.h
+
+ia64-gen$(EXEEXT_FOR_BUILD): ia64-gen.o $(BUILD_LIB_DEPS)
+       $(LINK_FOR_BUILD) ia64-gen.o $(BUILD_LIBS)
+
+ia64-gen.o: ia64-gen.c $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/getopt.h \
+       $(INCDIR)/libiberty.h $(INCDIR)/opcode/ia64.h $(INCDIR)/safe-ctype.h \
+       $(INCDIR)/symcat.h config.h ia64-opc-a.c ia64-opc-b.c \
+       ia64-opc-d.c ia64-opc-f.c ia64-opc-i.c ia64-opc-m.c \
+       ia64-opc-x.c ia64-opc.h sysdep.h
+       $(COMPILE_FOR_BUILD) -c $(srcdir)/ia64-gen.c
 
-ia64-gen: ia64-gen.o
-       $(LINK) ia64-gen.o $(LIBIBERTY)
+# Use a helper variable for the dependencies to avoid 'make' issues
+# with continuations in comments, as @MAINT@ can be expanded to '#'.
+ia64_asmtab_deps = ia64-gen$(EXEEXT_FOR_BUILD) ia64-ic.tbl \
+       ia64-raw.tbl ia64-waw.tbl ia64-war.tbl
+$(srcdir)/ia64-asmtab.c: @MAINT@ $(ia64_asmtab_deps)
+       ./ia64-gen$(EXEEXT_FOR_BUILD) --srcdir $(srcdir) > $@
 
-# Don't wrap the line below, as @MAINT@ can be expanded to '#'.
-# Some make versions don't handle line continuations in comments.
-$(srcdir)/ia64-asmtab.c: @MAINT@ ia64-gen ia64-ic.tbl ia64-raw.tbl ia64-waw.tbl ia64-war.tbl
-       ./ia64-gen --srcdir $(srcdir) > $@
+ia64-opc.lo: $(srcdir)/ia64-asmtab.c
 
-s390-mkopc: s390-mkopc.c
-       $(CC_FOR_BUILD) -o s390-mkopc $(srcdir)/s390-mkopc.c
+$(srcdir)/rx-decode.c: @MAINT@ $(srcdir)/rx-decode.opc opc2c$(EXEEXT_FOR_BUILD)
+       ./opc2c$(EXEEXT_FOR_BUILD) $(srcdir)/rx-decode.opc > $(srcdir)/rx-decode.c
 
-s390-opc.tab: s390-mkopc s390-opc.txt
-       ./s390-mkopc < $(srcdir)/s390-opc.txt > s390-opc.tab
+opc2c$(EXEEXT_FOR_BUILD): opc2c.o $(BUILD_LIBS_DEPS)
+       $(LINK_FOR_BUILD) opc2c.o $(BUILD_LIBS)
+
+opc2c.o: opc2c.c $(INCDIR)/libiberty.h
+       $(COMPILE_FOR_BUILD) -c $(srcdir)/opc2c.c
+
+s390-mkopc$(EXEEXT_FOR_BUILD): s390-mkopc.c
+       $(COMPILE_FOR_BUILD) -o s390-mkopc $(srcdir)/s390-mkopc.c
+
+s390-opc.tab: s390-mkopc$(EXEEXT_FOR_BUILD) s390-opc.txt
+       ./s390-mkopc$(EXEEXT_FOR_BUILD) < $(srcdir)/s390-opc.txt > s390-opc.tab
 
 s390-opc.lo: s390-opc.tab
 
+z8kgen$(EXEEXT_FOR_BUILD): z8kgen.o $(BUILD_LIB_DEPS)
+       $(LINK_FOR_BUILD) z8kgen.o $(BUILD_LIBS)
+
+z8kgen.o: z8kgen.c
+       $(COMPILE_FOR_BUILD) -c $(srcdir)/z8kgen.c
+
+$(srcdir)/z8k-opc.h: @MAINT@ z8kgen$(EXEEXT_FOR_BUILD)
+       ./z8kgen$(EXEEXT_FOR_BUILD) -a > $@
+
+z8k-dis.lo: $(srcdir)/z8k-opc.h
+
 sh-dis.lo: sh-dis.c
 if am__fastdepCC
        $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ @archdefs@ $(srcdir)/sh-dis.c