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

# Copyright (C) 1994-2017 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@
VPATH = @srcdir@
am__is_gnu_make = { \
  if test -z '$(MAKELEVEL)'; then \
    false; \
  elif test -n '$(MAKE_HOST)'; then \
    true; \
  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
    true; \
  else \
    false; \
  fi; \
}
am__make_running_with_option = \
  case $${target_option-} in \
      ?) ;; \
      *) echo "am__make_running_with_option: internal error: invalid" \
              "target option '$${target_option-}' specified" >&2; \
         exit 1;; \
  esac; \
  has_opt=no; \
  sane_makeflags=$$MAKEFLAGS; \
  if $(am__is_gnu_make); then \
    sane_makeflags=$$MFLAGS; \
  else \
    case $$MAKEFLAGS in \
      *\\[\ \	]*) \
        bs=\\; \
        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
    esac; \
  fi; \
  skip_next=no; \
  strip_trailopt () \
  { \
    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
  }; \
  for flg in $$sane_makeflags; do \
    test $$skip_next = yes && { skip_next=no; continue; }; \
    case $$flg in \
      *=*|--*) continue;; \
        -*I) strip_trailopt 'I'; skip_next=yes;; \
      -*I?*) strip_trailopt 'I';; \
        -*O) strip_trailopt 'O'; skip_next=yes;; \
      -*O?*) strip_trailopt 'O';; \
        -*l) strip_trailopt 'l'; skip_next=yes;; \
      -*l?*) strip_trailopt 'l';; \
      -[dEDm]) skip_next=yes;; \
      -[JT]) skip_next=yes;; \
    esac; \
    case $$flg in \
      *$$target_option*) has_opt=yes; break;; \
    esac; \
  done; \
  test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
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@
subdir = testsuite
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
	$(top_srcdir)/../config/asmcfi.m4 \
	$(top_srcdir)/../config/cet.m4 \
	$(top_srcdir)/../config/depstand.m4 \
	$(top_srcdir)/../config/enable.m4 \
	$(top_srcdir)/../config/lead-dot.m4 \
	$(top_srcdir)/../config/multi.m4 \
	$(top_srcdir)/../config/override.m4 \
	$(top_srcdir)/../config/toolexeclibdir.m4 \
	$(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
	$(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
	$(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
	$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am
mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
CONFIG_HEADER = $(top_builddir)/fficonfig.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo "  GEN     " $@;
am__v_GEN_1 = 
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 = 
SOURCES =
am__can_run_installinfo = \
  case $$AM_UPDATE_INFO_DIR in \
    n|no|NO) false;; \
    *) (install-info --version) >/dev/null 2>&1;; \
  esac
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
DEJATOOL = $(PACKAGE)
RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir
EXPECT = expect
RUNTEST = runtest
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AM_LTLDFLAGS = @AM_LTLDFLAGS@
AM_RUNTESTFLAGS = @AM_RUNTESTFLAGS@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
CCASFLAGS = @CCASFLAGS@
CCDEPMODE = @CCDEPMODE@
CET_FLAGS = @CET_FLAGS@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FFI_EXEC_TRAMPOLINE_TABLE = @FFI_EXEC_TRAMPOLINE_TABLE@
FGREP = @FGREP@
GREP = @GREP@
HAVE_LONG_DOUBLE = @HAVE_LONG_DOUBLE@
HAVE_LONG_DOUBLE_VARIANT = @HAVE_LONG_DOUBLE_VARIANT@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OPT_LDFLAGS = @OPT_LDFLAGS@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
RANLIB = @RANLIB@
READELF = @READELF@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
TARGET = @TARGET@
TARGETDIR = @TARGETDIR@
TARGET_OBJ = @TARGET_OBJ@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
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@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
get_gcc_base_ver = @get_gcc_base_ver@
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@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
multi_basedir = @multi_basedir@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexecdir = @toolexecdir@
toolexeclibdir = @toolexeclibdir@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AUTOMAKE_OPTIONS = foreign dejagnu
EXTRA_DEJAGNU_SITE_CONFIG = ../local.exp
CLEANFILES = *.exe core* *.log *.sum
EXTRA_DIST = lib/target-libpath.exp lib/libffi.exp lib/wrapper.exp \
libffi.call/strlen4.c libffi.call/struct10.c libffi.call/many_mixed.c \
libffi.call/float.c libffi.call/struct5.c libffi.call/return_fl3.c \
libffi.call/return_fl1.c libffi.call/call.exp libffi.call/pyobjc-tc.c \
libffi.call/float_va.c libffi.call/struct8.c libffi.call/pr1172638.c \
libffi.call/return_sc.c libffi.call/va_struct1.c \
libffi.call/align_stdcall.c libffi.call/struct9.c libffi.call/va_1.c \
libffi.call/va_2.c libffi.call/va_struct2.c libffi.call/return_fl2.c \
libffi.call/align_mixed.c libffi.call/ffitest.h libffi.call/struct4.c \
libffi.call/return_ldl.c libffi.call/float3.c libffi.call/return_sl.c \
libffi.call/return_dbl1.c libffi.call/err_bad_typedef.c \
libffi.call/return_ll1.c libffi.call/return_dbl2.c \
libffi.call/negint.c libffi.closures/nested_struct3.c \
libffi.call/struct2.c libffi.call/struct3.c libffi.call/return_fl.c \
libffi.call/offsets.c libffi.call/struct7.c libffi.call/va_struct3.c \
libffi.call/float1.c libffi.call/uninitialized.c libffi.call/many2.c \
libffi.call/struct6.c libffi.call/strlen2.c libffi.call/float2.c \
libffi.call/return_ul.c libffi.call/struct1.c libffi.call/strlen3.c \
libffi.call/return_dbl.c libffi.call/float4.c libffi.call/many.c \
libffi.call/strlen.c libffi.call/return_uc.c libffi.call/many_double.c \
libffi.call/return_ll.c libffi.call/promotion.c \
libffi.complex/complex_defs_longdouble.inc \
libffi.complex/cls_align_complex_float.c \
libffi.complex/cls_complex_va_float.c \
libffi.complex/cls_complex_struct_float.c \
libffi.complex/return_complex2_longdouble.c \
libffi.complex/cls_complex_float.c \
libffi.complex/return_complex_longdouble.c \
libffi.complex/return_complex2_float.c libffi.complex/cls_complex.inc \
libffi.complex/cls_complex_va_longdouble.c \
libffi.complex/return_complex_double.c \
libffi.complex/return_complex.inc libffi.complex/many_complex.inc \
libffi.complex/complex_float.c libffi.complex/cls_align_complex.inc \
libffi.complex/return_complex2_double.c \
libffi.complex/many_complex_float.c libffi.complex/ffitest.h \
libffi.complex/return_complex1_double.c \
libffi.complex/cls_complex_struct_longdouble.c \
libffi.complex/complex_defs_double.inc \
libffi.complex/cls_complex_va_double.c \
libffi.complex/many_complex_double.c \
libffi.complex/return_complex2.inc \
libffi.complex/return_complex1_float.c \
libffi.complex/complex_longdouble.c \
libffi.complex/complex_defs_float.inc \
libffi.complex/cls_complex_double.c \
libffi.complex/cls_align_complex_double.c \
libffi.complex/cls_align_complex_longdouble.c \
libffi.complex/complex_double.c libffi.complex/cls_complex_va.inc \
libffi.complex/many_complex_longdouble.c libffi.complex/complex.inc \
libffi.complex/return_complex1_longdouble.c \
libffi.complex/complex_int.c libffi.complex/cls_complex_longdouble.c \
libffi.complex/cls_complex_struct_double.c \
libffi.complex/return_complex1.inc libffi.complex/complex.exp \
libffi.complex/cls_complex_struct.inc \
libffi.complex/return_complex_float.c libffi.go/closure1.c \
libffi.go/aa-direct.c libffi.go/ffitest.h libffi.go/go.exp \
libffi.go/static-chain.h libffi.bhaible/bhaible.exp \
libffi.bhaible/test-call.c libffi.bhaible/alignof.h \
libffi.bhaible/testcases.c libffi.bhaible/test-callback.c \
libffi.bhaible/Makefile libffi.bhaible/README config/default.exp \
libffi.closures/cls_multi_sshort.c \
libffi.closures/cls_align_longdouble_split2.c \
libffi.closures/cls_1_1byte.c libffi.closures/cls_uint_va.c \
libffi.closures/cls_3_1byte.c libffi.closures/cls_many_mixed_args.c \
libffi.closures/cls_20byte1.c libffi.closures/cls_pointer_stack.c \
libffi.closures/cls_align_float.c libffi.closures/cls_5_1_byte.c \
libffi.closures/cls_9byte1.c libffi.closures/cls_align_uint32.c \
libffi.closures/stret_medium.c libffi.closures/cls_3byte1.c \
libffi.closures/cls_align_uint64.c libffi.closures/cls_longdouble_va.c \
libffi.closures/cls_align_pointer.c libffi.closures/cls_19byte.c \
libffi.closures/cls_ushort.c libffi.closures/cls_align_sint32.c \
libffi.closures/cls_ulonglong.c libffi.closures/cls_struct_va1.c \
libffi.closures/cls_9byte2.c libffi.closures/closure_fn5.c \
libffi.closures/cls_5byte.c libffi.closures/cls_3float.c \
libffi.closures/closure.exp libffi.closures/cls_schar.c \
libffi.closures/closure_fn4.c \
libffi.closures/closure_fn0.c libffi.closures/huge_struct.c \
libffi.closures/cls_64byte.c libffi.closures/cls_longdouble.c \
libffi.closures/cls_ulong_va.c libffi.closures/cls_6_1_byte.c \
libffi.closures/cls_align_uint16.c libffi.closures/closure_fn2.c \
libffi.closures/unwindtest_ffi_call.cc \
libffi.closures/cls_multi_ushortchar.c libffi.closures/cls_8byte.c \
libffi.closures/ffitest.h libffi.closures/nested_struct8.c \
libffi.closures/cls_pointer.c libffi.closures/nested_struct2.c \
libffi.closures/nested_struct.c libffi.closures/cls_multi_schar.c \
libffi.closures/cls_align_longdouble_split.c \
libffi.closures/cls_uchar.c libffi.closures/nested_struct9.c \
libffi.closures/cls_float.c libffi.closures/stret_medium2.c \
libffi.closures/closure_loc_fn0.c libffi.closures/cls_6byte.c \
libffi.closures/closure_simple.c libffi.closures/cls_align_double.c \
libffi.closures/cls_multi_uchar.c libffi.closures/cls_4_1byte.c \
libffi.closures/closure_fn3.c libffi.closures/cls_align_sint64.c \
libffi.closures/nested_struct1.c libffi.closures/unwindtest.cc \
libffi.closures/nested_struct5.c libffi.closures/cls_multi_ushort.c \
libffi.closures/nested_struct11.c \
libffi.closures/nested_struct12.c \
libffi.closures/nested_struct13.c \
libffi.closures/cls_multi_sshortchar.c \
libffi.closures/cls_align_longdouble.c \
libffi.closures/cls_dbls_struct.c \
libffi.closures/cls_many_mixed_float_double.c \
libffi.closures/stret_large.c libffi.closures/stret_large2.c \
libffi.closures/cls_align_sint16.c libffi.closures/cls_2byte.c \
libffi.closures/nested_struct4.c libffi.closures/problem1.c \
libffi.closures/testclosure.c libffi.closures/nested_struct6.c \
libffi.closures/cls_4byte.c libffi.closures/cls_24byte.c \
libffi.closures/nested_struct10.c libffi.closures/cls_uint.c \
libffi.closures/cls_12byte.c libffi.closures/cls_sint.c \
libffi.closures/cls_7_1_byte.c libffi.closures/cls_sshort.c \
libffi.closures/cls_16byte.c libffi.closures/nested_struct7.c \
libffi.closures/cls_double_va.c libffi.closures/cls_3byte2.c \
libffi.closures/cls_double.c libffi.closures/cls_7byte.c \
libffi.closures/closure_fn6.c libffi.closures/closure_fn1.c \
libffi.closures/cls_20byte.c libffi.closures/cls_18byte.c \
libffi.closures/err_bad_abi.c \
libffi.closures/single_entry_structs1.c \
libffi.closures/single_entry_structs2.c \
libffi.closures/single_entry_structs3.c

all: all-am

.SUFFIXES:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \
	    *$$dep*) \
	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
	        && { if test -f $@; then exit 0; else break; fi; }; \
	      exit 1;; \
	  esac; \
	done; \
	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign testsuite/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --foreign testsuite/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
	@case '$?' in \
	  *config.status*) \
	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
	  *) \
	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
	esac;

$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh

$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):

mostlyclean-libtool:
	-rm -f *.lo

clean-libtool:
	-rm -rf .libs _libs
tags TAGS:

ctags CTAGS:

cscope cscopelist:


check-DEJAGNU: site.exp
	srcdir='$(srcdir)'; export srcdir; \
	EXPECT=$(EXPECT); export EXPECT; \
	if $(SHELL) -c "$(RUNTEST) --version" > /dev/null 2>&1; then \
	  exit_status=0; l='$(DEJATOOL)'; for tool in $$l; do \
	    if $(RUNTEST) $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) $(RUNTESTFLAGS); \
	    then :; else exit_status=1; fi; \
	  done; \
	else echo "WARNING: could not find '$(RUNTEST)'" 1>&2; :;\
	fi; \
	exit $$exit_status
site.exp: Makefile $(EXTRA_DEJAGNU_SITE_CONFIG)
	@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
	@list='$(EXTRA_DEJAGNU_SITE_CONFIG)'; for f in $$list; do \
	  echo "## Begin content included from file $$f.  Do not modify. ##" \
	   && cat `test -f "$$f" || echo '$(srcdir)/'`$$f \
	   && echo "## End content included from file $$f. ##" \
	   || exit 1; \
	 done >> site.tmp
	@echo "## End of auto-generated content; you can edit from here. ##" >> site.tmp
	@if test -f site.exp; then \
	   sed -e '1,/^## End of auto-generated content.*##/d' site.exp >> site.tmp; \
	 fi
	@-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: all-am
	$(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
check: check-am
all-am: Makefile
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am

install-am: all-am
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am

installcheck: installcheck-am
install-strip:
	if test -z '$(STRIP)'; then \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	      install; \
	else \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
	fi
mostlyclean-generic:

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

distclean-generic:
	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)

maintainer-clean-generic:
	@echo "This command is intended for maintainers to use"
	@echo "it deletes files that may require special tools to rebuild."
clean: clean-am

clean-am: clean-generic clean-libtool mostlyclean-am

distclean: distclean-am
	-rm -f Makefile
distclean-am: clean-am distclean-DEJAGNU distclean-generic

dvi: dvi-am

dvi-am:

html: html-am

html-am:

info: info-am

info-am:

install-data-am:

install-dvi: install-dvi-am

install-dvi-am:

install-exec-am:

install-html: install-html-am

install-html-am:

install-info: install-info-am

install-info-am:

install-man:

install-pdf: install-pdf-am

install-pdf-am:

install-ps: install-ps-am

install-ps-am:

installcheck-am:

maintainer-clean: maintainer-clean-am
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

mostlyclean: mostlyclean-am

mostlyclean-am: mostlyclean-generic mostlyclean-libtool

pdf: pdf-am

pdf-am:

ps: ps-am

ps-am:

uninstall-am:

.MAKE: check-am install-am install-strip

.PHONY: all all-am check check-DEJAGNU check-am clean clean-generic \
	clean-libtool cscopelist-am ctags-am distclean \
	distclean-DEJAGNU distclean-generic distclean-libtool dvi \
	dvi-am html html-am info info-am install install-am \
	install-data install-data-am install-dvi install-dvi-am \
	install-exec install-exec-am install-html install-html-am \
	install-info install-info-am install-man install-pdf \
	install-pdf-am install-ps install-ps-am install-strip \
	installcheck installcheck-am installdirs maintainer-clean \
	maintainer-clean-generic mostlyclean mostlyclean-generic \
	mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
	uninstall-am

.PRECIOUS: Makefile


# 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:
