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

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

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

@SET_MAKE@



srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(srcdir)/../../../../Makefile.shared \
	$(srcdir)/Makefile.in $(srcdir)/Makefile.am
subdir = cmath
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(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)/../../../confsubdir.m4 \
	$(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs
CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES)
ARFLAGS = cru
lib_a_AR = $(AR) $(ARFLAGS)
lib_a_LIBADD =
am__objects_1 = lib_a-s_cacos.$(OBJEXT) lib_a-s_casinf.$(OBJEXT) \
	lib_a-s_catanh.$(OBJEXT) lib_a-s_ccosh.$(OBJEXT) \
	lib_a-s_clog.$(OBJEXT) lib_a-s_cpowf.$(OBJEXT) \
	lib_a-s_csinh.$(OBJEXT) lib_a-s_ctan.$(OBJEXT) \
	lib_a-s_cacosf.$(OBJEXT) lib_a-s_casinh.$(OBJEXT) \
	lib_a-s_catanhf.$(OBJEXT) lib_a-s_ccoshf.$(OBJEXT) \
	lib_a-s_clog10.$(OBJEXT) lib_a-s_csinhf.$(OBJEXT) \
	lib_a-s_ctanf.$(OBJEXT) lib_a-s_cacosh.$(OBJEXT) \
	lib_a-s_casinhf.$(OBJEXT) lib_a-s_clog10f.$(OBJEXT) \
	lib_a-s_cproj.$(OBJEXT) lib_a-s_ctanh.$(OBJEXT) \
	lib_a-s_cacoshf.$(OBJEXT) lib_a-s_cprojf.$(OBJEXT) \
	lib_a-s_ctanhf.$(OBJEXT) lib_a-s_cexp.$(OBJEXT) \
	lib_a-s_clogf.$(OBJEXT) lib_a-s_csqrt.$(OBJEXT) \
	lib_a-s_catan.$(OBJEXT) lib_a-s_ccos.$(OBJEXT) \
	lib_a-s_cexpf.$(OBJEXT) lib_a-s_csin.$(OBJEXT) \
	lib_a-s_csqrtf.$(OBJEXT) lib_a-s_casin.$(OBJEXT) \
	lib_a-s_catanf.$(OBJEXT) lib_a-s_ccosf.$(OBJEXT) \
	lib_a-s_cpow.$(OBJEXT) lib_a-s_csinf.$(OBJEXT)
@USE_LIBTOOL_FALSE@am_lib_a_OBJECTS = $(am__objects_1)
lib_a_OBJECTS = $(am_lib_a_OBJECTS)
LTLIBRARIES = $(noinst_LTLIBRARIES)
libcmath_la_LIBADD =
am__objects_2 = s_cacos.lo s_casinf.lo s_catanh.lo s_ccosh.lo \
	s_clog.lo s_cpowf.lo s_csinh.lo s_ctan.lo s_cacosf.lo \
	s_casinh.lo s_catanhf.lo s_ccoshf.lo s_clog10.lo s_csinhf.lo \
	s_ctanf.lo s_cacosh.lo s_casinhf.lo s_clog10f.lo s_cproj.lo \
	s_ctanh.lo s_cacoshf.lo s_cprojf.lo s_ctanhf.lo s_cexp.lo \
	s_clogf.lo s_csqrt.lo s_catan.lo s_ccos.lo s_cexpf.lo \
	s_csin.lo s_csqrtf.lo s_casin.lo s_catanf.lo s_ccosf.lo \
	s_cpow.lo s_csinf.lo
@USE_LIBTOOL_TRUE@am_libcmath_la_OBJECTS = $(am__objects_2)
libcmath_la_OBJECTS = $(am_libcmath_la_OBJECTS)
@USE_LIBTOOL_TRUE@am_libcmath_la_rpath =
DEFAULT_INCLUDES = -I. -I$(srcdir)
depcomp =
am__depfiles_maybe =
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
	$(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
	$(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(lib_a_SOURCES) $(libcmath_la_SOURCES)
DATA = $(noinst_DATA)
ETAGS = etags
CTAGS = ctags
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
AS = @AS@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCAS = @CCAS@
CCASFLAGS = @CCASFLAGS@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ELIX_LEVEL_0_FALSE = @ELIX_LEVEL_0_FALSE@
ELIX_LEVEL_0_TRUE = @ELIX_LEVEL_0_TRUE@
ELIX_LEVEL_1_FALSE = @ELIX_LEVEL_1_FALSE@
ELIX_LEVEL_1_TRUE = @ELIX_LEVEL_1_TRUE@
ELIX_LEVEL_2_FALSE = @ELIX_LEVEL_2_FALSE@
ELIX_LEVEL_2_TRUE = @ELIX_LEVEL_2_TRUE@
ELIX_LEVEL_3_FALSE = @ELIX_LEVEL_3_FALSE@
ELIX_LEVEL_3_TRUE = @ELIX_LEVEL_3_TRUE@
ELIX_LEVEL_4_FALSE = @ELIX_LEVEL_4_FALSE@
ELIX_LEVEL_4_TRUE = @ELIX_LEVEL_4_TRUE@
EXEEXT = @EXEEXT@
EXTRA_SUBDIRS = @EXTRA_SUBDIRS@
EXTRA_SUBLIBS = @EXTRA_SUBLIBS@
FGREP = @FGREP@
GREP = @GREP@
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@
LINUX_MACH_LIB = @LINUX_MACH_LIB@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MAY_SUPPLY_SYSCALLS_FALSE = @MAY_SUPPLY_SYSCALLS_FALSE@
MAY_SUPPLY_SYSCALLS_TRUE = @MAY_SUPPLY_SYSCALLS_TRUE@
NEWLIB_CFLAGS = @NEWLIB_CFLAGS@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
RANLIB = @RANLIB@
READELF = @READELF@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
USE_LIBTOOL_FALSE = @USE_LIBTOOL_FALSE@
USE_LIBTOOL_TRUE = @USE_LIBTOOL_TRUE@
VERSION = @VERSION@
ac_ct_AR = @ac_ct_AR@
ac_ct_AS = @ac_ct_AS@
ac_ct_CC = @ac_ct_CC@
ac_ct_DLLTOOL = @ac_ct_DLLTOOL@
ac_ct_DSYMUTIL = @ac_ct_DSYMUTIL@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
ac_ct_LIPO = @ac_ct_LIPO@
ac_ct_NMEDIT = @ac_ct_NMEDIT@
ac_ct_OBJDUMP = @ac_ct_OBJDUMP@
ac_ct_OTOOL = @ac_ct_OTOOL@
ac_ct_OTOOL64 = @ac_ct_OTOOL64@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_READELF = @ac_ct_READELF@
ac_ct_STRIP = @ac_ct_STRIP@
aext = @aext@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
libm_machine_dir = @libm_machine_dir@
localstatedir = @localstatedir@
lpfx = @lpfx@
lt_ECHO = @lt_ECHO@
machine_dir = @machine_dir@
mandir = @mandir@
mkdir_p = @mkdir_p@
newlib_basedir = @newlib_basedir@
oext = @oext@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
subdirs = @subdirs@
sys_dir = @sys_dir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
AUTOMAKE_OPTIONS = cygnus
INCLUDES = -I$(srcdir)/../include $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
LIB_SOURCES = \
	s_cacos.c    s_casinf.c   s_catanh.c   s_ccosh.c   s_clog.c     s_cpowf.c   s_csinh.c   s_ctan.c \
	s_cacosf.c   s_casinh.c   s_catanhf.c  s_ccoshf.c  s_clog10.c   s_csinhf.c  s_ctanf.c \
	s_cacosh.c   s_casinhf.c  s_clog10f.c  s_cproj.c   s_ctanh.c \
	s_cacoshf.c  s_cprojf.c  s_ctanhf.c \
	s_cexp.c    s_clogf.c    s_csqrt.c  \
	s_catan.c    s_ccos.c     s_cexpf.c   s_csin.c    s_csqrtf.c  \
	s_casin.c    s_catanf.c   s_ccosf.c    s_cpow.c     s_csinf.c   

libcmath_la_LDFLAGS = -Xcompiler -nostdlib
@USE_LIBTOOL_TRUE@noinst_LTLIBRARIES = libcmath.la
@USE_LIBTOOL_TRUE@libcmath_la_SOURCES = $(LIB_SOURCES)
@USE_LIBTOOL_FALSE@noinst_DATA = 
@USE_LIBTOOL_TRUE@noinst_DATA = objectlist.awk.in
@USE_LIBTOOL_FALSE@noinst_LIBRARIES = lib.a
@USE_LIBTOOL_FALSE@lib_a_SOURCES = $(LIB_SOURCES)
@USE_LIBTOOL_FALSE@lib_a_CFLAGS = $(AM_CFLAGS)
all: all-am

.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../../../Makefile.shared $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \
	    *$$dep*) \
	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
		&& exit 0; \
	      exit 1;; \
	  esac; \
	done; \
	echo ' cd $(top_srcdir) && $(AUTOMAKE) --cygnus  cmath/Makefile'; \
	cd $(top_srcdir) && \
	  $(AUTOMAKE) --cygnus  cmath/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: @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

clean-noinstLIBRARIES:
	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) 
	-rm -f lib.a
	$(lib_a_AR) lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD)
	$(RANLIB) lib.a

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
libcmath.la: $(libcmath_la_OBJECTS) $(libcmath_la_DEPENDENCIES) 
	$(LINK) $(am_libcmath_la_rpath) $(libcmath_la_LDFLAGS) $(libcmath_la_OBJECTS) $(libcmath_la_LIBADD) $(LIBS)

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

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

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

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

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

lib_a-s_cacos.o: s_cacos.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cacos.o `test -f 's_cacos.c' || echo '$(srcdir)/'`s_cacos.c

lib_a-s_cacos.obj: s_cacos.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cacos.obj `if test -f 's_cacos.c'; then $(CYGPATH_W) 's_cacos.c'; else $(CYGPATH_W) '$(srcdir)/s_cacos.c'; fi`

lib_a-s_casinf.o: s_casinf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_casinf.o `test -f 's_casinf.c' || echo '$(srcdir)/'`s_casinf.c

lib_a-s_casinf.obj: s_casinf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_casinf.obj `if test -f 's_casinf.c'; then $(CYGPATH_W) 's_casinf.c'; else $(CYGPATH_W) '$(srcdir)/s_casinf.c'; fi`

lib_a-s_catanh.o: s_catanh.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_catanh.o `test -f 's_catanh.c' || echo '$(srcdir)/'`s_catanh.c

lib_a-s_catanh.obj: s_catanh.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_catanh.obj `if test -f 's_catanh.c'; then $(CYGPATH_W) 's_catanh.c'; else $(CYGPATH_W) '$(srcdir)/s_catanh.c'; fi`

lib_a-s_ccosh.o: s_ccosh.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ccosh.o `test -f 's_ccosh.c' || echo '$(srcdir)/'`s_ccosh.c

lib_a-s_ccosh.obj: s_ccosh.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ccosh.obj `if test -f 's_ccosh.c'; then $(CYGPATH_W) 's_ccosh.c'; else $(CYGPATH_W) '$(srcdir)/s_ccosh.c'; fi`

lib_a-s_clog.o: s_clog.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_clog.o `test -f 's_clog.c' || echo '$(srcdir)/'`s_clog.c

lib_a-s_clog.obj: s_clog.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_clog.obj `if test -f 's_clog.c'; then $(CYGPATH_W) 's_clog.c'; else $(CYGPATH_W) '$(srcdir)/s_clog.c'; fi`

lib_a-s_cpowf.o: s_cpowf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cpowf.o `test -f 's_cpowf.c' || echo '$(srcdir)/'`s_cpowf.c

lib_a-s_cpowf.obj: s_cpowf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cpowf.obj `if test -f 's_cpowf.c'; then $(CYGPATH_W) 's_cpowf.c'; else $(CYGPATH_W) '$(srcdir)/s_cpowf.c'; fi`

lib_a-s_csinh.o: s_csinh.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_csinh.o `test -f 's_csinh.c' || echo '$(srcdir)/'`s_csinh.c

lib_a-s_csinh.obj: s_csinh.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_csinh.obj `if test -f 's_csinh.c'; then $(CYGPATH_W) 's_csinh.c'; else $(CYGPATH_W) '$(srcdir)/s_csinh.c'; fi`

lib_a-s_ctan.o: s_ctan.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ctan.o `test -f 's_ctan.c' || echo '$(srcdir)/'`s_ctan.c

lib_a-s_ctan.obj: s_ctan.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ctan.obj `if test -f 's_ctan.c'; then $(CYGPATH_W) 's_ctan.c'; else $(CYGPATH_W) '$(srcdir)/s_ctan.c'; fi`

lib_a-s_cacosf.o: s_cacosf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cacosf.o `test -f 's_cacosf.c' || echo '$(srcdir)/'`s_cacosf.c

lib_a-s_cacosf.obj: s_cacosf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cacosf.obj `if test -f 's_cacosf.c'; then $(CYGPATH_W) 's_cacosf.c'; else $(CYGPATH_W) '$(srcdir)/s_cacosf.c'; fi`

lib_a-s_casinh.o: s_casinh.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_casinh.o `test -f 's_casinh.c' || echo '$(srcdir)/'`s_casinh.c

lib_a-s_casinh.obj: s_casinh.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_casinh.obj `if test -f 's_casinh.c'; then $(CYGPATH_W) 's_casinh.c'; else $(CYGPATH_W) '$(srcdir)/s_casinh.c'; fi`

lib_a-s_catanhf.o: s_catanhf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_catanhf.o `test -f 's_catanhf.c' || echo '$(srcdir)/'`s_catanhf.c

lib_a-s_catanhf.obj: s_catanhf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_catanhf.obj `if test -f 's_catanhf.c'; then $(CYGPATH_W) 's_catanhf.c'; else $(CYGPATH_W) '$(srcdir)/s_catanhf.c'; fi`

lib_a-s_ccoshf.o: s_ccoshf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ccoshf.o `test -f 's_ccoshf.c' || echo '$(srcdir)/'`s_ccoshf.c

lib_a-s_ccoshf.obj: s_ccoshf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ccoshf.obj `if test -f 's_ccoshf.c'; then $(CYGPATH_W) 's_ccoshf.c'; else $(CYGPATH_W) '$(srcdir)/s_ccoshf.c'; fi`

lib_a-s_clog10.o: s_clog10.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_clog10.o `test -f 's_clog10.c' || echo '$(srcdir)/'`s_clog10.c

lib_a-s_clog10.obj: s_clog10.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_clog10.obj `if test -f 's_clog10.c'; then $(CYGPATH_W) 's_clog10.c'; else $(CYGPATH_W) '$(srcdir)/s_clog10.c'; fi`

lib_a-s_csinhf.o: s_csinhf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_csinhf.o `test -f 's_csinhf.c' || echo '$(srcdir)/'`s_csinhf.c

lib_a-s_csinhf.obj: s_csinhf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_csinhf.obj `if test -f 's_csinhf.c'; then $(CYGPATH_W) 's_csinhf.c'; else $(CYGPATH_W) '$(srcdir)/s_csinhf.c'; fi`

lib_a-s_ctanf.o: s_ctanf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ctanf.o `test -f 's_ctanf.c' || echo '$(srcdir)/'`s_ctanf.c

lib_a-s_ctanf.obj: s_ctanf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ctanf.obj `if test -f 's_ctanf.c'; then $(CYGPATH_W) 's_ctanf.c'; else $(CYGPATH_W) '$(srcdir)/s_ctanf.c'; fi`

lib_a-s_cacosh.o: s_cacosh.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cacosh.o `test -f 's_cacosh.c' || echo '$(srcdir)/'`s_cacosh.c

lib_a-s_cacosh.obj: s_cacosh.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cacosh.obj `if test -f 's_cacosh.c'; then $(CYGPATH_W) 's_cacosh.c'; else $(CYGPATH_W) '$(srcdir)/s_cacosh.c'; fi`

lib_a-s_casinhf.o: s_casinhf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_casinhf.o `test -f 's_casinhf.c' || echo '$(srcdir)/'`s_casinhf.c

lib_a-s_casinhf.obj: s_casinhf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_casinhf.obj `if test -f 's_casinhf.c'; then $(CYGPATH_W) 's_casinhf.c'; else $(CYGPATH_W) '$(srcdir)/s_casinhf.c'; fi`

lib_a-s_clog10f.o: s_clog10f.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_clog10f.o `test -f 's_clog10f.c' || echo '$(srcdir)/'`s_clog10f.c

lib_a-s_clog10f.obj: s_clog10f.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_clog10f.obj `if test -f 's_clog10f.c'; then $(CYGPATH_W) 's_clog10f.c'; else $(CYGPATH_W) '$(srcdir)/s_clog10f.c'; fi`

lib_a-s_cproj.o: s_cproj.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cproj.o `test -f 's_cproj.c' || echo '$(srcdir)/'`s_cproj.c

lib_a-s_cproj.obj: s_cproj.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cproj.obj `if test -f 's_cproj.c'; then $(CYGPATH_W) 's_cproj.c'; else $(CYGPATH_W) '$(srcdir)/s_cproj.c'; fi`

lib_a-s_ctanh.o: s_ctanh.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ctanh.o `test -f 's_ctanh.c' || echo '$(srcdir)/'`s_ctanh.c

lib_a-s_ctanh.obj: s_ctanh.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ctanh.obj `if test -f 's_ctanh.c'; then $(CYGPATH_W) 's_ctanh.c'; else $(CYGPATH_W) '$(srcdir)/s_ctanh.c'; fi`

lib_a-s_cacoshf.o: s_cacoshf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cacoshf.o `test -f 's_cacoshf.c' || echo '$(srcdir)/'`s_cacoshf.c

lib_a-s_cacoshf.obj: s_cacoshf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cacoshf.obj `if test -f 's_cacoshf.c'; then $(CYGPATH_W) 's_cacoshf.c'; else $(CYGPATH_W) '$(srcdir)/s_cacoshf.c'; fi`

lib_a-s_cprojf.o: s_cprojf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cprojf.o `test -f 's_cprojf.c' || echo '$(srcdir)/'`s_cprojf.c

lib_a-s_cprojf.obj: s_cprojf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cprojf.obj `if test -f 's_cprojf.c'; then $(CYGPATH_W) 's_cprojf.c'; else $(CYGPATH_W) '$(srcdir)/s_cprojf.c'; fi`

lib_a-s_ctanhf.o: s_ctanhf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ctanhf.o `test -f 's_ctanhf.c' || echo '$(srcdir)/'`s_ctanhf.c

lib_a-s_ctanhf.obj: s_ctanhf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ctanhf.obj `if test -f 's_ctanhf.c'; then $(CYGPATH_W) 's_ctanhf.c'; else $(CYGPATH_W) '$(srcdir)/s_ctanhf.c'; fi`

lib_a-s_cexp.o: s_cexp.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cexp.o `test -f 's_cexp.c' || echo '$(srcdir)/'`s_cexp.c

lib_a-s_cexp.obj: s_cexp.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cexp.obj `if test -f 's_cexp.c'; then $(CYGPATH_W) 's_cexp.c'; else $(CYGPATH_W) '$(srcdir)/s_cexp.c'; fi`

lib_a-s_clogf.o: s_clogf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_clogf.o `test -f 's_clogf.c' || echo '$(srcdir)/'`s_clogf.c

lib_a-s_clogf.obj: s_clogf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_clogf.obj `if test -f 's_clogf.c'; then $(CYGPATH_W) 's_clogf.c'; else $(CYGPATH_W) '$(srcdir)/s_clogf.c'; fi`

lib_a-s_csqrt.o: s_csqrt.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_csqrt.o `test -f 's_csqrt.c' || echo '$(srcdir)/'`s_csqrt.c

lib_a-s_csqrt.obj: s_csqrt.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_csqrt.obj `if test -f 's_csqrt.c'; then $(CYGPATH_W) 's_csqrt.c'; else $(CYGPATH_W) '$(srcdir)/s_csqrt.c'; fi`

lib_a-s_catan.o: s_catan.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_catan.o `test -f 's_catan.c' || echo '$(srcdir)/'`s_catan.c

lib_a-s_catan.obj: s_catan.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_catan.obj `if test -f 's_catan.c'; then $(CYGPATH_W) 's_catan.c'; else $(CYGPATH_W) '$(srcdir)/s_catan.c'; fi`

lib_a-s_ccos.o: s_ccos.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ccos.o `test -f 's_ccos.c' || echo '$(srcdir)/'`s_ccos.c

lib_a-s_ccos.obj: s_ccos.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ccos.obj `if test -f 's_ccos.c'; then $(CYGPATH_W) 's_ccos.c'; else $(CYGPATH_W) '$(srcdir)/s_ccos.c'; fi`

lib_a-s_cexpf.o: s_cexpf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cexpf.o `test -f 's_cexpf.c' || echo '$(srcdir)/'`s_cexpf.c

lib_a-s_cexpf.obj: s_cexpf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cexpf.obj `if test -f 's_cexpf.c'; then $(CYGPATH_W) 's_cexpf.c'; else $(CYGPATH_W) '$(srcdir)/s_cexpf.c'; fi`

lib_a-s_csin.o: s_csin.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_csin.o `test -f 's_csin.c' || echo '$(srcdir)/'`s_csin.c

lib_a-s_csin.obj: s_csin.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_csin.obj `if test -f 's_csin.c'; then $(CYGPATH_W) 's_csin.c'; else $(CYGPATH_W) '$(srcdir)/s_csin.c'; fi`

lib_a-s_csqrtf.o: s_csqrtf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_csqrtf.o `test -f 's_csqrtf.c' || echo '$(srcdir)/'`s_csqrtf.c

lib_a-s_csqrtf.obj: s_csqrtf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_csqrtf.obj `if test -f 's_csqrtf.c'; then $(CYGPATH_W) 's_csqrtf.c'; else $(CYGPATH_W) '$(srcdir)/s_csqrtf.c'; fi`

lib_a-s_casin.o: s_casin.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_casin.o `test -f 's_casin.c' || echo '$(srcdir)/'`s_casin.c

lib_a-s_casin.obj: s_casin.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_casin.obj `if test -f 's_casin.c'; then $(CYGPATH_W) 's_casin.c'; else $(CYGPATH_W) '$(srcdir)/s_casin.c'; fi`

lib_a-s_catanf.o: s_catanf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_catanf.o `test -f 's_catanf.c' || echo '$(srcdir)/'`s_catanf.c

lib_a-s_catanf.obj: s_catanf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_catanf.obj `if test -f 's_catanf.c'; then $(CYGPATH_W) 's_catanf.c'; else $(CYGPATH_W) '$(srcdir)/s_catanf.c'; fi`

lib_a-s_ccosf.o: s_ccosf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ccosf.o `test -f 's_ccosf.c' || echo '$(srcdir)/'`s_ccosf.c

lib_a-s_ccosf.obj: s_ccosf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_ccosf.obj `if test -f 's_ccosf.c'; then $(CYGPATH_W) 's_ccosf.c'; else $(CYGPATH_W) '$(srcdir)/s_ccosf.c'; fi`

lib_a-s_cpow.o: s_cpow.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cpow.o `test -f 's_cpow.c' || echo '$(srcdir)/'`s_cpow.c

lib_a-s_cpow.obj: s_cpow.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_cpow.obj `if test -f 's_cpow.c'; then $(CYGPATH_W) 's_cpow.c'; else $(CYGPATH_W) '$(srcdir)/s_cpow.c'; fi`

lib_a-s_csinf.o: s_csinf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_csinf.o `test -f 's_csinf.c' || echo '$(srcdir)/'`s_csinf.c

lib_a-s_csinf.obj: s_csinf.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_csinf.obj `if test -f 's_csinf.c'; then $(CYGPATH_W) 's_csinf.c'; else $(CYGPATH_W) '$(srcdir)/s_csinf.c'; fi`

mostlyclean-libtool:
	-rm -f *.lo

clean-libtool:
	-rm -rf .libs _libs

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

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

TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
		$(TAGS_FILES) $(LISP)
	tags=; \
	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; } \
	       END { for (i in files) print i; }'`; \
	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
	  test -n "$$unique" || unique=$$empty_fix; \
	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
	    $$tags $$unique; \
	fi
ctags: CTAGS
CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
		$(TAGS_FILES) $(LISP)
	tags=; \
	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; } \
	       END { for (i in files) print i; }'`; \
	test -z "$(CTAGS_ARGS)$$tags$$unique" \
	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
	     $$tags $$unique

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

distclean-tags:
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
check-am:
check: check-am
all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(DATA)
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:

distclean-generic:
	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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 clean-noinstLIBRARIES \
	clean-noinstLTLIBRARIES mostlyclean-am

distclean: distclean-am
	-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
	distclean-libtool distclean-tags

dvi: dvi-am

dvi-am:

html: html-am

info: info-am

info-am:

install-data-am:

install-exec-am:

install-info: install-info-am

install-man:

installcheck-am:

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

.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
	clean-libtool clean-noinstLIBRARIES clean-noinstLTLIBRARIES \
	ctags distclean distclean-compile distclean-generic \
	distclean-libtool distclean-tags dvi dvi-am html html-am info \
	info-am install install-am install-data install-data-am \
	install-exec install-exec-am install-info install-info-am \
	install-man 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-info-am

objectlist.awk.in: $(noinst_LTLIBRARIES)
	-rm -f objectlist.awk.in
	for i in `ls *.lo` ; \
	do \
	  echo $$i `pwd`/$$i >> objectlist.awk.in ; \
	done
# 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:
