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

# Copyright (C) 1994-2013 Free Software Foundation, Inc.

# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.

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

@SET_MAKE@
VPATH = @srcdir@
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
am__make_running_with_option = \
  case $${target_option-} in \
      ?) ;; \
      *) echo "am__make_running_with_option: internal error: invalid" \
              "target option '$${target_option-}' specified" >&2; \
         exit 1;; \
  esac; \
  has_opt=no; \
  sane_makeflags=$$MAKEFLAGS; \
  if $(am__is_gnu_make); then \
    sane_makeflags=$$MFLAGS; \
  else \
    case $$MAKEFLAGS in \
      *\\[\ \	]*) \
        bs=\\; \
        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
    esac; \
  fi; \
  skip_next=no; \
  strip_trailopt () \
  { \
    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
  }; \
  for flg in $$sane_makeflags; do \
    test $$skip_next = yes && { skip_next=no; continue; }; \
    case $$flg in \
      *=*|--*) continue;; \
        -*I) strip_trailopt 'I'; skip_next=yes;; \
      -*I?*) strip_trailopt 'I';; \
        -*O) strip_trailopt 'O'; skip_next=yes;; \
      -*O?*) strip_trailopt 'O';; \
        -*l) strip_trailopt 'l'; skip_next=yes;; \
      -*l?*) strip_trailopt 'l';; \
      -[dEDm]) skip_next=yes;; \
      -[JT]) skip_next=yes;; \
    esac; \
    case $$flg in \
      *$$target_option*) has_opt=yes; break;; \
    esac; \
  done; \
  test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
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@
DIST_COMMON = $(top_srcdir)/Make_global.am $(srcdir)/Makefile.in \
	$(srcdir)/Makefile.am $(top_srcdir)/build-aux/depcomp
check_PROGRAMS = expect_dump$(EXEEXT) expect_create$(EXEEXT) \
	expect_get$(EXEEXT) expect_delete$(EXEEXT) \
	expect_flush$(EXEEXT) expect_events$(EXEEXT) \
	expect_create_userspace$(EXEEXT) expect_create_nat$(EXEEXT) \
	conntrack_create$(EXEEXT) conntrack_dump$(EXEEXT) \
	conntrack_update$(EXEEXT) conntrack_delete$(EXEEXT) \
	conntrack_flush$(EXEEXT) conntrack_create_nat$(EXEEXT) \
	conntrack_get$(EXEEXT) conntrack_events$(EXEEXT) \
	conntrack_master$(EXEEXT) conntrack_filter$(EXEEXT) \
	conntrack_grp_create$(EXEEXT) conntrack_dump_filter$(EXEEXT) \
	ctexp_events$(EXEEXT)
subdir = utils
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(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_conntrack_create_OBJECTS = conntrack_create.$(OBJEXT)
conntrack_create_OBJECTS = $(am_conntrack_create_OBJECTS)
conntrack_create_DEPENDENCIES = ../src/libnetfilter_conntrack.la
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 = 
am_conntrack_create_nat_OBJECTS = conntrack_create_nat.$(OBJEXT)
conntrack_create_nat_OBJECTS = $(am_conntrack_create_nat_OBJECTS)
conntrack_create_nat_DEPENDENCIES = ../src/libnetfilter_conntrack.la
am_conntrack_delete_OBJECTS = conntrack_delete.$(OBJEXT)
conntrack_delete_OBJECTS = $(am_conntrack_delete_OBJECTS)
conntrack_delete_DEPENDENCIES = ../src/libnetfilter_conntrack.la
am_conntrack_dump_OBJECTS = conntrack_dump.$(OBJEXT)
conntrack_dump_OBJECTS = $(am_conntrack_dump_OBJECTS)
conntrack_dump_DEPENDENCIES = ../src/libnetfilter_conntrack.la
am_conntrack_dump_filter_OBJECTS = conntrack_dump_filter.$(OBJEXT)
conntrack_dump_filter_OBJECTS = $(am_conntrack_dump_filter_OBJECTS)
conntrack_dump_filter_DEPENDENCIES = ../src/libnetfilter_conntrack.la
am_conntrack_events_OBJECTS = conntrack_events.$(OBJEXT)
conntrack_events_OBJECTS = $(am_conntrack_events_OBJECTS)
conntrack_events_DEPENDENCIES = ../src/libnetfilter_conntrack.la
am_conntrack_filter_OBJECTS = conntrack_filter.$(OBJEXT)
conntrack_filter_OBJECTS = $(am_conntrack_filter_OBJECTS)
conntrack_filter_DEPENDENCIES = ../src/libnetfilter_conntrack.la
am_conntrack_flush_OBJECTS = conntrack_flush.$(OBJEXT)
conntrack_flush_OBJECTS = $(am_conntrack_flush_OBJECTS)
conntrack_flush_DEPENDENCIES = ../src/libnetfilter_conntrack.la
am_conntrack_get_OBJECTS = conntrack_get.$(OBJEXT)
conntrack_get_OBJECTS = $(am_conntrack_get_OBJECTS)
conntrack_get_DEPENDENCIES = ../src/libnetfilter_conntrack.la
am_conntrack_grp_create_OBJECTS = conntrack_grp_create.$(OBJEXT)
conntrack_grp_create_OBJECTS = $(am_conntrack_grp_create_OBJECTS)
conntrack_grp_create_DEPENDENCIES = ../src/libnetfilter_conntrack.la
am_conntrack_master_OBJECTS = conntrack_master.$(OBJEXT)
conntrack_master_OBJECTS = $(am_conntrack_master_OBJECTS)
conntrack_master_DEPENDENCIES = ../src/libnetfilter_conntrack.la
am_conntrack_update_OBJECTS = conntrack_update.$(OBJEXT)
conntrack_update_OBJECTS = $(am_conntrack_update_OBJECTS)
conntrack_update_DEPENDENCIES = ../src/libnetfilter_conntrack.la
am_ctexp_events_OBJECTS = ctexp_events.$(OBJEXT)
ctexp_events_OBJECTS = $(am_ctexp_events_OBJECTS)
ctexp_events_DEPENDENCIES = ../src/libnetfilter_conntrack.la
am_expect_create_OBJECTS = expect_create.$(OBJEXT)
expect_create_OBJECTS = $(am_expect_create_OBJECTS)
expect_create_DEPENDENCIES = ../src/libnetfilter_conntrack.la
am_expect_create_nat_OBJECTS = expect_create_nat.$(OBJEXT)
expect_create_nat_OBJECTS = $(am_expect_create_nat_OBJECTS)
expect_create_nat_DEPENDENCIES = ../src/libnetfilter_conntrack.la
am_expect_create_userspace_OBJECTS =  \
	expect_create_userspace.$(OBJEXT)
expect_create_userspace_OBJECTS =  \
	$(am_expect_create_userspace_OBJECTS)
expect_create_userspace_DEPENDENCIES =  \
	../src/libnetfilter_conntrack.la
am_expect_delete_OBJECTS = expect_delete.$(OBJEXT)
expect_delete_OBJECTS = $(am_expect_delete_OBJECTS)
expect_delete_DEPENDENCIES = ../src/libnetfilter_conntrack.la
am_expect_dump_OBJECTS = expect_dump.$(OBJEXT)
expect_dump_OBJECTS = $(am_expect_dump_OBJECTS)
expect_dump_DEPENDENCIES = ../src/libnetfilter_conntrack.la
am_expect_events_OBJECTS = expect_events.$(OBJEXT)
expect_events_OBJECTS = $(am_expect_events_OBJECTS)
expect_events_DEPENDENCIES = ../src/libnetfilter_conntrack.la
am_expect_flush_OBJECTS = expect_flush.$(OBJEXT)
expect_flush_OBJECTS = $(am_expect_flush_OBJECTS)
expect_flush_DEPENDENCIES = ../src/libnetfilter_conntrack.la
am_expect_get_OBJECTS = expect_get.$(OBJEXT)
expect_get_OBJECTS = $(am_expect_get_OBJECTS)
expect_get_DEPENDENCIES = ../src/libnetfilter_conntrack.la
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo "  GEN     " $@;
am__v_GEN_1 = 
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 = 
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/build-aux/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_CC_1 = 
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_CCLD_1 = 
SOURCES = $(conntrack_create_SOURCES) $(conntrack_create_nat_SOURCES) \
	$(conntrack_delete_SOURCES) $(conntrack_dump_SOURCES) \
	$(conntrack_dump_filter_SOURCES) $(conntrack_events_SOURCES) \
	$(conntrack_filter_SOURCES) $(conntrack_flush_SOURCES) \
	$(conntrack_get_SOURCES) $(conntrack_grp_create_SOURCES) \
	$(conntrack_master_SOURCES) $(conntrack_update_SOURCES) \
	$(ctexp_events_SOURCES) $(expect_create_SOURCES) \
	$(expect_create_nat_SOURCES) \
	$(expect_create_userspace_SOURCES) $(expect_delete_SOURCES) \
	$(expect_dump_SOURCES) $(expect_events_SOURCES) \
	$(expect_flush_SOURCES) $(expect_get_SOURCES)
DIST_SOURCES = $(conntrack_create_SOURCES) \
	$(conntrack_create_nat_SOURCES) $(conntrack_delete_SOURCES) \
	$(conntrack_dump_SOURCES) $(conntrack_dump_filter_SOURCES) \
	$(conntrack_events_SOURCES) $(conntrack_filter_SOURCES) \
	$(conntrack_flush_SOURCES) $(conntrack_get_SOURCES) \
	$(conntrack_grp_create_SOURCES) $(conntrack_master_SOURCES) \
	$(conntrack_update_SOURCES) $(ctexp_events_SOURCES) \
	$(expect_create_SOURCES) $(expect_create_nat_SOURCES) \
	$(expect_create_userspace_SOURCES) $(expect_delete_SOURCES) \
	$(expect_dump_SOURCES) $(expect_events_SOURCES) \
	$(expect_flush_SOURCES) $(expect_get_SOURCES)
am__can_run_installinfo = \
  case $$AM_UPDATE_INFO_DIR in \
    n|no|NO) false;; \
    *) (install-info --version) >/dev/null 2>&1;; \
  esac
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates.  Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
  BEGIN { nonempty = 0; } \
  { items[$$0] = 1; nonempty = 1; } \
  END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique.  This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
  list='$(am__tagged_files)'; \
  unique=`for i in $$list; do \
    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
  done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBMNL_CFLAGS = @LIBMNL_CFLAGS@
LIBMNL_LIBS = @LIBMNL_LIBS@
LIBNFNETLINK_CFLAGS = @LIBNFNETLINK_CFLAGS@
LIBNFNETLINK_LIBS = @LIBNFNETLINK_LIBS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
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@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @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@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@

# This is _NOT_ the library release version, it's an API version.
# Please read Chapter 6 "Library interface versions" of the libtool
# documentation before making any modification
# http://sources.redhat.com/autobook/autobook/autobook_91.html
LIBVERSION = 9:0:6
AM_CPPFLAGS = -I$(top_srcdir)/include ${LIBNFNETLINK_CFLAGS} ${LIBMNL_CFLAGS}
AM_CFLAGS = -Wall
conntrack_grp_create_SOURCES = conntrack_grp_create.c
conntrack_grp_create_LDADD = ../src/libnetfilter_conntrack.la
conntrack_create_SOURCES = conntrack_create.c
conntrack_create_LDADD = ../src/libnetfilter_conntrack.la
conntrack_get_SOURCES = conntrack_get.c
conntrack_get_LDADD = ../src/libnetfilter_conntrack.la
conntrack_create_nat_SOURCES = conntrack_create_nat.c
conntrack_create_nat_LDADD = ../src/libnetfilter_conntrack.la
conntrack_update_SOURCES = conntrack_update.c
conntrack_update_LDADD = ../src/libnetfilter_conntrack.la
conntrack_delete_SOURCES = conntrack_delete.c
conntrack_delete_LDADD = ../src/libnetfilter_conntrack.la
conntrack_dump_SOURCES = conntrack_dump.c
conntrack_dump_LDADD = ../src/libnetfilter_conntrack.la
conntrack_dump_filter_SOURCES = conntrack_dump_filter.c
conntrack_dump_filter_LDADD = ../src/libnetfilter_conntrack.la
conntrack_flush_SOURCES = conntrack_flush.c
conntrack_flush_LDADD = ../src/libnetfilter_conntrack.la
conntrack_events_SOURCES = conntrack_events.c
conntrack_events_LDADD = ../src/libnetfilter_conntrack.la
conntrack_filter_SOURCES = conntrack_filter.c
conntrack_filter_LDADD = ../src/libnetfilter_conntrack.la
conntrack_master_SOURCES = conntrack_master.c
conntrack_master_LDADD = ../src/libnetfilter_conntrack.la
expect_dump_SOURCES = expect_dump.c
expect_dump_LDADD = ../src/libnetfilter_conntrack.la
expect_create_nat_SOURCES = expect_create_nat.c
expect_create_nat_LDADD = ../src/libnetfilter_conntrack.la
expect_create_SOURCES = expect_create.c
expect_create_LDADD = ../src/libnetfilter_conntrack.la
expect_create_userspace_SOURCES = expect_create_userspace.c
expect_create_userspace_LDADD = ../src/libnetfilter_conntrack.la
expect_get_SOURCES = expect_get.c
expect_get_LDADD = ../src/libnetfilter_conntrack.la
expect_delete_SOURCES = expect_delete.c
expect_delete_LDADD = ../src/libnetfilter_conntrack.la
expect_flush_SOURCES = expect_flush.c
expect_flush_LDADD = ../src/libnetfilter_conntrack.la
expect_events_SOURCES = expect_events.c
expect_events_LDADD = ../src/libnetfilter_conntrack.la
ctexp_events_SOURCES = ctexp_events.c
ctexp_events_LDADD = ../src/libnetfilter_conntrack.la
all: all-am

.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/Make_global.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 utils/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --foreign utils/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_srcdir)/Make_global.am:

$(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):

clean-checkPROGRAMS:
	@list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
	echo " rm -f" $$list; \
	rm -f $$list || exit $$?; \
	test -n "$(EXEEXT)" || exit 0; \
	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
	echo " rm -f" $$list; \
	rm -f $$list

conntrack_create$(EXEEXT): $(conntrack_create_OBJECTS) $(conntrack_create_DEPENDENCIES) $(EXTRA_conntrack_create_DEPENDENCIES) 
	@rm -f conntrack_create$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(conntrack_create_OBJECTS) $(conntrack_create_LDADD) $(LIBS)

conntrack_create_nat$(EXEEXT): $(conntrack_create_nat_OBJECTS) $(conntrack_create_nat_DEPENDENCIES) $(EXTRA_conntrack_create_nat_DEPENDENCIES) 
	@rm -f conntrack_create_nat$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(conntrack_create_nat_OBJECTS) $(conntrack_create_nat_LDADD) $(LIBS)

conntrack_delete$(EXEEXT): $(conntrack_delete_OBJECTS) $(conntrack_delete_DEPENDENCIES) $(EXTRA_conntrack_delete_DEPENDENCIES) 
	@rm -f conntrack_delete$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(conntrack_delete_OBJECTS) $(conntrack_delete_LDADD) $(LIBS)

conntrack_dump$(EXEEXT): $(conntrack_dump_OBJECTS) $(conntrack_dump_DEPENDENCIES) $(EXTRA_conntrack_dump_DEPENDENCIES) 
	@rm -f conntrack_dump$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(conntrack_dump_OBJECTS) $(conntrack_dump_LDADD) $(LIBS)

conntrack_dump_filter$(EXEEXT): $(conntrack_dump_filter_OBJECTS) $(conntrack_dump_filter_DEPENDENCIES) $(EXTRA_conntrack_dump_filter_DEPENDENCIES) 
	@rm -f conntrack_dump_filter$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(conntrack_dump_filter_OBJECTS) $(conntrack_dump_filter_LDADD) $(LIBS)

conntrack_events$(EXEEXT): $(conntrack_events_OBJECTS) $(conntrack_events_DEPENDENCIES) $(EXTRA_conntrack_events_DEPENDENCIES) 
	@rm -f conntrack_events$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(conntrack_events_OBJECTS) $(conntrack_events_LDADD) $(LIBS)

conntrack_filter$(EXEEXT): $(conntrack_filter_OBJECTS) $(conntrack_filter_DEPENDENCIES) $(EXTRA_conntrack_filter_DEPENDENCIES) 
	@rm -f conntrack_filter$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(conntrack_filter_OBJECTS) $(conntrack_filter_LDADD) $(LIBS)

conntrack_flush$(EXEEXT): $(conntrack_flush_OBJECTS) $(conntrack_flush_DEPENDENCIES) $(EXTRA_conntrack_flush_DEPENDENCIES) 
	@rm -f conntrack_flush$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(conntrack_flush_OBJECTS) $(conntrack_flush_LDADD) $(LIBS)

conntrack_get$(EXEEXT): $(conntrack_get_OBJECTS) $(conntrack_get_DEPENDENCIES) $(EXTRA_conntrack_get_DEPENDENCIES) 
	@rm -f conntrack_get$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(conntrack_get_OBJECTS) $(conntrack_get_LDADD) $(LIBS)

conntrack_grp_create$(EXEEXT): $(conntrack_grp_create_OBJECTS) $(conntrack_grp_create_DEPENDENCIES) $(EXTRA_conntrack_grp_create_DEPENDENCIES) 
	@rm -f conntrack_grp_create$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(conntrack_grp_create_OBJECTS) $(conntrack_grp_create_LDADD) $(LIBS)

conntrack_master$(EXEEXT): $(conntrack_master_OBJECTS) $(conntrack_master_DEPENDENCIES) $(EXTRA_conntrack_master_DEPENDENCIES) 
	@rm -f conntrack_master$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(conntrack_master_OBJECTS) $(conntrack_master_LDADD) $(LIBS)

conntrack_update$(EXEEXT): $(conntrack_update_OBJECTS) $(conntrack_update_DEPENDENCIES) $(EXTRA_conntrack_update_DEPENDENCIES) 
	@rm -f conntrack_update$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(conntrack_update_OBJECTS) $(conntrack_update_LDADD) $(LIBS)

ctexp_events$(EXEEXT): $(ctexp_events_OBJECTS) $(ctexp_events_DEPENDENCIES) $(EXTRA_ctexp_events_DEPENDENCIES) 
	@rm -f ctexp_events$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(ctexp_events_OBJECTS) $(ctexp_events_LDADD) $(LIBS)

expect_create$(EXEEXT): $(expect_create_OBJECTS) $(expect_create_DEPENDENCIES) $(EXTRA_expect_create_DEPENDENCIES) 
	@rm -f expect_create$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(expect_create_OBJECTS) $(expect_create_LDADD) $(LIBS)

expect_create_nat$(EXEEXT): $(expect_create_nat_OBJECTS) $(expect_create_nat_DEPENDENCIES) $(EXTRA_expect_create_nat_DEPENDENCIES) 
	@rm -f expect_create_nat$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(expect_create_nat_OBJECTS) $(expect_create_nat_LDADD) $(LIBS)

expect_create_userspace$(EXEEXT): $(expect_create_userspace_OBJECTS) $(expect_create_userspace_DEPENDENCIES) $(EXTRA_expect_create_userspace_DEPENDENCIES) 
	@rm -f expect_create_userspace$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(expect_create_userspace_OBJECTS) $(expect_create_userspace_LDADD) $(LIBS)

expect_delete$(EXEEXT): $(expect_delete_OBJECTS) $(expect_delete_DEPENDENCIES) $(EXTRA_expect_delete_DEPENDENCIES) 
	@rm -f expect_delete$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(expect_delete_OBJECTS) $(expect_delete_LDADD) $(LIBS)

expect_dump$(EXEEXT): $(expect_dump_OBJECTS) $(expect_dump_DEPENDENCIES) $(EXTRA_expect_dump_DEPENDENCIES) 
	@rm -f expect_dump$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(expect_dump_OBJECTS) $(expect_dump_LDADD) $(LIBS)

expect_events$(EXEEXT): $(expect_events_OBJECTS) $(expect_events_DEPENDENCIES) $(EXTRA_expect_events_DEPENDENCIES) 
	@rm -f expect_events$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(expect_events_OBJECTS) $(expect_events_LDADD) $(LIBS)

expect_flush$(EXEEXT): $(expect_flush_OBJECTS) $(expect_flush_DEPENDENCIES) $(EXTRA_expect_flush_DEPENDENCIES) 
	@rm -f expect_flush$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(expect_flush_OBJECTS) $(expect_flush_LDADD) $(LIBS)

expect_get$(EXEEXT): $(expect_get_OBJECTS) $(expect_get_DEPENDENCIES) $(EXTRA_expect_get_DEPENDENCIES) 
	@rm -f expect_get$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(expect_get_OBJECTS) $(expect_get_LDADD) $(LIBS)

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

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

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conntrack_create.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conntrack_create_nat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conntrack_delete.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conntrack_dump.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conntrack_dump_filter.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conntrack_events.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conntrack_filter.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conntrack_flush.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conntrack_get.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conntrack_grp_create.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conntrack_master.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conntrack_update.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctexp_events.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/expect_create.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/expect_create_nat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/expect_create_userspace.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/expect_delete.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/expect_dump.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/expect_events.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/expect_flush.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/expect_get.Po@am__quote@

.c.o:
@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 -o $@ $<

.c.obj:
@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 -o $@ `$(CYGPATH_W) '$<'`

.c.lo:
@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.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 $@ $<

mostlyclean-libtool:
	-rm -f *.lo

clean-libtool:
	-rm -rf .libs _libs

ID: $(am__tagged_files)
	$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-am
TAGS: tags

tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
	set x; \
	here=`pwd`; \
	$(am__define_uniq_tagged_files); \
	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-am

CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
	$(am__define_uniq_tagged_files); \
	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"
cscopelist: cscopelist-am

cscopelist-am: $(am__tagged_files)
	list='$(am__tagged_files)'; \
	case "$(srcdir)" in \
	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
	  *) sdir=$(subdir)/$(srcdir) ;; \
	esac; \
	for i in $$list; do \
	  if test -f "$$i"; then \
	    echo "$(subdir)/$$i"; \
	  else \
	    echo "$$sdir/$$i"; \
	  fi; \
	done >> $(top_builddir)/cscope.files

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
check-am: all-am
	$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
check: check-am
all-am: Makefile
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am

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

installcheck: installcheck-am
install-strip:
	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:

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-am

clean-am: clean-checkPROGRAMS clean-generic 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-dvi: install-dvi-am

install-dvi-am:

install-exec-am:

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:

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

.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
	clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \
	ctags ctags-am 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-man install-pdf install-pdf-am \
	install-ps install-ps-am install-strip installcheck \
	installcheck-am installdirs maintainer-clean \
	maintainer-clean-generic mostlyclean mostlyclean-compile \
	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
	tags tags-am uninstall uninstall-am


# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
