# Makefile.in generated by automake 1.11.1 from Makefile.am.
# tests/Makefile.  Generated from Makefile.in by configure.

# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009  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.




pkgdatadir = $(datadir)/libsndfile
pkgincludedir = $(includedir)/libsndfile
pkglibdir = $(libdir)/libsndfile
pkglibexecdir = $(libexecdir)/libsndfile
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 = x86_64-unknown-linux-gnu
host_triplet = x86_64-unknown-linux-gnu
target_triplet = x86_64-unknown-linux-gnu
check_PROGRAMS = sfversion$(EXEEXT) floating_point_test$(EXEEXT) \
	write_read_test$(EXEEXT) lossy_comp_test$(EXEEXT) \
	error_test$(EXEEXT) ulaw_test$(EXEEXT) alaw_test$(EXEEXT) \
	dwvw_test$(EXEEXT) peak_chunk_test$(EXEEXT) \
	command_test$(EXEEXT) stdin_test$(EXEEXT) stdout_test$(EXEEXT) \
	stdio_test$(EXEEXT) pcm_test$(EXEEXT) headerless_test$(EXEEXT) \
	pipe_test$(EXEEXT) benchmark$(EXEEXT) header_test$(EXEEXT) \
	misc_test$(EXEEXT) raw_test$(EXEEXT) string_test$(EXEEXT) \
	multi_file_test$(EXEEXT) dither_test$(EXEEXT) \
	scale_clip_test$(EXEEXT) win32_test$(EXEEXT) fix_this$(EXEEXT) \
	aiff_rw_test$(EXEEXT) virtual_io_test$(EXEEXT) \
	locale_test$(EXEEXT) largefile_test$(EXEEXT) \
	win32_ordinal_test$(EXEEXT) ogg_test$(EXEEXT) \
	vorbis_test$(EXEEXT) checksum_test$(EXEEXT) \
	external_libs_test$(EXEEXT) rdwr_test$(EXEEXT) \
	format_check_test$(EXEEXT) $(am__EXEEXT_1)
subdir = tests
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
	$(srcdir)/Makefile.in $(srcdir)/pedantic-header-test.sh.in \
	$(srcdir)/test_wrapper.sh.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/M4/add_cflags.m4 \
	$(top_srcdir)/M4/add_cxxflags.m4 $(top_srcdir)/M4/clip_mode.m4 \
	$(top_srcdir)/M4/endian.m4 $(top_srcdir)/M4/extra_largefile.m4 \
	$(top_srcdir)/M4/extra_pkg.m4 \
	$(top_srcdir)/M4/flexible_array.m4 \
	$(top_srcdir)/M4/gcc_version.m4 $(top_srcdir)/M4/libtool.m4 \
	$(top_srcdir)/M4/lrint.m4 $(top_srcdir)/M4/lrintf.m4 \
	$(top_srcdir)/M4/ltoptions.m4 $(top_srcdir)/M4/ltsugar.m4 \
	$(top_srcdir)/M4/ltversion.m4 $(top_srcdir)/M4/lt~obsolete.m4 \
	$(top_srcdir)/M4/mkoctfile_version.m4 \
	$(top_srcdir)/M4/octave.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/src/config.h
CONFIG_CLEAN_FILES = test_wrapper.sh pedantic-header-test.sh
CONFIG_CLEAN_VPATH_FILES =
am__EXEEXT_1 = cpp_test$(EXEEXT)
am_aiff_rw_test_OBJECTS = utils.$(OBJEXT) aiff_rw_test.$(OBJEXT)
aiff_rw_test_OBJECTS = $(am_aiff_rw_test_OBJECTS)
aiff_rw_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
AM_V_lt = $(am__v_lt_$(V))
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
am__v_lt_0 = --silent
am_alaw_test_OBJECTS = utils.$(OBJEXT) alaw_test.$(OBJEXT)
alaw_test_OBJECTS = $(am_alaw_test_OBJECTS)
alaw_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_benchmark_OBJECTS = benchmark.$(OBJEXT)
benchmark_OBJECTS = $(am_benchmark_OBJECTS)
benchmark_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_checksum_test_OBJECTS = checksum_test.$(OBJEXT) utils.$(OBJEXT)
checksum_test_OBJECTS = $(am_checksum_test_OBJECTS)
checksum_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_command_test_OBJECTS = command_test.$(OBJEXT) utils.$(OBJEXT)
command_test_OBJECTS = $(am_command_test_OBJECTS)
command_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_cpp_test_OBJECTS = cpp_test.$(OBJEXT) utils.$(OBJEXT)
cpp_test_OBJECTS = $(am_cpp_test_OBJECTS)
cpp_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_dither_test_OBJECTS = dither_test.$(OBJEXT) utils.$(OBJEXT)
dither_test_OBJECTS = $(am_dither_test_OBJECTS)
dither_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_dwvw_test_OBJECTS = utils.$(OBJEXT) dwvw_test.$(OBJEXT)
dwvw_test_OBJECTS = $(am_dwvw_test_OBJECTS)
dwvw_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_error_test_OBJECTS = error_test.$(OBJEXT) utils.$(OBJEXT)
error_test_OBJECTS = $(am_error_test_OBJECTS)
error_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_external_libs_test_OBJECTS = external_libs_test.$(OBJEXT) \
	utils.$(OBJEXT)
external_libs_test_OBJECTS = $(am_external_libs_test_OBJECTS)
external_libs_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_fix_this_OBJECTS = utils.$(OBJEXT) fix_this.$(OBJEXT)
fix_this_OBJECTS = $(am_fix_this_OBJECTS)
fix_this_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_floating_point_test_OBJECTS = utils.$(OBJEXT) dft_cmp.$(OBJEXT) \
	floating_point_test.$(OBJEXT)
floating_point_test_OBJECTS = $(am_floating_point_test_OBJECTS)
floating_point_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_format_check_test_OBJECTS = format_check_test.$(OBJEXT) \
	utils.$(OBJEXT)
format_check_test_OBJECTS = $(am_format_check_test_OBJECTS)
format_check_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_header_test_OBJECTS = header_test.$(OBJEXT) utils.$(OBJEXT)
header_test_OBJECTS = $(am_header_test_OBJECTS)
header_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_headerless_test_OBJECTS = utils.$(OBJEXT) headerless_test.$(OBJEXT)
headerless_test_OBJECTS = $(am_headerless_test_OBJECTS)
headerless_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_largefile_test_OBJECTS = largefile_test.$(OBJEXT) utils.$(OBJEXT)
largefile_test_OBJECTS = $(am_largefile_test_OBJECTS)
largefile_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_locale_test_OBJECTS = locale_test.$(OBJEXT) utils.$(OBJEXT)
locale_test_OBJECTS = $(am_locale_test_OBJECTS)
locale_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_lossy_comp_test_OBJECTS = utils.$(OBJEXT) lossy_comp_test.$(OBJEXT)
lossy_comp_test_OBJECTS = $(am_lossy_comp_test_OBJECTS)
lossy_comp_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_misc_test_OBJECTS = misc_test.$(OBJEXT) utils.$(OBJEXT)
misc_test_OBJECTS = $(am_misc_test_OBJECTS)
misc_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_multi_file_test_OBJECTS = multi_file_test.$(OBJEXT) utils.$(OBJEXT)
multi_file_test_OBJECTS = $(am_multi_file_test_OBJECTS)
multi_file_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_ogg_test_OBJECTS = ogg_test.$(OBJEXT) utils.$(OBJEXT)
ogg_test_OBJECTS = $(am_ogg_test_OBJECTS)
ogg_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_pcm_test_OBJECTS = pcm_test.$(OBJEXT) utils.$(OBJEXT)
pcm_test_OBJECTS = $(am_pcm_test_OBJECTS)
pcm_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_peak_chunk_test_OBJECTS = peak_chunk_test.$(OBJEXT) utils.$(OBJEXT)
peak_chunk_test_OBJECTS = $(am_peak_chunk_test_OBJECTS)
peak_chunk_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_pipe_test_OBJECTS = pipe_test.$(OBJEXT) utils.$(OBJEXT)
pipe_test_OBJECTS = $(am_pipe_test_OBJECTS)
pipe_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_raw_test_OBJECTS = raw_test.$(OBJEXT) utils.$(OBJEXT)
raw_test_OBJECTS = $(am_raw_test_OBJECTS)
raw_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_rdwr_test_OBJECTS = rdwr_test.$(OBJEXT) utils.$(OBJEXT)
rdwr_test_OBJECTS = $(am_rdwr_test_OBJECTS)
rdwr_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_scale_clip_test_OBJECTS = scale_clip_test.$(OBJEXT) utils.$(OBJEXT)
scale_clip_test_OBJECTS = $(am_scale_clip_test_OBJECTS)
scale_clip_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_sfversion_OBJECTS = sfversion.$(OBJEXT)
sfversion_OBJECTS = $(am_sfversion_OBJECTS)
sfversion_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_stdin_test_OBJECTS = stdin_test.$(OBJEXT) utils.$(OBJEXT)
stdin_test_OBJECTS = $(am_stdin_test_OBJECTS)
stdin_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_stdio_test_OBJECTS = stdio_test.$(OBJEXT) utils.$(OBJEXT)
stdio_test_OBJECTS = $(am_stdio_test_OBJECTS)
stdio_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_stdout_test_OBJECTS = stdout_test.$(OBJEXT)
stdout_test_OBJECTS = $(am_stdout_test_OBJECTS)
stdout_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_string_test_OBJECTS = string_test.$(OBJEXT) utils.$(OBJEXT)
string_test_OBJECTS = $(am_string_test_OBJECTS)
string_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_ulaw_test_OBJECTS = utils.$(OBJEXT) ulaw_test.$(OBJEXT)
ulaw_test_OBJECTS = $(am_ulaw_test_OBJECTS)
ulaw_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_virtual_io_test_OBJECTS = virtual_io_test.$(OBJEXT) utils.$(OBJEXT)
virtual_io_test_OBJECTS = $(am_virtual_io_test_OBJECTS)
virtual_io_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_vorbis_test_OBJECTS = vorbis_test.$(OBJEXT) utils.$(OBJEXT)
vorbis_test_OBJECTS = $(am_vorbis_test_OBJECTS)
vorbis_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_win32_ordinal_test_OBJECTS = win32_ordinal_test.$(OBJEXT) \
	utils.$(OBJEXT)
win32_ordinal_test_OBJECTS = $(am_win32_ordinal_test_OBJECTS)
win32_ordinal_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_win32_test_OBJECTS = win32_test.$(OBJEXT)
win32_test_OBJECTS = $(am_win32_test_OBJECTS)
win32_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
am_write_read_test_OBJECTS = utils.$(OBJEXT) generate.$(OBJEXT) \
	write_read_test.$(OBJEXT)
write_read_test_OBJECTS = $(am_write_read_test_OBJECTS)
write_read_test_DEPENDENCIES = $(top_builddir)/src/libsndfile.la
DEFAULT_INCLUDES = -I. -I$(top_builddir)/src
depcomp = $(SHELL) $(top_srcdir)/Cfg/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
	$(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_$(V))
am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
am__v_CC_0 = @echo "  CC    " $@;
AM_V_at = $(am__v_at_$(V))
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
am__v_at_0 = @
CCLD = $(CC)
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
	$(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_$(V))
am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
am__v_CCLD_0 = @echo "  CCLD  " $@;
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
	$(AM_CXXFLAGS) $(CXXFLAGS)
AM_V_CXX = $(am__v_CXX_$(V))
am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY))
am__v_CXX_0 = @echo "  CXX   " $@;
CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CXXLD = $(am__v_CXXLD_$(V))
am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY))
am__v_CXXLD_0 = @echo "  CXXLD " $@;
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo "  GEN   " $@;
SOURCES = $(aiff_rw_test_SOURCES) $(alaw_test_SOURCES) \
	$(benchmark_SOURCES) $(checksum_test_SOURCES) \
	$(command_test_SOURCES) $(cpp_test_SOURCES) \
	$(dither_test_SOURCES) $(dwvw_test_SOURCES) \
	$(error_test_SOURCES) $(external_libs_test_SOURCES) \
	$(fix_this_SOURCES) $(floating_point_test_SOURCES) \
	$(format_check_test_SOURCES) $(header_test_SOURCES) \
	$(headerless_test_SOURCES) $(largefile_test_SOURCES) \
	$(locale_test_SOURCES) $(lossy_comp_test_SOURCES) \
	$(misc_test_SOURCES) $(multi_file_test_SOURCES) \
	$(ogg_test_SOURCES) $(pcm_test_SOURCES) \
	$(peak_chunk_test_SOURCES) $(pipe_test_SOURCES) \
	$(raw_test_SOURCES) $(rdwr_test_SOURCES) \
	$(scale_clip_test_SOURCES) $(sfversion_SOURCES) \
	$(stdin_test_SOURCES) $(stdio_test_SOURCES) \
	$(stdout_test_SOURCES) $(string_test_SOURCES) \
	$(ulaw_test_SOURCES) $(virtual_io_test_SOURCES) \
	$(vorbis_test_SOURCES) $(win32_ordinal_test_SOURCES) \
	$(win32_test_SOURCES) $(write_read_test_SOURCES)
DIST_SOURCES = $(aiff_rw_test_SOURCES) $(alaw_test_SOURCES) \
	$(benchmark_SOURCES) $(checksum_test_SOURCES) \
	$(command_test_SOURCES) $(cpp_test_SOURCES) \
	$(dither_test_SOURCES) $(dwvw_test_SOURCES) \
	$(error_test_SOURCES) $(external_libs_test_SOURCES) \
	$(fix_this_SOURCES) $(floating_point_test_SOURCES) \
	$(format_check_test_SOURCES) $(header_test_SOURCES) \
	$(headerless_test_SOURCES) $(largefile_test_SOURCES) \
	$(locale_test_SOURCES) $(lossy_comp_test_SOURCES) \
	$(misc_test_SOURCES) $(multi_file_test_SOURCES) \
	$(ogg_test_SOURCES) $(pcm_test_SOURCES) \
	$(peak_chunk_test_SOURCES) $(pipe_test_SOURCES) \
	$(raw_test_SOURCES) $(rdwr_test_SOURCES) \
	$(scale_clip_test_SOURCES) $(sfversion_SOURCES) \
	$(stdin_test_SOURCES) $(stdio_test_SOURCES) \
	$(stdout_test_SOURCES) $(string_test_SOURCES) \
	$(ulaw_test_SOURCES) $(virtual_io_test_SOURCES) \
	$(vorbis_test_SOURCES) $(win32_ordinal_test_SOURCES) \
	$(win32_test_SOURCES) $(write_read_test_SOURCES)
HEADERS = $(noinst_HEADERS)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = ${SHELL} /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/Cfg/missing --run aclocal-1.11
ACLOCAL_AMFLAGS = -I M4
ALSA_LIBS = -lasound
AMTAR = ${SHELL} /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/Cfg/missing --run tar
AM_DEFAULT_VERBOSITY = 0
AR = ar
AUTOCONF = ${SHELL} /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/Cfg/missing --run autoconf
AUTOHEADER = ${SHELL} /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/Cfg/missing --run autoheader
AUTOMAKE = ${SHELL} /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/Cfg/missing --run automake-1.11
AWK = gawk
CC = gcc
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2 -std=gnu99 -Wall -Wextra -Wdeclaration-after-statement -Wpointer-arith -funsigned-char -Wstrict-prototypes -Wmissing-prototypes -Waggregate-return -Wcast-align -Wcast-qual -Wnested-externs -Wshadow -Wbad-function-cast -Wwrite-strings -Wundef  -pipe 
CLEAN_VERSION = 1.0.25
CPP = gcc -E
CPPFLAGS = 
CXX = g++
CXXCPP = g++ -E
CXXDEPMODE = depmode=gcc3
CXXFLAGS = -g -O2 -Wall -Wextra -Wcast-align -Wcast-qual -Wshadow -Wwrite-strings -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wreorder -Wsign-promo -Wundef 
CYGPATH_W = echo
DEFS = -DHAVE_CONFIG_H
DEPDIR = .deps
DLLTOOL = false
DSYMUTIL = 
DUMPBIN = 
ECHO_C = 
ECHO_N = -n
ECHO_T = 
EGREP = /usr/bin/grep -E
EXEEXT = 
EXTERNAL_CFLAGS = 
EXTERNAL_LIBS = 
FGREP = /usr/bin/grep -F
FLAC_CFLAGS = 
FLAC_LIBS = 
GCC_MAJOR_VERSION = 4
GCC_MINOR_VERSION = 7
GCC_VERSION = 4.7.2
GETCONF = 
GREP = /usr/bin/grep
HAVE_AUTOGEN = no
HAVE_MKOCTFILE = no
HAVE_OCTAVE = no
HAVE_OCTAVE_CONFIG = no
HAVE_WINE = no
HOST_TRIPLET = x86_64-unknown-linux-gnu
HTML_BGCOLOUR = black
HTML_FGCOLOUR = white
INSTALL = /usr/bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
LD = /usr/bin/ld -m elf_x86_64
LDFLAGS = 
LIBOBJS = 
LIBS = -lm 
LIBTOOL = $(SHELL) $(top_builddir)/libtool
LIBTOOL_DEPS = Cfg/ltmain.sh
LIPO = 
LN_S = ln -s
LTLIBOBJS = 
MAKEINFO = ${SHELL} /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/Cfg/missing --run makeinfo
MANIFEST_TOOL = :
MKDIR_P = /usr/bin/mkdir -p
MKOCTFILE = 
MKOCTFILE_VERSION = 
NM = /usr/bin/nm -B
NMEDIT = 
OBJDUMP = objdump
OBJEXT = o
OCTAVE = 
OCTAVE_CONFIG = 
OCTAVE_CONFIG_VERSION = 
OCTAVE_DEST_MDIR = 
OCTAVE_DEST_ODIR = 
OCTAVE_VERSION = 
OGG_CFLAGS = 
OGG_LIBS = 
OS_SPECIFIC_CFLAGS = 
OS_SPECIFIC_LINKS = 
OTOOL = 
OTOOL64 = 
PACKAGE = libsndfile
PACKAGE_BUGREPORT = sndfile@mega-nerd.com
PACKAGE_NAME = libsndfile
PACKAGE_STRING = libsndfile 1.0.25
PACKAGE_TARNAME = libsndfile
PACKAGE_URL = http://www.mega-nerd.com/libsndfile/
PACKAGE_VERSION = 1.0.25
PATH_SEPARATOR = :
PKG_CONFIG = /usr/bin/pkg-config
PKG_CONFIG_LIBDIR = 
PKG_CONFIG_PATH = 
RANLIB = ranlib
RC = 
SED = /usr/bin/sed
SET_MAKE = 
SF_COUNT_MAX = 0x7FFFFFFFFFFFFFFFLL
SHARED_VERSION_INFO = 1:25:0
SHELL = /bin/sh
SHLIB_VERSION_ARG = -Wl,--version-script=$(srcdir)/Symbols.gnu-binutils
SIZEOF_SF_COUNT_T = 8
SNDIO_LIBS = 
SPEEX_CFLAGS = 
SPEEX_LIBS = 
SQLITE3_CFLAGS =  
SQLITE3_LIBS = -lsqlite3  
STRIP = strip
TYPEOF_SF_COUNT_T = int64_t
VERSION = 1.0.25
VORBISENC_CFLAGS = 
VORBISENC_LIBS = 
VORBIS_CFLAGS = 
VORBIS_LIBS = 
WIN_RC_VERSION = 1,0,25
abs_builddir = /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/tests
abs_srcdir = /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/tests
abs_top_builddir = /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25
abs_top_srcdir = /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25
ac_ct_AR = ar
ac_ct_CC = gcc
ac_ct_CXX = g++
ac_ct_DUMPBIN = 
am__include = include
am__leading_dot = .
am__quote = 
am__tar = ${AMTAR} chof - "$$tardir"
am__untar = ${AMTAR} xf -
bindir = ${exec_prefix}/bin
build = x86_64-unknown-linux-gnu
build_alias = 
build_cpu = x86_64
build_os = linux-gnu
build_vendor = unknown
builddir = .
datadir = ${datarootdir}
datarootdir = ${prefix}/share
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
dvidir = ${docdir}
exec_prefix = ${prefix}
host = x86_64-unknown-linux-gnu
host_alias = 
host_cpu = x86_64
host_os = linux-gnu
host_vendor = unknown
htmldir = ${docdir}
htmldocdir = /usr/local/share/doc/libsndfile1-dev/html
includedir = ${prefix}/include
infodir = ${datarootdir}/info
install_sh = ${SHELL} /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/Cfg/install-sh
libdir = ${exec_prefix}/lib
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
localstatedir = ${prefix}/var
mandir = ${datarootdir}/man
mkdir_p = /usr/bin/mkdir -p
oldincludedir = /usr/include
pdfdir = ${docdir}
prefix = /usr/local
program_transform_name = s,x,x,
psdir = ${docdir}
sbindir = ${exec_prefix}/sbin
sharedstatedir = ${prefix}/com
srcdir = .
sysconfdir = ${prefix}/etc
target = x86_64-unknown-linux-gnu
target_alias = 
target_cpu = x86_64
target_os = linux-gnu
target_vendor = unknown
top_build_prefix = ../
top_builddir = ..
top_srcdir = ..
CPP_TEST = cpp_test
#CPP_TEST = 
INCLUDES = -I$(top_srcdir)/src
noinst_HEADERS = dft_cmp.h utils.h generate.h
autogen_sources = write_read_test.tpl write_read_test.def	\
					pcm_test.tpl pcm_test.def				\
					header_test.tpl header_test.def			\
					utils.tpl utils.def						\
					scale_clip_test.tpl scale_clip_test.def	\
					pipe_test.tpl pipe_test.def				\
					rdwr_test.tpl rdwr_test.def				\
					floating_point_test.tpl floating_point_test.def	\
					benchmark.tpl benchmark.def

EXTRA_DIST = $(autogen_sources)
CLEANFILES = *~

#===============================================================================
sfversion_SOURCES = sfversion.c
sfversion_LDADD = $(top_builddir)/src/libsndfile.la
write_read_test_SOURCES = utils.c generate.c write_read_test.c
write_read_test_LDADD = $(top_builddir)/src/libsndfile.la
lossy_comp_test_SOURCES = utils.c lossy_comp_test.c
lossy_comp_test_LDADD = $(top_builddir)/src/libsndfile.la
fix_this_SOURCES = utils.c fix_this.c
fix_this_LDADD = $(top_builddir)/src/libsndfile.la
error_test_SOURCES = error_test.c utils.c
error_test_LDADD = $(top_builddir)/src/libsndfile.la
ulaw_test_SOURCES = utils.c ulaw_test.c
ulaw_test_LDADD = $(top_builddir)/src/libsndfile.la
alaw_test_SOURCES = utils.c alaw_test.c
alaw_test_LDADD = $(top_builddir)/src/libsndfile.la
aiff_rw_test_SOURCES = utils.c aiff_rw_test.c
aiff_rw_test_LDADD = $(top_builddir)/src/libsndfile.la
command_test_SOURCES = command_test.c utils.c
command_test_LDADD = $(top_builddir)/src/libsndfile.la
locale_test_SOURCES = locale_test.c utils.c
locale_test_LDADD = $(top_builddir)/src/libsndfile.la
largefile_test_SOURCES = largefile_test.c utils.c
largefile_test_LDADD = $(top_builddir)/src/libsndfile.la
pcm_test_SOURCES = pcm_test.c utils.c
pcm_test_LDADD = $(top_builddir)/src/libsndfile.la
headerless_test_SOURCES = utils.c headerless_test.c
headerless_test_LDADD = $(top_builddir)/src/libsndfile.la
stdin_test_SOURCES = stdin_test.c utils.c
stdin_test_LDADD = $(top_builddir)/src/libsndfile.la
stdout_test_SOURCES = stdout_test.c
stdout_test_LDADD = $(top_builddir)/src/libsndfile.la
stdio_test_SOURCES = stdio_test.c utils.c
stdio_test_LDADD = $(top_builddir)/src/libsndfile.la
pipe_test_SOURCES = pipe_test.c utils.c
pipe_test_LDADD = $(top_builddir)/src/libsndfile.la
benchmark_SOURCES = benchmark.c
benchmark_LDADD = $(top_builddir)/src/libsndfile.la
header_test_SOURCES = header_test.c utils.c
header_test_LDADD = $(top_builddir)/src/libsndfile.la
misc_test_SOURCES = misc_test.c utils.c
misc_test_LDADD = $(top_builddir)/src/libsndfile.la
raw_test_SOURCES = raw_test.c utils.c
raw_test_LDADD = $(top_builddir)/src/libsndfile.la
string_test_SOURCES = string_test.c utils.c
string_test_LDADD = $(top_builddir)/src/libsndfile.la
dither_test_SOURCES = dither_test.c utils.c
dither_test_LDADD = $(top_builddir)/src/libsndfile.la
multi_file_test_SOURCES = multi_file_test.c utils.c
multi_file_test_LDADD = $(top_builddir)/src/libsndfile.la
virtual_io_test_SOURCES = virtual_io_test.c utils.c
virtual_io_test_LDADD = $(top_builddir)/src/libsndfile.la
ogg_test_SOURCES = ogg_test.c utils.c
ogg_test_LDADD = $(top_builddir)/src/libsndfile.la
vorbis_test_SOURCES = vorbis_test.c utils.c
vorbis_test_LDADD = $(top_builddir)/src/libsndfile.la
rdwr_test_SOURCES = rdwr_test.c utils.c
rdwr_test_LDADD = $(top_builddir)/src/libsndfile.la
win32_test_SOURCES = win32_test.c
# Link lib here so that generating the testsuite tarball works correctly.
win32_test_LDADD = $(top_builddir)/src/libsndfile.la
win32_ordinal_test_SOURCES = win32_ordinal_test.c utils.c
win32_ordinal_test_LDADD = $(top_builddir)/src/libsndfile.la
external_libs_test_SOURCES = external_libs_test.c utils.c
external_libs_test_LDADD = $(top_builddir)/src/libsndfile.la
format_check_test_SOURCES = format_check_test.c utils.c
format_check_test_LDADD = $(top_builddir)/src/libsndfile.la
cpp_test_SOURCES = cpp_test.cc utils.c
cpp_test_LDADD = $(top_builddir)/src/libsndfile.la
checksum_test_SOURCES = checksum_test.c utils.c
checksum_test_LDADD = $(top_builddir)/src/libsndfile.la

# Lite remove start
dwvw_test_SOURCES = utils.c dwvw_test.c
dwvw_test_LDADD = $(top_builddir)/src/libsndfile.la
floating_point_test_SOURCES = utils.c dft_cmp.c floating_point_test.c
floating_point_test_LDADD = $(top_builddir)/src/libsndfile.la
peak_chunk_test_SOURCES = peak_chunk_test.c utils.c
peak_chunk_test_LDADD = $(top_builddir)/src/libsndfile.la
scale_clip_test_SOURCES = scale_clip_test.c utils.c
scale_clip_test_LDADD = $(top_builddir)/src/libsndfile.la
all: all-am

.SUFFIXES:
.SUFFIXES: .c .cc .lo .o .obj
$(srcdir)/Makefile.in:  $(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) --gnu tests/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --gnu tests/Makefile
.PRECIOUS: 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:  $(am__configure_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
test_wrapper.sh: $(top_builddir)/config.status $(srcdir)/test_wrapper.sh.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
pedantic-header-test.sh: $(top_builddir)/config.status $(srcdir)/pedantic-header-test.sh.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@

clean-checkPROGRAMS:
	@list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
	echo " rm -f" $$list; \
	rm -f $$list || exit $$?; \
	test -n "$(EXEEXT)" || exit 0; \
	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
	echo " rm -f" $$list; \
	rm -f $$list
aiff_rw_test$(EXEEXT): $(aiff_rw_test_OBJECTS) $(aiff_rw_test_DEPENDENCIES) 
	@rm -f aiff_rw_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(aiff_rw_test_OBJECTS) $(aiff_rw_test_LDADD) $(LIBS)
alaw_test$(EXEEXT): $(alaw_test_OBJECTS) $(alaw_test_DEPENDENCIES) 
	@rm -f alaw_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(alaw_test_OBJECTS) $(alaw_test_LDADD) $(LIBS)
benchmark$(EXEEXT): $(benchmark_OBJECTS) $(benchmark_DEPENDENCIES) 
	@rm -f benchmark$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(benchmark_OBJECTS) $(benchmark_LDADD) $(LIBS)
checksum_test$(EXEEXT): $(checksum_test_OBJECTS) $(checksum_test_DEPENDENCIES) 
	@rm -f checksum_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(checksum_test_OBJECTS) $(checksum_test_LDADD) $(LIBS)
command_test$(EXEEXT): $(command_test_OBJECTS) $(command_test_DEPENDENCIES) 
	@rm -f command_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(command_test_OBJECTS) $(command_test_LDADD) $(LIBS)
cpp_test$(EXEEXT): $(cpp_test_OBJECTS) $(cpp_test_DEPENDENCIES) 
	@rm -f cpp_test$(EXEEXT)
	$(AM_V_CXXLD)$(CXXLINK) $(cpp_test_OBJECTS) $(cpp_test_LDADD) $(LIBS)
dither_test$(EXEEXT): $(dither_test_OBJECTS) $(dither_test_DEPENDENCIES) 
	@rm -f dither_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(dither_test_OBJECTS) $(dither_test_LDADD) $(LIBS)
dwvw_test$(EXEEXT): $(dwvw_test_OBJECTS) $(dwvw_test_DEPENDENCIES) 
	@rm -f dwvw_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(dwvw_test_OBJECTS) $(dwvw_test_LDADD) $(LIBS)
error_test$(EXEEXT): $(error_test_OBJECTS) $(error_test_DEPENDENCIES) 
	@rm -f error_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(error_test_OBJECTS) $(error_test_LDADD) $(LIBS)
external_libs_test$(EXEEXT): $(external_libs_test_OBJECTS) $(external_libs_test_DEPENDENCIES) 
	@rm -f external_libs_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(external_libs_test_OBJECTS) $(external_libs_test_LDADD) $(LIBS)
fix_this$(EXEEXT): $(fix_this_OBJECTS) $(fix_this_DEPENDENCIES) 
	@rm -f fix_this$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(fix_this_OBJECTS) $(fix_this_LDADD) $(LIBS)
floating_point_test$(EXEEXT): $(floating_point_test_OBJECTS) $(floating_point_test_DEPENDENCIES) 
	@rm -f floating_point_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(floating_point_test_OBJECTS) $(floating_point_test_LDADD) $(LIBS)
format_check_test$(EXEEXT): $(format_check_test_OBJECTS) $(format_check_test_DEPENDENCIES) 
	@rm -f format_check_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(format_check_test_OBJECTS) $(format_check_test_LDADD) $(LIBS)
header_test$(EXEEXT): $(header_test_OBJECTS) $(header_test_DEPENDENCIES) 
	@rm -f header_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(header_test_OBJECTS) $(header_test_LDADD) $(LIBS)
headerless_test$(EXEEXT): $(headerless_test_OBJECTS) $(headerless_test_DEPENDENCIES) 
	@rm -f headerless_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(headerless_test_OBJECTS) $(headerless_test_LDADD) $(LIBS)
largefile_test$(EXEEXT): $(largefile_test_OBJECTS) $(largefile_test_DEPENDENCIES) 
	@rm -f largefile_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(largefile_test_OBJECTS) $(largefile_test_LDADD) $(LIBS)
locale_test$(EXEEXT): $(locale_test_OBJECTS) $(locale_test_DEPENDENCIES) 
	@rm -f locale_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(locale_test_OBJECTS) $(locale_test_LDADD) $(LIBS)
lossy_comp_test$(EXEEXT): $(lossy_comp_test_OBJECTS) $(lossy_comp_test_DEPENDENCIES) 
	@rm -f lossy_comp_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(lossy_comp_test_OBJECTS) $(lossy_comp_test_LDADD) $(LIBS)
misc_test$(EXEEXT): $(misc_test_OBJECTS) $(misc_test_DEPENDENCIES) 
	@rm -f misc_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(misc_test_OBJECTS) $(misc_test_LDADD) $(LIBS)
multi_file_test$(EXEEXT): $(multi_file_test_OBJECTS) $(multi_file_test_DEPENDENCIES) 
	@rm -f multi_file_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(multi_file_test_OBJECTS) $(multi_file_test_LDADD) $(LIBS)
ogg_test$(EXEEXT): $(ogg_test_OBJECTS) $(ogg_test_DEPENDENCIES) 
	@rm -f ogg_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(ogg_test_OBJECTS) $(ogg_test_LDADD) $(LIBS)
pcm_test$(EXEEXT): $(pcm_test_OBJECTS) $(pcm_test_DEPENDENCIES) 
	@rm -f pcm_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(pcm_test_OBJECTS) $(pcm_test_LDADD) $(LIBS)
peak_chunk_test$(EXEEXT): $(peak_chunk_test_OBJECTS) $(peak_chunk_test_DEPENDENCIES) 
	@rm -f peak_chunk_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(peak_chunk_test_OBJECTS) $(peak_chunk_test_LDADD) $(LIBS)
pipe_test$(EXEEXT): $(pipe_test_OBJECTS) $(pipe_test_DEPENDENCIES) 
	@rm -f pipe_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(pipe_test_OBJECTS) $(pipe_test_LDADD) $(LIBS)
raw_test$(EXEEXT): $(raw_test_OBJECTS) $(raw_test_DEPENDENCIES) 
	@rm -f raw_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(raw_test_OBJECTS) $(raw_test_LDADD) $(LIBS)
rdwr_test$(EXEEXT): $(rdwr_test_OBJECTS) $(rdwr_test_DEPENDENCIES) 
	@rm -f rdwr_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(rdwr_test_OBJECTS) $(rdwr_test_LDADD) $(LIBS)
scale_clip_test$(EXEEXT): $(scale_clip_test_OBJECTS) $(scale_clip_test_DEPENDENCIES) 
	@rm -f scale_clip_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scale_clip_test_OBJECTS) $(scale_clip_test_LDADD) $(LIBS)
sfversion$(EXEEXT): $(sfversion_OBJECTS) $(sfversion_DEPENDENCIES) 
	@rm -f sfversion$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(sfversion_OBJECTS) $(sfversion_LDADD) $(LIBS)
stdin_test$(EXEEXT): $(stdin_test_OBJECTS) $(stdin_test_DEPENDENCIES) 
	@rm -f stdin_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(stdin_test_OBJECTS) $(stdin_test_LDADD) $(LIBS)
stdio_test$(EXEEXT): $(stdio_test_OBJECTS) $(stdio_test_DEPENDENCIES) 
	@rm -f stdio_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(stdio_test_OBJECTS) $(stdio_test_LDADD) $(LIBS)
stdout_test$(EXEEXT): $(stdout_test_OBJECTS) $(stdout_test_DEPENDENCIES) 
	@rm -f stdout_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(stdout_test_OBJECTS) $(stdout_test_LDADD) $(LIBS)
string_test$(EXEEXT): $(string_test_OBJECTS) $(string_test_DEPENDENCIES) 
	@rm -f string_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(string_test_OBJECTS) $(string_test_LDADD) $(LIBS)
ulaw_test$(EXEEXT): $(ulaw_test_OBJECTS) $(ulaw_test_DEPENDENCIES) 
	@rm -f ulaw_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(ulaw_test_OBJECTS) $(ulaw_test_LDADD) $(LIBS)
virtual_io_test$(EXEEXT): $(virtual_io_test_OBJECTS) $(virtual_io_test_DEPENDENCIES) 
	@rm -f virtual_io_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(virtual_io_test_OBJECTS) $(virtual_io_test_LDADD) $(LIBS)
vorbis_test$(EXEEXT): $(vorbis_test_OBJECTS) $(vorbis_test_DEPENDENCIES) 
	@rm -f vorbis_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(vorbis_test_OBJECTS) $(vorbis_test_LDADD) $(LIBS)
win32_ordinal_test$(EXEEXT): $(win32_ordinal_test_OBJECTS) $(win32_ordinal_test_DEPENDENCIES) 
	@rm -f win32_ordinal_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(win32_ordinal_test_OBJECTS) $(win32_ordinal_test_LDADD) $(LIBS)
win32_test$(EXEEXT): $(win32_test_OBJECTS) $(win32_test_DEPENDENCIES) 
	@rm -f win32_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(win32_test_OBJECTS) $(win32_test_LDADD) $(LIBS)
write_read_test$(EXEEXT): $(write_read_test_OBJECTS) $(write_read_test_DEPENDENCIES) 
	@rm -f write_read_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(write_read_test_OBJECTS) $(write_read_test_LDADD) $(LIBS)

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

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

include ./$(DEPDIR)/aiff_rw_test.Po
include ./$(DEPDIR)/alaw_test.Po
include ./$(DEPDIR)/benchmark.Po
include ./$(DEPDIR)/checksum_test.Po
include ./$(DEPDIR)/command_test.Po
include ./$(DEPDIR)/cpp_test.Po
include ./$(DEPDIR)/dft_cmp.Po
include ./$(DEPDIR)/dither_test.Po
include ./$(DEPDIR)/dwvw_test.Po
include ./$(DEPDIR)/error_test.Po
include ./$(DEPDIR)/external_libs_test.Po
include ./$(DEPDIR)/fix_this.Po
include ./$(DEPDIR)/floating_point_test.Po
include ./$(DEPDIR)/format_check_test.Po
include ./$(DEPDIR)/generate.Po
include ./$(DEPDIR)/header_test.Po
include ./$(DEPDIR)/headerless_test.Po
include ./$(DEPDIR)/largefile_test.Po
include ./$(DEPDIR)/locale_test.Po
include ./$(DEPDIR)/lossy_comp_test.Po
include ./$(DEPDIR)/misc_test.Po
include ./$(DEPDIR)/multi_file_test.Po
include ./$(DEPDIR)/ogg_test.Po
include ./$(DEPDIR)/pcm_test.Po
include ./$(DEPDIR)/peak_chunk_test.Po
include ./$(DEPDIR)/pipe_test.Po
include ./$(DEPDIR)/raw_test.Po
include ./$(DEPDIR)/rdwr_test.Po
include ./$(DEPDIR)/scale_clip_test.Po
include ./$(DEPDIR)/sfversion.Po
include ./$(DEPDIR)/stdin_test.Po
include ./$(DEPDIR)/stdio_test.Po
include ./$(DEPDIR)/stdout_test.Po
include ./$(DEPDIR)/string_test.Po
include ./$(DEPDIR)/ulaw_test.Po
include ./$(DEPDIR)/utils.Po
include ./$(DEPDIR)/virtual_io_test.Po
include ./$(DEPDIR)/vorbis_test.Po
include ./$(DEPDIR)/win32_ordinal_test.Po
include ./$(DEPDIR)/win32_test.Po
include ./$(DEPDIR)/write_read_test.Po

.c.o:
	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
#	$(AM_V_CC) \
#	source='$<' object='$@' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(COMPILE) -c $<

.c.obj:
	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
#	$(AM_V_CC) \
#	source='$<' object='$@' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(COMPILE) -c `$(CYGPATH_W) '$<'`

.c.lo:
	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
#	$(AM_V_CC) \
#	source='$<' object='$@' libtool=yes \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(LTCOMPILE) -c -o $@ $<

.cc.o:
	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
#	$(AM_V_CXX) \
#	source='$<' object='$@' libtool=no \
#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
#	$(CXXCOMPILE) -c -o $@ $<

.cc.obj:
	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
#	$(AM_V_CXX) \
#	source='$<' object='$@' libtool=no \
#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
#	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`

.cc.lo:
	$(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
#	$(AM_V_CXX) \
#	source='$<' object='$@' libtool=yes \
#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
#	$(LTCXXCOMPILE) -c -o $@ $<

mostlyclean-libtool:
	-rm -f *.lo

clean-libtool:
	-rm -rf .libs _libs

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; nonempty = 1; } \
	      END { if (nonempty) { for (i in files) print i; }; }'`; \
	mkid -fID $$unique
tags: TAGS

TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
		$(TAGS_FILES) $(LISP)
	set x; \
	here=`pwd`; \
	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; nonempty = 1; } \
	      END { if (nonempty) { for (i in files) print i; }; }'`; \
	shift; \
	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
	  test -n "$$unique" || unique=$$empty_fix; \
	  if test $$# -gt 0; then \
	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
	      "$$@" $$unique; \
	  else \
	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
	      $$unique; \
	  fi; \
	fi
ctags: CTAGS
CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
		$(TAGS_FILES) $(LISP)
	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; nonempty = 1; } \
	      END { if (nonempty) { for (i in files) print i; }; }'`; \
	test -z "$(CTAGS_ARGS)$$unique" \
	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
	     $$unique

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

distclean-tags:
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags

distdir: $(DISTFILES)
	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	list='$(DISTFILES)'; \
	  dist_files=`for file in $$list; do echo $$file; done | \
	  sed -e "s|^$$srcdirstrip/||;t" \
	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
	case $$dist_files in \
	  */*) $(MKDIR_P) `echo "$$dist_files" | \
			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
			   sort -u` ;; \
	esac; \
	for file in $$dist_files; do \
	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
	  if test -d $$d/$$file; then \
	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
	    if test -d "$(distdir)/$$file"; then \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
	  else \
	    test -f "$(distdir)/$$file" \
	    || cp -p $$d/$$file "$(distdir)/$$file" \
	    || exit 1; \
	  fi; \
	done
check-am: all-am
	$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
check: check-am
all-am: Makefile $(HEADERS)
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:
	$(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:

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-local:
clean: clean-am

clean-am: clean-checkPROGRAMS clean-generic clean-libtool clean-local \
	mostlyclean-am

distclean: distclean-am
	-rm -rf ./$(DEPDIR)
	-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
	distclean-tags

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 -rf ./$(DEPDIR)
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

mostlyclean: mostlyclean-am

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

pdf: pdf-am

pdf-am:

ps: ps-am

ps-am:

uninstall-am:

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

.PHONY: CTAGS GTAGS all all-am check check-am clean \
	clean-checkPROGRAMS clean-generic clean-libtool clean-local \
	ctags distclean distclean-compile distclean-generic \
	distclean-libtool distclean-tags distdir 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-compile \
	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
	tags uninstall uninstall-am


#===============================================================================
# If we're cross compiling from Linux to Windows and running the test suite
# under Wine, we need a symbolic link to the generated libsndfile DLL.

#$(check_PROGRAMS) : libsndfile-1.dll

#libsndfile-1.dll :
#	ln -s $(top_builddir)/src/.libs/$@ $@

#clean-local :
#	-rm -f libsndfile-1.dll

#===============================================================================

check: test_wrapper.sh
	sh test_wrapper.sh

# Need this target to force building of test programs.
checkprograms : $(check_PROGRAMS)
# Lite remove end

#===============================================================================

write_read_test.c: write_read_test.def write_read_test.tpl
	autogen --writable write_read_test.def

pcm_test.c: pcm_test.def pcm_test.tpl
	autogen --writable pcm_test.def

header_test.c: header_test.def header_test.tpl
	autogen --writable header_test.def

utils.c utils.h : utils.def utils.tpl
	autogen --writable utils.def

scale_clip_test.c: scale_clip_test.def scale_clip_test.tpl
	autogen --writable scale_clip_test.def

pipe_test.c: pipe_test.def pipe_test.tpl
	autogen --writable pipe_test.def

rdwr_test.c: rdwr_test.def rdwr_test.tpl
	autogen --writable rdwr_test.def

floating_point_test.c: floating_point_test.def floating_point_test.tpl
	autogen --writable floating_point_test.def

benchmark.c: benchmark.def benchmark.tpl
	autogen --writable benchmark.def

genfiles : write_read_test.c pcm_test.c header_test.c utils.c \
		scale_clip_test.c pipe_test.c floating_point_test.c rdwr_test.c \
		benchmark.c

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