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

# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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@

# This file is part of avahi.
#
# avahi is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# avahi is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
# License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with avahi; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA.



VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@@HAVE_INTROSPECTION_TRUE@am__append_1 = Avahi-0.6.gir
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@@HAVE_INTROSPECTION_TRUE@am__append_2 = $(INTROSPECTION_GIRS) $(typelib_DATA)
subdir = avahi-gobject
DIST_COMMON = $(am__avahigobjectinclude_HEADERS_DIST) \
	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/common/acx_pthread.m4 \
	$(top_srcdir)/common/gcc_stack_protect.m4 \
	$(top_srcdir)/common/gcc_visibility.m4 \
	$(top_srcdir)/common/intltool.m4 \
	$(top_srcdir)/common/introspection.m4 \
	$(top_srcdir)/common/libtool.m4 \
	$(top_srcdir)/common/ltoptions.m4 \
	$(top_srcdir)/common/ltsugar.m4 \
	$(top_srcdir)/common/ltversion.m4 \
	$(top_srcdir)/common/lt~obsolete.m4 \
	$(top_srcdir)/common/nls.m4 $(top_srcdir)/common/python.m4 \
	$(top_srcdir)/acinclude.m4 $(top_srcdir)/common/doxygen.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__uninstall_files_from_dir = { \
  test -z "$$files" \
    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
         $(am__cd) "$$dir" && rm -f $$files; }; \
  }
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
	"$(DESTDIR)$(typelibdir)" \
	"$(DESTDIR)$(avahigobjectincludedir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
am__DEPENDENCIES_1 =
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@libavahi_gobject_la_DEPENDENCIES = ../avahi-common/libavahi-common.la \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	../avahi-client/libavahi-client.la \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	../avahi-glib/libavahi-glib.la \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	$(am__DEPENDENCIES_1)
am__libavahi_gobject_la_SOURCES_DIST = ga-client.c ga-client.h \
	ga-entry-group.c ga-entry-group.h ga-enums.h ga-error.c \
	ga-error.h ga-record-browser.c ga-record-browser.h \
	ga-service-browser.c ga-service-browser.h \
	ga-service-resolver.c ga-service-resolver.h \
	signals-marshal.list signals-marshal.h signals-marshal.c \
	ga-client-enumtypes.h ga-client-enumtypes.c \
	ga-entry-group-enumtypes.h ga-entry-group-enumtypes.c \
	ga-enums-enumtypes.h ga-enums-enumtypes.c
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@am__objects_1 = libavahi_gobject_la-ga-client.lo \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	libavahi_gobject_la-ga-entry-group.lo \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	libavahi_gobject_la-ga-error.lo \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	libavahi_gobject_la-ga-record-browser.lo \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	libavahi_gobject_la-ga-service-browser.lo \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	libavahi_gobject_la-ga-service-resolver.lo
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@am__objects_2 = libavahi_gobject_la-signals-marshal.lo \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	libavahi_gobject_la-ga-client-enumtypes.lo \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	libavahi_gobject_la-ga-entry-group-enumtypes.lo \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	libavahi_gobject_la-ga-enums-enumtypes.lo
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@am_libavahi_gobject_la_OBJECTS =  \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	$(am__objects_1) \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	$(am__objects_2)
libavahi_gobject_la_OBJECTS = $(am_libavahi_gobject_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
libavahi_gobject_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
	$(libavahi_gobject_la_CFLAGS) $(CFLAGS) \
	$(libavahi_gobject_la_LDFLAGS) $(LDFLAGS) -o $@
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@am_libavahi_gobject_la_rpath =  \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	-rpath $(libdir)
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
	$(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_@AM_V@)
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
am__v_CC_0 = @echo "  CC    " $@;
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
CCLD = $(CC)
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
	$(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo "  CCLD  " $@;
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo "  GEN   " $@;
SOURCES = $(libavahi_gobject_la_SOURCES)
DIST_SOURCES = $(am__libavahi_gobject_la_SOURCES_DIST)
DATA = $(gir_DATA) $(typelib_DATA)
am__avahigobjectinclude_HEADERS_DIST = ga-client.h ga-entry-group.h \
	ga-enums.h ga-error.h ga-record-browser.h ga-service-browser.h \
	ga-service-resolver.h
HEADERS = $(avahigobjectinclude_HEADERS)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AVAHI_AUTOIPD_GROUP = @AVAHI_AUTOIPD_GROUP@
AVAHI_AUTOIPD_USER = @AVAHI_AUTOIPD_USER@
AVAHI_GROUP = @AVAHI_GROUP@
AVAHI_PRIV_ACCESS_GROUP = @AVAHI_PRIV_ACCESS_GROUP@
AVAHI_USER = @AVAHI_USER@
AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DBUS_CFLAGS = @DBUS_CFLAGS@
DBUS_LIBS = @DBUS_LIBS@
DBUS_SYSTEM_BUS_DEFAULT_ADDRESS = @DBUS_SYSTEM_BUS_DEFAULT_ADDRESS@
DBUS_SYS_DIR = @DBUS_SYS_DIR@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DOXYGEN_PAPER_SIZE = @DOXYGEN_PAPER_SIZE@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
DX_CONFIG = @DX_CONFIG@
DX_DOCDIR = @DX_DOCDIR@
DX_DOT = @DX_DOT@
DX_DOXYGEN = @DX_DOXYGEN@
DX_DVIPS = @DX_DVIPS@
DX_EGREP = @DX_EGREP@
DX_ENV = @DX_ENV@
DX_FLAG_chi = @DX_FLAG_chi@
DX_FLAG_chm = @DX_FLAG_chm@
DX_FLAG_doc = @DX_FLAG_doc@
DX_FLAG_dot = @DX_FLAG_dot@
DX_FLAG_html = @DX_FLAG_html@
DX_FLAG_man = @DX_FLAG_man@
DX_FLAG_pdf = @DX_FLAG_pdf@
DX_FLAG_ps = @DX_FLAG_ps@
DX_FLAG_rtf = @DX_FLAG_rtf@
DX_FLAG_xml = @DX_FLAG_xml@
DX_HHC = @DX_HHC@
DX_LATEX = @DX_LATEX@
DX_MAKEINDEX = @DX_MAKEINDEX@
DX_PDFLATEX = @DX_PDFLATEX@
DX_PERL = @DX_PERL@
DX_PROJECT = @DX_PROJECT@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GLIB20_CFLAGS = @GLIB20_CFLAGS@
GLIB20_LIBS = @GLIB20_LIBS@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
GOBJECT_CFLAGS = @GOBJECT_CFLAGS@
GOBJECT_LIBS = @GOBJECT_LIBS@
GREP = @GREP@
GTK20_CFLAGS = @GTK20_CFLAGS@
GTK20_LIBS = @GTK20_LIBS@
GTK30_CFLAGS = @GTK30_CFLAGS@
GTK30_LIBS = @GTK30_LIBS@
HOWL_COMPAT_VERSION = @HOWL_COMPAT_VERSION@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTOBJEXT = @INSTOBJEXT@
INTLLIBS = @INTLLIBS@
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
INTLTOOL_MERGE = @INTLTOOL_MERGE@
INTLTOOL_PERL = @INTLTOOL_PERL@
INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBAVAHI_CLIENT_VERSION_INFO = @LIBAVAHI_CLIENT_VERSION_INFO@
LIBAVAHI_COMMON_VERSION_INFO = @LIBAVAHI_COMMON_VERSION_INFO@
LIBAVAHI_COMPAT_HOWL_VERSION_INFO = @LIBAVAHI_COMPAT_HOWL_VERSION_INFO@
LIBAVAHI_COMPAT_LIBDNS_SD_VERSION_INFO = @LIBAVAHI_COMPAT_LIBDNS_SD_VERSION_INFO@
LIBAVAHI_CORE_VERSION_INFO = @LIBAVAHI_CORE_VERSION_INFO@
LIBAVAHI_GLIB_VERSION_INFO = @LIBAVAHI_GLIB_VERSION_INFO@
LIBAVAHI_GOBJECT_VERSION_INFO = @LIBAVAHI_GOBJECT_VERSION_INFO@
LIBAVAHI_QT3_VERSION_INFO = @LIBAVAHI_QT3_VERSION_INFO@
LIBAVAHI_QT4_VERSION_INFO = @LIBAVAHI_QT4_VERSION_INFO@
LIBAVAHI_UI_VERSION_INFO = @LIBAVAHI_UI_VERSION_INFO@
LIBDAEMON_CFLAGS = @LIBDAEMON_CFLAGS@
LIBDAEMON_LIBS = @LIBDAEMON_LIBS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MCS = @MCS@
MDASSEMBLER = @MDASSEMBLER@
MKDIR_P = @MKDIR_P@
MKINSTALLDIRS = @MKINSTALLDIRS@
MOC_QT3 = @MOC_QT3@
MOC_QT4 = @MOC_QT4@
MONODOCER = @MONODOCER@
MONODOC_CFLAGS = @MONODOC_CFLAGS@
MONODOC_DIR = @MONODOC_DIR@
MONODOC_LIBS = @MONODOC_LIBS@
MSGFMT = @MSGFMT@
MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
PYTHON = @PYTHON@
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
PYTHON_PLATFORM = @PYTHON_PLATFORM@
PYTHON_PREFIX = @PYTHON_PREFIX@
PYTHON_VERSION = @PYTHON_VERSION@
QT3_CFLAGS = @QT3_CFLAGS@
QT3_LIBS = @QT3_LIBS@
QT4_CFLAGS = @QT4_CFLAGS@
QT4_LIBS = @QT4_LIBS@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STOW = @STOW@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
VISIBILITY_HIDDEN_CFLAGS = @VISIBILITY_HIDDEN_CFLAGS@
XGETTEXT = @XGETTEXT@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
acx_pthread_config = @acx_pthread_config@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
avahi_runtime_dir = @avahi_runtime_dir@
avahi_socket = @avahi_socket@
avahilocaledir = @avahilocaledir@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
have_pkg_config = @have_pkg_config@
have_xmltoman = @have_xmltoman@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
interfacesdir = @interfacesdir@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
pkgpyexecdir = @pkgpyexecdir@
pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
systemdsystemunitdir = @systemdsystemunitdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@

# This cool debug trap works on i386/gcc only
AM_CFLAGS = -I$(top_srcdir) '-DDEBUG_TRAP=__asm__("int $$3")'
EXTRA_DIST = \
	AvahiCore-0.6.gir

@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@avahigobjectincludedir = $(includedir)/avahi-gobject
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@avahigobjectinclude_HEADERS = \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	ga-client.h \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	ga-entry-group.h \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	ga-enums.h \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	ga-error.h \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	ga-record-browser.h \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	ga-service-browser.h \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	ga-service-resolver.h

@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@lib_LTLIBRARIES = \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	libavahi-gobject.la

@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@BUILT_SOURCES = \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	signals-marshal.list \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	signals-marshal.h \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	signals-marshal.c \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	ga-client-enumtypes.h \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	ga-client-enumtypes.c  \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	ga-entry-group-enumtypes.h \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	ga-entry-group-enumtypes.c  \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	ga-enums-enumtypes.h \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	ga-enums-enumtypes.c

@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@CORE_SOURCES = \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	ga-client.c ga-client.h \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	ga-entry-group.c ga-entry-group.h \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	ga-enums.h \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	ga-error.c ga-error.h \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	ga-record-browser.c ga-record-browser.h \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	ga-service-browser.c ga-service-browser.h \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	ga-service-resolver.c ga-service-resolver.h

@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@libavahi_gobject_la_SOURCES = \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	$(CORE_SOURCES) \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	$(BUILT_SOURCES)

@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@libavahi_gobject_la_CFLAGS = $(AM_CFLAGS) $(GOBJECT_CFLAGS)
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@libavahi_gobject_la_LIBADD = $(AM_LDADD) ../avahi-common/libavahi-common.la ../avahi-client/libavahi-client.la ../avahi-glib/libavahi-glib.la $(GOBJECT_LIBS)
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@libavahi_gobject_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LIBAVAHI_GOBJECT_VERSION_INFO) -export-symbols-regex '^ga_'

# correctly clean the generated source files
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@CLEANFILES = $(BUILT_SOURCES) \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	$(am__append_2)
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@INTROSPECTION_GIRS =  \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	$(am__append_1)
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir)
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir)
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@@HAVE_INTROSPECTION_TRUE@introspection_sources = $(libavahi_gobject_la_SOURCES)
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@@HAVE_INTROSPECTION_TRUE@Avahi_0_6_gir_INCLUDES = GObject-2.0 AvahiCore-0.6
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@@HAVE_INTROSPECTION_TRUE@Avahi_0_6_gir_CFLAGS = $(libavahi_gobject_la_CFLAGS)
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@@HAVE_INTROSPECTION_TRUE@Avahi_0_6_gir_LIBS = $(lib_LTLIBRARIES)
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@@HAVE_INTROSPECTION_TRUE@Avahi_0_6_gir_FILES = $(addprefix $(srcdir)/, $(CORE_SOURCES)) $(BUILT_SOURCES)
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@@HAVE_INTROSPECTION_TRUE@Avahi_0_6_gir_SCANNERFLAGS = --strip-prefix=Ga
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@@HAVE_INTROSPECTION_TRUE@INTROSPECTION_INSTALL_GIRS = AvahiCore-0.6.gir $(INTROSPECTION_GIRS)
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@@HAVE_INTROSPECTION_TRUE@girdir = $(datadir)/gir-1.0
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@@HAVE_INTROSPECTION_TRUE@gir_DATA = $(INTROSPECTION_INSTALL_GIRS)
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@@HAVE_INTROSPECTION_TRUE@typelibdir = $(libdir)/girepository-1.0
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@@HAVE_INTROSPECTION_TRUE@typelib_DATA = $(INTROSPECTION_INSTALL_GIRS:.gir=.typelib)
all: $(BUILT_SOURCES)
	$(MAKE) $(AM_MAKEFLAGS) all-am

.SUFFIXES:
.SUFFIXES: .c .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 avahi-gobject/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --foreign avahi-gobject/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
libavahi-gobject.la: $(libavahi_gobject_la_OBJECTS) $(libavahi_gobject_la_DEPENDENCIES) $(EXTRA_libavahi_gobject_la_DEPENDENCIES) 
	$(AM_V_CCLD)$(libavahi_gobject_la_LINK) $(am_libavahi_gobject_la_rpath) $(libavahi_gobject_la_OBJECTS) $(libavahi_gobject_la_LIBADD) $(LIBS)

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

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

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libavahi_gobject_la-ga-client-enumtypes.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libavahi_gobject_la-ga-client.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libavahi_gobject_la-ga-entry-group-enumtypes.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libavahi_gobject_la-ga-entry-group.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libavahi_gobject_la-ga-enums-enumtypes.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libavahi_gobject_la-ga-error.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libavahi_gobject_la-ga-record-browser.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libavahi_gobject_la-ga-service-browser.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libavahi_gobject_la-ga-service-resolver.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libavahi_gobject_la-signals-marshal.Plo@am__quote@

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

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

.c.lo:
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<

libavahi_gobject_la-ga-client.lo: ga-client.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libavahi_gobject_la_CFLAGS) $(CFLAGS) -MT libavahi_gobject_la-ga-client.lo -MD -MP -MF $(DEPDIR)/libavahi_gobject_la-ga-client.Tpo -c -o libavahi_gobject_la-ga-client.lo `test -f 'ga-client.c' || echo '$(srcdir)/'`ga-client.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libavahi_gobject_la-ga-client.Tpo $(DEPDIR)/libavahi_gobject_la-ga-client.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ga-client.c' object='libavahi_gobject_la-ga-client.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libavahi_gobject_la_CFLAGS) $(CFLAGS) -c -o libavahi_gobject_la-ga-client.lo `test -f 'ga-client.c' || echo '$(srcdir)/'`ga-client.c

libavahi_gobject_la-ga-entry-group.lo: ga-entry-group.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libavahi_gobject_la_CFLAGS) $(CFLAGS) -MT libavahi_gobject_la-ga-entry-group.lo -MD -MP -MF $(DEPDIR)/libavahi_gobject_la-ga-entry-group.Tpo -c -o libavahi_gobject_la-ga-entry-group.lo `test -f 'ga-entry-group.c' || echo '$(srcdir)/'`ga-entry-group.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libavahi_gobject_la-ga-entry-group.Tpo $(DEPDIR)/libavahi_gobject_la-ga-entry-group.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ga-entry-group.c' object='libavahi_gobject_la-ga-entry-group.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libavahi_gobject_la_CFLAGS) $(CFLAGS) -c -o libavahi_gobject_la-ga-entry-group.lo `test -f 'ga-entry-group.c' || echo '$(srcdir)/'`ga-entry-group.c

libavahi_gobject_la-ga-error.lo: ga-error.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libavahi_gobject_la_CFLAGS) $(CFLAGS) -MT libavahi_gobject_la-ga-error.lo -MD -MP -MF $(DEPDIR)/libavahi_gobject_la-ga-error.Tpo -c -o libavahi_gobject_la-ga-error.lo `test -f 'ga-error.c' || echo '$(srcdir)/'`ga-error.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libavahi_gobject_la-ga-error.Tpo $(DEPDIR)/libavahi_gobject_la-ga-error.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ga-error.c' object='libavahi_gobject_la-ga-error.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libavahi_gobject_la_CFLAGS) $(CFLAGS) -c -o libavahi_gobject_la-ga-error.lo `test -f 'ga-error.c' || echo '$(srcdir)/'`ga-error.c

libavahi_gobject_la-ga-record-browser.lo: ga-record-browser.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libavahi_gobject_la_CFLAGS) $(CFLAGS) -MT libavahi_gobject_la-ga-record-browser.lo -MD -MP -MF $(DEPDIR)/libavahi_gobject_la-ga-record-browser.Tpo -c -o libavahi_gobject_la-ga-record-browser.lo `test -f 'ga-record-browser.c' || echo '$(srcdir)/'`ga-record-browser.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libavahi_gobject_la-ga-record-browser.Tpo $(DEPDIR)/libavahi_gobject_la-ga-record-browser.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ga-record-browser.c' object='libavahi_gobject_la-ga-record-browser.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libavahi_gobject_la_CFLAGS) $(CFLAGS) -c -o libavahi_gobject_la-ga-record-browser.lo `test -f 'ga-record-browser.c' || echo '$(srcdir)/'`ga-record-browser.c

libavahi_gobject_la-ga-service-browser.lo: ga-service-browser.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libavahi_gobject_la_CFLAGS) $(CFLAGS) -MT libavahi_gobject_la-ga-service-browser.lo -MD -MP -MF $(DEPDIR)/libavahi_gobject_la-ga-service-browser.Tpo -c -o libavahi_gobject_la-ga-service-browser.lo `test -f 'ga-service-browser.c' || echo '$(srcdir)/'`ga-service-browser.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libavahi_gobject_la-ga-service-browser.Tpo $(DEPDIR)/libavahi_gobject_la-ga-service-browser.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ga-service-browser.c' object='libavahi_gobject_la-ga-service-browser.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libavahi_gobject_la_CFLAGS) $(CFLAGS) -c -o libavahi_gobject_la-ga-service-browser.lo `test -f 'ga-service-browser.c' || echo '$(srcdir)/'`ga-service-browser.c

libavahi_gobject_la-ga-service-resolver.lo: ga-service-resolver.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libavahi_gobject_la_CFLAGS) $(CFLAGS) -MT libavahi_gobject_la-ga-service-resolver.lo -MD -MP -MF $(DEPDIR)/libavahi_gobject_la-ga-service-resolver.Tpo -c -o libavahi_gobject_la-ga-service-resolver.lo `test -f 'ga-service-resolver.c' || echo '$(srcdir)/'`ga-service-resolver.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libavahi_gobject_la-ga-service-resolver.Tpo $(DEPDIR)/libavahi_gobject_la-ga-service-resolver.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ga-service-resolver.c' object='libavahi_gobject_la-ga-service-resolver.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libavahi_gobject_la_CFLAGS) $(CFLAGS) -c -o libavahi_gobject_la-ga-service-resolver.lo `test -f 'ga-service-resolver.c' || echo '$(srcdir)/'`ga-service-resolver.c

libavahi_gobject_la-signals-marshal.lo: signals-marshal.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libavahi_gobject_la_CFLAGS) $(CFLAGS) -MT libavahi_gobject_la-signals-marshal.lo -MD -MP -MF $(DEPDIR)/libavahi_gobject_la-signals-marshal.Tpo -c -o libavahi_gobject_la-signals-marshal.lo `test -f 'signals-marshal.c' || echo '$(srcdir)/'`signals-marshal.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libavahi_gobject_la-signals-marshal.Tpo $(DEPDIR)/libavahi_gobject_la-signals-marshal.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='signals-marshal.c' object='libavahi_gobject_la-signals-marshal.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libavahi_gobject_la_CFLAGS) $(CFLAGS) -c -o libavahi_gobject_la-signals-marshal.lo `test -f 'signals-marshal.c' || echo '$(srcdir)/'`signals-marshal.c

libavahi_gobject_la-ga-client-enumtypes.lo: ga-client-enumtypes.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libavahi_gobject_la_CFLAGS) $(CFLAGS) -MT libavahi_gobject_la-ga-client-enumtypes.lo -MD -MP -MF $(DEPDIR)/libavahi_gobject_la-ga-client-enumtypes.Tpo -c -o libavahi_gobject_la-ga-client-enumtypes.lo `test -f 'ga-client-enumtypes.c' || echo '$(srcdir)/'`ga-client-enumtypes.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libavahi_gobject_la-ga-client-enumtypes.Tpo $(DEPDIR)/libavahi_gobject_la-ga-client-enumtypes.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ga-client-enumtypes.c' object='libavahi_gobject_la-ga-client-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libavahi_gobject_la_CFLAGS) $(CFLAGS) -c -o libavahi_gobject_la-ga-client-enumtypes.lo `test -f 'ga-client-enumtypes.c' || echo '$(srcdir)/'`ga-client-enumtypes.c

libavahi_gobject_la-ga-entry-group-enumtypes.lo: ga-entry-group-enumtypes.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libavahi_gobject_la_CFLAGS) $(CFLAGS) -MT libavahi_gobject_la-ga-entry-group-enumtypes.lo -MD -MP -MF $(DEPDIR)/libavahi_gobject_la-ga-entry-group-enumtypes.Tpo -c -o libavahi_gobject_la-ga-entry-group-enumtypes.lo `test -f 'ga-entry-group-enumtypes.c' || echo '$(srcdir)/'`ga-entry-group-enumtypes.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libavahi_gobject_la-ga-entry-group-enumtypes.Tpo $(DEPDIR)/libavahi_gobject_la-ga-entry-group-enumtypes.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ga-entry-group-enumtypes.c' object='libavahi_gobject_la-ga-entry-group-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libavahi_gobject_la_CFLAGS) $(CFLAGS) -c -o libavahi_gobject_la-ga-entry-group-enumtypes.lo `test -f 'ga-entry-group-enumtypes.c' || echo '$(srcdir)/'`ga-entry-group-enumtypes.c

libavahi_gobject_la-ga-enums-enumtypes.lo: ga-enums-enumtypes.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libavahi_gobject_la_CFLAGS) $(CFLAGS) -MT libavahi_gobject_la-ga-enums-enumtypes.lo -MD -MP -MF $(DEPDIR)/libavahi_gobject_la-ga-enums-enumtypes.Tpo -c -o libavahi_gobject_la-ga-enums-enumtypes.lo `test -f 'ga-enums-enumtypes.c' || echo '$(srcdir)/'`ga-enums-enumtypes.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libavahi_gobject_la-ga-enums-enumtypes.Tpo $(DEPDIR)/libavahi_gobject_la-ga-enums-enumtypes.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ga-enums-enumtypes.c' object='libavahi_gobject_la-ga-enums-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libavahi_gobject_la_CFLAGS) $(CFLAGS) -c -o libavahi_gobject_la-ga-enums-enumtypes.lo `test -f 'ga-enums-enumtypes.c' || echo '$(srcdir)/'`ga-enums-enumtypes.c

mostlyclean-libtool:
	-rm -f *.lo

clean-libtool:
	-rm -rf .libs _libs
install-girDATA: $(gir_DATA)
	@$(NORMAL_INSTALL)
	test -z "$(girdir)" || $(MKDIR_P) "$(DESTDIR)$(girdir)"
	@list='$(gir_DATA)'; test -n "$(girdir)" || 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_DATA) $$files '$(DESTDIR)$(girdir)'"; \
	  $(INSTALL_DATA) $$files "$(DESTDIR)$(girdir)" || exit $$?; \
	done

uninstall-girDATA:
	@$(NORMAL_UNINSTALL)
	@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
install-typelibDATA: $(typelib_DATA)
	@$(NORMAL_INSTALL)
	test -z "$(typelibdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibdir)"
	@list='$(typelib_DATA)'; test -n "$(typelibdir)" || 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_DATA) $$files '$(DESTDIR)$(typelibdir)'"; \
	  $(INSTALL_DATA) $$files "$(DESTDIR)$(typelibdir)" || exit $$?; \
	done

uninstall-typelibDATA:
	@$(NORMAL_UNINSTALL)
	@list='$(typelib_DATA)'; test -n "$(typelibdir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(typelibdir)'; $(am__uninstall_files_from_dir)
install-avahigobjectincludeHEADERS: $(avahigobjectinclude_HEADERS)
	@$(NORMAL_INSTALL)
	test -z "$(avahigobjectincludedir)" || $(MKDIR_P) "$(DESTDIR)$(avahigobjectincludedir)"
	@list='$(avahigobjectinclude_HEADERS)'; test -n "$(avahigobjectincludedir)" || 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)$(avahigobjectincludedir)'"; \
	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(avahigobjectincludedir)" || exit $$?; \
	done

uninstall-avahigobjectincludeHEADERS:
	@$(NORMAL_UNINSTALL)
	@list='$(avahigobjectinclude_HEADERS)'; test -n "$(avahigobjectincludedir)" || list=; \
	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
	dir='$(DESTDIR)$(avahigobjectincludedir)'; $(am__uninstall_files_from_dir)

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

TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
		$(TAGS_FILES) $(LISP)
	set x; \
	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; nonempty = 1; } \
	      END { if (nonempty) { for (i in files) print i; }; }'`; \
	shift; \
	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
	  test -n "$$unique" || unique=$$empty_fix; \
	  if test $$# -gt 0; then \
	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
	      "$$@" $$unique; \
	  else \
	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
	      $$unique; \
	  fi; \
	fi
ctags: CTAGS
CTAGS:  $(HEADERS) $(SOURCES)  $(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
@HAVE_DBUS_FALSE@dist-hook:
@HAVE_GOBJECT_FALSE@dist-hook:

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
	$(MAKE) $(AM_MAKEFLAGS) \
	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
	  dist-hook
check-am: all-am
check: $(BUILT_SOURCES)
	$(MAKE) $(AM_MAKEFLAGS) check-am
all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
installdirs:
	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibdir)" "$(DESTDIR)$(avahigobjectincludedir)"; do \
	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
	done
install: $(BUILT_SOURCES)
	$(MAKE) $(AM_MAKEFLAGS) 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:
	if test -z '$(STRIP)'; then \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	      install; \
	else \
	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
	fi
mostlyclean-generic:

clean-generic:
	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)

distclean-generic:
	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)

maintainer-clean-generic:
	@echo "This command is intended for maintainers to use"
	@echo "it deletes files that may require special tools to rebuild."
	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
clean: clean-am

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

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

dvi: dvi-am

dvi-am:

html: html-am

html-am:

info: info-am

info-am:

install-data-am: install-avahigobjectincludeHEADERS install-girDATA \
	install-typelibDATA

install-dvi: install-dvi-am

install-dvi-am:

install-exec-am: install-libLTLIBRARIES

install-html: install-html-am

install-html-am:

install-info: install-info-am

install-info-am:

install-man:

install-pdf: install-pdf-am

install-pdf-am:

install-ps: install-ps-am

install-ps-am:

installcheck-am:

maintainer-clean: maintainer-clean-am
	-rm -rf ./$(DEPDIR)
	-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-avahigobjectincludeHEADERS uninstall-girDATA \
	uninstall-libLTLIBRARIES uninstall-typelibDATA

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

.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
	clean-libLTLIBRARIES clean-libtool ctags dist-hook distclean \
	distclean-compile distclean-generic distclean-libtool \
	distclean-tags distdir dvi dvi-am html html-am info info-am \
	install install-am install-avahigobjectincludeHEADERS \
	install-data install-data-am install-dvi install-dvi-am \
	install-exec install-exec-am install-girDATA install-html \
	install-html-am install-info install-info-am \
	install-libLTLIBRARIES install-man install-pdf install-pdf-am \
	install-ps install-ps-am install-strip install-typelibDATA \
	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-avahigobjectincludeHEADERS uninstall-girDATA \
	uninstall-libLTLIBRARIES uninstall-typelibDATA


@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@dist-hook:
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	$(shell for x in $(BUILT_SOURCES); do rm -f $(distdir)/$$x ; done)

@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@signals-marshal.list: $(CORE_SOURCES) Makefile.am
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	$(AM_V_GEN)( cd $(srcdir) && \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	sed -n -e 's/.*_ga_signals_marshal_\([A-Z]*__[A-Z_]*\).*/\1/p' \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@		$(CORE_SOURCES) ) \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@		| sed -e 's/__/:/' -e 'y/_/,/' | sort -u > $@.tmp && \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	if cmp -s $@.tmp $@; then \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@		rm $@.tmp; \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	else \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@		mv $@.tmp $@; \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	fi

@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@signals-marshal.h: signals-marshal.list
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	$(AM_V_GEN)glib-genmarshal --header --prefix=_ga_signals_marshal $< > $@

@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@signals-marshal.c: signals-marshal.list
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	$(AM_V_GEN)(echo "#include \"signals-marshal.h\"" ; glib-genmarshal --body --prefix=_ga_signals_marshal $< ) > $@

# rules for making the glib enum objects
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@%-enumtypes.h: %.h Makefile.in
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	$(AM_V_GEN)glib-mkenums \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	--fhead "#ifndef __$(shell echo $* | tr [:lower:]- [:upper:]_)_ENUM_TYPES_H__\n#define __$(shell echo $* | tr [:lower:]- [:upper:]_)_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	--fprod "/* enumerations from \"@filename@\" */\n" \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	--vhead "GType @enum_name@_get_type (void);\n#define $(shell echo $* | tr [:lower:]- [:upper:]_ | sed 's/_.*//')_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n"         \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	--ftail "G_END_DECLS\n\n#endif /* __$(shell echo $* | tr [:lower:]- [:upper:]_)_ENUM_TYPES_H__ */" \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	$< > $@

@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@%-enumtypes.c: %.h Makefile.in
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	$(AM_V_GEN)glib-mkenums \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	--fhead "#include <$*.h>\n#include<$*-enumtypes.h>" \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	--fprod "\n/* enumerations from \"@filename@\" */" \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	--vhead "GType\n@enum_name@_get_type (void)\n{\n  static GType etype = 0;\n  if (etype == 0) {\n    static const G@Type@Value values[] = {"     \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	--vprod "      { @VALUENAME@, \"@VALUENAME@\", \"@VALUENAME@\" }," \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	--vtail "      { 0, NULL, NULL }\n    };\n    etype = g_@type@_register_static (\"@EnumName@\", values);\n  }\n  return etype;\n}\n" \
@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@	$< > $@

@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@-include $(INTROSPECTION_MAKEFILE)

@HAVE_DBUS_TRUE@@HAVE_GOBJECT_TRUE@@HAVE_INTROSPECTION_TRUE@Avahi-0.6.gir: $(lib_LTLIBRARIES)

indent:
	indent -brf -nbbo -nbc -ip0 -cs -nbfde -npsl -br -brs -bap -i4 -bs -cdw -ce -npcs -hnl -cli4 -nut -ci8 ga-*.[ch]

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