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

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

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





pkgdatadir = $(datadir)/libdbus-c++
pkgincludedir = $(includedir)/libdbus-c++
pkglibdir = $(libdir)/libdbus-c++
pkglibexecdir = $(libexecdir)/libdbus-c++
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = x86_64-unknown-linux-gnu
host_triplet = arm-unknown-linux-androideabi
subdir = src
DIST_COMMON = $(libdbus_c___1_HEADERS) $(srcdir)/Makefile.am \
	$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \
	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
    *) f=$$p;; \
  esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
  for p in $$list; do echo "$$p $$p"; done | \
  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
    if (++n[$$2] == $(am__install_max)) \
      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
    END { for (dir in files) print dir, files[dir] }'
am__base_list = \
  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__installdirs = "$(DESTDIR)$(libdir)" \
	"$(DESTDIR)$(libdbus_c___1dir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
am__DEPENDENCIES_1 =
libdbus_c___1_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_libdbus_c___1_la_OBJECTS = libdbus_c___1_la-connection.lo \
	libdbus_c___1_la-debug.lo libdbus_c___1_la-dispatcher.lo \
	libdbus_c___1_la-error.lo libdbus_c___1_la-eventloop.lo \
	libdbus_c___1_la-eventloop-integration.lo \
	libdbus_c___1_la-interface.lo \
	libdbus_c___1_la-introspection.lo libdbus_c___1_la-message.lo \
	libdbus_c___1_la-object.lo libdbus_c___1_la-pendingcall.lo \
	libdbus_c___1_la-pipe.lo libdbus_c___1_la-property.lo \
	libdbus_c___1_la-server.lo libdbus_c___1_la-types.lo
libdbus_c___1_la_OBJECTS = $(am_libdbus_c___1_la_OBJECTS)
libdbus_c___1_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=link $(CXXLD) \
	$(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
	$(LDFLAGS) -o $@
DEFAULT_INCLUDES = -I. -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
	--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
	--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
	$(LDFLAGS) -o $@
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
	$(LDFLAGS) -o $@
SOURCES = $(libdbus_c___1_la_SOURCES)
DIST_SOURCES = $(libdbus_c___1_la_SOURCES)
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
	html-recursive info-recursive install-data-recursive \
	install-dvi-recursive install-exec-recursive \
	install-html-recursive install-info-recursive \
	install-pdf-recursive install-ps-recursive install-recursive \
	installcheck-recursive installdirs-recursive pdf-recursive \
	ps-recursive uninstall-recursive
HEADERS = $(libdbus_c___1_HEADERS)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
  distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
	distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
am__relativize = \
  dir0=`pwd`; \
  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
  sed_rest='s,^[^/]*/*,,'; \
  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
  sed_butlast='s,/*[^/]*$$,,'; \
  while test -n "$$dir1"; do \
    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
    if test "$$first" != "."; then \
      if test "$$first" = ".."; then \
        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
      else \
        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
        if test "$$first2" = "$$first"; then \
          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
        else \
          dir2="../$$dir2"; \
        fi; \
        dir0="$$dir0"/"$$first"; \
      fi; \
    fi; \
    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
  done; \
  reldir="$$dir2"
ACLOCAL = ${SHELL} /home/evigier/git/libdbus-c++-0.9.0-android/missing --run aclocal-1.11
AMTAR = ${SHELL} /home/evigier/git/libdbus-c++-0.9.0-android/missing --run tar
AR = arm-linux-androideabi-ar
AUTOCONF = ${SHELL} /home/evigier/git/libdbus-c++-0.9.0-android/missing --run autoconf
AUTOHEADER = ${SHELL} /home/evigier/git/libdbus-c++-0.9.0-android/missing --run autoheader
AUTOMAKE = ${SHELL} /home/evigier/git/libdbus-c++-0.9.0-android/missing --run automake-1.11
AWK = gawk
BUILD_LIBDBUS_CXX_DIR = $(top_builddir)
CC = arm-linux-androideabi-gcc
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2
CPP = arm-linux-androideabi-gcc -E
CPPFLAGS = 
CXX = arm-linux-androideabi-g++
CXXCPP = arm-linux-androideabi-g++ -E
CXXDEPMODE = depmode=gcc3
CXXFLAGS = -g -O2 -fvisibility=hidden
CXX_FOR_BUILD = arm-linux-androideabi-g++
CYGPATH_W = echo
DEFS = -DHAVE_CONFIG_H
DEPDIR = .deps
DLLTOOL = false
DOXYGEN = no
DSYMUTIL = 
DUMPBIN = 
ECHO_C = 
ECHO_N = -n
ECHO_T = 
EGREP = /bin/grep -E
EXEEXT = 
FGREP = /bin/grep -F
GREP = /bin/grep
INSTALL = /usr/bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
LD = /home/evigier/android-14b-toolchain/arm-linux-androideabi/bin/ld
LDFLAGS = 
LIBOBJS = 
LIBS = 
LIBTOOL = $(SHELL) $(top_builddir)/libtool
LIPO = 
LN_S = ln -s
LTLIBOBJS = 
MAKEINFO = ${SHELL} /home/evigier/git/libdbus-c++-0.9.0-android/missing --run makeinfo
MANIFEST_TOOL = :
MKDIR_P = /bin/mkdir -p
NM = /home/evigier/android-14b-toolchain/bin/arm-linux-androideabi-nm -B
NMEDIT = 
OBJDUMP = arm-linux-androideabi-objdump
OBJEXT = o
OTOOL = 
OTOOL64 = 
PACKAGE = libdbus-c++
PACKAGE_BUGREPORT = andreas.volz@tux-style.com
PACKAGE_NAME = libdbus-c++
PACKAGE_STRING = libdbus-c++ 0.9.0
PACKAGE_TARNAME = libdbus-c--
PACKAGE_URL = 
PACKAGE_VERSION = 0.9.0
PATH_SEPARATOR = :
PKG_CONFIG = /usr/bin/pkg-config
PKG_CONFIG_LIBDIR = 
PKG_CONFIG_PATH = 
PTHREAD_CC = arm-linux-androideabi-gcc
PTHREAD_CFLAGS = 
PTHREAD_LIBS = 
RANLIB = arm-linux-androideabi-ranlib
RT_LIBS = 
SED = /bin/sed
SET_MAKE = 
SHELL = /bin/bash
STRIP = arm-linux-androideabi-strip
VERSION = 0.9.0
abs_builddir = /home/evigier/git/libdbus-c++-0.9.0-android/src
abs_srcdir = /home/evigier/git/libdbus-c++-0.9.0-android/src
abs_top_builddir = /home/evigier/git/libdbus-c++-0.9.0-android
abs_top_srcdir = /home/evigier/git/libdbus-c++-0.9.0-android
ac_ct_AR = 
ac_ct_CC = 
ac_ct_CXX = 
ac_ct_DUMPBIN = 
acx_pthread_config = 
am__include = include
am__leading_dot = .
am__quote = 
am__tar = ${AMTAR} chof - "$$tardir"
am__untar = ${AMTAR} xf -
bindir = ${exec_prefix}/bin
build = x86_64-unknown-linux-gnu
build_alias = 
build_cpu = x86_64
build_os = linux-gnu
build_vendor = unknown
builddir = .
datadir = ${datarootdir}
datarootdir = ${prefix}/share
dbus_CFLAGS = -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include  
dbus_LIBS = -ldbus-1 -lpthread -lrt  
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
dvidir = ${docdir}
ecore_CFLAGS = 
ecore_LIBS = 
exec_prefix = ${prefix}
glib_CFLAGS = -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include  
glib_LIBS = -lglib-2.0  
gtkmm_CFLAGS = 
gtkmm_LIBS = 
host = arm-unknown-linux-androideabi
host_alias = arm-linux-androideabi
host_cpu = arm
host_os = linux-androideabi
host_vendor = unknown
htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
install_sh = ${SHELL} /home/evigier/git/libdbus-c++-0.9.0-android/install-sh
libdir = ${exec_prefix}/lib
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
localstatedir = ${prefix}/var
mandir = ${datarootdir}/man
mkdir_p = /bin/mkdir -p
oldincludedir = /usr/include
pdfdir = ${docdir}
prefix = /home/evigier/android-ndk-r8b/platforms/android-14/arch-arm/usr
program_transform_name = s,x,x,
psdir = ${docdir}
sbindir = ${exec_prefix}/sbin
sharedstatedir = ${prefix}/com
srcdir = .
sysconfdir = ${prefix}/etc
target_alias = 
top_build_prefix = ../
top_builddir = ..
top_srcdir = ..
xml_CFLAGS = 
xml_LIBS = -lexpat
lib_LTLIBRARIES = \
	libdbus-c++-1.la

libdbus_c___1_la_SOURCES = \
	connection.cpp    \
	connection_p.h    \
	debug.cpp    \
	dispatcher.cpp    \
	dispatcher_p.h    \
	error.cpp    \
	eventloop.cpp    \
	eventloop-integration.cpp    \
	interface.cpp    \
	internalerror.h    \
	introspection.cpp    \
	message.cpp    \
	message_p.h    \
	object.cpp    \
	pendingcall.cpp    \
	pendingcall_p.h    \
	pipe.cpp    \
	property.cpp    \
	server.cpp    \
	server_p.h    \
	types.cpp    

libdbus_c___1_la_CXXFLAGS = \
	-I$(top_srcdir)/include \
	-Wno-unused-parameter

libdbus_c___1_la_LIBADD = \
	$(dbus_LIBS)

AM_CPPFLAGS = \
	$(dbus_CFLAGS) \
	$(glib_CFLAGS) \
	$(ecore_CFLAGS)

SUBDIRS = \
	integration

HEADER_DIR = $(top_srcdir)/include/dbus-c++
libdbus_c___1_HEADERS = \
	$(HEADER_DIR)/api.h          \
	$(HEADER_DIR)/connection.h          \
	$(HEADER_DIR)/dbus.h          \
	$(HEADER_DIR)/debug.h          \
	$(HEADER_DIR)/dispatcher.h          \
	$(HEADER_DIR)/error.h          \
	$(HEADER_DIR)/eventloop.h          \
	$(HEADER_DIR)/eventloop-integration.h          \
	$(HEADER_DIR)/interface.h          \
	$(HEADER_DIR)/introspection.h          \
	$(HEADER_DIR)/message.h          \
	$(HEADER_DIR)/object.h          \
	$(HEADER_DIR)/pendingcall.h          \
	$(HEADER_DIR)/pipe.h          \
	$(HEADER_DIR)/property.h          \
	$(HEADER_DIR)/refptr_impl.h          \
	$(HEADER_DIR)/server.h          \
	$(HEADER_DIR)/types.h          \
	$(HEADER_DIR)/util.h

libdbus_c___1dir = $(includedir)/dbus-c++-1/dbus-c++/
EXTRA_DIST = \
	$(libdbus_c___1_HEADERS)

all: all-recursive

.SUFFIXES:
.SUFFIXES: .cpp .lo .o .obj
$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \
	    *$$dep*) \
	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
	        && { if test -f $@; then exit 0; else break; fi; }; \
	      exit 1;; \
	  esac; \
	done; \
	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --foreign src/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
	@case '$?' in \
	  *config.status*) \
	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
	  *) \
	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
	esac;

$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh

$(top_srcdir)/configure:  $(am__configure_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
	@$(NORMAL_INSTALL)
	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
	list2=; for p in $$list; do \
	  if test -f $$p; then \
	    list2="$$list2 $$p"; \
	  else :; fi; \
	done; \
	test -z "$$list2" || { \
	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
	}

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

clean-libLTLIBRARIES:
	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
	  test "$$dir" != "$$p" || dir=.; \
	  echo "rm -f \"$${dir}/so_locations\""; \
	  rm -f "$${dir}/so_locations"; \
	done
libdbus-c++-1.la: $(libdbus_c___1_la_OBJECTS) $(libdbus_c___1_la_DEPENDENCIES) 
	$(libdbus_c___1_la_LINK) -rpath $(libdir) $(libdbus_c___1_la_OBJECTS) $(libdbus_c___1_la_LIBADD) $(LIBS)

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

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

include ./$(DEPDIR)/libdbus_c___1_la-connection.Plo
include ./$(DEPDIR)/libdbus_c___1_la-debug.Plo
include ./$(DEPDIR)/libdbus_c___1_la-dispatcher.Plo
include ./$(DEPDIR)/libdbus_c___1_la-error.Plo
include ./$(DEPDIR)/libdbus_c___1_la-eventloop-integration.Plo
include ./$(DEPDIR)/libdbus_c___1_la-eventloop.Plo
include ./$(DEPDIR)/libdbus_c___1_la-interface.Plo
include ./$(DEPDIR)/libdbus_c___1_la-introspection.Plo
include ./$(DEPDIR)/libdbus_c___1_la-message.Plo
include ./$(DEPDIR)/libdbus_c___1_la-object.Plo
include ./$(DEPDIR)/libdbus_c___1_la-pendingcall.Plo
include ./$(DEPDIR)/libdbus_c___1_la-pipe.Plo
include ./$(DEPDIR)/libdbus_c___1_la-property.Plo
include ./$(DEPDIR)/libdbus_c___1_la-server.Plo
include ./$(DEPDIR)/libdbus_c___1_la-types.Plo

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

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

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

libdbus_c___1_la-connection.lo: connection.cpp
	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -MT libdbus_c___1_la-connection.lo -MD -MP -MF $(DEPDIR)/libdbus_c___1_la-connection.Tpo -c -o libdbus_c___1_la-connection.lo `test -f 'connection.cpp' || echo '$(srcdir)/'`connection.cpp
	$(am__mv) $(DEPDIR)/libdbus_c___1_la-connection.Tpo $(DEPDIR)/libdbus_c___1_la-connection.Plo
#	source='connection.cpp' object='libdbus_c___1_la-connection.lo' libtool=yes \
#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -c -o libdbus_c___1_la-connection.lo `test -f 'connection.cpp' || echo '$(srcdir)/'`connection.cpp

libdbus_c___1_la-debug.lo: debug.cpp
	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -MT libdbus_c___1_la-debug.lo -MD -MP -MF $(DEPDIR)/libdbus_c___1_la-debug.Tpo -c -o libdbus_c___1_la-debug.lo `test -f 'debug.cpp' || echo '$(srcdir)/'`debug.cpp
	$(am__mv) $(DEPDIR)/libdbus_c___1_la-debug.Tpo $(DEPDIR)/libdbus_c___1_la-debug.Plo
#	source='debug.cpp' object='libdbus_c___1_la-debug.lo' libtool=yes \
#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -c -o libdbus_c___1_la-debug.lo `test -f 'debug.cpp' || echo '$(srcdir)/'`debug.cpp

libdbus_c___1_la-dispatcher.lo: dispatcher.cpp
	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -MT libdbus_c___1_la-dispatcher.lo -MD -MP -MF $(DEPDIR)/libdbus_c___1_la-dispatcher.Tpo -c -o libdbus_c___1_la-dispatcher.lo `test -f 'dispatcher.cpp' || echo '$(srcdir)/'`dispatcher.cpp
	$(am__mv) $(DEPDIR)/libdbus_c___1_la-dispatcher.Tpo $(DEPDIR)/libdbus_c___1_la-dispatcher.Plo
#	source='dispatcher.cpp' object='libdbus_c___1_la-dispatcher.lo' libtool=yes \
#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -c -o libdbus_c___1_la-dispatcher.lo `test -f 'dispatcher.cpp' || echo '$(srcdir)/'`dispatcher.cpp

libdbus_c___1_la-error.lo: error.cpp
	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -MT libdbus_c___1_la-error.lo -MD -MP -MF $(DEPDIR)/libdbus_c___1_la-error.Tpo -c -o libdbus_c___1_la-error.lo `test -f 'error.cpp' || echo '$(srcdir)/'`error.cpp
	$(am__mv) $(DEPDIR)/libdbus_c___1_la-error.Tpo $(DEPDIR)/libdbus_c___1_la-error.Plo
#	source='error.cpp' object='libdbus_c___1_la-error.lo' libtool=yes \
#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -c -o libdbus_c___1_la-error.lo `test -f 'error.cpp' || echo '$(srcdir)/'`error.cpp

libdbus_c___1_la-eventloop.lo: eventloop.cpp
	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -MT libdbus_c___1_la-eventloop.lo -MD -MP -MF $(DEPDIR)/libdbus_c___1_la-eventloop.Tpo -c -o libdbus_c___1_la-eventloop.lo `test -f 'eventloop.cpp' || echo '$(srcdir)/'`eventloop.cpp
	$(am__mv) $(DEPDIR)/libdbus_c___1_la-eventloop.Tpo $(DEPDIR)/libdbus_c___1_la-eventloop.Plo
#	source='eventloop.cpp' object='libdbus_c___1_la-eventloop.lo' libtool=yes \
#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -c -o libdbus_c___1_la-eventloop.lo `test -f 'eventloop.cpp' || echo '$(srcdir)/'`eventloop.cpp

libdbus_c___1_la-eventloop-integration.lo: eventloop-integration.cpp
	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -MT libdbus_c___1_la-eventloop-integration.lo -MD -MP -MF $(DEPDIR)/libdbus_c___1_la-eventloop-integration.Tpo -c -o libdbus_c___1_la-eventloop-integration.lo `test -f 'eventloop-integration.cpp' || echo '$(srcdir)/'`eventloop-integration.cpp
	$(am__mv) $(DEPDIR)/libdbus_c___1_la-eventloop-integration.Tpo $(DEPDIR)/libdbus_c___1_la-eventloop-integration.Plo
#	source='eventloop-integration.cpp' object='libdbus_c___1_la-eventloop-integration.lo' libtool=yes \
#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -c -o libdbus_c___1_la-eventloop-integration.lo `test -f 'eventloop-integration.cpp' || echo '$(srcdir)/'`eventloop-integration.cpp

libdbus_c___1_la-interface.lo: interface.cpp
	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -MT libdbus_c___1_la-interface.lo -MD -MP -MF $(DEPDIR)/libdbus_c___1_la-interface.Tpo -c -o libdbus_c___1_la-interface.lo `test -f 'interface.cpp' || echo '$(srcdir)/'`interface.cpp
	$(am__mv) $(DEPDIR)/libdbus_c___1_la-interface.Tpo $(DEPDIR)/libdbus_c___1_la-interface.Plo
#	source='interface.cpp' object='libdbus_c___1_la-interface.lo' libtool=yes \
#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -c -o libdbus_c___1_la-interface.lo `test -f 'interface.cpp' || echo '$(srcdir)/'`interface.cpp

libdbus_c___1_la-introspection.lo: introspection.cpp
	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -MT libdbus_c___1_la-introspection.lo -MD -MP -MF $(DEPDIR)/libdbus_c___1_la-introspection.Tpo -c -o libdbus_c___1_la-introspection.lo `test -f 'introspection.cpp' || echo '$(srcdir)/'`introspection.cpp
	$(am__mv) $(DEPDIR)/libdbus_c___1_la-introspection.Tpo $(DEPDIR)/libdbus_c___1_la-introspection.Plo
#	source='introspection.cpp' object='libdbus_c___1_la-introspection.lo' libtool=yes \
#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -c -o libdbus_c___1_la-introspection.lo `test -f 'introspection.cpp' || echo '$(srcdir)/'`introspection.cpp

libdbus_c___1_la-message.lo: message.cpp
	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -MT libdbus_c___1_la-message.lo -MD -MP -MF $(DEPDIR)/libdbus_c___1_la-message.Tpo -c -o libdbus_c___1_la-message.lo `test -f 'message.cpp' || echo '$(srcdir)/'`message.cpp
	$(am__mv) $(DEPDIR)/libdbus_c___1_la-message.Tpo $(DEPDIR)/libdbus_c___1_la-message.Plo
#	source='message.cpp' object='libdbus_c___1_la-message.lo' libtool=yes \
#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -c -o libdbus_c___1_la-message.lo `test -f 'message.cpp' || echo '$(srcdir)/'`message.cpp

libdbus_c___1_la-object.lo: object.cpp
	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -MT libdbus_c___1_la-object.lo -MD -MP -MF $(DEPDIR)/libdbus_c___1_la-object.Tpo -c -o libdbus_c___1_la-object.lo `test -f 'object.cpp' || echo '$(srcdir)/'`object.cpp
	$(am__mv) $(DEPDIR)/libdbus_c___1_la-object.Tpo $(DEPDIR)/libdbus_c___1_la-object.Plo
#	source='object.cpp' object='libdbus_c___1_la-object.lo' libtool=yes \
#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -c -o libdbus_c___1_la-object.lo `test -f 'object.cpp' || echo '$(srcdir)/'`object.cpp

libdbus_c___1_la-pendingcall.lo: pendingcall.cpp
	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -MT libdbus_c___1_la-pendingcall.lo -MD -MP -MF $(DEPDIR)/libdbus_c___1_la-pendingcall.Tpo -c -o libdbus_c___1_la-pendingcall.lo `test -f 'pendingcall.cpp' || echo '$(srcdir)/'`pendingcall.cpp
	$(am__mv) $(DEPDIR)/libdbus_c___1_la-pendingcall.Tpo $(DEPDIR)/libdbus_c___1_la-pendingcall.Plo
#	source='pendingcall.cpp' object='libdbus_c___1_la-pendingcall.lo' libtool=yes \
#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -c -o libdbus_c___1_la-pendingcall.lo `test -f 'pendingcall.cpp' || echo '$(srcdir)/'`pendingcall.cpp

libdbus_c___1_la-pipe.lo: pipe.cpp
	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -MT libdbus_c___1_la-pipe.lo -MD -MP -MF $(DEPDIR)/libdbus_c___1_la-pipe.Tpo -c -o libdbus_c___1_la-pipe.lo `test -f 'pipe.cpp' || echo '$(srcdir)/'`pipe.cpp
	$(am__mv) $(DEPDIR)/libdbus_c___1_la-pipe.Tpo $(DEPDIR)/libdbus_c___1_la-pipe.Plo
#	source='pipe.cpp' object='libdbus_c___1_la-pipe.lo' libtool=yes \
#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -c -o libdbus_c___1_la-pipe.lo `test -f 'pipe.cpp' || echo '$(srcdir)/'`pipe.cpp

libdbus_c___1_la-property.lo: property.cpp
	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -MT libdbus_c___1_la-property.lo -MD -MP -MF $(DEPDIR)/libdbus_c___1_la-property.Tpo -c -o libdbus_c___1_la-property.lo `test -f 'property.cpp' || echo '$(srcdir)/'`property.cpp
	$(am__mv) $(DEPDIR)/libdbus_c___1_la-property.Tpo $(DEPDIR)/libdbus_c___1_la-property.Plo
#	source='property.cpp' object='libdbus_c___1_la-property.lo' libtool=yes \
#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -c -o libdbus_c___1_la-property.lo `test -f 'property.cpp' || echo '$(srcdir)/'`property.cpp

libdbus_c___1_la-server.lo: server.cpp
	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -MT libdbus_c___1_la-server.lo -MD -MP -MF $(DEPDIR)/libdbus_c___1_la-server.Tpo -c -o libdbus_c___1_la-server.lo `test -f 'server.cpp' || echo '$(srcdir)/'`server.cpp
	$(am__mv) $(DEPDIR)/libdbus_c___1_la-server.Tpo $(DEPDIR)/libdbus_c___1_la-server.Plo
#	source='server.cpp' object='libdbus_c___1_la-server.lo' libtool=yes \
#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -c -o libdbus_c___1_la-server.lo `test -f 'server.cpp' || echo '$(srcdir)/'`server.cpp

libdbus_c___1_la-types.lo: types.cpp
	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -MT libdbus_c___1_la-types.lo -MD -MP -MF $(DEPDIR)/libdbus_c___1_la-types.Tpo -c -o libdbus_c___1_la-types.lo `test -f 'types.cpp' || echo '$(srcdir)/'`types.cpp
	$(am__mv) $(DEPDIR)/libdbus_c___1_la-types.Tpo $(DEPDIR)/libdbus_c___1_la-types.Plo
#	source='types.cpp' object='libdbus_c___1_la-types.lo' libtool=yes \
#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
#	$(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbus_c___1_la_CXXFLAGS) $(CXXFLAGS) -c -o libdbus_c___1_la-types.lo `test -f 'types.cpp' || echo '$(srcdir)/'`types.cpp

mostlyclean-libtool:
	-rm -f *.lo

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

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

# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
#     (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
	@fail= failcom='exit 1'; \
	for f in x $$MAKEFLAGS; do \
	  case $$f in \
	    *=* | --[!k]*);; \
	    *k*) failcom='fail=yes';; \
	  esac; \
	done; \
	dot_seen=no; \
	target=`echo $@ | sed s/-recursive//`; \
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  echo "Making $$target in $$subdir"; \
	  if test "$$subdir" = "."; then \
	    dot_seen=yes; \
	    local_target="$$target-am"; \
	  else \
	    local_target="$$target"; \
	  fi; \
	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
	  || eval $$failcom; \
	done; \
	if test "$$dot_seen" = "no"; then \
	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
	fi; test -z "$$fail"

$(RECURSIVE_CLEAN_TARGETS):
	@fail= failcom='exit 1'; \
	for f in x $$MAKEFLAGS; do \
	  case $$f in \
	    *=* | --[!k]*);; \
	    *k*) failcom='fail=yes';; \
	  esac; \
	done; \
	dot_seen=no; \
	case "$@" in \
	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
	  *) list='$(SUBDIRS)' ;; \
	esac; \
	rev=''; for subdir in $$list; do \
	  if test "$$subdir" = "."; then :; else \
	    rev="$$subdir $$rev"; \
	  fi; \
	done; \
	rev="$$rev ."; \
	target=`echo $@ | sed s/-recursive//`; \
	for subdir in $$rev; do \
	  echo "Making $$target in $$subdir"; \
	  if test "$$subdir" = "."; then \
	    local_target="$$target-am"; \
	  else \
	    local_target="$$target"; \
	  fi; \
	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
	  || eval $$failcom; \
	done && test -z "$$fail"
tags-recursive:
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
	done
ctags-recursive:
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
	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; nonempty = 1; } \
	      END { if (nonempty) { for (i in files) print i; }; }'`; \
	mkid -fID $$unique
tags: TAGS

TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
		$(TAGS_FILES) $(LISP)
	set x; \
	here=`pwd`; \
	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
	  include_option=--etags-include; \
	  empty_fix=.; \
	else \
	  include_option=--include; \
	  empty_fix=; \
	fi; \
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  if test "$$subdir" = .; then :; else \
	    test ! -f $$subdir/TAGS || \
	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
	  fi; \
	done; \
	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
	unique=`for i in $$list; do \
	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
	  done | \
	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
	      END { if (nonempty) { for (i in files) print i; }; }'`; \
	shift; \
	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
	  test -n "$$unique" || unique=$$empty_fix; \
	  if test $$# -gt 0; then \
	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
	      "$$@" $$unique; \
	  else \
	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
	      $$unique; \
	  fi; \
	fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
		$(TAGS_FILES) $(LISP)
	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
	unique=`for i in $$list; do \
	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
	  done | \
	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
	      END { if (nonempty) { for (i in files) print i; }; }'`; \
	test -z "$(CTAGS_ARGS)$$unique" \
	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
	     $$unique

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

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

distdir: $(DISTFILES)
	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	list='$(DISTFILES)'; \
	  dist_files=`for file in $$list; do echo $$file; done | \
	  sed -e "s|^$$srcdirstrip/||;t" \
	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
	case $$dist_files in \
	  */*) $(MKDIR_P) `echo "$$dist_files" | \
			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
			   sort -u` ;; \
	esac; \
	for file in $$dist_files; do \
	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
	  if test -d $$d/$$file; then \
	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
	    if test -d "$(distdir)/$$file"; then \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
	    fi; \
	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
	  else \
	    test -f "$(distdir)/$$file" \
	    || cp -p $$d/$$file "$(distdir)/$$file" \
	    || exit 1; \
	  fi; \
	done
	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
	  if test "$$subdir" = .; then :; else \
	    test -d "$(distdir)/$$subdir" \
	    || $(MKDIR_P) "$(distdir)/$$subdir" \
	    || exit 1; \
	  fi; \
	done
	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
	  if test "$$subdir" = .; then :; else \
	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
	    $(am__relativize); \
	    new_distdir=$$reldir; \
	    dir1=$$subdir; dir2="$(top_distdir)"; \
	    $(am__relativize); \
	    new_top_distdir=$$reldir; \
	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
	    ($(am__cd) $$subdir && \
	      $(MAKE) $(AM_MAKEFLAGS) \
	        top_distdir="$$new_top_distdir" \
	        distdir="$$new_distdir" \
		am__remove_distdir=: \
		am__skip_length_check=: \
		am__skip_mode_fix=: \
	        distdir) \
	      || exit 1; \
	  fi; \
	done
check-am: all-am
check: check-recursive
all-am: Makefile $(LTLIBRARIES) $(HEADERS)
installdirs: installdirs-recursive
installdirs-am:
	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libdbus_c___1dir)"; do \
	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
	done
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive

install-am: all-am
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am

installcheck: installcheck-recursive
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)
	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)

maintainer-clean-generic:
	@echo "This command is intended for maintainers to use"
	@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive

clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
	mostlyclean-am

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

dvi: dvi-recursive

dvi-am:

html: html-recursive

html-am:

info: info-recursive

info-am:

install-data-am: install-libdbus_c___1HEADERS

install-dvi: install-dvi-recursive

install-dvi-am:

install-exec-am: install-libLTLIBRARIES

install-html: install-html-recursive

install-html-am:

install-info: install-info-recursive

install-info-am:

install-man:

install-pdf: install-pdf-recursive

install-pdf-am:

install-ps: install-ps-recursive

install-ps-am:

installcheck-am:

maintainer-clean: maintainer-clean-recursive
	-rm -rf ./$(DEPDIR)
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

mostlyclean: mostlyclean-recursive

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

pdf: pdf-recursive

pdf-am:

ps: ps-recursive

ps-am:

uninstall-am: uninstall-libLTLIBRARIES uninstall-libdbus_c___1HEADERS

.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
	install-am install-strip tags-recursive

.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
	all all-am check check-am clean clean-generic \
	clean-libLTLIBRARIES clean-libtool ctags ctags-recursive \
	distclean distclean-compile distclean-generic \
	distclean-libtool distclean-tags distdir dvi dvi-am html \
	html-am info info-am install install-am install-data \
	install-data-am install-dvi install-dvi-am install-exec \
	install-exec-am install-html install-html-am install-info \
	install-info-am install-libLTLIBRARIES \
	install-libdbus_c___1HEADERS install-man install-pdf \
	install-pdf-am install-ps install-ps-am install-strip \
	installcheck installcheck-am installdirs installdirs-am \
	maintainer-clean maintainer-clean-generic mostlyclean \
	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
	pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
	uninstall-libLTLIBRARIES uninstall-libdbus_c___1HEADERS


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