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

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

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

@SET_MAKE@


VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
noinst_PROGRAMS = bitset_test$(EXEEXT) args_test$(EXEEXT) \
	rangeset_test$(EXEEXT)
subdir = .
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
	$(srcdir)/Makefile.in $(srcdir)/config.h.in \
	$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
	compile config.guess config.sub depcomp install-sh ltmain.sh \
	missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
 configure.lineno config.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES)
AR = ar
ARFLAGS = cru
libutils_a_AR = $(AR) $(ARFLAGS)
libutils_a_LIBADD =
am_libutils_a_OBJECTS = libutils_a-bitset.$(OBJEXT) \
	libutils_a-args.$(OBJEXT) libutils_a-list.$(OBJEXT) \
	libutils_a-hash.$(OBJEXT) libutils_a-handler.$(OBJEXT) \
	libutils_a-compat.$(OBJEXT) libutils_a-rangeset.$(OBJEXT) \
	libutils_a-serdes.$(OBJEXT)
libutils_a_OBJECTS = $(am_libutils_a_OBJECTS)
PROGRAMS = $(noinst_PROGRAMS)
am_args_test_OBJECTS = args_test-args_test.$(OBJEXT)
args_test_OBJECTS = $(am_args_test_OBJECTS)
args_test_DEPENDENCIES = libutils.a
args_test_LINK = $(CCLD) $(args_test_CFLAGS) $(CFLAGS) \
	$(args_test_LDFLAGS) $(LDFLAGS) -o $@
am_bitset_test_OBJECTS = bitset_test-bitset_test.$(OBJEXT)
bitset_test_OBJECTS = $(am_bitset_test_OBJECTS)
bitset_test_DEPENDENCIES = libutils.a
bitset_test_LINK = $(CCLD) $(bitset_test_CFLAGS) $(CFLAGS) \
	$(bitset_test_LDFLAGS) $(LDFLAGS) -o $@
am_rangeset_test_OBJECTS = rangeset_test-rangeset_test.$(OBJEXT)
rangeset_test_OBJECTS = $(am_rangeset_test_OBJECTS)
rangeset_test_DEPENDENCIES = libutils.a
rangeset_test_LINK = $(CCLD) $(rangeset_test_CFLAGS) $(CFLAGS) \
	$(rangeset_test_LDFLAGS) $(LDFLAGS) -o $@
DEFAULT_INCLUDES = -I.@am__isrc@
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(libutils_a_SOURCES) $(args_test_SOURCES) \
	$(bitset_test_SOURCES) $(rangeset_test_SOURCES)
DIST_SOURCES = $(libutils_a_SOURCES) $(args_test_SOURCES) \
	$(bitset_test_SOURCES) $(rangeset_test_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
  { test ! -d $(distdir) \
    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
         && rm -fr $(distdir); }; }
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EXEEXT = @EXEEXT@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
OBJEXT = @OBJEXT@
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@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
noinst_LIBRARIES = libutils.a
libutils_a_SOURCES = src/bitset.c \
						src/args.c \
						src/list.c \
						src/hash.c \
						src/handler.c \
						src/compat.c \
						src/rangeset.c \
						src/serdes.c

libutils_a_CFLAGS = -I./include $(AM_CFLAGS) -g 
bitset_test_SOURCES = src/bitset_test.c
bitset_test_CFLAGS = -I./include $(AM_CFLAGS) -g
bitset_test_LDFLAGS = -g
bitset_test_LDADD = libutils.a
args_test_SOURCES = src/args_test.c
args_test_CFLAGS = -I./include $(AM_CFLAGS) -g
args_test_LDFLAGS = -g
args_test_LDADD = libutils.a
rangeset_test_SOURCES = src/rangeset_test.c
rangeset_test_CFLAGS = -I./include $(AM_CFLAGS) -g
rangeset_test_LDFLAGS = -g
rangeset_test_LDADD = libutils.a
all: config.h
	$(MAKE) $(AM_MAKEFLAGS) all-am

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

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

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

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 config.h
$(srcdir)/config.h.in:  $(am__configure_deps) 
	cd $(top_srcdir) && $(AUTOHEADER)
	rm -f stamp-h1
	touch $@

distclean-hdr:
	-rm -f config.h stamp-h1

clean-noinstLIBRARIES:
	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
libutils.a: $(libutils_a_OBJECTS) $(libutils_a_DEPENDENCIES) 
	-rm -f libutils.a
	$(libutils_a_AR) libutils.a $(libutils_a_OBJECTS) $(libutils_a_LIBADD)
	$(RANLIB) libutils.a

clean-noinstPROGRAMS:
	-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
args_test$(EXEEXT): $(args_test_OBJECTS) $(args_test_DEPENDENCIES) 
	@rm -f args_test$(EXEEXT)
	$(args_test_LINK) $(args_test_OBJECTS) $(args_test_LDADD) $(LIBS)
bitset_test$(EXEEXT): $(bitset_test_OBJECTS) $(bitset_test_DEPENDENCIES) 
	@rm -f bitset_test$(EXEEXT)
	$(bitset_test_LINK) $(bitset_test_OBJECTS) $(bitset_test_LDADD) $(LIBS)
rangeset_test$(EXEEXT): $(rangeset_test_OBJECTS) $(rangeset_test_DEPENDENCIES) 
	@rm -f rangeset_test$(EXEEXT)
	$(rangeset_test_LINK) $(rangeset_test_OBJECTS) $(rangeset_test_LDADD) $(LIBS)

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

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

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/args_test-args_test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bitset_test-bitset_test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libutils_a-args.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libutils_a-bitset.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libutils_a-compat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libutils_a-handler.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libutils_a-hash.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libutils_a-list.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libutils_a-rangeset.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libutils_a-serdes.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rangeset_test-rangeset_test.Po@am__quote@

.c.o:
@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(COMPILE) -c $<

.c.obj:
@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`

libutils_a-bitset.o: src/bitset.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -MT libutils_a-bitset.o -MD -MP -MF $(DEPDIR)/libutils_a-bitset.Tpo -c -o libutils_a-bitset.o `test -f 'src/bitset.c' || echo '$(srcdir)/'`src/bitset.c
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libutils_a-bitset.Tpo $(DEPDIR)/libutils_a-bitset.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/bitset.c' object='libutils_a-bitset.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -c -o libutils_a-bitset.o `test -f 'src/bitset.c' || echo '$(srcdir)/'`src/bitset.c

libutils_a-bitset.obj: src/bitset.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -MT libutils_a-bitset.obj -MD -MP -MF $(DEPDIR)/libutils_a-bitset.Tpo -c -o libutils_a-bitset.obj `if test -f 'src/bitset.c'; then $(CYGPATH_W) 'src/bitset.c'; else $(CYGPATH_W) '$(srcdir)/src/bitset.c'; fi`
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libutils_a-bitset.Tpo $(DEPDIR)/libutils_a-bitset.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/bitset.c' object='libutils_a-bitset.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -c -o libutils_a-bitset.obj `if test -f 'src/bitset.c'; then $(CYGPATH_W) 'src/bitset.c'; else $(CYGPATH_W) '$(srcdir)/src/bitset.c'; fi`

libutils_a-args.o: src/args.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -MT libutils_a-args.o -MD -MP -MF $(DEPDIR)/libutils_a-args.Tpo -c -o libutils_a-args.o `test -f 'src/args.c' || echo '$(srcdir)/'`src/args.c
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libutils_a-args.Tpo $(DEPDIR)/libutils_a-args.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/args.c' object='libutils_a-args.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -c -o libutils_a-args.o `test -f 'src/args.c' || echo '$(srcdir)/'`src/args.c

libutils_a-args.obj: src/args.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -MT libutils_a-args.obj -MD -MP -MF $(DEPDIR)/libutils_a-args.Tpo -c -o libutils_a-args.obj `if test -f 'src/args.c'; then $(CYGPATH_W) 'src/args.c'; else $(CYGPATH_W) '$(srcdir)/src/args.c'; fi`
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libutils_a-args.Tpo $(DEPDIR)/libutils_a-args.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/args.c' object='libutils_a-args.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -c -o libutils_a-args.obj `if test -f 'src/args.c'; then $(CYGPATH_W) 'src/args.c'; else $(CYGPATH_W) '$(srcdir)/src/args.c'; fi`

libutils_a-list.o: src/list.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -MT libutils_a-list.o -MD -MP -MF $(DEPDIR)/libutils_a-list.Tpo -c -o libutils_a-list.o `test -f 'src/list.c' || echo '$(srcdir)/'`src/list.c
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libutils_a-list.Tpo $(DEPDIR)/libutils_a-list.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/list.c' object='libutils_a-list.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -c -o libutils_a-list.o `test -f 'src/list.c' || echo '$(srcdir)/'`src/list.c

libutils_a-list.obj: src/list.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -MT libutils_a-list.obj -MD -MP -MF $(DEPDIR)/libutils_a-list.Tpo -c -o libutils_a-list.obj `if test -f 'src/list.c'; then $(CYGPATH_W) 'src/list.c'; else $(CYGPATH_W) '$(srcdir)/src/list.c'; fi`
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libutils_a-list.Tpo $(DEPDIR)/libutils_a-list.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/list.c' object='libutils_a-list.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -c -o libutils_a-list.obj `if test -f 'src/list.c'; then $(CYGPATH_W) 'src/list.c'; else $(CYGPATH_W) '$(srcdir)/src/list.c'; fi`

libutils_a-hash.o: src/hash.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -MT libutils_a-hash.o -MD -MP -MF $(DEPDIR)/libutils_a-hash.Tpo -c -o libutils_a-hash.o `test -f 'src/hash.c' || echo '$(srcdir)/'`src/hash.c
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libutils_a-hash.Tpo $(DEPDIR)/libutils_a-hash.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/hash.c' object='libutils_a-hash.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -c -o libutils_a-hash.o `test -f 'src/hash.c' || echo '$(srcdir)/'`src/hash.c

libutils_a-hash.obj: src/hash.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -MT libutils_a-hash.obj -MD -MP -MF $(DEPDIR)/libutils_a-hash.Tpo -c -o libutils_a-hash.obj `if test -f 'src/hash.c'; then $(CYGPATH_W) 'src/hash.c'; else $(CYGPATH_W) '$(srcdir)/src/hash.c'; fi`
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libutils_a-hash.Tpo $(DEPDIR)/libutils_a-hash.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/hash.c' object='libutils_a-hash.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -c -o libutils_a-hash.obj `if test -f 'src/hash.c'; then $(CYGPATH_W) 'src/hash.c'; else $(CYGPATH_W) '$(srcdir)/src/hash.c'; fi`

libutils_a-handler.o: src/handler.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -MT libutils_a-handler.o -MD -MP -MF $(DEPDIR)/libutils_a-handler.Tpo -c -o libutils_a-handler.o `test -f 'src/handler.c' || echo '$(srcdir)/'`src/handler.c
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libutils_a-handler.Tpo $(DEPDIR)/libutils_a-handler.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/handler.c' object='libutils_a-handler.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -c -o libutils_a-handler.o `test -f 'src/handler.c' || echo '$(srcdir)/'`src/handler.c

libutils_a-handler.obj: src/handler.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -MT libutils_a-handler.obj -MD -MP -MF $(DEPDIR)/libutils_a-handler.Tpo -c -o libutils_a-handler.obj `if test -f 'src/handler.c'; then $(CYGPATH_W) 'src/handler.c'; else $(CYGPATH_W) '$(srcdir)/src/handler.c'; fi`
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libutils_a-handler.Tpo $(DEPDIR)/libutils_a-handler.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/handler.c' object='libutils_a-handler.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -c -o libutils_a-handler.obj `if test -f 'src/handler.c'; then $(CYGPATH_W) 'src/handler.c'; else $(CYGPATH_W) '$(srcdir)/src/handler.c'; fi`

libutils_a-compat.o: src/compat.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -MT libutils_a-compat.o -MD -MP -MF $(DEPDIR)/libutils_a-compat.Tpo -c -o libutils_a-compat.o `test -f 'src/compat.c' || echo '$(srcdir)/'`src/compat.c
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libutils_a-compat.Tpo $(DEPDIR)/libutils_a-compat.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/compat.c' object='libutils_a-compat.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -c -o libutils_a-compat.o `test -f 'src/compat.c' || echo '$(srcdir)/'`src/compat.c

libutils_a-compat.obj: src/compat.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -MT libutils_a-compat.obj -MD -MP -MF $(DEPDIR)/libutils_a-compat.Tpo -c -o libutils_a-compat.obj `if test -f 'src/compat.c'; then $(CYGPATH_W) 'src/compat.c'; else $(CYGPATH_W) '$(srcdir)/src/compat.c'; fi`
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libutils_a-compat.Tpo $(DEPDIR)/libutils_a-compat.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/compat.c' object='libutils_a-compat.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -c -o libutils_a-compat.obj `if test -f 'src/compat.c'; then $(CYGPATH_W) 'src/compat.c'; else $(CYGPATH_W) '$(srcdir)/src/compat.c'; fi`

libutils_a-rangeset.o: src/rangeset.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -MT libutils_a-rangeset.o -MD -MP -MF $(DEPDIR)/libutils_a-rangeset.Tpo -c -o libutils_a-rangeset.o `test -f 'src/rangeset.c' || echo '$(srcdir)/'`src/rangeset.c
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libutils_a-rangeset.Tpo $(DEPDIR)/libutils_a-rangeset.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/rangeset.c' object='libutils_a-rangeset.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -c -o libutils_a-rangeset.o `test -f 'src/rangeset.c' || echo '$(srcdir)/'`src/rangeset.c

libutils_a-rangeset.obj: src/rangeset.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -MT libutils_a-rangeset.obj -MD -MP -MF $(DEPDIR)/libutils_a-rangeset.Tpo -c -o libutils_a-rangeset.obj `if test -f 'src/rangeset.c'; then $(CYGPATH_W) 'src/rangeset.c'; else $(CYGPATH_W) '$(srcdir)/src/rangeset.c'; fi`
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libutils_a-rangeset.Tpo $(DEPDIR)/libutils_a-rangeset.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/rangeset.c' object='libutils_a-rangeset.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -c -o libutils_a-rangeset.obj `if test -f 'src/rangeset.c'; then $(CYGPATH_W) 'src/rangeset.c'; else $(CYGPATH_W) '$(srcdir)/src/rangeset.c'; fi`

libutils_a-serdes.o: src/serdes.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -MT libutils_a-serdes.o -MD -MP -MF $(DEPDIR)/libutils_a-serdes.Tpo -c -o libutils_a-serdes.o `test -f 'src/serdes.c' || echo '$(srcdir)/'`src/serdes.c
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libutils_a-serdes.Tpo $(DEPDIR)/libutils_a-serdes.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/serdes.c' object='libutils_a-serdes.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -c -o libutils_a-serdes.o `test -f 'src/serdes.c' || echo '$(srcdir)/'`src/serdes.c

libutils_a-serdes.obj: src/serdes.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -MT libutils_a-serdes.obj -MD -MP -MF $(DEPDIR)/libutils_a-serdes.Tpo -c -o libutils_a-serdes.obj `if test -f 'src/serdes.c'; then $(CYGPATH_W) 'src/serdes.c'; else $(CYGPATH_W) '$(srcdir)/src/serdes.c'; fi`
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libutils_a-serdes.Tpo $(DEPDIR)/libutils_a-serdes.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/serdes.c' object='libutils_a-serdes.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libutils_a_CFLAGS) $(CFLAGS) -c -o libutils_a-serdes.obj `if test -f 'src/serdes.c'; then $(CYGPATH_W) 'src/serdes.c'; else $(CYGPATH_W) '$(srcdir)/src/serdes.c'; fi`

args_test-args_test.o: src/args_test.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(args_test_CFLAGS) $(CFLAGS) -MT args_test-args_test.o -MD -MP -MF $(DEPDIR)/args_test-args_test.Tpo -c -o args_test-args_test.o `test -f 'src/args_test.c' || echo '$(srcdir)/'`src/args_test.c
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/args_test-args_test.Tpo $(DEPDIR)/args_test-args_test.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/args_test.c' object='args_test-args_test.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(args_test_CFLAGS) $(CFLAGS) -c -o args_test-args_test.o `test -f 'src/args_test.c' || echo '$(srcdir)/'`src/args_test.c

args_test-args_test.obj: src/args_test.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(args_test_CFLAGS) $(CFLAGS) -MT args_test-args_test.obj -MD -MP -MF $(DEPDIR)/args_test-args_test.Tpo -c -o args_test-args_test.obj `if test -f 'src/args_test.c'; then $(CYGPATH_W) 'src/args_test.c'; else $(CYGPATH_W) '$(srcdir)/src/args_test.c'; fi`
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/args_test-args_test.Tpo $(DEPDIR)/args_test-args_test.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/args_test.c' object='args_test-args_test.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(args_test_CFLAGS) $(CFLAGS) -c -o args_test-args_test.obj `if test -f 'src/args_test.c'; then $(CYGPATH_W) 'src/args_test.c'; else $(CYGPATH_W) '$(srcdir)/src/args_test.c'; fi`

bitset_test-bitset_test.o: src/bitset_test.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bitset_test_CFLAGS) $(CFLAGS) -MT bitset_test-bitset_test.o -MD -MP -MF $(DEPDIR)/bitset_test-bitset_test.Tpo -c -o bitset_test-bitset_test.o `test -f 'src/bitset_test.c' || echo '$(srcdir)/'`src/bitset_test.c
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/bitset_test-bitset_test.Tpo $(DEPDIR)/bitset_test-bitset_test.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/bitset_test.c' object='bitset_test-bitset_test.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bitset_test_CFLAGS) $(CFLAGS) -c -o bitset_test-bitset_test.o `test -f 'src/bitset_test.c' || echo '$(srcdir)/'`src/bitset_test.c

bitset_test-bitset_test.obj: src/bitset_test.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bitset_test_CFLAGS) $(CFLAGS) -MT bitset_test-bitset_test.obj -MD -MP -MF $(DEPDIR)/bitset_test-bitset_test.Tpo -c -o bitset_test-bitset_test.obj `if test -f 'src/bitset_test.c'; then $(CYGPATH_W) 'src/bitset_test.c'; else $(CYGPATH_W) '$(srcdir)/src/bitset_test.c'; fi`
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/bitset_test-bitset_test.Tpo $(DEPDIR)/bitset_test-bitset_test.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/bitset_test.c' object='bitset_test-bitset_test.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(bitset_test_CFLAGS) $(CFLAGS) -c -o bitset_test-bitset_test.obj `if test -f 'src/bitset_test.c'; then $(CYGPATH_W) 'src/bitset_test.c'; else $(CYGPATH_W) '$(srcdir)/src/bitset_test.c'; fi`

rangeset_test-rangeset_test.o: src/rangeset_test.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rangeset_test_CFLAGS) $(CFLAGS) -MT rangeset_test-rangeset_test.o -MD -MP -MF $(DEPDIR)/rangeset_test-rangeset_test.Tpo -c -o rangeset_test-rangeset_test.o `test -f 'src/rangeset_test.c' || echo '$(srcdir)/'`src/rangeset_test.c
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/rangeset_test-rangeset_test.Tpo $(DEPDIR)/rangeset_test-rangeset_test.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/rangeset_test.c' object='rangeset_test-rangeset_test.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rangeset_test_CFLAGS) $(CFLAGS) -c -o rangeset_test-rangeset_test.o `test -f 'src/rangeset_test.c' || echo '$(srcdir)/'`src/rangeset_test.c

rangeset_test-rangeset_test.obj: src/rangeset_test.c
@am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rangeset_test_CFLAGS) $(CFLAGS) -MT rangeset_test-rangeset_test.obj -MD -MP -MF $(DEPDIR)/rangeset_test-rangeset_test.Tpo -c -o rangeset_test-rangeset_test.obj `if test -f 'src/rangeset_test.c'; then $(CYGPATH_W) 'src/rangeset_test.c'; else $(CYGPATH_W) '$(srcdir)/src/rangeset_test.c'; fi`
@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/rangeset_test-rangeset_test.Tpo $(DEPDIR)/rangeset_test-rangeset_test.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/rangeset_test.c' object='rangeset_test-rangeset_test.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rangeset_test_CFLAGS) $(CFLAGS) -c -o rangeset_test-rangeset_test.obj `if test -f 'src/rangeset_test.c'; then $(CYGPATH_W) 'src/rangeset_test.c'; else $(CYGPATH_W) '$(srcdir)/src/rangeset_test.c'; fi`

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) config.h.in $(TAGS_DEPENDENCIES) \
		$(TAGS_FILES) $(LISP)
	tags=; \
	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; } \
	       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) config.h.in $(TAGS_DEPENDENCIES) \
		$(TAGS_FILES) $(LISP)
	tags=; \
	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; } \
	       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

distdir: $(DISTFILES)
	$(am__remove_distdir)
	test -d $(distdir) || mkdir $(distdir)
	@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 $(srcdir)/$$file && test $$d != $(srcdir); then \
	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
	    fi; \
	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
	  else \
	    test -f $(distdir)/$$file \
	    || cp -p $$d/$$file $(distdir)/$$file \
	    || exit 1; \
	  fi; \
	done
	-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
	|| chmod -R a+r $(distdir)
dist-gzip: distdir
	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
	$(am__remove_distdir)

dist-bzip2: distdir
	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
	$(am__remove_distdir)

dist-tarZ: distdir
	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
	$(am__remove_distdir)

dist-shar: distdir
	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
	$(am__remove_distdir)

dist-zip: distdir
	-rm -f $(distdir).zip
	zip -rq $(distdir).zip $(distdir)
	$(am__remove_distdir)

dist dist-all: distdir
	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
	$(am__remove_distdir)

# This target untars the dist file and tries a VPATH configuration.  Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
	case '$(DIST_ARCHIVES)' in \
	*.tar.gz*) \
	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
	*.tar.bz2*) \
	  bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
	*.tar.Z*) \
	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
	*.shar.gz*) \
	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
	*.zip*) \
	  unzip $(distdir).zip ;;\
	esac
	chmod -R a-w $(distdir); chmod a+w $(distdir)
	mkdir $(distdir)/_build
	mkdir $(distdir)/_inst
	chmod a-w $(distdir)
	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
	  && cd $(distdir)/_build \
	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
	    $(DISTCHECK_CONFIGURE_FLAGS) \
	  && $(MAKE) $(AM_MAKEFLAGS) \
	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
	  && $(MAKE) $(AM_MAKEFLAGS) check \
	  && $(MAKE) $(AM_MAKEFLAGS) install \
	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
	        distuninstallcheck \
	  && chmod -R a-w "$$dc_install_base" \
	  && ({ \
	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
	  && rm -rf "$$dc_destdir" \
	  && $(MAKE) $(AM_MAKEFLAGS) dist \
	  && rm -rf $(DIST_ARCHIVES) \
	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
	$(am__remove_distdir)
	@(echo "$(distdir) archives ready for distribution: "; \
	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck:
	@cd $(distuninstallcheck_dir) \
	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
	   || { echo "ERROR: files left after uninstall:" ; \
	        if test -n "$(DESTDIR)"; then \
	          echo "  (check DESTDIR support)"; \
	        fi ; \
	        $(distuninstallcheck_listfiles) ; \
	        exit 1; } >&2
distcleancheck: distclean
	@if test '$(srcdir)' = . ; then \
	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
	  exit 1 ; \
	fi
	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
	  || { echo "ERROR: files left in build directory after distclean:" ; \
	       $(distcleancheck_listfiles) ; \
	       exit 1; } >&2
check-am: all-am
check: check-am
all-am: Makefile $(LIBRARIES) $(PROGRAMS) config.h
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-noinstLIBRARIES clean-noinstPROGRAMS \
	mostlyclean-am

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

dvi: dvi-am

dvi-am:

html: html-am

info: info-am

info-am:

install-data-am:

install-dvi: install-dvi-am

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

installcheck-am:

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

mostlyclean: mostlyclean-am

mostlyclean-am: mostlyclean-compile mostlyclean-generic

pdf: pdf-am

pdf-am:

ps: ps-am

ps-am:

uninstall-am:

.MAKE: install-am install-strip

.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
	clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS ctags \
	dist dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ \
	dist-zip distcheck distclean distclean-compile \
	distclean-generic distclean-hdr distclean-tags distcleancheck \
	distdir distuninstallcheck 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 pdf pdf-am \
	ps ps-am tags uninstall uninstall-am

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