# Makefile.in generated by automake 1.11.1 from Makefile.am.
# src/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 = test_main$(EXEEXT) G72x/g72x_test$(EXEEXT)
subdir = src
DIST_COMMON = $(include_HEADERS) $(noinst_HEADERS) \
	$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
	$(srcdir)/config.h.in $(srcdir)/sndfile.h.in \
	$(srcdir)/version-metadata.rc.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 = config.h
CONFIG_CLEAN_FILES = version-metadata.rc sndfile.h
CONFIG_CLEAN_VPATH_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
    *) f=$$p;; \
  esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
  for p in $$list; do echo "$$p $$p"; done | \
  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
    if (++n[$$2] == $(am__install_max)) \
      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
    END { for (dir in files) print dir, files[dir] }'
am__base_list = \
  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" \
	"$(DESTDIR)$(includedir)"
LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES)
G72x_libg72x_la_LIBADD =
am__dirstamp = $(am__leading_dot)dirstamp
am_G72x_libg72x_la_OBJECTS = G72x/g721.lo G72x/g723_16.lo \
	G72x/g723_24.lo G72x/g723_40.lo G72x/g72x.lo
G72x_libg72x_la_OBJECTS = $(am_G72x_libg72x_la_OBJECTS)
AM_V_lt = $(am__v_lt_$(V))
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
am__v_lt_0 = --silent
GSM610_libgsm_la_LIBADD =
am_GSM610_libgsm_la_OBJECTS = GSM610/add.lo GSM610/code.lo \
	GSM610/decode.lo GSM610/gsm_create.lo GSM610/gsm_decode.lo \
	GSM610/gsm_destroy.lo GSM610/gsm_encode.lo \
	GSM610/gsm_option.lo GSM610/long_term.lo GSM610/lpc.lo \
	GSM610/preprocess.lo GSM610/rpe.lo GSM610/short_term.lo \
	GSM610/table.lo
GSM610_libgsm_la_OBJECTS = $(am_GSM610_libgsm_la_OBJECTS)
libcommon_la_LIBADD =
am__libcommon_la_SOURCES_DIST = common.c file_io.c command.c pcm.c \
	ulaw.c alaw.c float32.c double64.c ima_adpcm.c ms_adpcm.c \
	gsm610.c dwvw.c vox_adpcm.c interleave.c strings.c dither.c \
	broadcast.c audio_detect.c ima_oki_adpcm.c ima_oki_adpcm.h \
	chunk.c ogg.c chanmap.c windows.c id3.c version-metadata.rc
#am__objects_1 = version-metadata.lo
am__objects_2 = common.lo file_io.lo command.lo pcm.lo ulaw.lo alaw.lo \
	float32.lo double64.lo ima_adpcm.lo ms_adpcm.lo gsm610.lo \
	dwvw.lo vox_adpcm.lo interleave.lo strings.lo dither.lo \
	broadcast.lo audio_detect.lo ima_oki_adpcm.lo chunk.lo ogg.lo \
	chanmap.lo windows.lo id3.lo $(am__objects_1)
am_libcommon_la_OBJECTS = $(am__objects_2)
libcommon_la_OBJECTS = $(am_libcommon_la_OBJECTS)
libsndfile_la_DEPENDENCIES = libcommon.la GSM610/libgsm.la \
	G72x/libg72x.la
am__objects_3 = sndfile.lo aiff.lo au.lo avr.lo caf.lo dwd.lo flac.lo \
	g72x.lo htk.lo ircam.lo macbinary3.lo macos.lo mat4.lo mat5.lo \
	nist.lo paf.lo pvf.lo raw.lo rx2.lo sd2.lo sds.lo svx.lo \
	txw.lo voc.lo wve.lo w64.lo wav_w64.lo wav.lo xi.lo mpc2k.lo \
	rf64.lo ogg_vorbis.lo ogg_speex.lo ogg_pcm.lo
am__objects_4 =
am_libsndfile_la_OBJECTS = $(am__objects_3) $(am__objects_4)
nodist_libsndfile_la_OBJECTS = $(am__objects_4)
libsndfile_la_OBJECTS = $(am_libsndfile_la_OBJECTS) \
	$(nodist_libsndfile_la_OBJECTS)
libsndfile_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
	$(libsndfile_la_LDFLAGS) $(LDFLAGS) -o $@
am_G72x_g72x_test_OBJECTS = G72x/g72x_test.$(OBJEXT)
G72x_g72x_test_OBJECTS = $(am_G72x_g72x_test_OBJECTS)
G72x_g72x_test_DEPENDENCIES = G72x/libg72x.la
am_test_main_OBJECTS = test_main.$(OBJEXT) test_conversions.$(OBJEXT) \
	test_float.$(OBJEXT) test_endswap.$(OBJEXT) \
	test_audio_detect.$(OBJEXT) test_log_printf.$(OBJEXT) \
	test_file_io.$(OBJEXT) test_ima_oki_adpcm.$(OBJEXT) \
	test_strncpy_crlf.$(OBJEXT) test_broadcast_var.$(OBJEXT)
test_main_OBJECTS = $(am_test_main_OBJECTS)
test_main_DEPENDENCIES = libcommon.la
DEFAULT_INCLUDES = -I.
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  " $@;
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo "  GEN   " $@;
SOURCES = $(G72x_libg72x_la_SOURCES) $(GSM610_libgsm_la_SOURCES) \
	$(libcommon_la_SOURCES) $(libsndfile_la_SOURCES) \
	$(nodist_libsndfile_la_SOURCES) $(G72x_g72x_test_SOURCES) \
	$(test_main_SOURCES)
DIST_SOURCES = $(G72x_libg72x_la_SOURCES) $(GSM610_libgsm_la_SOURCES) \
	$(am__libcommon_la_SOURCES_DIST) $(libsndfile_la_SOURCES) \
	$(G72x_g72x_test_SOURCES) $(test_main_SOURCES)
HEADERS = $(include_HEADERS) $(nodist_include_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

#======================================================================
# Disable autoheader.
AUTOHEADER = echo
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/src
abs_srcdir = /home/lisional/git/sflphone-android/jni/libsndfile-1.0.25/src
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 = ..
AUTOMAKE_OPTIONS = subdir-objects
INCLUDES = 
lib_LTLIBRARIES = libsndfile.la
include_HEADERS = sndfile.hh
nodist_include_HEADERS = sndfile.h
noinst_LTLIBRARIES = GSM610/libgsm.la G72x/libg72x.la libcommon.la
SYMBOL_FILES = Symbols.gnu-binutils Symbols.darwin libsndfile-1.def Symbols.os2 Symbols.static
EXTRA_DIST = sndfile.h.in config.h.in test_endswap.tpl test_endswap.def \
			$(SYMBOL_FILES) create_symbols_file.py binheader_writef_check.py \
			GSM610/README GSM610/COPYRIGHT GSM610/ChangeLog \
			G72x/README G72x/README.original G72x/ChangeLog \
			make-static-lib-hidden-privates.sh

noinst_HEADERS = common.h sfconfig.h sfendian.h wav_w64.h sf_unistd.h ogg.h chanmap.h
COMMON = common.c file_io.c command.c pcm.c ulaw.c alaw.c float32.c \
		double64.c ima_adpcm.c ms_adpcm.c gsm610.c dwvw.c vox_adpcm.c \
		interleave.c strings.c dither.c broadcast.c audio_detect.c \
 		ima_oki_adpcm.c ima_oki_adpcm.h chunk.c ogg.c chanmap.c \
		windows.c id3.c $(WIN_VERSION_FILE)

FILESPECIFIC = sndfile.c aiff.c au.c avr.c caf.c dwd.c flac.c g72x.c htk.c ircam.c \
		macbinary3.c macos.c mat4.c mat5.c nist.c paf.c pvf.c raw.c rx2.c sd2.c \
		sds.c svx.c txw.c voc.c wve.c w64.c wav_w64.c wav.c xi.c mpc2k.c rf64.c \
		ogg_vorbis.c ogg_speex.c ogg_pcm.c

CLEANFILES = *~
WIN_VERSION_FILE = 
#WIN_VERSION_FILE = version-metadata.rc

#===============================================================================
# MinGW requires -no-undefined if a DLL is to be built.
libsndfile_la_LDFLAGS = -no-undefined -version-info 1:25:0 -Wl,--version-script=$(srcdir)/Symbols.gnu-binutils
libsndfile_la_SOURCES = $(FILESPECIFIC) $(noinst_HEADERS)
nodist_libsndfile_la_SOURCES = $(nodist_include_HEADERS)
libsndfile_la_LIBADD = libcommon.la GSM610/libgsm.la G72x/libg72x.la \
		 -lm

libcommon_la_SOURCES = $(COMMON)

#======================================================================
# Subdir libraries.
GSM610_libgsm_la_SOURCES = GSM610/config.h GSM610/gsm.h GSM610/gsm610_priv.h \
		GSM610/add.c GSM610/code.c GSM610/decode.c GSM610/gsm_create.c \
		GSM610/gsm_decode.c GSM610/gsm_destroy.c GSM610/gsm_encode.c \
		GSM610/gsm_option.c GSM610/long_term.c GSM610/lpc.c GSM610/preprocess.c \
		GSM610/rpe.c GSM610/short_term.c GSM610/table.c

G72x_libg72x_la_SOURCES = $(COMMON)G72x/g72x.h G72x/g72x_priv.h \
		G72x/g721.c G72x/g723_16.c G72x/g723_24.c G72x/g723_40.c G72x/g72x.c


#======================================================================
# Test programs.
test_main_SOURCES = test_main.c test_main.h test_conversions.c test_float.c test_endswap.c \
					test_audio_detect.c test_log_printf.c test_file_io.c test_ima_oki_adpcm.c \
					test_strncpy_crlf.c test_broadcast_var.c

test_main_LDADD = libcommon.la
G72x_g72x_test_SOURCES = G72x/g72x_test.c
G72x_g72x_test_LDADD = G72x/libg72x.la
all: config.h
	$(MAKE) $(AM_MAKEFLAGS) all-am

.SUFFIXES:
.SUFFIXES: .c .lo .o .obj .rc
$(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 src/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --gnu src/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):

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

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

distclean-hdr:
	-rm -f config.h stamp-h1
version-metadata.rc: $(top_builddir)/config.status $(srcdir)/version-metadata.rc.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
sndfile.h: $(top_builddir)/config.status $(srcdir)/sndfile.h.in
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
	@$(NORMAL_INSTALL)
	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
	list2=; for p in $$list; do \
	  if test -f $$p; then \
	    list2="$$list2 $$p"; \
	  else :; fi; \
	done; \
	test -z "$$list2" || { \
	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
	}

uninstall-libLTLIBRARIES:
	@$(NORMAL_UNINSTALL)
	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
	for p in $$list; do \
	  $(am__strip_dir) \
	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
	done

clean-libLTLIBRARIES:
	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
	  test "$$dir" != "$$p" || dir=.; \
	  echo "rm -f \"$${dir}/so_locations\""; \
	  rm -f "$${dir}/so_locations"; \
	done

clean-noinstLTLIBRARIES:
	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
	  test "$$dir" != "$$p" || dir=.; \
	  echo "rm -f \"$${dir}/so_locations\""; \
	  rm -f "$${dir}/so_locations"; \
	done
G72x/$(am__dirstamp):
	@$(MKDIR_P) G72x
	@: > G72x/$(am__dirstamp)
G72x/$(DEPDIR)/$(am__dirstamp):
	@$(MKDIR_P) G72x/$(DEPDIR)
	@: > G72x/$(DEPDIR)/$(am__dirstamp)
G72x/g721.lo: G72x/$(am__dirstamp) G72x/$(DEPDIR)/$(am__dirstamp)
G72x/g723_16.lo: G72x/$(am__dirstamp) G72x/$(DEPDIR)/$(am__dirstamp)
G72x/g723_24.lo: G72x/$(am__dirstamp) G72x/$(DEPDIR)/$(am__dirstamp)
G72x/g723_40.lo: G72x/$(am__dirstamp) G72x/$(DEPDIR)/$(am__dirstamp)
G72x/g72x.lo: G72x/$(am__dirstamp) G72x/$(DEPDIR)/$(am__dirstamp)
G72x/libg72x.la: $(G72x_libg72x_la_OBJECTS) $(G72x_libg72x_la_DEPENDENCIES) G72x/$(am__dirstamp)
	$(AM_V_CCLD)$(LINK)  $(G72x_libg72x_la_OBJECTS) $(G72x_libg72x_la_LIBADD) $(LIBS)
GSM610/$(am__dirstamp):
	@$(MKDIR_P) GSM610
	@: > GSM610/$(am__dirstamp)
GSM610/$(DEPDIR)/$(am__dirstamp):
	@$(MKDIR_P) GSM610/$(DEPDIR)
	@: > GSM610/$(DEPDIR)/$(am__dirstamp)
GSM610/add.lo: GSM610/$(am__dirstamp) GSM610/$(DEPDIR)/$(am__dirstamp)
GSM610/code.lo: GSM610/$(am__dirstamp) \
	GSM610/$(DEPDIR)/$(am__dirstamp)
GSM610/decode.lo: GSM610/$(am__dirstamp) \
	GSM610/$(DEPDIR)/$(am__dirstamp)
GSM610/gsm_create.lo: GSM610/$(am__dirstamp) \
	GSM610/$(DEPDIR)/$(am__dirstamp)
GSM610/gsm_decode.lo: GSM610/$(am__dirstamp) \
	GSM610/$(DEPDIR)/$(am__dirstamp)
GSM610/gsm_destroy.lo: GSM610/$(am__dirstamp) \
	GSM610/$(DEPDIR)/$(am__dirstamp)
GSM610/gsm_encode.lo: GSM610/$(am__dirstamp) \
	GSM610/$(DEPDIR)/$(am__dirstamp)
GSM610/gsm_option.lo: GSM610/$(am__dirstamp) \
	GSM610/$(DEPDIR)/$(am__dirstamp)
GSM610/long_term.lo: GSM610/$(am__dirstamp) \
	GSM610/$(DEPDIR)/$(am__dirstamp)
GSM610/lpc.lo: GSM610/$(am__dirstamp) GSM610/$(DEPDIR)/$(am__dirstamp)
GSM610/preprocess.lo: GSM610/$(am__dirstamp) \
	GSM610/$(DEPDIR)/$(am__dirstamp)
GSM610/rpe.lo: GSM610/$(am__dirstamp) GSM610/$(DEPDIR)/$(am__dirstamp)
GSM610/short_term.lo: GSM610/$(am__dirstamp) \
	GSM610/$(DEPDIR)/$(am__dirstamp)
GSM610/table.lo: GSM610/$(am__dirstamp) \
	GSM610/$(DEPDIR)/$(am__dirstamp)
GSM610/libgsm.la: $(GSM610_libgsm_la_OBJECTS) $(GSM610_libgsm_la_DEPENDENCIES) GSM610/$(am__dirstamp)
	$(AM_V_CCLD)$(LINK)  $(GSM610_libgsm_la_OBJECTS) $(GSM610_libgsm_la_LIBADD) $(LIBS)
libcommon.la: $(libcommon_la_OBJECTS) $(libcommon_la_DEPENDENCIES) 
	$(AM_V_CCLD)$(LINK)  $(libcommon_la_OBJECTS) $(libcommon_la_LIBADD) $(LIBS)
libsndfile.la: $(libsndfile_la_OBJECTS) $(libsndfile_la_DEPENDENCIES) 
	$(AM_V_CCLD)$(libsndfile_la_LINK) -rpath $(libdir) $(libsndfile_la_OBJECTS) $(libsndfile_la_LIBADD) $(LIBS)

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
G72x/g72x_test.$(OBJEXT): G72x/$(am__dirstamp) \
	G72x/$(DEPDIR)/$(am__dirstamp)
G72x/g72x_test$(EXEEXT): $(G72x_g72x_test_OBJECTS) $(G72x_g72x_test_DEPENDENCIES) G72x/$(am__dirstamp)
	@rm -f G72x/g72x_test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(G72x_g72x_test_OBJECTS) $(G72x_g72x_test_LDADD) $(LIBS)
test_main$(EXEEXT): $(test_main_OBJECTS) $(test_main_DEPENDENCIES) 
	@rm -f test_main$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(test_main_OBJECTS) $(test_main_LDADD) $(LIBS)

mostlyclean-compile:
	-rm -f *.$(OBJEXT)
	-rm -f G72x/g721.$(OBJEXT)
	-rm -f G72x/g721.lo
	-rm -f G72x/g723_16.$(OBJEXT)
	-rm -f G72x/g723_16.lo
	-rm -f G72x/g723_24.$(OBJEXT)
	-rm -f G72x/g723_24.lo
	-rm -f G72x/g723_40.$(OBJEXT)
	-rm -f G72x/g723_40.lo
	-rm -f G72x/g72x.$(OBJEXT)
	-rm -f G72x/g72x.lo
	-rm -f G72x/g72x_test.$(OBJEXT)
	-rm -f GSM610/add.$(OBJEXT)
	-rm -f GSM610/add.lo
	-rm -f GSM610/code.$(OBJEXT)
	-rm -f GSM610/code.lo
	-rm -f GSM610/decode.$(OBJEXT)
	-rm -f GSM610/decode.lo
	-rm -f GSM610/gsm_create.$(OBJEXT)
	-rm -f GSM610/gsm_create.lo
	-rm -f GSM610/gsm_decode.$(OBJEXT)
	-rm -f GSM610/gsm_decode.lo
	-rm -f GSM610/gsm_destroy.$(OBJEXT)
	-rm -f GSM610/gsm_destroy.lo
	-rm -f GSM610/gsm_encode.$(OBJEXT)
	-rm -f GSM610/gsm_encode.lo
	-rm -f GSM610/gsm_option.$(OBJEXT)
	-rm -f GSM610/gsm_option.lo
	-rm -f GSM610/long_term.$(OBJEXT)
	-rm -f GSM610/long_term.lo
	-rm -f GSM610/lpc.$(OBJEXT)
	-rm -f GSM610/lpc.lo
	-rm -f GSM610/preprocess.$(OBJEXT)
	-rm -f GSM610/preprocess.lo
	-rm -f GSM610/rpe.$(OBJEXT)
	-rm -f GSM610/rpe.lo
	-rm -f GSM610/short_term.$(OBJEXT)
	-rm -f GSM610/short_term.lo
	-rm -f GSM610/table.$(OBJEXT)
	-rm -f GSM610/table.lo

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

include ./$(DEPDIR)/aiff.Plo
include ./$(DEPDIR)/alaw.Plo
include ./$(DEPDIR)/au.Plo
include ./$(DEPDIR)/audio_detect.Plo
include ./$(DEPDIR)/avr.Plo
include ./$(DEPDIR)/broadcast.Plo
include ./$(DEPDIR)/caf.Plo
include ./$(DEPDIR)/chanmap.Plo
include ./$(DEPDIR)/chunk.Plo
include ./$(DEPDIR)/command.Plo
include ./$(DEPDIR)/common.Plo
include ./$(DEPDIR)/dither.Plo
include ./$(DEPDIR)/double64.Plo
include ./$(DEPDIR)/dwd.Plo
include ./$(DEPDIR)/dwvw.Plo
include ./$(DEPDIR)/file_io.Plo
include ./$(DEPDIR)/flac.Plo
include ./$(DEPDIR)/float32.Plo
include ./$(DEPDIR)/g72x.Plo
include ./$(DEPDIR)/gsm610.Plo
include ./$(DEPDIR)/htk.Plo
include ./$(DEPDIR)/id3.Plo
include ./$(DEPDIR)/ima_adpcm.Plo
include ./$(DEPDIR)/ima_oki_adpcm.Plo
include ./$(DEPDIR)/interleave.Plo
include ./$(DEPDIR)/ircam.Plo
include ./$(DEPDIR)/macbinary3.Plo
include ./$(DEPDIR)/macos.Plo
include ./$(DEPDIR)/mat4.Plo
include ./$(DEPDIR)/mat5.Plo
include ./$(DEPDIR)/mpc2k.Plo
include ./$(DEPDIR)/ms_adpcm.Plo
include ./$(DEPDIR)/nist.Plo
include ./$(DEPDIR)/ogg.Plo
include ./$(DEPDIR)/ogg_pcm.Plo
include ./$(DEPDIR)/ogg_speex.Plo
include ./$(DEPDIR)/ogg_vorbis.Plo
include ./$(DEPDIR)/paf.Plo
include ./$(DEPDIR)/pcm.Plo
include ./$(DEPDIR)/pvf.Plo
include ./$(DEPDIR)/raw.Plo
include ./$(DEPDIR)/rf64.Plo
include ./$(DEPDIR)/rx2.Plo
include ./$(DEPDIR)/sd2.Plo
include ./$(DEPDIR)/sds.Plo
include ./$(DEPDIR)/sndfile.Plo
include ./$(DEPDIR)/strings.Plo
include ./$(DEPDIR)/svx.Plo
include ./$(DEPDIR)/test_audio_detect.Po
include ./$(DEPDIR)/test_broadcast_var.Po
include ./$(DEPDIR)/test_conversions.Po
include ./$(DEPDIR)/test_endswap.Po
include ./$(DEPDIR)/test_file_io.Po
include ./$(DEPDIR)/test_float.Po
include ./$(DEPDIR)/test_ima_oki_adpcm.Po
include ./$(DEPDIR)/test_log_printf.Po
include ./$(DEPDIR)/test_main.Po
include ./$(DEPDIR)/test_strncpy_crlf.Po
include ./$(DEPDIR)/txw.Plo
include ./$(DEPDIR)/ulaw.Plo
include ./$(DEPDIR)/voc.Plo
include ./$(DEPDIR)/vox_adpcm.Plo
include ./$(DEPDIR)/w64.Plo
include ./$(DEPDIR)/wav.Plo
include ./$(DEPDIR)/wav_w64.Plo
include ./$(DEPDIR)/windows.Plo
include ./$(DEPDIR)/wve.Plo
include ./$(DEPDIR)/xi.Plo
include G72x/$(DEPDIR)/g721.Plo
include G72x/$(DEPDIR)/g723_16.Plo
include G72x/$(DEPDIR)/g723_24.Plo
include G72x/$(DEPDIR)/g723_40.Plo
include G72x/$(DEPDIR)/g72x.Plo
include G72x/$(DEPDIR)/g72x_test.Po
include GSM610/$(DEPDIR)/add.Plo
include GSM610/$(DEPDIR)/code.Plo
include GSM610/$(DEPDIR)/decode.Plo
include GSM610/$(DEPDIR)/gsm_create.Plo
include GSM610/$(DEPDIR)/gsm_decode.Plo
include GSM610/$(DEPDIR)/gsm_destroy.Plo
include GSM610/$(DEPDIR)/gsm_encode.Plo
include GSM610/$(DEPDIR)/gsm_option.Plo
include GSM610/$(DEPDIR)/long_term.Plo
include GSM610/$(DEPDIR)/lpc.Plo
include GSM610/$(DEPDIR)/preprocess.Plo
include GSM610/$(DEPDIR)/rpe.Plo
include GSM610/$(DEPDIR)/short_term.Plo
include GSM610/$(DEPDIR)/table.Plo

.c.o:
	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
	$(am__mv) $$depbase.Tpo $$depbase.Po
#	$(AM_V_CC) \
#	source='$<' object='$@' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(COMPILE) -c -o $@ $<

.c.obj:
	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
	$(am__mv) $$depbase.Tpo $$depbase.Po
#	$(AM_V_CC) \
#	source='$<' object='$@' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`

.c.lo:
	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
	$(am__mv) $$depbase.Tpo $$depbase.Plo
#	$(AM_V_CC) \
#	source='$<' object='$@' libtool=yes \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(LTCOMPILE) -c -o $@ $<

mostlyclean-libtool:
	-rm -f *.lo

clean-libtool:
	-rm -rf .libs _libs
	-rm -rf G72x/.libs G72x/_libs
	-rm -rf GSM610/.libs GSM610/_libs
install-includeHEADERS: $(include_HEADERS)
	@$(NORMAL_INSTALL)
	test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
	@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
	for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  echo "$$d$$p"; \
	done | $(am__base_list) | \
	while read files; do \
	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \
	done

uninstall-includeHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	test -n "$$files" || exit 0; \
	echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \
	cd "$(DESTDIR)$(includedir)" && rm -f $$files
install-nodist_includeHEADERS: $(nodist_include_HEADERS)
	@$(NORMAL_INSTALL)
	test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
	@list='$(nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \
	for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  echo "$$d$$p"; \
	done | $(am__base_list) | \
	while read files; do \
	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \
	done

uninstall-nodist_includeHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	test -n "$$files" || exit 0; \
	echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \
	cd "$(DESTDIR)$(includedir)" && rm -f $$files

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) config.h.in $(TAGS_DEPENDENCIES) \
		$(TAGS_FILES) $(LISP)
	set x; \
	here=`pwd`; \
	list='$(SOURCES) $(HEADERS) config.h.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; 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) config.h.in $(TAGS_DEPENDENCIES) \
		$(TAGS_FILES) $(LISP)
	list='$(SOURCES) $(HEADERS) config.h.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; 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 $(LTLIBRARIES) $(HEADERS) config.h
installdirs:
	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(includedir)"; do \
	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
	done
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)
	-rm -f G72x/$(DEPDIR)/$(am__dirstamp)
	-rm -f G72x/$(am__dirstamp)
	-rm -f GSM610/$(DEPDIR)/$(am__dirstamp)
	-rm -f GSM610/$(am__dirstamp)

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-checkPROGRAMS clean-generic clean-libLTLIBRARIES \
	clean-libtool clean-noinstLTLIBRARIES mostlyclean-am

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

dvi: dvi-am

dvi-am:

html: html-am

html-am:

info: info-am

info-am:

install-data-am: install-includeHEADERS install-nodist_includeHEADERS

install-dvi: install-dvi-am

install-dvi-am:

install-exec-am: install-libLTLIBRARIES

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) G72x/$(DEPDIR) GSM610/$(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: uninstall-includeHEADERS uninstall-libLTLIBRARIES \
	uninstall-nodist_includeHEADERS

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

.PHONY: CTAGS GTAGS all all-am check check-am clean \
	clean-checkPROGRAMS clean-generic clean-libLTLIBRARIES \
	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
	distclean-compile distclean-generic distclean-hdr \
	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-includeHEADERS install-info install-info-am \
	install-libLTLIBRARIES install-man \
	install-nodist_includeHEADERS 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 uninstall-includeHEADERS \
	uninstall-libLTLIBRARIES uninstall-nodist_includeHEADERS


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

genfiles : test_endswap.c $(SYMBOL_FILES)

check :
	@if [ -x /usr/bin/python ]; then $(srcdir)/binheader_writef_check.py $(srcdir)/*.c ; fi
	G72x/g72x_test$(EXEEXT) all
	./test_main$(EXEEXT)

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

#======================================================================
# Generate an OS specific Symbols files. This is done when the author
# builds the distribution tarball. There should be not need for the
# end user to create these files.

Symbols.gnu-binutils: create_symbols_file.py
	./create_symbols_file.py linux $(VERSION) > $@

Symbols.darwin: create_symbols_file.py
	./create_symbols_file.py darwin $(VERSION) > $@

libsndfile-1.def: create_symbols_file.py
	./create_symbols_file.py win32 $(VERSION) > $@

Symbols.os2: create_symbols_file.py
	./create_symbols_file.py os2 $(VERSION) > $@

Symbols.static: create_symbols_file.py
	./create_symbols_file.py static $(VERSION) > $@

# Fake dependancy to force the creation of these files.
sndfile.o : $(SYMBOL_FILES)

#======================================================================
# Building windows resource files (if needed).

.rc.lo:
	$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --tag=RC --mode=compile $(RC) $(RCFLAGS) $< -o $@

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