## Process this file with automake to generate Makefile.in
#
#   Copyright (C) 2012-2016 Free Software Foundation, Inc.
#
# This file 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; see the file COPYING3.  If not see
# <http://www.gnu.org/licenses/>.
#

AUTOMAKE_OPTIONS = 1.11 foreign no-dist
ACLOCAL_AMFLAGS = -I .. -I ../config -I ../bfd

# Build '.' first so all generated files exist.
SUBDIRS = . po

INCDIR = $(srcdir)/../include
BFDDIR = $(srcdir)/../bfd

WARN_CFLAGS = @WARN_CFLAGS@
NO_WERROR = @NO_WERROR@
NO_WMISSING_FIELD_INITIALIZERS = @NO_WMISSING_FIELD_INITIALIZERS@
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

BUILD_LIBS = @BUILD_LIBS@
BUILD_LIB_DEPS = @BUILD_LIB_DEPS@

# Header files.
HFILES = \
	aarch64-asm.h aarch64-dis.h aarch64-opc.h aarch64-tbl.h \
	epiphany-desc.h epiphany-opc.h \
	fr30-desc.h fr30-opc.h \
	frv-desc.h frv-opc.h \
	h8500-opc.h \
	i386-init.h \
	i386-opc.h \
	i386-tbl.h \
	ia64-asmtab.h \
	ia64-opc.h \
	ip2k-desc.h ip2k-opc.h \
	iq2000-desc.h iq2000-opc.h \
	lm32-desc.h \
	lm32-opc.h \
	m32c-desc.h m32c-opc.h \
	m32r-desc.h m32r-opc.h \
	mcore-opc.h \
	mep-desc.h mep-opc.h \
	microblaze-opc.h \
	mt-desc.h mt-opc.h \
	score-opc.h \
	sh-opc.h \
	sh64-opc.h \
	sysdep.h \
	w65-opc.h \
	xc16x-desc.h xc16x-opc.h \
	xstormy16-desc.h xstormy16-opc.h \
	z8k-opc.h

# C source files that correspond to .o's ending up in libopcodes
# for all machines.
TARGET_LIBOPCODES_CFILES = \
	aarch64-asm.c \
	aarch64-asm-2.c \
	aarch64-dis.c \
	aarch64-dis-2.c \
	aarch64-opc.c \
	aarch64-opc-2.c \
	alpha-dis.c \
	alpha-opc.c \
	arc-dis.c \
	arc-ext.c \
	arc-opc.c \
	arm-dis.c \
	avr-dis.c \
	bfin-dis.c \
	cgen-asm.c \
	cgen-bitset.c \
	cgen-dis.c \
	cgen-opc.c \
	cr16-dis.c \
	cr16-opc.c \
	cris-dis.c \
	cris-opc.c \
	crx-dis.c \
	crx-opc.c \
	d10v-dis.c \
	d10v-opc.c \
	d30v-dis.c \
	d30v-opc.c \
	dlx-dis.c \
	epiphany-asm.c \
	epiphany-desc.c \
	epiphany-dis.c \
	epiphany-ibld.c \
	epiphany-opc.c \
	fr30-asm.c \
	fr30-desc.c \
	fr30-dis.c \
	fr30-ibld.c \
	fr30-opc.c \
	frv-asm.c \
	frv-desc.c \
	frv-dis.c \
	frv-ibld.c \
	frv-opc.c \
	ft32-dis.c \
	ft32-opc.c \
	h8300-dis.c \
	h8500-dis.c \
	hppa-dis.c \
	i370-dis.c \
	i370-opc.c \
	i386-dis.c \
	i386-opc.c \
	i860-dis.c \
	i960-dis.c \
	ia64-dis.c \
	ia64-opc.c \
	ip2k-asm.c \
	ip2k-desc.c \
	ip2k-dis.c \
	ip2k-ibld.c \
	ip2k-opc.c \
	iq2000-asm.c \
	iq2000-desc.c \
	iq2000-dis.c \
	iq2000-ibld.c \
	iq2000-opc.c \
	lm32-asm.c \
	lm32-desc.c \
	lm32-dis.c \
	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 \
	m32c-ibld.c \
	m32c-opc.c \
	m32r-asm.c \
	m32r-desc.c \
	m32r-dis.c \
	m32r-ibld.c \
	m32r-opc.c \
	m32r-opinst.c \
	m68hc11-dis.c \
	m68hc11-opc.c \
	m68k-dis.c \
	m68k-opc.c \
	m88k-dis.c \
	mcore-dis.c \
	mep-asm.c \
	mep-desc.c \
	mep-dis.c \
	mep-ibld.c \
	mep-opc.c \
	metag-dis.c \
	microblaze-dis.c \
	micromips-opc.c \
	mips-dis.c \
	mips-opc.c \
	mips16-opc.c \
	mmix-dis.c \
	mmix-opc.c \
	moxie-dis.c \
	moxie-opc.c \
	msp430-decode.c \
	msp430-dis.c \
	mt-asm.c \
	mt-desc.c \
	mt-dis.c \
	mt-ibld.c \
	mt-opc.c \
	nds32-asm.c \
	nds32-dis.c \
	nios2-dis.c \
	nios2-opc.c \
	ns32k-dis.c \
	or1k-asm.c \
	or1k-desc.c \
	or1k-dis.c \
	or1k-ibld.c \
	or1k-opc.c \
	pdp11-dis.c \
	pdp11-opc.c \
	pj-dis.c \
	pj-opc.c \
	ppc-dis.c \
	ppc-opc.c \
	rl78-decode.c \
	rl78-dis.c \
	rx-decode.c \
	rx-dis.c \
	s390-dis.c \
	s390-opc.c \
	score-dis.c \
	score7-dis.c \
	sh-dis.c \
	sh64-dis.c \
	sh64-opc.c \
	sparc-dis.c \
	sparc-opc.c \
	spu-dis.c \
	spu-opc.c \
	tic30-dis.c \
	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 \
	visium-dis.c \
	visium-opc.c \
	w65-dis.c \
	xc16x-asm.c \
	xc16x-desc.c \
	xc16x-dis.c \
	xc16x-ibld.c \
	xc16x-opc.c \
	xstormy16-asm.c \
	xstormy16-desc.c \
	xstormy16-dis.c \
	xstormy16-ibld.c \
	xstormy16-opc.c \
	xtensa-dis.c \
	xgate-dis.c \
	xgate-opc.c \
	z80-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) \
	aarch64-gen.c \
	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 = $(TARGET_LIBOPCODES_CFILES:.c=.lo)

OFILES = @BFD_MACHINES@

# development.sh is used to determine -Werror default.
CONFIG_STATUS_DEPENDENCIES = $(BFDDIR)/development.sh

AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(INCDIR) -I$(BFDDIR) @HDEFINES@ @INCINTL@

disassemble.lo: disassemble.c
if am__fastdepCC
	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ @archdefs@ $(srcdir)/disassemble.c
	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
else
if AMDEP
	source='disassemble.c' object='$@' libtool=yes @AMDEPBACKSLASH@
	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
endif
	$(LTCOMPILE) -c -o $@ @archdefs@ $(srcdir)/disassemble.c
endif

libopcodes_la_SOURCES =  dis-buf.c disassemble.c dis-init.c
# It's desirable to list ../bfd/libbfd.la in DEPENDENCIES and LIBADD.
# Unfortunately this causes libtool to add -L$(libdir), referring to the
# planned install directory of libbfd.  This can cause us to pick up an
# old version of libbfd, or to pick up libbfd for the wrong architecture
# if host != build. So for building with shared libraries we use a
# 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@
# Allow dependency tracking to work on all the source files.
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
# programs that use libopcodes.a simultaneously.  This is a hack which
# 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'`; \
	if [ -f $$libtooldir/libopcodes.a ]; then \
	  cp $$libtooldir/libopcodes.a libopcodes.tmp; \
	  $(RANLIB) libopcodes.tmp; \
	  $(SHELL) $(srcdir)/../move-if-change libopcodes.tmp libopcodes.a; \
	else true; fi
	touch stamp-lib

libopcodes.a: stamp-lib ; @true

POTFILES = $(HFILES) $(CFILES)
po/POTFILES.in: @MAINT@ Makefile
	for f in $(POTFILES); do echo $$f; done | LC_ALL=C sort > tmp \
	  && mv tmp $(srcdir)/po/POTFILES.in

CLEANFILES = \
	stamp-epiphany stamp-fr30 stamp-frv stamp-ip2k stamp-iq2000 stamp-lm32 \
	stamp-m32c stamp-m32r stamp-mep stamp-mt \
	stamp-or1k stamp-xc16x stamp-xstormy16 \
	libopcodes.a stamp-lib


CGENDIR = @cgendir@
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

CGENDEPS = \
	$(CGENDIR)/desc.scm $(CGENDIR)/desc-cpu.scm \
	$(CGENDIR)/opcodes.scm $(CGENDIR)/opc-asmdis.scm \
	$(CGENDIR)/opc-ibld.scm $(CGENDIR)/opc-itab.scm \
	$(CGENDIR)/opc-opinst.scm \
	cgen-asm.in cgen-dis.in cgen-ibld.in

CGEN_CPUS = epiphany fr30 frv ip2k iq2000 lm32 m32c m32r mep mt or1k xc16x xstormy16

if CGEN_MAINT
EPIPHANY_DEPS = stamp-epiphany
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
MEP_DEPS = stamp-mep
MT_DEPS = stamp-mt
OR1K_DEPS = stamp-or1k
XC16X_DEPS = stamp-xc16x
XSTORMY16_DEPS = stamp-xstormy16
else
EPIPHANY_DEPS =
FR30_DEPS =
FRV_DEPS =
IP2K_DEPS =
IQ2000_DEPS =
LM32_DEPS =
M32C_DEPS =
M32R_DEPS =
MEP_DEPS =
MT_DEPS =
OR1K_DEPS =
XC16X_DEPS =
XSTORMY16_DEPS =
endif

run-cgen:
	$(SHELL) $(srcdir)/cgen.sh opcodes $(srcdir) $(CGEN) \
	  $(CGENDIR) "$(CGENFLAGS)" $(arch) $(prefix) $(archfile) $(opcfile) \
	  "$(options)" "$(extrafiles)"
	touch stamp-${prefix}
.PHONY: run-cgen

# Maintainer utility rule to regenerate all cgen files.
run-cgen-all:
	for c in $(CGEN_CPUS) ; \
	do \
		$(MAKE) stamp-$$c || exit 1 ; \
	done
.PHONY: run-cgen-all

# For now, require developers to configure with --enable-cgen-maint.

$(srcdir)/epiphany-desc.h $(srcdir)/epiphany-desc.c $(srcdir)/epiphany-opc.h \
		$(srcdir)/epiphany-opc.c $(srcdir)/epiphany-ibld.c \
		$(srcdir)/epiphany-opinst.c $(srcdir)/epiphany-asm.c \
		$(srcdir)/epiphany-dis.c: $(EPIPHANY_DEPS)
	@true

stamp-epiphany: $(CGENDEPS) $(CPUDIR)/epiphany.cpu $(CPUDIR)/epiphany.opc
	$(MAKE) run-cgen arch=epiphany prefix=epiphany options= \
		archfile=$(CPUDIR)/epiphany.cpu opcfile=$(CPUDIR)/epiphany.opc extrafiles=

$(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) $(CPUDIR)/lm32.cpu $(CPUDIR)/lm32.opc
	$(MAKE) run-cgen arch=lm32 prefix=lm32 options=opinst \
		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) $(CPUDIR)/m32c.cpu $(CPUDIR)/m32c.opc
	$(MAKE) run-cgen arch=m32c prefix=m32c options= \
		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) $(CPUDIR)/m32r.cpu $(CPUDIR)/m32r.opc
	$(MAKE) run-cgen arch=m32r prefix=m32r options=opinst \
		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
stamp-mep: $(CGENDEPS) $(CPUDIR)/mep.cpu $(CPUDIR)/mep-default.cpu $(CPUDIR)/mep-core.cpu $(CPUDIR)/mep-h1.cpu $(CPUDIR)/mep-ext-cop.cpu $(CPUDIR)/mep-sample-ucidsp.cpu $(CPUDIR)/mep-rhcop.cpu $(CPUDIR)/mep-fmax.cpu $(CPUDIR)/mep.opc
	$(MAKE) run-cgen arch=mep prefix=mep options= \
		archfile=$(CPUDIR)/mep.cpu opcfile=$(CPUDIR)/mep.opc extrafiles=

$(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) $(CPUDIR)/mt.cpu $(CPUDIR)/mt.opc
	$(MAKE) run-cgen arch=mt prefix=mt options= \
		archfile=$(CPUDIR)/mt.cpu \
		opcfile=$(CPUDIR)/mt.opc extrafiles=

$(srcdir)/or1k-desc.h $(srcdir)/or1k-desc.c $(srcdir)/or1k-opc.h $(srcdir)/or1k-opc.c $(srcdir)/or1k-ibld.c $(srcdir)/or1k-opinst.c $(srcdir)/or1k-asm.c $(srcdir)/or1k-dis.c: $(OR1K_DEPS)
	@true
stamp-or1k: $(CGENDEPS) $(CPUDIR)/or1k.cpu $(CPUDIR)/or1k.opc $(CPUDIR)/or1kcommon.cpu $(CPUDIR)/or1korbis.cpu $(CPUDIR)/or1korfpx.cpu
	$(MAKE) run-cgen arch=or1k prefix=or1k options=opinst \
		archfile=$(CPUDIR)/or1k.cpu opcfile=$(CPUDIR)/or1k.opc extrafiles=opinst

$(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=

$(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
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=

MOSTLYCLEANFILES = aarch64-gen$(EXEEXT_FOR_BUILD) 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)/aarch64-asm-2.c $(srcdir)/aarch64-dis-2.c \
	$(srcdir)/aarch64-opc-2.c $(srcdir)/i386-tbl.h $(srcdir)/i386-init.h \
	$(srcdir)/ia64-asmtab.c $(srcdir)/z8k-opc.h \
	$(srcdir)/msp430-decode.c \
	$(srcdir)/rl78-decode.c \
	$(srcdir)/rx-decode.c

aarch64-gen$(EXEEXT_FOR_BUILD): aarch64-gen.o $(BUILD_LIB_DEPS)
	$(LINK_FOR_BUILD) aarch64-gen.o $(BUILD_LIBS)

aarch64-gen.o: aarch64-gen.c $(BFD_H) $(INCDIR)/getopt.h $(INCDIR)/libiberty.h\
	$(INCDIR)/opcode/aarch64.h config.h aarch64-opc.h aarch64-tbl.h
	$(COMPILE_FOR_BUILD) -c $(srcdir)/aarch64-gen.c

$(srcdir)/aarch64-asm-2.c: @MAINT@ aarch64-gen$(exeext_for_build)
	./aarch64-gen$(exeext_for_build) --gen-asm > $@
$(srcdir)/aarch64-dis-2.c: @MAINT@ aarch64-gen$(exeext_for_build)
	./aarch64-gen$(exeext_for_build) --gen-dis > $@
$(srcdir)/aarch64-opc-2.c: @MAINT@ aarch64-gen$(exeext_for_build)
	./aarch64-gen$(exeext_for_build) --gen-opc > $@

i386-gen$(EXEEXT_FOR_BUILD): i386-gen.o $(BUILD_LIB_DEPS)
	$(LINK_FOR_BUILD) i386-gen.o $(BUILD_LIBS)

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$(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

# 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) > $@

ia64-opc.lo: $(srcdir)/ia64-asmtab.c

$(srcdir)/msp430-decode.c: @MAINT@ $(srcdir)/msp430-decode.opc opc2c$(EXEEXT_FOR_BUILD)
	./opc2c$(EXEEXT_FOR_BUILD) $(srcdir)/msp430-decode.opc > $(srcdir)/msp430-decode.c

$(srcdir)/rl78-decode.c: @MAINT@ $(srcdir)/rl78-decode.opc opc2c$(EXEEXT_FOR_BUILD)
	./opc2c$(EXEEXT_FOR_BUILD) $(srcdir)/rl78-decode.opc > $(srcdir)/rl78-decode.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

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
	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
else
if AMDEP
	source='sh-dis.c' object='$@' libtool=yes @AMDEPBACKSLASH@
	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
endif
	$(LTCOMPILE) -c -o $@ @archdefs@ $(srcdir)/sh-dis.c
endif
