# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@

# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005  Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.

@SET_MAKE@

srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
bin_PROGRAMS = $(am__EXEEXT_6) $(am__EXEEXT_7) $(am__EXEEXT_8) \
	$(am__EXEEXT_9) $(am__EXEEXT_10) $(am__EXEEXT_11) \
	@BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ \
	@BUILD_WINDMC@ $(am__EXEEXT_12) $(am__EXEEXT_13) \
	@BUILD_DLLWRAP@ @BUILD_INSTALL_MISC@ $(am__empty)
noinst_PROGRAMS = $(am__EXEEXT_17) @BUILD_MISC@
EXTRA_PROGRAMS = $(am__EXEEXT_1) srconv$(EXEEXT) sysdump$(EXEEXT) \
	coffdump$(EXEEXT) $(am__EXEEXT_2) $(am__EXEEXT_3) \
	$(am__EXEEXT_4) $(am__EXEEXT_5)
DIST_COMMON = $(srcdir)/../config.guess $(srcdir)/../config.sub NEWS \
	README ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
	$(top_srcdir)/configure $(am__configure_deps) \
	$(srcdir)/config.in $(srcdir)/../mkinstalldirs \
	$(top_srcdir)/po/Make-in arparse.h arparse.c arlex.c \
	defparse.h defparse.c deflex.c nlmheader.h nlmheader.c \
	arparse.h arparse.c arlex.c mcparse.h mcparse.c rcparse.h \
	rcparse.c $(srcdir)/../ylwrap $(srcdir)/../ltmain.sh \
	$(srcdir)/../config.guess $(srcdir)/../config.sub
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../bfd/acinclude.m4 \
	$(top_srcdir)/../bfd/warning.m4 \
	$(top_srcdir)/../config/depstand.m4 \
	$(top_srcdir)/../config/extensions.m4 \
	$(top_srcdir)/../config/gettext-sister.m4 \
	$(top_srcdir)/../config/iconv.m4 \
	$(top_srcdir)/../config/lead-dot.m4 \
	$(top_srcdir)/../config/lib-ld.m4 \
	$(top_srcdir)/../config/lib-link.m4 \
	$(top_srcdir)/../config/lib-prefix.m4 \
	$(top_srcdir)/../config/nls.m4 \
	$(top_srcdir)/../config/override.m4 \
	$(top_srcdir)/../config/po.m4 \
	$(top_srcdir)/../config/proginstall.m4 \
	$(top_srcdir)/../config/progtest.m4 \
	$(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
	$(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
	$(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
 configure.lineno configure.status.lineno
mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES = po/Makefile.in
am__EXEEXT_1 = nlmconv$(EXEEXT)
am__EXEEXT_2 = dlltool$(EXEEXT)
am__EXEEXT_3 = windres$(EXEEXT)
am__EXEEXT_4 = windmc$(EXEEXT)
am__EXEEXT_5 = dllwrap$(EXEEXT)
am__EXEEXT_6 = size$(EXEEXT)
am__EXEEXT_7 = objdump$(EXEEXT)
am__EXEEXT_8 = ar$(EXEEXT)
am__EXEEXT_9 = strings$(EXEEXT)
am__EXEEXT_10 = ranlib$(EXEEXT)
am__EXEEXT_11 = objcopy$(EXEEXT)
am__EXEEXT_12 = addr2line$(EXEEXT)
am__EXEEXT_13 = readelf$(EXEEXT)
am__installdirs = "$(DESTDIR)$(bindir)"
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
am__EXEEXT_14 = nm-new$(EXEEXT)
am__EXEEXT_15 = strip-new$(EXEEXT)
am__EXEEXT_16 = cxxfilt$(EXEEXT)
am__EXEEXT_17 = $(am__EXEEXT_14) $(am__EXEEXT_15) $(am__EXEEXT_16)
PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
am__objects_1 = bucomm.$(OBJEXT) version.$(OBJEXT) filemode.$(OBJEXT)
am_addr2line_OBJECTS = addr2line.$(OBJEXT) $(am__objects_1)
addr2line_OBJECTS = $(am_addr2line_OBJECTS)
addr2line_LDADD = $(LDADD)
am__DEPENDENCIES_1 = ../bfd/libbfd.la
am__DEPENDENCIES_2 = ../libiberty/libiberty.a
am__DEPENDENCIES_3 =
am_ar_OBJECTS = arparse.$(OBJEXT) arlex.$(OBJEXT) ar.$(OBJEXT) \
	not-ranlib.$(OBJEXT) arsup.$(OBJEXT) rename.$(OBJEXT) \
	binemul.$(OBJEXT) emul_$(EMULATION).$(OBJEXT) $(am__objects_1)
ar_OBJECTS = $(am_ar_OBJECTS)
am_coffdump_OBJECTS = coffdump.$(OBJEXT) coffgrok.$(OBJEXT) \
	$(am__objects_1)
coffdump_OBJECTS = $(am_coffdump_OBJECTS)
coffdump_LDADD = $(LDADD)
am_cxxfilt_OBJECTS = cxxfilt.$(OBJEXT) $(am__objects_1)
cxxfilt_OBJECTS = $(am_cxxfilt_OBJECTS)
cxxfilt_LDADD = $(LDADD)
am_dlltool_OBJECTS = dlltool.$(OBJEXT) defparse.$(OBJEXT) \
	deflex.$(OBJEXT) $(am__objects_1)
dlltool_OBJECTS = $(am_dlltool_OBJECTS)
am_dllwrap_OBJECTS = dllwrap.$(OBJEXT) version.$(OBJEXT)
dllwrap_OBJECTS = $(am_dllwrap_OBJECTS)
am_nlmconv_OBJECTS = nlmconv.$(OBJEXT) nlmheader.$(OBJEXT) \
	$(am__objects_1)
nlmconv_OBJECTS = $(am_nlmconv_OBJECTS)
nlmconv_LDADD = $(LDADD)
am_nm_new_OBJECTS = nm.$(OBJEXT) $(am__objects_1)
nm_new_OBJECTS = $(am_nm_new_OBJECTS)
nm_new_LDADD = $(LDADD)
am__objects_2 = rddbg.$(OBJEXT) debug.$(OBJEXT) stabs.$(OBJEXT) \
	ieee.$(OBJEXT) rdcoff.$(OBJEXT)
am__objects_3 = $(am__objects_2) wrstabs.$(OBJEXT)
am_objcopy_OBJECTS = objcopy.$(OBJEXT) not-strip.$(OBJEXT) \
	rename.$(OBJEXT) $(am__objects_3) $(am__objects_1)
objcopy_OBJECTS = $(am_objcopy_OBJECTS)
objcopy_LDADD = $(LDADD)
am_objdump_OBJECTS = objdump.$(OBJEXT) dwarf.$(OBJEXT) prdbg.$(OBJEXT) \
	$(am__objects_2) $(am__objects_1)
objdump_OBJECTS = $(am_objdump_OBJECTS)
am__DEPENDENCIES_4 = ../opcodes/libopcodes.la
am_ranlib_OBJECTS = ar.$(OBJEXT) is-ranlib.$(OBJEXT) arparse.$(OBJEXT) \
	arlex.$(OBJEXT) arsup.$(OBJEXT) rename.$(OBJEXT) \
	binemul.$(OBJEXT) emul_$(EMULATION).$(OBJEXT) $(am__objects_1)
ranlib_OBJECTS = $(am_ranlib_OBJECTS)
am_readelf_OBJECTS = readelf.$(OBJEXT) version.$(OBJEXT) \
	unwind-ia64.$(OBJEXT) dwarf.$(OBJEXT)
readelf_OBJECTS = $(am_readelf_OBJECTS)
am_size_OBJECTS = size.$(OBJEXT) $(am__objects_1)
size_OBJECTS = $(am_size_OBJECTS)
size_LDADD = $(LDADD)
am_srconv_OBJECTS = srconv.$(OBJEXT) coffgrok.$(OBJEXT) \
	$(am__objects_1)
srconv_OBJECTS = $(am_srconv_OBJECTS)
srconv_LDADD = $(LDADD)
am_strings_OBJECTS = strings.$(OBJEXT) $(am__objects_1)
strings_OBJECTS = $(am_strings_OBJECTS)
strings_LDADD = $(LDADD)
am_strip_new_OBJECTS = objcopy.$(OBJEXT) is-strip.$(OBJEXT) \
	rename.$(OBJEXT) $(am__objects_3) $(am__objects_1)
strip_new_OBJECTS = $(am_strip_new_OBJECTS)
strip_new_LDADD = $(LDADD)
am_sysdump_OBJECTS = sysdump.$(OBJEXT) $(am__objects_1)
sysdump_OBJECTS = $(am_sysdump_OBJECTS)
sysdump_LDADD = $(LDADD)
am_windmc_OBJECTS = windmc.$(OBJEXT) mcparse.$(OBJEXT) mclex.$(OBJEXT) \
	winduni.$(OBJEXT) $(am__objects_1)
windmc_OBJECTS = $(am_windmc_OBJECTS)
am_windres_OBJECTS = windres.$(OBJEXT) resrc.$(OBJEXT) \
	rescoff.$(OBJEXT) resbin.$(OBJEXT) rcparse.$(OBJEXT) \
	rclex.$(OBJEXT) winduni.$(OBJEXT) resres.$(OBJEXT) \
	$(am__objects_1)
windres_OBJECTS = $(am_windres_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
depcomp =
am__depfiles_maybe =
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
	$(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
	$(AM_LDFLAGS) $(LDFLAGS) -o $@
LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS)
LTLEXCOMPILE = $(LIBTOOL) --mode=compile $(LEX) $(LFLAGS) $(AM_LFLAGS)
YLWRAP = $(top_srcdir)/../ylwrap
YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
LTYACCCOMPILE = $(LIBTOOL) --mode=compile $(YACC) $(YFLAGS) \
	$(AM_YFLAGS)
SOURCES = $(addr2line_SOURCES) $(ar_SOURCES) $(coffdump_SOURCES) \
	$(cxxfilt_SOURCES) $(dlltool_SOURCES) $(dllwrap_SOURCES) \
	$(nlmconv_SOURCES) $(nm_new_SOURCES) $(objcopy_SOURCES) \
	$(objdump_SOURCES) $(ranlib_SOURCES) $(readelf_SOURCES) \
	$(size_SOURCES) $(srconv_SOURCES) $(strings_SOURCES) \
	$(strip_new_SOURCES) $(sysdump_SOURCES) $(windmc_SOURCES) \
	$(windres_SOURCES)
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
	html-recursive info-recursive install-data-recursive \
	install-exec-recursive install-info-recursive \
	install-recursive installcheck-recursive installdirs-recursive \
	pdf-recursive ps-recursive uninstall-info-recursive \
	uninstall-recursive
ETAGS = etags
CTAGS = ctags
DEJATOOL = $(PACKAGE)
RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir
DIST_SUBDIRS = $(SUBDIRS)
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_DLLTOOL = @BUILD_DLLTOOL@
BUILD_DLLWRAP = @BUILD_DLLWRAP@
BUILD_INSTALL_MISC = @BUILD_INSTALL_MISC@
BUILD_MISC = @BUILD_MISC@
BUILD_NLMCONV = @BUILD_NLMCONV@
BUILD_SRCONV = @BUILD_SRCONV@
BUILD_WINDMC = @BUILD_WINDMC@
BUILD_WINDRES = @BUILD_WINDRES@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CC_FOR_BUILD = @CC_FOR_BUILD@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEFS = @DEFS@
DEMANGLER_NAME = @DEMANGLER_NAME@
DEPDIR = @DEPDIR@
DLLTOOL_DEFS = @DLLTOOL_DEFS@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EMULATION = @EMULATION@
EMULATION_VECTOR = @EMULATION_VECTOR@
EXEEXT = @EXEEXT@
EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@
FGREP = @FGREP@
GENCAT = @GENCAT@
GENINSRC_NEVER_FALSE = @GENINSRC_NEVER_FALSE@
GENINSRC_NEVER_TRUE = @GENINSRC_NEVER_TRUE@
GMSGFMT = @GMSGFMT@
GREP = @GREP@
HDEFINES = @HDEFINES@
INCINTL = @INCINTL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTOBJEXT = @INSTOBJEXT@
LD = @LD@
LDFLAGS = @LDFLAGS@
LEX = `if [ -f ../flex/flex ]; then echo ../flex/flex; else echo @LEX@; fi`
LEXLIB = @LEXLIB@
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
LIBICONV = @LIBICONV@
LIBINTL = @LIBINTL@
LIBINTL_DEP = @LIBINTL_DEP@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
MSGMERGE = @MSGMERGE@
NLMCONV_DEFS = @NLMCONV_DEFS@
NM = @NM@
NMEDIT = @NMEDIT@
NO_WERROR = @NO_WERROR@
OBJDUMP = @OBJDUMP@
OBJDUMP_DEFS = @OBJDUMP_DEFS@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
POSUB = @POSUB@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARN_CFLAGS = @WARN_CFLAGS@
XGETTEXT = @XGETTEXT@
YACC = `if [ -f ../bison/bison ]; then echo ../bison/bison -y -L$(srcdir)/../bison/; else echo @YACC@; fi`
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DSYMUTIL = @ac_ct_DSYMUTIL@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
ac_ct_LIPO = @ac_ct_LIPO@
ac_ct_NMEDIT = @ac_ct_NMEDIT@
ac_ct_OBJDUMP = @ac_ct_OBJDUMP@
ac_ct_OTOOL = @ac_ct_OTOOL@
ac_ct_OTOOL64 = @ac_ct_OTOOL64@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
AUTOMAKE_OPTIONS = cygnus dejagnu
ACLOCAL_AMFLAGS = -I .. -I ../config -I ../bfd
SUBDIRS = doc po
tooldir = $(exec_prefix)/$(target_alias)
YFLAGS = -d
AM_CFLAGS = $(WARN_CFLAGS)

# these two are almost the same program
AR_PROG = ar
RANLIB_PROG = ranlib

# objcopy and strip should be the same program
OBJCOPY_PROG = objcopy
STRIP_PROG = strip-new
STRINGS_PROG = strings
READELF_PROG = readelf

# These should all be the same program too.
SIZE_PROG = size
NM_PROG = nm-new
OBJDUMP_PROG = objdump

# This is the demangler, as a standalone program.
# Note: This one is used as the installed name too, unlike the above.
DEMANGLER_PROG = cxxfilt
ADDR2LINE_PROG = addr2line
NLMCONV_PROG = nlmconv
DLLTOOL_PROG = dlltool
WINDRES_PROG = windres
WINDMC_PROG = windmc
DLLWRAP_PROG = dllwrap
SRCONV_PROG = srconv$(EXEEXT) sysdump$(EXEEXT) coffdump$(EXEEXT)
RENAMED_PROGS = $(NM_PROG) $(STRIP_PROG) $(DEMANGLER_PROG)

# Stuff that goes in tooldir/ if appropriate.
TOOL_PROGS = nm-new strip-new ar ranlib dlltool objdump objcopy
BASEDIR = $(srcdir)/..
BFDDIR = $(BASEDIR)/bfd
INCDIR = $(BASEDIR)/include
MKDEP = gcc -MM
INCLUDES = -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) \
	 @HDEFINES@ \
	 @INCINTL@ \
	 -DLOCALEDIR="\"$(datadir)/locale\"" \
	 -Dbin_dummy_emulation=$(EMULATION_VECTOR)

HFILES = \
	arsup.h binemul.h bucomm.h budbg.h \
	coffgrok.h debug.h dlltool.h dwarf.h nlmconv.h \
	sysdep.h unwind-ia64.h windres.h winduni.h windint.h \
	windmc.h

GENERATED_HFILES = arparse.h sysroff.h sysinfo.h defparse.h rcparse.h mcparse.h
CFILES = \
	addr2line.c ar.c arsup.c bin2c.c binemul.c bucomm.c \
	coffdump.c coffgrok.c cxxfilt.c \
	dwarf.c debug.c dlltool.c dllwrap.c \
	emul_aix.c emul_vanilla.c filemode.c \
	ieee.c is-ranlib.c is-strip.c maybe-ranlib.c maybe-strip.c \
	nlmconv.c nm.c not-ranlib.c not-strip.c \
	objcopy.c objdump.c prdbg.c \
	rclex.c rdcoff.c rddbg.c readelf.c rename.c \
	resbin.c rescoff.c resrc.c resres.c \
	size.c srconv.c stabs.c strings.c sysdump.c \
	unwind-ia64.c version.c \
	windres.c winduni.c wrstabs.c \
	windmc.c mclex.c

GENERATED_CFILES = \
	arparse.c arlex.c sysroff.c sysinfo.c syslex.c \
	defparse.c deflex.c nlmheader.c rcparse.c mcparse.c

DEBUG_SRCS = rddbg.c debug.c stabs.c ieee.c rdcoff.c
WRITE_DEBUG_SRCS = $(DEBUG_SRCS) wrstabs.c

# Code shared by all the binutils.
BULIBS = bucomm.c version.c filemode.c
BFDLIB = ../bfd/libbfd.la
OPCODES = ../opcodes/libopcodes.la
LIBIBERTY = ../libiberty/libiberty.a
POTFILES = $(CFILES) $(DEBUG_SRCS) $(HFILES)
EXPECT = expect
RUNTEST = runtest
CC_FOR_TARGET = ` \
  if [ -f $$r/../gcc/xgcc ] ; then \
    if [ -f $$r/../newlib/Makefile ] ; then \
      echo $$r/../gcc/xgcc -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc; \
    else \
      echo $$r/../gcc/xgcc -B$$r/../gcc/; \
    fi; \
  else \
    if [ "@host@" = "@target@" ] ; then \
      echo $(CC); \
    else \
      echo gcc | sed '$(transform)'; \
    fi; \
  fi`


# There's no global DEPENDENCIES.  So, we must explicitly list everything
# which depends on libintl, since we don't know whether LIBINTL_DEP will be
# non-empty until configure time.  Ugh!
size_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB)
objdump_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB) $(OPCODES)
nm_new_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB)
ar_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB)
strings_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB)
strip_new_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB)
ranlib_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB)
cxxfilt_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB)
objcopy_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB)
nlmconv_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB)
srconv_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB)
sysdump_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB)
coffdump_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB)
dlltool_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB)
windres_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB)
windmc_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB)
addr2line_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB)
readelf_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY)
dllwrap_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY)
LDADD = $(BFDLIB) $(LIBIBERTY) $(LIBINTL)
size_SOURCES = size.c $(BULIBS)
objcopy_SOURCES = objcopy.c not-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
strings_SOURCES = strings.c $(BULIBS)
readelf_SOURCES = readelf.c version.c unwind-ia64.c dwarf.c
readelf_LDADD = $(LIBINTL) $(LIBIBERTY)
strip_new_SOURCES = objcopy.c is-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
nm_new_SOURCES = nm.c $(BULIBS)
objdump_SOURCES = objdump.c dwarf.c prdbg.c $(DEBUG_SRCS) $(BULIBS)
objdump_LDADD = $(OPCODES) $(BFDLIB) $(LIBIBERTY) $(LIBINTL)
cxxfilt_SOURCES = cxxfilt.c $(BULIBS)
ar_SOURCES = arparse.y arlex.l ar.c not-ranlib.c arsup.c rename.c binemul.c \
	emul_$(EMULATION).c $(BULIBS)

ar_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(LIBINTL)
ranlib_SOURCES = ar.c is-ranlib.c arparse.y arlex.l arsup.c rename.c \
	binemul.c emul_$(EMULATION).c $(BULIBS)

ranlib_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(LIBINTL)
addr2line_SOURCES = addr2line.c $(BULIBS)
srconv_SOURCES = srconv.c coffgrok.c $(BULIBS)
dlltool_SOURCES = dlltool.c defparse.y deflex.l $(BULIBS)
dlltool_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(LIBINTL)
coffdump_SOURCES = coffdump.c coffgrok.c $(BULIBS)
sysdump_SOURCES = sysdump.c $(BULIBS)
nlmconv_SOURCES = nlmconv.c nlmheader.y $(BULIBS)
windres_SOURCES = windres.c resrc.c rescoff.c resbin.c rcparse.y rclex.c \
	winduni.c resres.c $(BULIBS)

windres_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(LIBINTL) $(LIBICONV)
windmc_SOURCES = windmc.c mcparse.y mclex.c \
	winduni.c $(BULIBS)

windmc_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(LIBINTL) $(LIBICONV)
dllwrap_SOURCES = dllwrap.c version.c
dllwrap_LDADD = $(LIBIBERTY) $(LIBINTL)
EXTRA_DIST = arparse.c arparse.h arlex.c nlmheader.c sysinfo.c sysinfo.h \
	syslex.c deflex.c defparse.h defparse.c rcparse.h rcparse.c \
	mcparse.h mcparse.c

DISTCLEANFILES = sysroff.c sysroff.h site.exp site.bak

###
MOSTLYCLEANFILES = sysinfo$(EXEEXT_FOR_BUILD) bin2c$(EXEEXT_FOR_BUILD) \
  binutils.log binutils.sum abcdefgh*

CLEANFILES = dep.sed DEP DEPA DEP1 DEP2
all: config.h
	$(MAKE) $(AM_MAKEFLAGS) all-recursive

.SUFFIXES:
.SUFFIXES: .c .l .lo .o .obj .y
am--refresh:
	@:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \
	    *$$dep*) \
	      echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
	      cd $(srcdir) && $(AUTOMAKE) --foreign  \
		&& exit 0; \
	      exit 1;; \
	  esac; \
	done; \
	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  Makefile'; \
	cd $(top_srcdir) && \
	  $(AUTOMAKE) --foreign  Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
	@case '$?' in \
	  *config.status*) \
	    echo ' $(SHELL) ./config.status'; \
	    $(SHELL) ./config.status;; \
	  *) \
	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
	esac;

$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
	$(SHELL) ./config.status --recheck

$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
	cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)

config.h: stamp-h1
	@if test ! -f $@; then \
	  rm -f stamp-h1; \
	  $(MAKE) stamp-h1; \
	else :; fi

stamp-h1: $(srcdir)/config.in $(top_builddir)/config.status
	@rm -f stamp-h1
	cd $(top_builddir) && $(SHELL) ./config.status config.h
$(srcdir)/config.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 
	cd $(top_srcdir) && $(AUTOHEADER)
	rm -f stamp-h1
	touch $@

distclean-hdr:
	-rm -f config.h stamp-h1
po/Makefile.in: $(top_builddir)/config.status $(top_srcdir)/po/Make-in
	cd $(top_builddir) && $(SHELL) ./config.status $@
install-binPROGRAMS: $(bin_PROGRAMS)
	@$(NORMAL_INSTALL)
	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
	@list='$(bin_PROGRAMS)'; for p in $$list; do \
	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
	  if test -f $$p \
	     || test -f $$p1 \
	  ; then \
	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
	  else :; fi; \
	done

uninstall-binPROGRAMS:
	@$(NORMAL_UNINSTALL)
	@list='$(bin_PROGRAMS)'; for p in $$list; do \
	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
	done

clean-binPROGRAMS:
	@list='$(bin_PROGRAMS)'; for p in $$list; do \
	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
	  echo " rm -f $$p $$f"; \
	  rm -f $$p $$f ; \
	done

clean-noinstPROGRAMS:
	@list='$(noinst_PROGRAMS)'; for p in $$list; do \
	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
	  echo " rm -f $$p $$f"; \
	  rm -f $$p $$f ; \
	done
addr2line$(EXEEXT): $(addr2line_OBJECTS) $(addr2line_DEPENDENCIES) 
	@rm -f addr2line$(EXEEXT)
	$(LINK) $(addr2line_LDFLAGS) $(addr2line_OBJECTS) $(addr2line_LDADD) $(LIBS)
ar$(EXEEXT): $(ar_OBJECTS) $(ar_DEPENDENCIES) 
	@rm -f ar$(EXEEXT)
	$(LINK) $(ar_LDFLAGS) $(ar_OBJECTS) $(ar_LDADD) $(LIBS)
coffdump$(EXEEXT): $(coffdump_OBJECTS) $(coffdump_DEPENDENCIES) 
	@rm -f coffdump$(EXEEXT)
	$(LINK) $(coffdump_LDFLAGS) $(coffdump_OBJECTS) $(coffdump_LDADD) $(LIBS)
cxxfilt$(EXEEXT): $(cxxfilt_OBJECTS) $(cxxfilt_DEPENDENCIES) 
	@rm -f cxxfilt$(EXEEXT)
	$(LINK) $(cxxfilt_LDFLAGS) $(cxxfilt_OBJECTS) $(cxxfilt_LDADD) $(LIBS)
dlltool$(EXEEXT): $(dlltool_OBJECTS) $(dlltool_DEPENDENCIES) 
	@rm -f dlltool$(EXEEXT)
	$(LINK) $(dlltool_LDFLAGS) $(dlltool_OBJECTS) $(dlltool_LDADD) $(LIBS)
dllwrap$(EXEEXT): $(dllwrap_OBJECTS) $(dllwrap_DEPENDENCIES) 
	@rm -f dllwrap$(EXEEXT)
	$(LINK) $(dllwrap_LDFLAGS) $(dllwrap_OBJECTS) $(dllwrap_LDADD) $(LIBS)
nlmconv$(EXEEXT): $(nlmconv_OBJECTS) $(nlmconv_DEPENDENCIES) 
	@rm -f nlmconv$(EXEEXT)
	$(LINK) $(nlmconv_LDFLAGS) $(nlmconv_OBJECTS) $(nlmconv_LDADD) $(LIBS)
nm-new$(EXEEXT): $(nm_new_OBJECTS) $(nm_new_DEPENDENCIES) 
	@rm -f nm-new$(EXEEXT)
	$(LINK) $(nm_new_LDFLAGS) $(nm_new_OBJECTS) $(nm_new_LDADD) $(LIBS)
objcopy$(EXEEXT): $(objcopy_OBJECTS) $(objcopy_DEPENDENCIES) 
	@rm -f objcopy$(EXEEXT)
	$(LINK) $(objcopy_LDFLAGS) $(objcopy_OBJECTS) $(objcopy_LDADD) $(LIBS)
objdump$(EXEEXT): $(objdump_OBJECTS) $(objdump_DEPENDENCIES) 
	@rm -f objdump$(EXEEXT)
	$(LINK) $(objdump_LDFLAGS) $(objdump_OBJECTS) $(objdump_LDADD) $(LIBS)
ranlib$(EXEEXT): $(ranlib_OBJECTS) $(ranlib_DEPENDENCIES) 
	@rm -f ranlib$(EXEEXT)
	$(LINK) $(ranlib_LDFLAGS) $(ranlib_OBJECTS) $(ranlib_LDADD) $(LIBS)
readelf$(EXEEXT): $(readelf_OBJECTS) $(readelf_DEPENDENCIES) 
	@rm -f readelf$(EXEEXT)
	$(LINK) $(readelf_LDFLAGS) $(readelf_OBJECTS) $(readelf_LDADD) $(LIBS)
size$(EXEEXT): $(size_OBJECTS) $(size_DEPENDENCIES) 
	@rm -f size$(EXEEXT)
	$(LINK) $(size_LDFLAGS) $(size_OBJECTS) $(size_LDADD) $(LIBS)
srconv$(EXEEXT): $(srconv_OBJECTS) $(srconv_DEPENDENCIES) 
	@rm -f srconv$(EXEEXT)
	$(LINK) $(srconv_LDFLAGS) $(srconv_OBJECTS) $(srconv_LDADD) $(LIBS)
strings$(EXEEXT): $(strings_OBJECTS) $(strings_DEPENDENCIES) 
	@rm -f strings$(EXEEXT)
	$(LINK) $(strings_LDFLAGS) $(strings_OBJECTS) $(strings_LDADD) $(LIBS)
strip-new$(EXEEXT): $(strip_new_OBJECTS) $(strip_new_DEPENDENCIES) 
	@rm -f strip-new$(EXEEXT)
	$(LINK) $(strip_new_LDFLAGS) $(strip_new_OBJECTS) $(strip_new_LDADD) $(LIBS)
sysdump$(EXEEXT): $(sysdump_OBJECTS) $(sysdump_DEPENDENCIES) 
	@rm -f sysdump$(EXEEXT)
	$(LINK) $(sysdump_LDFLAGS) $(sysdump_OBJECTS) $(sysdump_LDADD) $(LIBS)
windmc$(EXEEXT): $(windmc_OBJECTS) $(windmc_DEPENDENCIES) 
	@rm -f windmc$(EXEEXT)
	$(LINK) $(windmc_LDFLAGS) $(windmc_OBJECTS) $(windmc_LDADD) $(LIBS)
windres$(EXEEXT): $(windres_OBJECTS) $(windres_DEPENDENCIES) 
	@rm -f windres$(EXEEXT)
	$(LINK) $(windres_LDFLAGS) $(windres_OBJECTS) $(windres_LDADD) $(LIBS)

mostlyclean-compile:
	-rm -f *.$(OBJEXT)

distclean-compile:
	-rm -f *.tab.c

.c.o:
	$(COMPILE) -c $<

.c.obj:
	$(COMPILE) -c `$(CYGPATH_W) '$<'`

.c.lo:
	$(LTCOMPILE) -c -o $@ $<

.l.c:
	$(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE)

.y.c:
	$(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE)

mostlyclean-libtool:
	-rm -f *.lo

clean-libtool:
	-rm -rf .libs _libs

distclean-libtool:
	-rm -f libtool
uninstall-info-am:

# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
#     (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
	@failcom='exit 1'; \
	for f in x $$MAKEFLAGS; do \
	  case $$f in \
	    *=* | --[!k]*);; \
	    *k*) failcom='fail=yes';; \
	  esac; \
	done; \
	dot_seen=no; \
	target=`echo $@ | sed s/-recursive//`; \
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  echo "Making $$target in $$subdir"; \
	  if test "$$subdir" = "."; then \
	    dot_seen=yes; \
	    local_target="$$target-am"; \
	  else \
	    local_target="$$target"; \
	  fi; \
	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
	  || eval $$failcom; \
	done; \
	if test "$$dot_seen" = "no"; then \
	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
	fi; test -z "$$fail"

mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
	@failcom='exit 1'; \
	for f in x $$MAKEFLAGS; do \
	  case $$f in \
	    *=* | --[!k]*);; \
	    *k*) failcom='fail=yes';; \
	  esac; \
	done; \
	dot_seen=no; \
	case "$@" in \
	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
	  *) list='$(SUBDIRS)' ;; \
	esac; \
	rev=''; for subdir in $$list; do \
	  if test "$$subdir" = "."; then :; else \
	    rev="$$subdir $$rev"; \
	  fi; \
	done; \
	rev="$$rev ."; \
	target=`echo $@ | sed s/-recursive//`; \
	for subdir in $$rev; do \
	  echo "Making $$target in $$subdir"; \
	  if test "$$subdir" = "."; then \
	    local_target="$$target-am"; \
	  else \
	    local_target="$$target"; \
	  fi; \
	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
	  || eval $$failcom; \
	done && test -z "$$fail"
tags-recursive:
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
	done
ctags-recursive:
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
	done

ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
	unique=`for i in $$list; do \
	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
	  done | \
	  $(AWK) '    { files[$$0] = 1; } \
	       END { for (i in files) print i; }'`; \
	mkid -fID $$unique
tags: TAGS

TAGS: tags-recursive $(HEADERS) $(SOURCES) config.in $(TAGS_DEPENDENCIES) \
		$(TAGS_FILES) $(LISP)
	tags=; \
	here=`pwd`; \
	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
	  include_option=--etags-include; \
	  empty_fix=.; \
	else \
	  include_option=--include; \
	  empty_fix=; \
	fi; \
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  if test "$$subdir" = .; then :; else \
	    test ! -f $$subdir/TAGS || \
	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
	  fi; \
	done; \
	list='$(SOURCES) $(HEADERS) config.in $(LISP) $(TAGS_FILES)'; \
	unique=`for i in $$list; do \
	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
	  done | \
	  $(AWK) '    { files[$$0] = 1; } \
	       END { for (i in files) print i; }'`; \
	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
	  test -n "$$unique" || unique=$$empty_fix; \
	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
	    $$tags $$unique; \
	fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.in $(TAGS_DEPENDENCIES) \
		$(TAGS_FILES) $(LISP)
	tags=; \
	here=`pwd`; \
	list='$(SOURCES) $(HEADERS) config.in $(LISP) $(TAGS_FILES)'; \
	unique=`for i in $$list; do \
	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
	  done | \
	  $(AWK) '    { files[$$0] = 1; } \
	       END { for (i in files) print i; }'`; \
	test -z "$(CTAGS_ARGS)$$tags$$unique" \
	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
	     $$tags $$unique

GTAGS:
	here=`$(am__cd) $(top_builddir) && pwd` \
	  && cd $(top_srcdir) \
	  && gtags -i $(GTAGS_ARGS) $$here

distclean-tags:
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
site.exp: Makefile
	@echo 'Making a new site.exp file...'
	@echo '## these variables are automatically generated by make ##' >site.tmp
	@echo '# Do not edit here.  If you wish to override these values' >>site.tmp
	@echo '# edit the last section' >>site.tmp
	@echo 'set srcdir $(srcdir)' >>site.tmp
	@echo "set objdir `pwd`" >>site.tmp
	@echo 'set build_alias "$(build_alias)"' >>site.tmp
	@echo 'set build_triplet $(build_triplet)' >>site.tmp
	@echo 'set host_alias "$(host_alias)"' >>site.tmp
	@echo 'set host_triplet $(host_triplet)' >>site.tmp
	@echo 'set target_alias "$(target_alias)"' >>site.tmp
	@echo 'set target_triplet $(target_triplet)' >>site.tmp
	@echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp
	@test ! -f site.exp || \
	  sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
	@-rm -f site.bak
	@test ! -f site.exp || mv site.exp site.bak
	@mv site.tmp site.exp

distclean-DEJAGNU:
	-rm -f site.exp site.bak
	-l='$(DEJATOOL)'; for tool in $$l; do \
	  rm -f $$tool.sum $$tool.log; \
	done
check-am:
	$(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
check: check-recursive
all-am: Makefile $(PROGRAMS) config.h
installdirs: installdirs-recursive
installdirs-am:
	for dir in "$(DESTDIR)$(bindir)"; do \
	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
	done
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive

install-am: all-am
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install-strip:
	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	  `test -z '$(STRIP)' || \
	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
	-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)

clean-generic:
	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)

distclean-generic:
	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)

maintainer-clean-generic:
	@echo "This command is intended for maintainers to use"
	@echo "it deletes files that may require special tools to rebuild."
	-rm -f arlex.c
	-rm -f arparse.c
	-rm -f arparse.h
	-rm -f deflex.c
	-rm -f defparse.c
	-rm -f defparse.h
	-rm -f mcparse.c
	-rm -f mcparse.h
	-rm -f nlmheader.c
	-rm -f nlmheader.h
	-rm -f rcparse.c
	-rm -f rcparse.h
clean: clean-recursive

clean-am: clean-binPROGRAMS clean-generic clean-libtool \
	clean-noinstPROGRAMS mostlyclean-am

distclean: distclean-recursive
	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
	-rm -f Makefile
distclean-am: clean-am distclean-DEJAGNU distclean-compile \
	distclean-generic distclean-hdr distclean-libtool \
	distclean-tags

dvi: dvi-recursive

dvi-am:

html: html-recursive

info: info-recursive

info-am:

install-data-am:

install-exec-am: install-binPROGRAMS install-exec-local

install-info: install-info-recursive

install-man:

installcheck-am:

maintainer-clean: maintainer-clean-recursive
	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
	-rm -rf $(top_srcdir)/autom4te.cache
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

mostlyclean: mostlyclean-recursive

mostlyclean-am: mostlyclean-compile mostlyclean-generic \
	mostlyclean-libtool mostlyclean-local

pdf: pdf-recursive

pdf-am:

ps: ps-recursive

ps-am:

uninstall-am: uninstall-binPROGRAMS

uninstall-info: uninstall-info-recursive

.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
	check-DEJAGNU check-am clean clean-binPROGRAMS clean-generic \
	clean-libtool clean-noinstPROGRAMS clean-recursive ctags \
	ctags-recursive distclean distclean-DEJAGNU distclean-compile \
	distclean-generic distclean-hdr distclean-libtool \
	distclean-recursive distclean-tags dvi dvi-am html html-am \
	info info-am install install-am install-binPROGRAMS \
	install-data install-data-am install-exec install-exec-am \
	install-exec-local install-info install-info-am install-man \
	install-strip installcheck installcheck-am installdirs \
	installdirs-am maintainer-clean maintainer-clean-generic \
	maintainer-clean-recursive mostlyclean mostlyclean-compile \
	mostlyclean-generic mostlyclean-libtool mostlyclean-local \
	mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
	uninstall uninstall-am uninstall-binPROGRAMS uninstall-info-am


.PHONY: install-html install-html-am install-html-recursive

install-html:	install-html-recursive

install-html-recursive:
	@failcom='exit 1'; \
	for f in x $$MAKEFLAGS; do \
	  case $$f in \
	    *=* | --[!k]*);; \
	    *k*) failcom='fail=yes';; \
	  esac; \
	done; \
	dot_seen=no; \
	target=`echo $@ | sed s/-recursive//`; \
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  echo "Making $$target in $$subdir"; \
	  if test "$$subdir" = "."; then \
	    dot_seen=yes; \
	    local_target="$$target-am"; \
	  else \
	    local_target="$$target"; \
	  fi; \
	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
	  || eval $$failcom; \
	done; \
	if test "$$dot_seen" = "no"; then \
	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
	fi; test -z "$$fail"
po/POTFILES.in: @MAINT@ Makefile
	for f in $(POTFILES); do echo $$f; done | LC_ALL=C sort > tmp \
	  && mv tmp $(srcdir)/po/POTFILES.in

check-DEJAGNU: site.exp
	srcdir=`cd $(srcdir) && pwd`; export srcdir; \
	r=`pwd`; export r; \
	EXPECT=$(EXPECT); export EXPECT; \
	runtest=$(RUNTEST); \
	if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
	  CC_FOR_TARGET="$(CC_FOR_TARGET)" CFLAGS_FOR_TARGET="$(CFLAGS)" \
		$$runtest --tool $(DEJATOOL) --srcdir $${srcdir}/testsuite \
			$(RUNTESTFLAGS); \
	else echo "WARNING: could not find \`runtest'" 1>&2; :;\
	fi

installcheck:
	/bin/sh $(srcdir)/sanity.sh $(bindir)

objdump.o:objdump.c
	$(COMPILE) -c $(OBJDUMP_DEFS) $(srcdir)/objdump.c

# The following is commented out for the conversion to automake.
# This rule creates a single binary that switches between ar and ranlib
# by looking at argv[0].  Use this kludge to save some disk space.
# However, you have to install things by hand.
# (That is after 'make install', replace the installed ranlib by a link to ar.)
# Alternatively, you can install ranlib.sh as ranlib.
# ar_with_ranlib: $(ADDL_DEPS) ar.o maybe-ranlib.o
#	$(HLDENV) $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $(AR_PROG) ar.o maybe-ranlib.o $(ADDL_LIBS) $(EXTRALIBS)
#	-rm -f $(RANLIB_PROG)
#	-ln $(AR_PROG) $(RANLIB_PROG)
#
# objcopy and strip in one binary that uses argv[0] to decide its action.
#
#objcopy_with_strip: $(ADDL_DEPS) objcopy.o maybe-strip.o
#	$(HLDENV) $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $(OBJCOPY_PROG) objcopy.o maybe-strip.o $(ADDL_LIBS) $(EXTRALIBS)
#	-rm -f $(STRIP_PROG)
#	-ln $(OBJCOPY_PROG) $(STRIP_PROG)

sysroff.c: sysinfo$(EXEEXT_FOR_BUILD) sysroff.info
	./sysinfo$(EXEEXT_FOR_BUILD) -c <$(srcdir)/sysroff.info >sysroff.c
	./sysinfo$(EXEEXT_FOR_BUILD) -i <$(srcdir)/sysroff.info >>sysroff.c
	./sysinfo$(EXEEXT_FOR_BUILD) -g <$(srcdir)/sysroff.info >>sysroff.c

sysroff.h: sysinfo$(EXEEXT_FOR_BUILD) sysroff.info
	./sysinfo$(EXEEXT_FOR_BUILD) -d <$(srcdir)/sysroff.info >sysroff.h

sysinfo$(EXEEXT_FOR_BUILD): sysinfo.o syslex.o
	$(CC_FOR_BUILD) $(CFLAGS) $(LDFLAGS) -o $@ sysinfo.o syslex.o

syslex.o:
	if [ -r syslex.c ]; then \
	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS) syslex.c -Wno-error ; \
	else \
	  $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS) $(srcdir)/syslex.c -Wno-error ;\
	fi

sysinfo.o:
	if [ -r sysinfo.c ]; then \
	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS) sysinfo.c -Wno-error ; \
	else \
	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS) $(srcdir)/sysinfo.c -Wno-error ; \
	fi

bin2c$(EXEEXT_FOR_BUILD):
	$(CC_FOR_BUILD) -o $@ $(INCLUDES) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) $(srcdir)/bin2c.c $(srcdir)/version.c

embedspu: embedspu.sh
	sed "s@^program_transform_name=@program_transform_name=$(program_transform_name)@" < $< > $@
	chmod a+x $@

# We need these for parallel make.
arparse.h: arparse.c
defparse.h: defparse.c
nlmheader.h: nlmheader.c
rcparse.h: rcparse.c
mcparse.h: mcparse.c
sysinfo.h: sysinfo.c

# Disable -Werror, if it has been enabled, since old versions of bison/
# yacc will produce working code which contain compile time warnings.
arparse.o:
	$(COMPILE) -c $< $(NO_WERROR)
arlex.o:
	$(COMPILE) -c $< $(NO_WERROR)
sysroff.o:
	$(COMPILE) -c $< $(NO_WERROR)
defparse.o:
	$(COMPILE) -c $< $(NO_WERROR)
deflex.o:
	$(COMPILE) -c $< $(NO_WERROR)
nlmheader.o:
	$(COMPILE) -c $< $(NO_WERROR)
rcparse.o:
	$(COMPILE) -c $< $(NO_WERROR)
mcparse.o:
	$(COMPILE) -c $< $(NO_WERROR)
rclex.o:
	$(COMPILE) -c $< $(NO_WERROR)
mclex.o:
	$(COMPILE) -c $< $(NO_WERROR)

dlltool.o:
	$(COMPILE) -c $(DLLTOOL_DEFS) $(srcdir)/dlltool.c

rescoff.o:
	$(COMPILE) -c $(DLLTOOL_DEFS) $(srcdir)/rescoff.c

# coff/sym.h and coff/ecoff.h won't be found by the automatic dependency
# scripts, since they are only included conditionally.
nlmconv.o: nlmconv.c $(INCDIR)/coff/sym.h $(INCDIR)/coff/ecoff.h
	ldname=`echo ld | sed '$(transform)'`; \
	$(COMPILE) -c -DLD_NAME="\"$${ldname}\"" @NLMCONV_DEFS@ $(srcdir)/nlmconv.c

diststuff: $(EXTRA_DIST) info
all: info

# Targets to rebuild dependencies in this Makefile.
# Have to get rid of DEP1 here so that "$?" later includes all of $(CFILES).
DEP: dep.sed $(CFILES) $(HFILES) $(GENERATED_CFILES) $(GENERATED_HFILES) config.h
	rm -f DEP1
	$(MAKE) MKDEP="$(MKDEP)" DEP1
	sed -f dep.sed < DEP1 > DEPA
	echo '# IF YOU PUT ANYTHING HERE IT WILL GO AWAY' >> DEPA
	if grep ' /' DEPA > /dev/null 2> /dev/null; then \
	  echo 'make DEP failed!'; exit 1; \
	else \
	  mv -f DEPA $@; \
	fi

DEP1: $(CFILES) $(GENERATED_CFILES)
	echo '# DO NOT DELETE THIS LINE -- mkdep uses it.' > DEP2
	echo '# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.' >> DEP2
	$(MKDEP) $(INCLUDES) $(CFLAGS) $? >> DEP2
	mv -f DEP2 $@

dep.sed: dep-in.sed config.status
	objdir=`pwd`; \
	sed <$(srcdir)/dep-in.sed >dep.sed	\
		-e 's!@INCDIR@!$(INCDIR)!'	\
		-e 's!@BFDDIR@!$(BFDDIR)!'	\
		-e 's!@SRCDIR@!$(srcdir)!'	\
		-e "s!@OBJDIR@!$${objdir}!"	\
		-e 's!@TOPDIR@!'`echo $(srcdir) | sed -e s,/binutils$$,,`'!'

dep: DEP
	sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < Makefile > tmp-Makefile
	cat DEP >> tmp-Makefile
	$(SHELL) $(srcdir)/../move-if-change tmp-Makefile Makefile

dep-in: DEP
	sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < $(srcdir)/Makefile.in > tmp-Makefile.in
	cat DEP >> tmp-Makefile.in
	$(SHELL) $(srcdir)/../move-if-change tmp-Makefile.in $(srcdir)/Makefile.in

dep-am: DEP
	sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < $(srcdir)/Makefile.am > tmp-Makefile.am
	cat DEP >> tmp-Makefile.am
	$(SHELL) $(srcdir)/../move-if-change tmp-Makefile.am $(srcdir)/Makefile.am

.PHONY: dep dep-in dep-am
mostlyclean-local:
	-rm -rf tmpdir

.PHONY: install-exec-local

install-exec-local: install-binPROGRAMS $(bin_PROGRAMS) $(noinst_PROGRAMS)
	@list='$(RENAMED_PROGS)'; for p in $$list; do \
	  if test -f $$p$(EXEEXT); then \
	    echo " $(LIBTOOL)  --mode=install $(INSTALL_PROGRAM) $$p$(EXEEXT) $(bindir)/`echo $$p|sed -e 's/-new//' -e 's/cxxfilt/$(DEMANGLER_NAME)/'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
	    $(LIBTOOL)  --mode=install $(INSTALL_PROGRAM) $$p$(EXEEXT) $(DESTDIR)$(bindir)/`echo $$p|sed -e 's/-new//' -e 's/cxxfilt/$(DEMANGLER_NAME)/'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
	  else :; fi; \
	done
	$(mkinstalldirs) $(DESTDIR)$(tooldir)/bin
	for i in $(TOOL_PROGS); do \
	  if [ -f $$i$(EXEEXT) ]; then \
	    j=`echo $$i | sed -e 's/-new//'`; \
	    k=`echo $$j | sed '$(transform)'`; \
	    if [ "$(bindir)/$$k" != "$(tooldir)/bin/$$j" ]; then \
	      rm -f $(DESTDIR)$(tooldir)/bin/$$j$(EXEEXT); \
	      ln $(DESTDIR)$(bindir)/$$k$(EXEEXT) $(DESTDIR)$(tooldir)/bin/$$j$(EXEEXT) >/dev/null 2>/dev/null \
		|| $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$i$(EXEEXT) $(DESTDIR)$(tooldir)/bin/$$j$(EXEEXT); \
	    fi; \
	  else true; \
	  fi; \
	done

# What appears below is generated by a hacked mkdep using gcc -MM.

# DO NOT DELETE THIS LINE -- mkdep uses it.
# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
addr2line.o: addr2line.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h $(INCDIR)/demangle.h $(INCDIR)/libiberty.h \
  bucomm.h
ar.o: ar.c sysdep.h config.h $(INCDIR)/ansidecl.h ../bfd/bfdver.h \
  $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h ../bfd/bfd.h \
  $(INCDIR)/symcat.h $(INCDIR)/libiberty.h $(INCDIR)/ansidecl.h \
  $(INCDIR)/progress.h $(INCDIR)/aout/ar.h $(BFDDIR)/libbfd.h \
  $(INCDIR)/hashtab.h bucomm.h arsup.h $(INCDIR)/filenames.h \
  binemul.h
arsup.o: arsup.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h $(INCDIR)/filenames.h bucomm.h \
  arsup.h
bin2c.o: bin2c.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h bucomm.h
binemul.o: binemul.c binemul.h sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h bucomm.h
bucomm.o: bucomm.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h $(INCDIR)/filenames.h $(BFDDIR)/libbfd.h \
  $(INCDIR)/hashtab.h bucomm.h
coffdump.o: coffdump.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h bucomm.h coffgrok.h
coffgrok.o: coffgrok.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h $(INCDIR)/coff/internal.h $(BFDDIR)/libcoff.h \
  $(INCDIR)/bfdlink.h bucomm.h coffgrok.h
cxxfilt.o: cxxfilt.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h $(INCDIR)/demangle.h $(INCDIR)/libiberty.h \
  $(INCDIR)/safe-ctype.h bucomm.h
dwarf.o: dwarf.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  $(INCDIR)/libiberty.h $(INCDIR)/ansidecl.h ../bfd/bfd.h \
  $(INCDIR)/symcat.h bucomm.h $(INCDIR)/elf/common.h \
  $(INCDIR)/elf/dwarf2.h dwarf.h
debug.o: debug.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h debug.h
dlltool.o: dlltool.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h $(INCDIR)/demangle.h $(INCDIR)/libiberty.h \
  $(INCDIR)/dyn-string.h bucomm.h dlltool.h $(INCDIR)/safe-ctype.h
dllwrap.o: dllwrap.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h $(INCDIR)/dyn-string.h bucomm.h
emul_aix.o: emul_aix.c binemul.h sysdep.h config.h \
  $(INCDIR)/ansidecl.h ../bfd/bfdver.h $(INCDIR)/fopen-same.h \
  $(INCDIR)/binary-io.h ../bfd/bfd.h $(INCDIR)/symcat.h \
  bucomm.h $(INCDIR)/bfdlink.h $(INCDIR)/coff/internal.h \
  $(INCDIR)/coff/xcoff.h $(BFDDIR)/libcoff.h $(BFDDIR)/libxcoff.h
emul_vanilla.o: emul_vanilla.c binemul.h sysdep.h config.h \
  $(INCDIR)/ansidecl.h ../bfd/bfdver.h $(INCDIR)/fopen-same.h \
  $(INCDIR)/binary-io.h ../bfd/bfd.h $(INCDIR)/symcat.h \
  bucomm.h
filemode.o: filemode.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h bucomm.h
ieee.o: ieee.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/ieee.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h debug.h budbg.h $(INCDIR)/filenames.h
is-ranlib.o: is-ranlib.c
is-strip.o: is-strip.c
maybe-ranlib.o: maybe-ranlib.c
maybe-strip.o: maybe-strip.c
nlmconv.o: nlmconv.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h $(BFDDIR)/libnlm.h \
  $(INCDIR)/nlm/common.h $(INCDIR)/nlm/internal.h $(INCDIR)/nlm/external.h \
  nlmconv.h bucomm.h
nm.o: nm.c sysdep.h config.h $(INCDIR)/ansidecl.h ../bfd/bfdver.h \
  $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h ../bfd/bfd.h \
  $(INCDIR)/symcat.h $(INCDIR)/progress.h $(INCDIR)/aout/stab_gnu.h \
  $(INCDIR)/aout/stab.def $(INCDIR)/aout/ranlib.h $(INCDIR)/demangle.h \
  $(INCDIR)/libiberty.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
  $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \
  $(INCDIR)/elf/internal.h $(INCDIR)/bfdlink.h bucomm.h
not-ranlib.o: not-ranlib.c
not-strip.o: not-strip.c
objcopy.o: objcopy.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/progress.h \
  $(INCDIR)/libiberty.h $(INCDIR)/ansidecl.h bucomm.h \
  budbg.h $(INCDIR)/filenames.h $(INCDIR)/fnmatch.h $(BFDDIR)/elf-bfd.h \
  $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
  $(INCDIR)/bfdlink.h $(BFDDIR)/libbfd.h $(INCDIR)/hashtab.h
objdump.o: objdump.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(BFDDIR)/elf-bfd.h \
  $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
  $(INCDIR)/bfdlink.h $(INCDIR)/progress.h bucomm.h dwarf.h \
  $(INCDIR)/safe-ctype.h $(INCDIR)/dis-asm.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h $(INCDIR)/demangle.h $(INCDIR)/libiberty.h \
  debug.h budbg.h $(INCDIR)/aout/aout64.h
prdbg.o: prdbg.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h $(INCDIR)/demangle.h $(INCDIR)/libiberty.h \
  debug.h budbg.h
rclex.o: rclex.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h bucomm.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h windres.h \
  winduni.h windint.h rcparse.h
rdcoff.o: rdcoff.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/coff/internal.h \
  $(INCDIR)/libiberty.h $(INCDIR)/ansidecl.h bucomm.h \
  debug.h budbg.h $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h
rddbg.o: rddbg.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h bucomm.h debug.h budbg.h
readelf.o: readelf.c config.h sysdep.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h bucomm.h dwarf.h $(INCDIR)/elf/common.h \
  $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/h8.h \
  $(INCDIR)/elf/reloc-macros.h $(INCDIR)/elf/alpha.h \
  $(INCDIR)/elf/arc.h $(INCDIR)/elf/arm.h $(INCDIR)/elf/avr.h \
  $(INCDIR)/elf/bfin.h $(INCDIR)/elf/cr16.h $(INCDIR)/elf/cris.h \
  $(INCDIR)/elf/crx.h $(INCDIR)/elf/d10v.h $(INCDIR)/elf/d30v.h \
  $(INCDIR)/elf/dlx.h $(INCDIR)/elf/fr30.h $(INCDIR)/elf/frv.h \
  $(INCDIR)/elf/hppa.h $(INCDIR)/elf/i386.h $(INCDIR)/elf/i370.h \
  $(INCDIR)/elf/i860.h $(INCDIR)/elf/i960.h $(INCDIR)/elf/ia64.h \
  $(INCDIR)/elf/ip2k.h $(INCDIR)/elf/iq2000.h $(INCDIR)/elf/m32c.h \
  $(INCDIR)/elf/m32r.h $(INCDIR)/elf/m68k.h $(INCDIR)/elf/m68hc11.h \
  $(INCDIR)/elf/mcore.h $(INCDIR)/elf/mep.h $(INCDIR)/elf/mips.h \
  $(INCDIR)/elf/mmix.h $(INCDIR)/elf/mn10200.h $(INCDIR)/elf/mn10300.h \
  $(INCDIR)/elf/mt.h $(INCDIR)/elf/msp430.h $(INCDIR)/elf/or32.h \
  $(INCDIR)/elf/pj.h $(INCDIR)/elf/ppc.h $(INCDIR)/elf/ppc64.h \
  $(INCDIR)/elf/s390.h $(INCDIR)/elf/score.h $(INCDIR)/elf/sh.h \
  $(INCDIR)/elf/sparc.h $(INCDIR)/elf/spu.h $(INCDIR)/elf/v850.h \
  $(INCDIR)/elf/vax.h $(INCDIR)/elf/x86-64.h $(INCDIR)/elf/xstormy16.h \
  $(INCDIR)/elf/xtensa.h $(INCDIR)/aout/ar.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h unwind-ia64.h
rename.o: rename.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h bucomm.h
resbin.o: resbin.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h bucomm.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h windres.h winduni.h windint.h
rescoff.o: rescoff.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h bucomm.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h windres.h winduni.h windint.h \
  $(INCDIR)/coff/internal.h $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h
resrc.o: resrc.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h bucomm.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h windres.h \
  winduni.h windint.h
resres.o: resres.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h bucomm.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h windres.h winduni.h windint.h
size.o: size.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h bucomm.h
srconv.o: srconv.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h bucomm.h sysroff.h \
  coffgrok.h $(INCDIR)/libiberty.h $(INCDIR)/ansidecl.h \
  $(INCDIR)/coff/internal.h $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h \
  sysroff.c
stabs.o: stabs.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h $(INCDIR)/demangle.h \
  $(INCDIR)/libiberty.h debug.h budbg.h $(INCDIR)/filenames.h \
  $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h $(INCDIR)/aout/stab.def
strings.o: strings.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h bucomm.h
sysdump.o: sysdump.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/safe-ctype.h \
  $(INCDIR)/libiberty.h $(INCDIR)/ansidecl.h bucomm.h \
  sysroff.h sysroff.c
unwind-ia64.o: unwind-ia64.c unwind-ia64.h $(INCDIR)/elf/ia64.h \
  $(INCDIR)/elf/reloc-macros.h $(INCDIR)/ansidecl.h ../bfd/bfd.h \
  $(INCDIR)/symcat.h
version.o: version.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h bucomm.h
windres.o: windres.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h bucomm.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h $(INCDIR)/obstack.h \
  windres.h winduni.h windint.h
winduni.o: winduni.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h bucomm.h winduni.h $(INCDIR)/safe-ctype.h
wrstabs.o: wrstabs.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h bucomm.h \
  debug.h budbg.h $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h \
  $(INCDIR)/aout/stab.def
windmc.o: windmc.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h bucomm.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h $(INCDIR)/obstack.h \
  windmc.h winduni.h windint.h
mclex.o: mclex.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h bucomm.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h windmc.h \
  winduni.h mcparse.h
arparse.o: arparse.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h arsup.h
arlex.o: arlex.c $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h arparse.h
sysroff.o: sysroff.c
sysinfo.o: sysinfo.c
syslex.o: syslex.c config.h sysinfo.h
defparse.o: defparse.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h dlltool.h
deflex.o: deflex.c $(INCDIR)/libiberty.h $(INCDIR)/ansidecl.h \
  defparse.h dlltool.h $(INCDIR)/ansidecl.h
nlmheader.o: nlmheader.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  $(INCDIR)/safe-ctype.h ../bfd/bfd.h $(INCDIR)/symcat.h \
  $(INCDIR)/nlm/common.h $(INCDIR)/nlm/internal.h bucomm.h \
  nlmconv.h
rcparse.o: rcparse.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h bucomm.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h windres.h winduni.h windint.h \
  $(INCDIR)/safe-ctype.h
mcparse.o: mcparse.c sysdep.h config.h $(INCDIR)/ansidecl.h \
  ../bfd/bfdver.h $(INCDIR)/fopen-same.h $(INCDIR)/binary-io.h \
  ../bfd/bfd.h $(INCDIR)/symcat.h bucomm.h $(INCDIR)/libiberty.h \
  $(INCDIR)/ansidecl.h windmc.h winduni.h $(INCDIR)/safe-ctype.h
# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
