# 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@
noinst_PROGRAMS = calculator$(EXEEXT) calculator_test$(EXEEXT) \
	allocate_module_test$(EXEEXT) assert_macro_test$(EXEEXT) \
	customer_database_test$(EXEEXT) key_value_test$(EXEEXT) \
	product_database_test$(EXEEXT) run_tests$(EXEEXT) \
	$(am__EXEEXT_1)
DIST_COMMON = README $(am__configure_deps) $(dist_doc_DATA) \
	$(googleinclude_HEADERS) $(srcdir)/Makefile.am \
	$(srcdir)/Makefile.in $(top_srcdir)/configure \
	$(top_srcdir)/src/config.h.in AUTHORS COPYING ChangeLog \
	INSTALL NEWS compile config.guess config.sub depcomp \
	install-sh ltmain.sh missing mkinstalldirs
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/google_namespace.m4 \
	$(top_srcdir)/m4/namespaces.m4 \
	$(top_srcdir)/m4/stl_namespace.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
 configure.lineno configure.status.lineno
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/src/config.h
CONFIG_CLEAN_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 = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(docdir)" \
	"$(DESTDIR)$(googleincludedir)"
libLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(lib_LTLIBRARIES)
libcmockery_la_LIBADD =
am_libcmockery_la_OBJECTS = libcmockery_la-cmockery.lo
libcmockery_la_OBJECTS = $(am_libcmockery_la_OBJECTS)
am__EXEEXT_1 =
PROGRAMS = $(noinst_PROGRAMS)
am_allocate_module_test_OBJECTS =  \
	allocate_module_test-allocate_module_test.$(OBJEXT) \
	allocate_module_test-allocate_module.$(OBJEXT)
allocate_module_test_OBJECTS = $(am_allocate_module_test_OBJECTS)
allocate_module_test_DEPENDENCIES = libcmockery.la
am_assert_macro_test_OBJECTS =  \
	assert_macro_test-assert_macro_test.$(OBJEXT) \
	assert_macro_test-assert_macro.$(OBJEXT)
assert_macro_test_OBJECTS = $(am_assert_macro_test_OBJECTS)
assert_macro_test_DEPENDENCIES = libcmockery.la
am_calculator_OBJECTS = calculator-calculator.$(OBJEXT)
calculator_OBJECTS = $(am_calculator_OBJECTS)
calculator_LDADD = $(LDADD)
am__objects_1 = calculator_test-calculator.$(OBJEXT)
am_calculator_test_OBJECTS =  \
	calculator_test-calculator_test.$(OBJEXT) $(am__objects_1)
calculator_test_OBJECTS = $(am_calculator_test_OBJECTS)
calculator_test_DEPENDENCIES = libcmockery.la
am_customer_database_test_OBJECTS =  \
	customer_database_test-customer_database_test.$(OBJEXT) \
	customer_database_test-customer_database.$(OBJEXT)
customer_database_test_OBJECTS = $(am_customer_database_test_OBJECTS)
customer_database_test_DEPENDENCIES = libcmockery.la
am_key_value_test_OBJECTS = key_value_test-key_value_test.$(OBJEXT) \
	key_value_test-key_value.$(OBJEXT)
key_value_test_OBJECTS = $(am_key_value_test_OBJECTS)
key_value_test_DEPENDENCIES = libcmockery.la
am_product_database_test_OBJECTS =  \
	product_database_test-product_database_test.$(OBJEXT) \
	product_database_test-product_database.$(OBJEXT)
product_database_test_OBJECTS = $(am_product_database_test_OBJECTS)
product_database_test_DEPENDENCIES = libcmockery.la
am_run_tests_OBJECTS = run_tests-run_tests.$(OBJEXT)
run_tests_OBJECTS = $(am_run_tests_OBJECTS)
run_tests_DEPENDENCIES = libcmockery.la
SCRIPTS = $(noinst_SCRIPTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/src
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
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 = $(libcmockery_la_SOURCES) $(allocate_module_test_SOURCES) \
	$(assert_macro_test_SOURCES) $(calculator_SOURCES) \
	$(calculator_test_SOURCES) $(customer_database_test_SOURCES) \
	$(key_value_test_SOURCES) $(product_database_test_SOURCES) \
	$(run_tests_SOURCES)
DIST_SOURCES = $(libcmockery_la_SOURCES) \
	$(allocate_module_test_SOURCES) $(assert_macro_test_SOURCES) \
	$(calculator_SOURCES) $(calculator_test_SOURCES) \
	$(customer_database_test_SOURCES) $(key_value_test_SOURCES) \
	$(product_database_test_SOURCES) $(run_tests_SOURCES)
dist_docDATA_INSTALL = $(INSTALL_DATA)
DATA = $(dist_doc_DATA)
googleincludeHEADERS_INSTALL = $(INSTALL_HEADER)
HEADERS = $(googleinclude_HEADERS)
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@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
GCC_FALSE = @GCC_FALSE@
GCC_TRUE = @GCC_TRUE@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
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@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_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@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@

# Make sure that when we re-make ./configure, we get the macros we need
ACLOCAL_AMFLAGS = -I `pwd`/m4

# This is so we can #include <google/foo>
AM_CPPFLAGS = -I$(top_srcdir)/src

# These are good warnings to turn on by default
@GCC_TRUE@AM_CXXFLAGS = -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare
googleincludedir = $(includedir)/google
googleinclude_HEADERS = src/google/cmockery.h
docdir = $(prefix)/share/doc/$(PACKAGE)-$(VERSION)
dist_doc_DATA = AUTHORS COPYING ChangeLog INSTALL NEWS README doc/index.html \
		windows/makefile

lib_LTLIBRARIES = libcmockery.la
TESTS = 
TESTS_ENVIRONMENT = CMOCKERY_ROOTDIR = $(top_srcdir)
check_SCRIPTS = 
# Every time you add a unittest to check_SCRIPTS, add it here too
noinst_SCRIPTS = 
libcmockery_la_SOURCES = src/config.h src/cmockery.c src/google/cmockery.h
libcmockery_la_CFLAGS = -Isrc/google
calculator_SOURCES = src/example/calculator.c src/config.h
calculator_CFLAGS = 
unit_test_CFLAGS = -Isrc/google -Isrc/example -DUNIT_TESTING=1
calculator_test_SOURCES = src/example/calculator_test.c \
                          $(calculator_SOURCES)

calculator_test_CFLAGS = $(unit_test_CFLAGS)
calculator_test_LDADD = libcmockery.la
allocate_module_test_SOURCES = src/example/allocate_module_test.c \
                               src/example/allocate_module.c

allocate_module_test_CFLAGS = $(unit_test_CFLAGS)
allocate_module_test_LDADD = libcmockery.la
assert_macro_test_SOURCES = src/example/assert_macro_test.c \
                            src/example/assert_macro.c

assert_macro_test_CFLAGS = $(unit_test_CFLAGS)
assert_macro_test_LDADD = libcmockery.la
customer_database_test_SOURCES = src/example/customer_database_test.c \
                                 src/example/customer_database.c \
                                 src/example/database.h

customer_database_test_CFLAGS = $(unit_test_CFLAGS)
customer_database_test_LDADD = libcmockery.la
key_value_test_SOURCES = src/example/key_value_test.c \
                         src/example/key_value.c

key_value_test_CFLAGS = $(unit_test_CFLAGS)
key_value_test_LDADD = libcmockery.la
product_database_testdir = src/example
product_database_test_SOURCES = src/example/product_database_test.c \
                                src/example/product_database.c \
                                src/example/database.h

product_database_test_CFLAGS = $(unit_test_CFLAGS)
product_database_test_LDADD = libcmockery.la
run_tests_SOURCES = src/example/run_tests.c
run_tests_CFLAGS = $(unit_test_CFLAGS)
run_tests_LDADD = libcmockery.la
EXTRA_DIST = packages/rpm.sh packages/rpm/rpm.spec packages/deb.sh packages/deb \
	libtool $(SCRIPTS)

all: all-am

.SUFFIXES:
.SUFFIXES: .c .lo .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)

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

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

distclean-hdr:
	-rm -f src/config.h src/stamp-h1
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
	@$(NORMAL_INSTALL)
	test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
	  if test -f $$p; then \
	    f=$(am__strip_dir) \
	    echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
	    $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
	  else :; fi; \
	done

uninstall-libLTLIBRARIES:
	@$(NORMAL_UNINSTALL)
	@set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \
	  p=$(am__strip_dir) \
	  echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
	  $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
	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
libcmockery.la: $(libcmockery_la_OBJECTS) $(libcmockery_la_DEPENDENCIES) 
	$(LINK) -rpath $(libdir) $(libcmockery_la_LDFLAGS) $(libcmockery_la_OBJECTS) $(libcmockery_la_LIBADD) $(LIBS)

clean-noinstPROGRAMS:
	@list='$(noinst_PROGRAMS)'; for p in $$list; do \
	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
	  echo " rm -f $$p $$f"; \
	  rm -f $$p $$f ; \
	done
allocate_module_test$(EXEEXT): $(allocate_module_test_OBJECTS) $(allocate_module_test_DEPENDENCIES) 
	@rm -f allocate_module_test$(EXEEXT)
	$(LINK) $(allocate_module_test_LDFLAGS) $(allocate_module_test_OBJECTS) $(allocate_module_test_LDADD) $(LIBS)
assert_macro_test$(EXEEXT): $(assert_macro_test_OBJECTS) $(assert_macro_test_DEPENDENCIES) 
	@rm -f assert_macro_test$(EXEEXT)
	$(LINK) $(assert_macro_test_LDFLAGS) $(assert_macro_test_OBJECTS) $(assert_macro_test_LDADD) $(LIBS)
calculator$(EXEEXT): $(calculator_OBJECTS) $(calculator_DEPENDENCIES) 
	@rm -f calculator$(EXEEXT)
	$(LINK) $(calculator_LDFLAGS) $(calculator_OBJECTS) $(calculator_LDADD) $(LIBS)
calculator_test$(EXEEXT): $(calculator_test_OBJECTS) $(calculator_test_DEPENDENCIES) 
	@rm -f calculator_test$(EXEEXT)
	$(LINK) $(calculator_test_LDFLAGS) $(calculator_test_OBJECTS) $(calculator_test_LDADD) $(LIBS)
customer_database_test$(EXEEXT): $(customer_database_test_OBJECTS) $(customer_database_test_DEPENDENCIES) 
	@rm -f customer_database_test$(EXEEXT)
	$(LINK) $(customer_database_test_LDFLAGS) $(customer_database_test_OBJECTS) $(customer_database_test_LDADD) $(LIBS)
key_value_test$(EXEEXT): $(key_value_test_OBJECTS) $(key_value_test_DEPENDENCIES) 
	@rm -f key_value_test$(EXEEXT)
	$(LINK) $(key_value_test_LDFLAGS) $(key_value_test_OBJECTS) $(key_value_test_LDADD) $(LIBS)
product_database_test$(EXEEXT): $(product_database_test_OBJECTS) $(product_database_test_DEPENDENCIES) 
	@rm -f product_database_test$(EXEEXT)
	$(LINK) $(product_database_test_LDFLAGS) $(product_database_test_OBJECTS) $(product_database_test_LDADD) $(LIBS)
run_tests$(EXEEXT): $(run_tests_OBJECTS) $(run_tests_DEPENDENCIES) 
	@rm -f run_tests$(EXEEXT)
	$(LINK) $(run_tests_LDFLAGS) $(run_tests_OBJECTS) $(run_tests_LDADD) $(LIBS)

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

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

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/allocate_module_test-allocate_module.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/allocate_module_test-allocate_module_test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/assert_macro_test-assert_macro.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/assert_macro_test-assert_macro_test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calculator-calculator.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calculator_test-calculator.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calculator_test-calculator_test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/customer_database_test-customer_database.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/customer_database_test-customer_database_test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/key_value_test-key_value.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/key_value_test-key_value_test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcmockery_la-cmockery.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/product_database_test-product_database.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/product_database_test-product_database_test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/run_tests-run_tests.Po@am__quote@

.c.o:
@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@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@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@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) '$<'`

.c.lo:
@am__fastdepCC_TRUE@	if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<

libcmockery_la-cmockery.lo: src/cmockery.c
@am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcmockery_la_CFLAGS) $(CFLAGS) -MT libcmockery_la-cmockery.lo -MD -MP -MF "$(DEPDIR)/libcmockery_la-cmockery.Tpo" -c -o libcmockery_la-cmockery.lo `test -f 'src/cmockery.c' || echo '$(srcdir)/'`src/cmockery.c; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libcmockery_la-cmockery.Tpo" "$(DEPDIR)/libcmockery_la-cmockery.Plo"; else rm -f "$(DEPDIR)/libcmockery_la-cmockery.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/cmockery.c' object='libcmockery_la-cmockery.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcmockery_la_CFLAGS) $(CFLAGS) -c -o libcmockery_la-cmockery.lo `test -f 'src/cmockery.c' || echo '$(srcdir)/'`src/cmockery.c

allocate_module_test-allocate_module_test.o: src/example/allocate_module_test.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(allocate_module_test_CFLAGS) $(CFLAGS) -MT allocate_module_test-allocate_module_test.o -MD -MP -MF "$(DEPDIR)/allocate_module_test-allocate_module_test.Tpo" -c -o allocate_module_test-allocate_module_test.o `test -f 'src/example/allocate_module_test.c' || echo '$(srcdir)/'`src/example/allocate_module_test.c; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/allocate_module_test-allocate_module_test.Tpo" "$(DEPDIR)/allocate_module_test-allocate_module_test.Po"; else rm -f "$(DEPDIR)/allocate_module_test-allocate_module_test.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/allocate_module_test.c' object='allocate_module_test-allocate_module_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) $(allocate_module_test_CFLAGS) $(CFLAGS) -c -o allocate_module_test-allocate_module_test.o `test -f 'src/example/allocate_module_test.c' || echo '$(srcdir)/'`src/example/allocate_module_test.c

allocate_module_test-allocate_module_test.obj: src/example/allocate_module_test.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(allocate_module_test_CFLAGS) $(CFLAGS) -MT allocate_module_test-allocate_module_test.obj -MD -MP -MF "$(DEPDIR)/allocate_module_test-allocate_module_test.Tpo" -c -o allocate_module_test-allocate_module_test.obj `if test -f 'src/example/allocate_module_test.c'; then $(CYGPATH_W) 'src/example/allocate_module_test.c'; else $(CYGPATH_W) '$(srcdir)/src/example/allocate_module_test.c'; fi`; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/allocate_module_test-allocate_module_test.Tpo" "$(DEPDIR)/allocate_module_test-allocate_module_test.Po"; else rm -f "$(DEPDIR)/allocate_module_test-allocate_module_test.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/allocate_module_test.c' object='allocate_module_test-allocate_module_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) $(allocate_module_test_CFLAGS) $(CFLAGS) -c -o allocate_module_test-allocate_module_test.obj `if test -f 'src/example/allocate_module_test.c'; then $(CYGPATH_W) 'src/example/allocate_module_test.c'; else $(CYGPATH_W) '$(srcdir)/src/example/allocate_module_test.c'; fi`

allocate_module_test-allocate_module.o: src/example/allocate_module.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(allocate_module_test_CFLAGS) $(CFLAGS) -MT allocate_module_test-allocate_module.o -MD -MP -MF "$(DEPDIR)/allocate_module_test-allocate_module.Tpo" -c -o allocate_module_test-allocate_module.o `test -f 'src/example/allocate_module.c' || echo '$(srcdir)/'`src/example/allocate_module.c; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/allocate_module_test-allocate_module.Tpo" "$(DEPDIR)/allocate_module_test-allocate_module.Po"; else rm -f "$(DEPDIR)/allocate_module_test-allocate_module.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/allocate_module.c' object='allocate_module_test-allocate_module.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) $(allocate_module_test_CFLAGS) $(CFLAGS) -c -o allocate_module_test-allocate_module.o `test -f 'src/example/allocate_module.c' || echo '$(srcdir)/'`src/example/allocate_module.c

allocate_module_test-allocate_module.obj: src/example/allocate_module.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(allocate_module_test_CFLAGS) $(CFLAGS) -MT allocate_module_test-allocate_module.obj -MD -MP -MF "$(DEPDIR)/allocate_module_test-allocate_module.Tpo" -c -o allocate_module_test-allocate_module.obj `if test -f 'src/example/allocate_module.c'; then $(CYGPATH_W) 'src/example/allocate_module.c'; else $(CYGPATH_W) '$(srcdir)/src/example/allocate_module.c'; fi`; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/allocate_module_test-allocate_module.Tpo" "$(DEPDIR)/allocate_module_test-allocate_module.Po"; else rm -f "$(DEPDIR)/allocate_module_test-allocate_module.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/allocate_module.c' object='allocate_module_test-allocate_module.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) $(allocate_module_test_CFLAGS) $(CFLAGS) -c -o allocate_module_test-allocate_module.obj `if test -f 'src/example/allocate_module.c'; then $(CYGPATH_W) 'src/example/allocate_module.c'; else $(CYGPATH_W) '$(srcdir)/src/example/allocate_module.c'; fi`

assert_macro_test-assert_macro_test.o: src/example/assert_macro_test.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(assert_macro_test_CFLAGS) $(CFLAGS) -MT assert_macro_test-assert_macro_test.o -MD -MP -MF "$(DEPDIR)/assert_macro_test-assert_macro_test.Tpo" -c -o assert_macro_test-assert_macro_test.o `test -f 'src/example/assert_macro_test.c' || echo '$(srcdir)/'`src/example/assert_macro_test.c; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/assert_macro_test-assert_macro_test.Tpo" "$(DEPDIR)/assert_macro_test-assert_macro_test.Po"; else rm -f "$(DEPDIR)/assert_macro_test-assert_macro_test.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/assert_macro_test.c' object='assert_macro_test-assert_macro_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) $(assert_macro_test_CFLAGS) $(CFLAGS) -c -o assert_macro_test-assert_macro_test.o `test -f 'src/example/assert_macro_test.c' || echo '$(srcdir)/'`src/example/assert_macro_test.c

assert_macro_test-assert_macro_test.obj: src/example/assert_macro_test.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(assert_macro_test_CFLAGS) $(CFLAGS) -MT assert_macro_test-assert_macro_test.obj -MD -MP -MF "$(DEPDIR)/assert_macro_test-assert_macro_test.Tpo" -c -o assert_macro_test-assert_macro_test.obj `if test -f 'src/example/assert_macro_test.c'; then $(CYGPATH_W) 'src/example/assert_macro_test.c'; else $(CYGPATH_W) '$(srcdir)/src/example/assert_macro_test.c'; fi`; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/assert_macro_test-assert_macro_test.Tpo" "$(DEPDIR)/assert_macro_test-assert_macro_test.Po"; else rm -f "$(DEPDIR)/assert_macro_test-assert_macro_test.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/assert_macro_test.c' object='assert_macro_test-assert_macro_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) $(assert_macro_test_CFLAGS) $(CFLAGS) -c -o assert_macro_test-assert_macro_test.obj `if test -f 'src/example/assert_macro_test.c'; then $(CYGPATH_W) 'src/example/assert_macro_test.c'; else $(CYGPATH_W) '$(srcdir)/src/example/assert_macro_test.c'; fi`

assert_macro_test-assert_macro.o: src/example/assert_macro.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(assert_macro_test_CFLAGS) $(CFLAGS) -MT assert_macro_test-assert_macro.o -MD -MP -MF "$(DEPDIR)/assert_macro_test-assert_macro.Tpo" -c -o assert_macro_test-assert_macro.o `test -f 'src/example/assert_macro.c' || echo '$(srcdir)/'`src/example/assert_macro.c; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/assert_macro_test-assert_macro.Tpo" "$(DEPDIR)/assert_macro_test-assert_macro.Po"; else rm -f "$(DEPDIR)/assert_macro_test-assert_macro.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/assert_macro.c' object='assert_macro_test-assert_macro.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) $(assert_macro_test_CFLAGS) $(CFLAGS) -c -o assert_macro_test-assert_macro.o `test -f 'src/example/assert_macro.c' || echo '$(srcdir)/'`src/example/assert_macro.c

assert_macro_test-assert_macro.obj: src/example/assert_macro.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(assert_macro_test_CFLAGS) $(CFLAGS) -MT assert_macro_test-assert_macro.obj -MD -MP -MF "$(DEPDIR)/assert_macro_test-assert_macro.Tpo" -c -o assert_macro_test-assert_macro.obj `if test -f 'src/example/assert_macro.c'; then $(CYGPATH_W) 'src/example/assert_macro.c'; else $(CYGPATH_W) '$(srcdir)/src/example/assert_macro.c'; fi`; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/assert_macro_test-assert_macro.Tpo" "$(DEPDIR)/assert_macro_test-assert_macro.Po"; else rm -f "$(DEPDIR)/assert_macro_test-assert_macro.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/assert_macro.c' object='assert_macro_test-assert_macro.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) $(assert_macro_test_CFLAGS) $(CFLAGS) -c -o assert_macro_test-assert_macro.obj `if test -f 'src/example/assert_macro.c'; then $(CYGPATH_W) 'src/example/assert_macro.c'; else $(CYGPATH_W) '$(srcdir)/src/example/assert_macro.c'; fi`

calculator-calculator.o: src/example/calculator.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(calculator_CFLAGS) $(CFLAGS) -MT calculator-calculator.o -MD -MP -MF "$(DEPDIR)/calculator-calculator.Tpo" -c -o calculator-calculator.o `test -f 'src/example/calculator.c' || echo '$(srcdir)/'`src/example/calculator.c; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/calculator-calculator.Tpo" "$(DEPDIR)/calculator-calculator.Po"; else rm -f "$(DEPDIR)/calculator-calculator.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/calculator.c' object='calculator-calculator.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) $(calculator_CFLAGS) $(CFLAGS) -c -o calculator-calculator.o `test -f 'src/example/calculator.c' || echo '$(srcdir)/'`src/example/calculator.c

calculator-calculator.obj: src/example/calculator.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(calculator_CFLAGS) $(CFLAGS) -MT calculator-calculator.obj -MD -MP -MF "$(DEPDIR)/calculator-calculator.Tpo" -c -o calculator-calculator.obj `if test -f 'src/example/calculator.c'; then $(CYGPATH_W) 'src/example/calculator.c'; else $(CYGPATH_W) '$(srcdir)/src/example/calculator.c'; fi`; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/calculator-calculator.Tpo" "$(DEPDIR)/calculator-calculator.Po"; else rm -f "$(DEPDIR)/calculator-calculator.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/calculator.c' object='calculator-calculator.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) $(calculator_CFLAGS) $(CFLAGS) -c -o calculator-calculator.obj `if test -f 'src/example/calculator.c'; then $(CYGPATH_W) 'src/example/calculator.c'; else $(CYGPATH_W) '$(srcdir)/src/example/calculator.c'; fi`

calculator_test-calculator_test.o: src/example/calculator_test.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(calculator_test_CFLAGS) $(CFLAGS) -MT calculator_test-calculator_test.o -MD -MP -MF "$(DEPDIR)/calculator_test-calculator_test.Tpo" -c -o calculator_test-calculator_test.o `test -f 'src/example/calculator_test.c' || echo '$(srcdir)/'`src/example/calculator_test.c; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/calculator_test-calculator_test.Tpo" "$(DEPDIR)/calculator_test-calculator_test.Po"; else rm -f "$(DEPDIR)/calculator_test-calculator_test.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/calculator_test.c' object='calculator_test-calculator_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) $(calculator_test_CFLAGS) $(CFLAGS) -c -o calculator_test-calculator_test.o `test -f 'src/example/calculator_test.c' || echo '$(srcdir)/'`src/example/calculator_test.c

calculator_test-calculator_test.obj: src/example/calculator_test.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(calculator_test_CFLAGS) $(CFLAGS) -MT calculator_test-calculator_test.obj -MD -MP -MF "$(DEPDIR)/calculator_test-calculator_test.Tpo" -c -o calculator_test-calculator_test.obj `if test -f 'src/example/calculator_test.c'; then $(CYGPATH_W) 'src/example/calculator_test.c'; else $(CYGPATH_W) '$(srcdir)/src/example/calculator_test.c'; fi`; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/calculator_test-calculator_test.Tpo" "$(DEPDIR)/calculator_test-calculator_test.Po"; else rm -f "$(DEPDIR)/calculator_test-calculator_test.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/calculator_test.c' object='calculator_test-calculator_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) $(calculator_test_CFLAGS) $(CFLAGS) -c -o calculator_test-calculator_test.obj `if test -f 'src/example/calculator_test.c'; then $(CYGPATH_W) 'src/example/calculator_test.c'; else $(CYGPATH_W) '$(srcdir)/src/example/calculator_test.c'; fi`

calculator_test-calculator.o: src/example/calculator.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(calculator_test_CFLAGS) $(CFLAGS) -MT calculator_test-calculator.o -MD -MP -MF "$(DEPDIR)/calculator_test-calculator.Tpo" -c -o calculator_test-calculator.o `test -f 'src/example/calculator.c' || echo '$(srcdir)/'`src/example/calculator.c; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/calculator_test-calculator.Tpo" "$(DEPDIR)/calculator_test-calculator.Po"; else rm -f "$(DEPDIR)/calculator_test-calculator.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/calculator.c' object='calculator_test-calculator.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) $(calculator_test_CFLAGS) $(CFLAGS) -c -o calculator_test-calculator.o `test -f 'src/example/calculator.c' || echo '$(srcdir)/'`src/example/calculator.c

calculator_test-calculator.obj: src/example/calculator.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(calculator_test_CFLAGS) $(CFLAGS) -MT calculator_test-calculator.obj -MD -MP -MF "$(DEPDIR)/calculator_test-calculator.Tpo" -c -o calculator_test-calculator.obj `if test -f 'src/example/calculator.c'; then $(CYGPATH_W) 'src/example/calculator.c'; else $(CYGPATH_W) '$(srcdir)/src/example/calculator.c'; fi`; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/calculator_test-calculator.Tpo" "$(DEPDIR)/calculator_test-calculator.Po"; else rm -f "$(DEPDIR)/calculator_test-calculator.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/calculator.c' object='calculator_test-calculator.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) $(calculator_test_CFLAGS) $(CFLAGS) -c -o calculator_test-calculator.obj `if test -f 'src/example/calculator.c'; then $(CYGPATH_W) 'src/example/calculator.c'; else $(CYGPATH_W) '$(srcdir)/src/example/calculator.c'; fi`

customer_database_test-customer_database_test.o: src/example/customer_database_test.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(customer_database_test_CFLAGS) $(CFLAGS) -MT customer_database_test-customer_database_test.o -MD -MP -MF "$(DEPDIR)/customer_database_test-customer_database_test.Tpo" -c -o customer_database_test-customer_database_test.o `test -f 'src/example/customer_database_test.c' || echo '$(srcdir)/'`src/example/customer_database_test.c; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/customer_database_test-customer_database_test.Tpo" "$(DEPDIR)/customer_database_test-customer_database_test.Po"; else rm -f "$(DEPDIR)/customer_database_test-customer_database_test.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/customer_database_test.c' object='customer_database_test-customer_database_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) $(customer_database_test_CFLAGS) $(CFLAGS) -c -o customer_database_test-customer_database_test.o `test -f 'src/example/customer_database_test.c' || echo '$(srcdir)/'`src/example/customer_database_test.c

customer_database_test-customer_database_test.obj: src/example/customer_database_test.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(customer_database_test_CFLAGS) $(CFLAGS) -MT customer_database_test-customer_database_test.obj -MD -MP -MF "$(DEPDIR)/customer_database_test-customer_database_test.Tpo" -c -o customer_database_test-customer_database_test.obj `if test -f 'src/example/customer_database_test.c'; then $(CYGPATH_W) 'src/example/customer_database_test.c'; else $(CYGPATH_W) '$(srcdir)/src/example/customer_database_test.c'; fi`; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/customer_database_test-customer_database_test.Tpo" "$(DEPDIR)/customer_database_test-customer_database_test.Po"; else rm -f "$(DEPDIR)/customer_database_test-customer_database_test.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/customer_database_test.c' object='customer_database_test-customer_database_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) $(customer_database_test_CFLAGS) $(CFLAGS) -c -o customer_database_test-customer_database_test.obj `if test -f 'src/example/customer_database_test.c'; then $(CYGPATH_W) 'src/example/customer_database_test.c'; else $(CYGPATH_W) '$(srcdir)/src/example/customer_database_test.c'; fi`

customer_database_test-customer_database.o: src/example/customer_database.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(customer_database_test_CFLAGS) $(CFLAGS) -MT customer_database_test-customer_database.o -MD -MP -MF "$(DEPDIR)/customer_database_test-customer_database.Tpo" -c -o customer_database_test-customer_database.o `test -f 'src/example/customer_database.c' || echo '$(srcdir)/'`src/example/customer_database.c; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/customer_database_test-customer_database.Tpo" "$(DEPDIR)/customer_database_test-customer_database.Po"; else rm -f "$(DEPDIR)/customer_database_test-customer_database.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/customer_database.c' object='customer_database_test-customer_database.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) $(customer_database_test_CFLAGS) $(CFLAGS) -c -o customer_database_test-customer_database.o `test -f 'src/example/customer_database.c' || echo '$(srcdir)/'`src/example/customer_database.c

customer_database_test-customer_database.obj: src/example/customer_database.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(customer_database_test_CFLAGS) $(CFLAGS) -MT customer_database_test-customer_database.obj -MD -MP -MF "$(DEPDIR)/customer_database_test-customer_database.Tpo" -c -o customer_database_test-customer_database.obj `if test -f 'src/example/customer_database.c'; then $(CYGPATH_W) 'src/example/customer_database.c'; else $(CYGPATH_W) '$(srcdir)/src/example/customer_database.c'; fi`; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/customer_database_test-customer_database.Tpo" "$(DEPDIR)/customer_database_test-customer_database.Po"; else rm -f "$(DEPDIR)/customer_database_test-customer_database.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/customer_database.c' object='customer_database_test-customer_database.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) $(customer_database_test_CFLAGS) $(CFLAGS) -c -o customer_database_test-customer_database.obj `if test -f 'src/example/customer_database.c'; then $(CYGPATH_W) 'src/example/customer_database.c'; else $(CYGPATH_W) '$(srcdir)/src/example/customer_database.c'; fi`

key_value_test-key_value_test.o: src/example/key_value_test.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(key_value_test_CFLAGS) $(CFLAGS) -MT key_value_test-key_value_test.o -MD -MP -MF "$(DEPDIR)/key_value_test-key_value_test.Tpo" -c -o key_value_test-key_value_test.o `test -f 'src/example/key_value_test.c' || echo '$(srcdir)/'`src/example/key_value_test.c; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/key_value_test-key_value_test.Tpo" "$(DEPDIR)/key_value_test-key_value_test.Po"; else rm -f "$(DEPDIR)/key_value_test-key_value_test.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/key_value_test.c' object='key_value_test-key_value_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) $(key_value_test_CFLAGS) $(CFLAGS) -c -o key_value_test-key_value_test.o `test -f 'src/example/key_value_test.c' || echo '$(srcdir)/'`src/example/key_value_test.c

key_value_test-key_value_test.obj: src/example/key_value_test.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(key_value_test_CFLAGS) $(CFLAGS) -MT key_value_test-key_value_test.obj -MD -MP -MF "$(DEPDIR)/key_value_test-key_value_test.Tpo" -c -o key_value_test-key_value_test.obj `if test -f 'src/example/key_value_test.c'; then $(CYGPATH_W) 'src/example/key_value_test.c'; else $(CYGPATH_W) '$(srcdir)/src/example/key_value_test.c'; fi`; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/key_value_test-key_value_test.Tpo" "$(DEPDIR)/key_value_test-key_value_test.Po"; else rm -f "$(DEPDIR)/key_value_test-key_value_test.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/key_value_test.c' object='key_value_test-key_value_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) $(key_value_test_CFLAGS) $(CFLAGS) -c -o key_value_test-key_value_test.obj `if test -f 'src/example/key_value_test.c'; then $(CYGPATH_W) 'src/example/key_value_test.c'; else $(CYGPATH_W) '$(srcdir)/src/example/key_value_test.c'; fi`

key_value_test-key_value.o: src/example/key_value.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(key_value_test_CFLAGS) $(CFLAGS) -MT key_value_test-key_value.o -MD -MP -MF "$(DEPDIR)/key_value_test-key_value.Tpo" -c -o key_value_test-key_value.o `test -f 'src/example/key_value.c' || echo '$(srcdir)/'`src/example/key_value.c; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/key_value_test-key_value.Tpo" "$(DEPDIR)/key_value_test-key_value.Po"; else rm -f "$(DEPDIR)/key_value_test-key_value.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/key_value.c' object='key_value_test-key_value.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) $(key_value_test_CFLAGS) $(CFLAGS) -c -o key_value_test-key_value.o `test -f 'src/example/key_value.c' || echo '$(srcdir)/'`src/example/key_value.c

key_value_test-key_value.obj: src/example/key_value.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(key_value_test_CFLAGS) $(CFLAGS) -MT key_value_test-key_value.obj -MD -MP -MF "$(DEPDIR)/key_value_test-key_value.Tpo" -c -o key_value_test-key_value.obj `if test -f 'src/example/key_value.c'; then $(CYGPATH_W) 'src/example/key_value.c'; else $(CYGPATH_W) '$(srcdir)/src/example/key_value.c'; fi`; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/key_value_test-key_value.Tpo" "$(DEPDIR)/key_value_test-key_value.Po"; else rm -f "$(DEPDIR)/key_value_test-key_value.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/key_value.c' object='key_value_test-key_value.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) $(key_value_test_CFLAGS) $(CFLAGS) -c -o key_value_test-key_value.obj `if test -f 'src/example/key_value.c'; then $(CYGPATH_W) 'src/example/key_value.c'; else $(CYGPATH_W) '$(srcdir)/src/example/key_value.c'; fi`

product_database_test-product_database_test.o: src/example/product_database_test.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(product_database_test_CFLAGS) $(CFLAGS) -MT product_database_test-product_database_test.o -MD -MP -MF "$(DEPDIR)/product_database_test-product_database_test.Tpo" -c -o product_database_test-product_database_test.o `test -f 'src/example/product_database_test.c' || echo '$(srcdir)/'`src/example/product_database_test.c; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/product_database_test-product_database_test.Tpo" "$(DEPDIR)/product_database_test-product_database_test.Po"; else rm -f "$(DEPDIR)/product_database_test-product_database_test.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/product_database_test.c' object='product_database_test-product_database_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) $(product_database_test_CFLAGS) $(CFLAGS) -c -o product_database_test-product_database_test.o `test -f 'src/example/product_database_test.c' || echo '$(srcdir)/'`src/example/product_database_test.c

product_database_test-product_database_test.obj: src/example/product_database_test.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(product_database_test_CFLAGS) $(CFLAGS) -MT product_database_test-product_database_test.obj -MD -MP -MF "$(DEPDIR)/product_database_test-product_database_test.Tpo" -c -o product_database_test-product_database_test.obj `if test -f 'src/example/product_database_test.c'; then $(CYGPATH_W) 'src/example/product_database_test.c'; else $(CYGPATH_W) '$(srcdir)/src/example/product_database_test.c'; fi`; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/product_database_test-product_database_test.Tpo" "$(DEPDIR)/product_database_test-product_database_test.Po"; else rm -f "$(DEPDIR)/product_database_test-product_database_test.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/product_database_test.c' object='product_database_test-product_database_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) $(product_database_test_CFLAGS) $(CFLAGS) -c -o product_database_test-product_database_test.obj `if test -f 'src/example/product_database_test.c'; then $(CYGPATH_W) 'src/example/product_database_test.c'; else $(CYGPATH_W) '$(srcdir)/src/example/product_database_test.c'; fi`

product_database_test-product_database.o: src/example/product_database.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(product_database_test_CFLAGS) $(CFLAGS) -MT product_database_test-product_database.o -MD -MP -MF "$(DEPDIR)/product_database_test-product_database.Tpo" -c -o product_database_test-product_database.o `test -f 'src/example/product_database.c' || echo '$(srcdir)/'`src/example/product_database.c; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/product_database_test-product_database.Tpo" "$(DEPDIR)/product_database_test-product_database.Po"; else rm -f "$(DEPDIR)/product_database_test-product_database.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/product_database.c' object='product_database_test-product_database.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) $(product_database_test_CFLAGS) $(CFLAGS) -c -o product_database_test-product_database.o `test -f 'src/example/product_database.c' || echo '$(srcdir)/'`src/example/product_database.c

product_database_test-product_database.obj: src/example/product_database.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(product_database_test_CFLAGS) $(CFLAGS) -MT product_database_test-product_database.obj -MD -MP -MF "$(DEPDIR)/product_database_test-product_database.Tpo" -c -o product_database_test-product_database.obj `if test -f 'src/example/product_database.c'; then $(CYGPATH_W) 'src/example/product_database.c'; else $(CYGPATH_W) '$(srcdir)/src/example/product_database.c'; fi`; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/product_database_test-product_database.Tpo" "$(DEPDIR)/product_database_test-product_database.Po"; else rm -f "$(DEPDIR)/product_database_test-product_database.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/product_database.c' object='product_database_test-product_database.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) $(product_database_test_CFLAGS) $(CFLAGS) -c -o product_database_test-product_database.obj `if test -f 'src/example/product_database.c'; then $(CYGPATH_W) 'src/example/product_database.c'; else $(CYGPATH_W) '$(srcdir)/src/example/product_database.c'; fi`

run_tests-run_tests.o: src/example/run_tests.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(run_tests_CFLAGS) $(CFLAGS) -MT run_tests-run_tests.o -MD -MP -MF "$(DEPDIR)/run_tests-run_tests.Tpo" -c -o run_tests-run_tests.o `test -f 'src/example/run_tests.c' || echo '$(srcdir)/'`src/example/run_tests.c; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/run_tests-run_tests.Tpo" "$(DEPDIR)/run_tests-run_tests.Po"; else rm -f "$(DEPDIR)/run_tests-run_tests.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/run_tests.c' object='run_tests-run_tests.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) $(run_tests_CFLAGS) $(CFLAGS) -c -o run_tests-run_tests.o `test -f 'src/example/run_tests.c' || echo '$(srcdir)/'`src/example/run_tests.c

run_tests-run_tests.obj: src/example/run_tests.c
@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(run_tests_CFLAGS) $(CFLAGS) -MT run_tests-run_tests.obj -MD -MP -MF "$(DEPDIR)/run_tests-run_tests.Tpo" -c -o run_tests-run_tests.obj `if test -f 'src/example/run_tests.c'; then $(CYGPATH_W) 'src/example/run_tests.c'; else $(CYGPATH_W) '$(srcdir)/src/example/run_tests.c'; fi`; \
@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/run_tests-run_tests.Tpo" "$(DEPDIR)/run_tests-run_tests.Po"; else rm -f "$(DEPDIR)/run_tests-run_tests.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='src/example/run_tests.c' object='run_tests-run_tests.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) $(run_tests_CFLAGS) $(CFLAGS) -c -o run_tests-run_tests.obj `if test -f 'src/example/run_tests.c'; then $(CYGPATH_W) 'src/example/run_tests.c'; else $(CYGPATH_W) '$(srcdir)/src/example/run_tests.c'; fi`

mostlyclean-libtool:
	-rm -f *.lo

clean-libtool:
	-rm -rf .libs _libs

distclean-libtool:
	-rm -f libtool
uninstall-info-am:
install-dist_docDATA: $(dist_doc_DATA)
	@$(NORMAL_INSTALL)
	test -z "$(docdir)" || $(mkdir_p) "$(DESTDIR)$(docdir)"
	@list='$(dist_doc_DATA)'; for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  f=$(am__strip_dir) \
	  echo " $(dist_docDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(docdir)/$$f'"; \
	  $(dist_docDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(docdir)/$$f"; \
	done

uninstall-dist_docDATA:
	@$(NORMAL_UNINSTALL)
	@list='$(dist_doc_DATA)'; for p in $$list; do \
	  f=$(am__strip_dir) \
	  echo " rm -f '$(DESTDIR)$(docdir)/$$f'"; \
	  rm -f "$(DESTDIR)$(docdir)/$$f"; \
	done
install-googleincludeHEADERS: $(googleinclude_HEADERS)
	@$(NORMAL_INSTALL)
	test -z "$(googleincludedir)" || $(mkdir_p) "$(DESTDIR)$(googleincludedir)"
	@list='$(googleinclude_HEADERS)'; for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  f=$(am__strip_dir) \
	  echo " $(googleincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(googleincludedir)/$$f'"; \
	  $(googleincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(googleincludedir)/$$f"; \
	done

uninstall-googleincludeHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(googleinclude_HEADERS)'; for p in $$list; do \
	  f=$(am__strip_dir) \
	  echo " rm -f '$(DESTDIR)$(googleincludedir)/$$f'"; \
	  rm -f "$(DESTDIR)$(googleincludedir)/$$f"; \
	done

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-TESTS: $(TESTS)
	@failed=0; all=0; xfail=0; xpass=0; skip=0; \
	srcdir=$(srcdir); export srcdir; \
	list='$(TESTS)'; \
	if test -n "$$list"; then \
	  for tst in $$list; do \
	    if test -f ./$$tst; then dir=./; \
	    elif test -f $$tst; then dir=; \
	    else dir="$(srcdir)/"; fi; \
	    if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
	      all=`expr $$all + 1`; \
	      case " $(XFAIL_TESTS) " in \
	      *" $$tst "*) \
		xpass=`expr $$xpass + 1`; \
		failed=`expr $$failed + 1`; \
		echo "XPASS: $$tst"; \
	      ;; \
	      *) \
		echo "PASS: $$tst"; \
	      ;; \
	      esac; \
	    elif test $$? -ne 77; then \
	      all=`expr $$all + 1`; \
	      case " $(XFAIL_TESTS) " in \
	      *" $$tst "*) \
		xfail=`expr $$xfail + 1`; \
		echo "XFAIL: $$tst"; \
	      ;; \
	      *) \
		failed=`expr $$failed + 1`; \
		echo "FAIL: $$tst"; \
	      ;; \
	      esac; \
	    else \
	      skip=`expr $$skip + 1`; \
	      echo "SKIP: $$tst"; \
	    fi; \
	  done; \
	  if test "$$failed" -eq 0; then \
	    if test "$$xfail" -eq 0; then \
	      banner="All $$all tests passed"; \
	    else \
	      banner="All $$all tests behaved as expected ($$xfail expected failures)"; \
	    fi; \
	  else \
	    if test "$$xpass" -eq 0; then \
	      banner="$$failed of $$all tests failed"; \
	    else \
	      banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \
	    fi; \
	  fi; \
	  dashes="$$banner"; \
	  skipped=""; \
	  if test "$$skip" -ne 0; then \
	    skipped="($$skip tests were not run)"; \
	    test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
	      dashes="$$skipped"; \
	  fi; \
	  report=""; \
	  if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
	    report="Please report to $(PACKAGE_BUGREPORT)"; \
	    test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
	      dashes="$$report"; \
	  fi; \
	  dashes=`echo "$$dashes" | sed s/./=/g`; \
	  echo "$$dashes"; \
	  echo "$$banner"; \
	  test -z "$$skipped" || echo "$$skipped"; \
	  test -z "$$report" || echo "$$report"; \
	  echo "$$dashes"; \
	  test "$$failed" -eq 0; \
	else :; fi

distdir: $(DISTFILES)
	$(am__remove_distdir)
	mkdir $(distdir)
	$(mkdir_p) $(distdir)/doc $(distdir)/m4 $(distdir)/packages $(distdir)/packages/rpm $(distdir)/src $(distdir)/src/google $(distdir)/windows
	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
	list='$(DISTFILES)'; for file in $$list; do \
	  case $$file in \
	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
	  esac; \
	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
	    dir="/$$dir"; \
	    $(mkdir_p) "$(distdir)$$dir"; \
	  else \
	    dir=''; \
	  fi; \
	  if test -d $$d/$$file; then \
	    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 $(SHELL) $(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 '1{h;s/./=/g;p;x;}' -e '$${p;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
	$(MAKE) $(AM_MAKEFLAGS) $(check_SCRIPTS)
	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
check: check-am
all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(DATA) \
		$(HEADERS)
installdirs:
	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(googleincludedir)"; 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:

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-libLTLIBRARIES clean-libtool \
	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-libtool distclean-tags

dvi: dvi-am

dvi-am:

html: html-am

info: info-am

info-am:

install-data-am: install-dist_docDATA install-googleincludeHEADERS

install-exec-am: install-libLTLIBRARIES

install-info: install-info-am

install-man:

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 \
	mostlyclean-libtool

pdf: pdf-am

pdf-am:

ps: ps-am

ps-am:

uninstall-am: uninstall-dist_docDATA uninstall-googleincludeHEADERS \
	uninstall-info-am uninstall-libLTLIBRARIES

.PHONY: CTAGS GTAGS all all-am am--refresh check check-TESTS check-am \
	clean clean-generic clean-libLTLIBRARIES clean-libtool \
	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-libtool distclean-tags distcleancheck distdir \
	distuninstallcheck dvi dvi-am html html-am info info-am \
	install install-am install-data install-data-am \
	install-dist_docDATA install-exec install-exec-am \
	install-googleincludeHEADERS install-info install-info-am \
	install-libLTLIBRARIES 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-dist_docDATA \
	uninstall-googleincludeHEADERS uninstall-info-am \
	uninstall-libLTLIBRARIES


rpm: dist-gzip packages/rpm.sh packages/rpm/rpm.spec
	@cd packages && ./rpm.sh ${PACKAGE} ${VERSION}

deb: dist-gzip packages/deb.sh packages/deb/*
	@cd packages && ./deb.sh ${PACKAGE} ${VERSION}

libtool: $(LIBTOOL_DEPS)
	$(SHELL) ./config.status --recheck
# 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:
