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

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

@SET_MAKE@



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@
DIST_COMMON = $(am__dist_noinst_DATA_DIST) \
	$(am__dist_usrbin_exec_SCRIPTS_DIST) $(dist_man_MANS) \
	$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
	$(srcdir)/chkdupexe.pl \
	$(top_srcdir)/config/include-Makefile.am
bin_PROGRAMS = $(am__EXEEXT_1)
sbin_PROGRAMS = $(am__EXEEXT_2) $(am__EXEEXT_3)
usrsbin_exec_PROGRAMS = $(am__EXEEXT_8)
usrbin_exec_PROGRAMS = cal$(EXEEXT) ddate$(EXEEXT) logger$(EXEEXT) \
	look$(EXEEXT) mcookie$(EXEEXT) namei$(EXEEXT) script$(EXEEXT) \
	whereis$(EXEEXT) scriptreplay$(EXEEXT) $(am__EXEEXT_4) \
	$(am__EXEEXT_5) $(am__EXEEXT_6) $(am__EXEEXT_7)
@BUILD_LIBUUID_TRUE@am__append_1 = uuidgen
@BUILD_LIBUUID_TRUE@am__append_2 = uuidgen.1
@BUILD_LIBUUID_TRUE@@BUILD_UUIDD_TRUE@am__append_3 = uuidd
@BUILD_LIBUUID_TRUE@@BUILD_UUIDD_TRUE@am__append_4 = uuidd.8
@BUILD_LIBBLKID_TRUE@am__append_5 = blkid findfs wipefs
@BUILD_LIBBLKID_TRUE@am__append_6 = blkid.8 findfs.8 wipefs.8
@BUILD_LIBBLKID_TRUE@@HAVE_STATIC_BLKID_TRUE@am__append_7 = blkid.static
@HAVE_NCURSES_TRUE@@LINUX_TRUE@am__append_8 = setterm
@HAVE_NCURSES_TRUE@@LINUX_TRUE@am__append_9 = setterm.1
@BUILD_KILL_TRUE@am__append_10 = kill
@BUILD_KILL_TRUE@am__append_11 = kill.1
@BUILD_RENAME_TRUE@am__append_12 = rename
@BUILD_RENAME_TRUE@am__append_13 = rename.1
@BUILD_RESET_TRUE@am__append_14 = reset.1
@BUILD_WRITE_TRUE@am__append_15 = write
@BUILD_WRITE_TRUE@am__append_16 = write.1
subdir = misc-utils
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
	$(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \
	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
	$(top_srcdir)/m4/lib-prefix.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)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/tls.m4 \
	$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = chkdupexe
CONFIG_CLEAN_VPATH_FILES =
@BUILD_KILL_TRUE@am__EXEEXT_1 = kill$(EXEEXT)
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)" \
	"$(DESTDIR)$(usrbin_execdir)" "$(DESTDIR)$(usrsbin_execdir)" \
	"$(DESTDIR)$(usrbin_execdir)" "$(DESTDIR)$(usrbin_execdir)" \
	"$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man8dir)"
@BUILD_LIBBLKID_TRUE@am__EXEEXT_2 = blkid$(EXEEXT) findfs$(EXEEXT) \
@BUILD_LIBBLKID_TRUE@	wipefs$(EXEEXT)
@BUILD_LIBBLKID_TRUE@@HAVE_STATIC_BLKID_TRUE@am__EXEEXT_3 = blkid.static$(EXEEXT)
@BUILD_LIBUUID_TRUE@am__EXEEXT_4 = uuidgen$(EXEEXT)
@HAVE_NCURSES_TRUE@@LINUX_TRUE@am__EXEEXT_5 = setterm$(EXEEXT)
@BUILD_RENAME_TRUE@am__EXEEXT_6 = rename$(EXEEXT)
@BUILD_WRITE_TRUE@am__EXEEXT_7 = write$(EXEEXT)
@BUILD_LIBUUID_TRUE@@BUILD_UUIDD_TRUE@am__EXEEXT_8 = uuidd$(EXEEXT)
PROGRAMS = $(bin_PROGRAMS) $(sbin_PROGRAMS) $(usrbin_exec_PROGRAMS) \
	$(usrsbin_exec_PROGRAMS)
am__blkid_SOURCES_DIST = blkid.c $(top_srcdir)/lib/ismounted.c
@BUILD_LIBBLKID_TRUE@am_blkid_OBJECTS = blkid-blkid.$(OBJEXT) \
@BUILD_LIBBLKID_TRUE@	blkid-ismounted.$(OBJEXT)
blkid_OBJECTS = $(am_blkid_OBJECTS)
@BUILD_LIBBLKID_TRUE@blkid_DEPENDENCIES = $(ul_libblkid_la)
AM_V_lt = $(am__v_lt_$(V))
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
am__v_lt_0 = --silent
blkid_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(blkid_CFLAGS) $(CFLAGS) \
	$(AM_LDFLAGS) $(LDFLAGS) -o $@
am__blkid_static_SOURCES_DIST = blkid.c $(top_srcdir)/lib/ismounted.c
@BUILD_LIBBLKID_TRUE@am__objects_1 = blkid_static-blkid.$(OBJEXT) \
@BUILD_LIBBLKID_TRUE@	blkid_static-ismounted.$(OBJEXT)
@BUILD_LIBBLKID_TRUE@@HAVE_STATIC_BLKID_TRUE@am_blkid_static_OBJECTS =  \
@BUILD_LIBBLKID_TRUE@@HAVE_STATIC_BLKID_TRUE@	$(am__objects_1)
blkid_static_OBJECTS = $(am_blkid_static_OBJECTS)
@BUILD_LIBBLKID_TRUE@@HAVE_STATIC_BLKID_TRUE@blkid_static_DEPENDENCIES = $(ul_libblkid_la)
blkid_static_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(blkid_static_CFLAGS) \
	$(CFLAGS) $(blkid_static_LDFLAGS) $(LDFLAGS) -o $@
cal_SOURCES = cal.c
cal_OBJECTS = cal.$(OBJEXT)
cal_DEPENDENCIES =
ddate_SOURCES = ddate.c
ddate_OBJECTS = ddate.$(OBJEXT)
ddate_LDADD = $(LDADD)
findfs_SOURCES = findfs.c
findfs_OBJECTS = findfs-findfs.$(OBJEXT)
@BUILD_LIBBLKID_TRUE@findfs_DEPENDENCIES = $(ul_libblkid_la)
findfs_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(findfs_CFLAGS) $(CFLAGS) \
	$(AM_LDFLAGS) $(LDFLAGS) -o $@
am__kill_SOURCES_DIST = kill.c procs.c kill.h
@BUILD_KILL_TRUE@am_kill_OBJECTS = kill.$(OBJEXT) procs.$(OBJEXT)
kill_OBJECTS = $(am_kill_OBJECTS)
kill_LDADD = $(LDADD)
logger_SOURCES = logger.c
logger_OBJECTS = logger.$(OBJEXT)
logger_LDADD = $(LDADD)
look_SOURCES = look.c
look_OBJECTS = look.$(OBJEXT)
look_LDADD = $(LDADD)
am_mcookie_OBJECTS = mcookie.$(OBJEXT) md5.$(OBJEXT)
mcookie_OBJECTS = $(am_mcookie_OBJECTS)
mcookie_LDADD = $(LDADD)
namei_SOURCES = namei.c
namei_OBJECTS = namei.$(OBJEXT)
namei_LDADD = $(LDADD)
rename_SOURCES = rename.c
rename_OBJECTS = rename.$(OBJEXT)
rename_LDADD = $(LDADD)
script_SOURCES = script.c
script_OBJECTS = script.$(OBJEXT)
script_DEPENDENCIES =
scriptreplay_SOURCES = scriptreplay.c
scriptreplay_OBJECTS = scriptreplay.$(OBJEXT)
scriptreplay_LDADD = $(LDADD)
setterm_SOURCES = setterm.c
setterm_OBJECTS = setterm.$(OBJEXT)
setterm_DEPENDENCIES =
uuidd_SOURCES = uuidd.c
uuidd_OBJECTS = uuidd-uuidd.$(OBJEXT)
@BUILD_LIBUUID_TRUE@@BUILD_UUIDD_TRUE@uuidd_DEPENDENCIES =  \
@BUILD_LIBUUID_TRUE@@BUILD_UUIDD_TRUE@	$(ul_libuuid_la)
uuidd_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(uuidd_CFLAGS) $(CFLAGS) \
	$(AM_LDFLAGS) $(LDFLAGS) -o $@
uuidgen_SOURCES = uuidgen.c
uuidgen_OBJECTS = uuidgen-uuidgen.$(OBJEXT)
@BUILD_LIBUUID_TRUE@uuidgen_DEPENDENCIES = $(ul_libuuid_la)
uuidgen_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(uuidgen_CFLAGS) \
	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
whereis_SOURCES = whereis.c
whereis_OBJECTS = whereis.$(OBJEXT)
whereis_LDADD = $(LDADD)
wipefs_SOURCES = wipefs.c
wipefs_OBJECTS = wipefs-wipefs.$(OBJEXT)
@BUILD_LIBBLKID_TRUE@wipefs_DEPENDENCIES = $(ul_libblkid_la)
wipefs_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(wipefs_CFLAGS) $(CFLAGS) \
	$(AM_LDFLAGS) $(LDFLAGS) -o $@
write_SOURCES = write.c
write_OBJECTS = write-write.$(OBJEXT)
write_LDADD = $(LDADD)
write_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(write_CFLAGS) $(CFLAGS) \
	$(write_LDFLAGS) $(LDFLAGS) -o $@
am__dist_usrbin_exec_SCRIPTS_DIST = reset
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'
SCRIPTS = $(dist_usrbin_exec_SCRIPTS) $(usrbin_exec_SCRIPTS)
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/config/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_$(V))
am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
am__v_CC_0 = @echo "  CC    " $@;
AM_V_at = $(am__v_at_$(V))
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
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_$(V))
am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
am__v_CCLD_0 = @echo "  CCLD  " $@;
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo "  GEN   " $@;
SOURCES = $(blkid_SOURCES) $(blkid_static_SOURCES) cal.c ddate.c \
	findfs.c $(kill_SOURCES) logger.c look.c $(mcookie_SOURCES) \
	namei.c rename.c script.c scriptreplay.c setterm.c uuidd.c \
	uuidgen.c whereis.c wipefs.c write.c
DIST_SOURCES = $(am__blkid_SOURCES_DIST) \
	$(am__blkid_static_SOURCES_DIST) cal.c ddate.c findfs.c \
	$(am__kill_SOURCES_DIST) logger.c look.c $(mcookie_SOURCES) \
	namei.c rename.c script.c scriptreplay.c setterm.c uuidd.c \
	uuidgen.c whereis.c wipefs.c write.c
man1dir = $(mandir)/man1
man8dir = $(mandir)/man8
NROFF = nroff
MANS = $(dist_man_MANS)
am__dist_noinst_DATA_DIST = cal.1 chkdupexe.1 ddate.1 logger.1 look.1 \
	mcookie.1 namei.1 script.1 whereis.1 scriptreplay.1 uuidgen.1 \
	uuidd.8 blkid.8 findfs.8 wipefs.8 setterm.1 kill.1 rename.1 \
	reset.1 write.1
DATA = $(dist_noinst_DATA)
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@
BLKID_CFLAGS = @BLKID_CFLAGS@
BLKID_LIBS = @BLKID_LIBS@
BLKID_LIBS_STATIC = @BLKID_LIBS_STATIC@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GMSGFMT = @GMSGFMT@
GREP = @GREP@
GTKDOC_CHECK = @GTKDOC_CHECK@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBBLKID_DATE = @LIBBLKID_DATE@
LIBBLKID_VERSION = @LIBBLKID_VERSION@
LIBBLKID_VERSION_INFO = @LIBBLKID_VERSION_INFO@
LIBICONV = @LIBICONV@
LIBINTL = @LIBINTL@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIBUUID_VERSION = @LIBUUID_VERSION@
LIBUUID_VERSION_INFO = @LIBUUID_VERSION_INFO@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
LTLIBINTL = @LTLIBINTL@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
MSGMERGE = @MSGMERGE@
NCURSES_LIBS = @NCURSES_LIBS@
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_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
POSUB = @POSUB@
RANLIB = @RANLIB@
SED = @SED@
SELINUX_LIBS = @SELINUX_LIBS@
SELINUX_LIBS_STATIC = @SELINUX_LIBS_STATIC@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
SUID_CFLAGS = @SUID_CFLAGS@
SUID_LDFLAGS = @SUID_LDFLAGS@
USE_NLS = @USE_NLS@
UUID_CFLAGS = @UUID_CFLAGS@
UUID_LIBS = @UUID_LIBS@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
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@
libdirname = @libdirname@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
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@
usrbin_execdir = @usrbin_execdir@
usrlib_execdir = @usrlib_execdir@
usrsbin_execdir = @usrsbin_execdir@
AM_CPPFLAGS = -include $(top_builddir)/config.h -I$(top_srcdir)/include \
	-DLOCALEDIR=\"$(localedir)\"

AM_CFLAGS = -fsigned-char
AM_LDFLAGS = 

# Automake (at least up to 1.10) mishandles dist_man_MANS inside conditionals.
# Unlike with other dist primaries, the files are not distributed if the
# conditional is false.
# Work the bug around until it is fixed:
dist_noinst_DATA = $(dist_man_MANS)

# Paths to in-tree libraries (use ul_ prefix to avoid possible collisions)
#
# blkid
ul_libblkid_srcdir = $(top_srcdir)/shlibs/blkid/src
ul_libblkid_builddir = $(top_builddir)/shlibs/blkid/src
ul_libblkid_la = $(top_builddir)/shlibs/blkid/src/libblkid.la

# blkid.h is generated by ./configure script and stored in build directory
ul_libblkid_incdir = $(ul_libblkid_builddir)

# uuid
ul_libuuid_srcdir = $(top_srcdir)/shlibs/uuid/src
ul_libuuid_builddir = $(top_builddir)/shlibs/uuid/src
ul_libuuid_la = $(top_builddir)/shlibs/uuid/src/libuuid.la
EXTRA_DIST = README.flushb uuidd.rc README.cal README.ddate \
	README.namei README.namei2 README.reset reset.033c
mcookie_SOURCES = mcookie.c ../lib/md5.c
usrbin_exec_SCRIPTS = chkdupexe
CLEANFILES = chkdupexe
dist_man_MANS = cal.1 chkdupexe.1 ddate.1 logger.1 look.1 mcookie.1 \
	namei.1 script.1 whereis.1 scriptreplay.1 $(am__append_2) \
	$(am__append_4) $(am__append_6) $(am__append_9) \
	$(am__append_11) $(am__append_13) $(am__append_14) \
	$(am__append_16)
@BUILD_LIBUUID_TRUE@uuidgen_LDADD = $(ul_libuuid_la)
@BUILD_LIBUUID_TRUE@uuidgen_CFLAGS = $(AM_CFLAGS) -I$(ul_libuuid_srcdir)
@BUILD_LIBUUID_TRUE@@BUILD_UUIDD_TRUE@uuidd_LDADD = $(ul_libuuid_la)
@BUILD_LIBUUID_TRUE@@BUILD_UUIDD_TRUE@uuidd_CFLAGS = $(AM_CFLAGS) -I$(ul_libuuid_srcdir)
@BUILD_LIBBLKID_TRUE@blkid_SOURCES = blkid.c $(top_srcdir)/lib/ismounted.c
@BUILD_LIBBLKID_TRUE@blkid_LDADD = $(ul_libblkid_la)
@BUILD_LIBBLKID_TRUE@blkid_CFLAGS = $(AM_CFLAGS) -I$(ul_libblkid_incdir)
@BUILD_LIBBLKID_TRUE@findfs_LDADD = $(ul_libblkid_la)
@BUILD_LIBBLKID_TRUE@findfs_CFLAGS = $(AM_CFLAGS) -I$(ul_libblkid_incdir)
@BUILD_LIBBLKID_TRUE@wipefs_LDADD = $(ul_libblkid_la)
@BUILD_LIBBLKID_TRUE@wipefs_CFLAGS = $(AM_CFLAGS) -I$(ul_libblkid_incdir)
@BUILD_LIBBLKID_TRUE@@HAVE_STATIC_BLKID_TRUE@blkid_static_SOURCES = $(blkid_SOURCES)
@BUILD_LIBBLKID_TRUE@@HAVE_STATIC_BLKID_TRUE@blkid_static_LDFLAGS = -all-static
@BUILD_LIBBLKID_TRUE@@HAVE_STATIC_BLKID_TRUE@blkid_static_LDADD = $(ul_libblkid_la)
@BUILD_LIBBLKID_TRUE@@HAVE_STATIC_BLKID_TRUE@blkid_static_CFLAGS = $(AM_CFLAGS) -I$(ul_libblkid_incdir)
@HAVE_NCURSES_FALSE@@HAVE_TERMCAP_TRUE@@HAVE_TINFO_FALSE@cal_LDADD = -ltermcap
@HAVE_NCURSES_TRUE@@HAVE_TINFO_FALSE@cal_LDADD = @NCURSES_LIBS@
@HAVE_TINFO_TRUE@cal_LDADD = -ltinfo @NCURSES_LIBS@
@HAVE_UTIL_TRUE@script_LDADD = -lutil
@HAVE_NCURSES_TRUE@@HAVE_TINFO_FALSE@setterm_LDADD = @NCURSES_LIBS@
@HAVE_NCURSES_TRUE@@HAVE_TINFO_TRUE@setterm_LDADD = -ltinfo
@BUILD_KILL_TRUE@kill_SOURCES = kill.c procs.c kill.h
@BUILD_RESET_TRUE@dist_usrbin_exec_SCRIPTS = reset
@BUILD_WRITE_TRUE@write_CFLAGS = $(SUID_CFLAGS) $(AM_CFLAGS)
@BUILD_WRITE_TRUE@write_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS)
all: all-am

.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/config/include-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 misc-utils/Makefile'; \
	$(am__cd) $(top_srcdir) && \
	  $(AUTOMAKE) --foreign misc-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_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):
chkdupexe: $(top_builddir)/config.status $(srcdir)/chkdupexe.pl
	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-binPROGRAMS: $(bin_PROGRAMS)
	@$(NORMAL_INSTALL)
	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
	for p in $$list; do echo "$$p $$p"; done | \
	sed 's/$(EXEEXT)$$//' | \
	while read p p1; do if test -f $$p || test -f $$p1; \
	  then echo "$$p"; echo "$$p"; else :; fi; \
	done | \
	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
	sed 'N;N;N;s,\n, ,g' | \
	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
	    else { print "f", $$3 "/" $$4, $$1; } } \
	  END { for (d in files) print "f", d, files[d] }' | \
	while read type dir files; do \
	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
	    test -z "$$files" || { \
	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
	    } \
	; done

uninstall-binPROGRAMS:
	@$(NORMAL_UNINSTALL)
	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
	files=`for p in $$list; do echo "$$p"; done | \
	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
	      -e 's/$$/$(EXEEXT)/' `; \
	test -n "$$list" || exit 0; \
	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
	cd "$(DESTDIR)$(bindir)" && rm -f $$files

clean-binPROGRAMS:
	@list='$(bin_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
install-sbinPROGRAMS: $(sbin_PROGRAMS)
	@$(NORMAL_INSTALL)
	test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
	@list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
	for p in $$list; do echo "$$p $$p"; done | \
	sed 's/$(EXEEXT)$$//' | \
	while read p p1; do if test -f $$p || test -f $$p1; \
	  then echo "$$p"; echo "$$p"; else :; fi; \
	done | \
	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
	sed 'N;N;N;s,\n, ,g' | \
	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
	    else { print "f", $$3 "/" $$4, $$1; } } \
	  END { for (d in files) print "f", d, files[d] }' | \
	while read type dir files; do \
	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
	    test -z "$$files" || { \
	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(sbindir)$$dir'"; \
	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \
	    } \
	; done

uninstall-sbinPROGRAMS:
	@$(NORMAL_UNINSTALL)
	@list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
	files=`for p in $$list; do echo "$$p"; done | \
	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
	      -e 's/$$/$(EXEEXT)/' `; \
	test -n "$$list" || exit 0; \
	echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \
	cd "$(DESTDIR)$(sbindir)" && rm -f $$files

clean-sbinPROGRAMS:
	@list='$(sbin_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
install-usrbin_execPROGRAMS: $(usrbin_exec_PROGRAMS)
	@$(NORMAL_INSTALL)
	test -z "$(usrbin_execdir)" || $(MKDIR_P) "$(DESTDIR)$(usrbin_execdir)"
	@list='$(usrbin_exec_PROGRAMS)'; test -n "$(usrbin_execdir)" || list=; \
	for p in $$list; do echo "$$p $$p"; done | \
	sed 's/$(EXEEXT)$$//' | \
	while read p p1; do if test -f $$p || test -f $$p1; \
	  then echo "$$p"; echo "$$p"; else :; fi; \
	done | \
	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
	sed 'N;N;N;s,\n, ,g' | \
	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
	    else { print "f", $$3 "/" $$4, $$1; } } \
	  END { for (d in files) print "f", d, files[d] }' | \
	while read type dir files; do \
	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
	    test -z "$$files" || { \
	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(usrbin_execdir)$$dir'"; \
	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(usrbin_execdir)$$dir" || exit $$?; \
	    } \
	; done

uninstall-usrbin_execPROGRAMS:
	@$(NORMAL_UNINSTALL)
	@list='$(usrbin_exec_PROGRAMS)'; test -n "$(usrbin_execdir)" || list=; \
	files=`for p in $$list; do echo "$$p"; done | \
	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
	      -e 's/$$/$(EXEEXT)/' `; \
	test -n "$$list" || exit 0; \
	echo " ( cd '$(DESTDIR)$(usrbin_execdir)' && rm -f" $$files ")"; \
	cd "$(DESTDIR)$(usrbin_execdir)" && rm -f $$files

clean-usrbin_execPROGRAMS:
	@list='$(usrbin_exec_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
install-usrsbin_execPROGRAMS: $(usrsbin_exec_PROGRAMS)
	@$(NORMAL_INSTALL)
	test -z "$(usrsbin_execdir)" || $(MKDIR_P) "$(DESTDIR)$(usrsbin_execdir)"
	@list='$(usrsbin_exec_PROGRAMS)'; test -n "$(usrsbin_execdir)" || list=; \
	for p in $$list; do echo "$$p $$p"; done | \
	sed 's/$(EXEEXT)$$//' | \
	while read p p1; do if test -f $$p || test -f $$p1; \
	  then echo "$$p"; echo "$$p"; else :; fi; \
	done | \
	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
	sed 'N;N;N;s,\n, ,g' | \
	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
	    else { print "f", $$3 "/" $$4, $$1; } } \
	  END { for (d in files) print "f", d, files[d] }' | \
	while read type dir files; do \
	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
	    test -z "$$files" || { \
	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(usrsbin_execdir)$$dir'"; \
	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(usrsbin_execdir)$$dir" || exit $$?; \
	    } \
	; done

uninstall-usrsbin_execPROGRAMS:
	@$(NORMAL_UNINSTALL)
	@list='$(usrsbin_exec_PROGRAMS)'; test -n "$(usrsbin_execdir)" || list=; \
	files=`for p in $$list; do echo "$$p"; done | \
	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
	      -e 's/$$/$(EXEEXT)/' `; \
	test -n "$$list" || exit 0; \
	echo " ( cd '$(DESTDIR)$(usrsbin_execdir)' && rm -f" $$files ")"; \
	cd "$(DESTDIR)$(usrsbin_execdir)" && rm -f $$files

clean-usrsbin_execPROGRAMS:
	@list='$(usrsbin_exec_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
blkid$(EXEEXT): $(blkid_OBJECTS) $(blkid_DEPENDENCIES) 
	@rm -f blkid$(EXEEXT)
	$(AM_V_CCLD)$(blkid_LINK) $(blkid_OBJECTS) $(blkid_LDADD) $(LIBS)
blkid.static$(EXEEXT): $(blkid_static_OBJECTS) $(blkid_static_DEPENDENCIES) 
	@rm -f blkid.static$(EXEEXT)
	$(AM_V_CCLD)$(blkid_static_LINK) $(blkid_static_OBJECTS) $(blkid_static_LDADD) $(LIBS)
cal$(EXEEXT): $(cal_OBJECTS) $(cal_DEPENDENCIES) 
	@rm -f cal$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(cal_OBJECTS) $(cal_LDADD) $(LIBS)
ddate$(EXEEXT): $(ddate_OBJECTS) $(ddate_DEPENDENCIES) 
	@rm -f ddate$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(ddate_OBJECTS) $(ddate_LDADD) $(LIBS)
findfs$(EXEEXT): $(findfs_OBJECTS) $(findfs_DEPENDENCIES) 
	@rm -f findfs$(EXEEXT)
	$(AM_V_CCLD)$(findfs_LINK) $(findfs_OBJECTS) $(findfs_LDADD) $(LIBS)
kill$(EXEEXT): $(kill_OBJECTS) $(kill_DEPENDENCIES) 
	@rm -f kill$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(kill_OBJECTS) $(kill_LDADD) $(LIBS)
logger$(EXEEXT): $(logger_OBJECTS) $(logger_DEPENDENCIES) 
	@rm -f logger$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(logger_OBJECTS) $(logger_LDADD) $(LIBS)
look$(EXEEXT): $(look_OBJECTS) $(look_DEPENDENCIES) 
	@rm -f look$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(look_OBJECTS) $(look_LDADD) $(LIBS)
mcookie$(EXEEXT): $(mcookie_OBJECTS) $(mcookie_DEPENDENCIES) 
	@rm -f mcookie$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(mcookie_OBJECTS) $(mcookie_LDADD) $(LIBS)
namei$(EXEEXT): $(namei_OBJECTS) $(namei_DEPENDENCIES) 
	@rm -f namei$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(namei_OBJECTS) $(namei_LDADD) $(LIBS)
rename$(EXEEXT): $(rename_OBJECTS) $(rename_DEPENDENCIES) 
	@rm -f rename$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(rename_OBJECTS) $(rename_LDADD) $(LIBS)
script$(EXEEXT): $(script_OBJECTS) $(script_DEPENDENCIES) 
	@rm -f script$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(script_OBJECTS) $(script_LDADD) $(LIBS)
scriptreplay$(EXEEXT): $(scriptreplay_OBJECTS) $(scriptreplay_DEPENDENCIES) 
	@rm -f scriptreplay$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(scriptreplay_OBJECTS) $(scriptreplay_LDADD) $(LIBS)
setterm$(EXEEXT): $(setterm_OBJECTS) $(setterm_DEPENDENCIES) 
	@rm -f setterm$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(setterm_OBJECTS) $(setterm_LDADD) $(LIBS)
uuidd$(EXEEXT): $(uuidd_OBJECTS) $(uuidd_DEPENDENCIES) 
	@rm -f uuidd$(EXEEXT)
	$(AM_V_CCLD)$(uuidd_LINK) $(uuidd_OBJECTS) $(uuidd_LDADD) $(LIBS)
uuidgen$(EXEEXT): $(uuidgen_OBJECTS) $(uuidgen_DEPENDENCIES) 
	@rm -f uuidgen$(EXEEXT)
	$(AM_V_CCLD)$(uuidgen_LINK) $(uuidgen_OBJECTS) $(uuidgen_LDADD) $(LIBS)
whereis$(EXEEXT): $(whereis_OBJECTS) $(whereis_DEPENDENCIES) 
	@rm -f whereis$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(whereis_OBJECTS) $(whereis_LDADD) $(LIBS)
wipefs$(EXEEXT): $(wipefs_OBJECTS) $(wipefs_DEPENDENCIES) 
	@rm -f wipefs$(EXEEXT)
	$(AM_V_CCLD)$(wipefs_LINK) $(wipefs_OBJECTS) $(wipefs_LDADD) $(LIBS)
write$(EXEEXT): $(write_OBJECTS) $(write_DEPENDENCIES) 
	@rm -f write$(EXEEXT)
	$(AM_V_CCLD)$(write_LINK) $(write_OBJECTS) $(write_LDADD) $(LIBS)
install-dist_usrbin_execSCRIPTS: $(dist_usrbin_exec_SCRIPTS)
	@$(NORMAL_INSTALL)
	test -z "$(usrbin_execdir)" || $(MKDIR_P) "$(DESTDIR)$(usrbin_execdir)"
	@list='$(dist_usrbin_exec_SCRIPTS)'; test -n "$(usrbin_execdir)" || list=; \
	for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
	done | \
	sed -e 'p;s,.*/,,;n' \
	    -e 'h;s|.*|.|' \
	    -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
	    if ($$2 == $$4) { files[d] = files[d] " " $$1; \
	      if (++n[d] == $(am__install_max)) { \
		print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
	    else { print "f", d "/" $$4, $$1 } } \
	  END { for (d in files) print "f", d, files[d] }' | \
	while read type dir files; do \
	     if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
	     test -z "$$files" || { \
	       echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(usrbin_execdir)$$dir'"; \
	       $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(usrbin_execdir)$$dir" || exit $$?; \
	     } \
	; done

uninstall-dist_usrbin_execSCRIPTS:
	@$(NORMAL_UNINSTALL)
	@list='$(dist_usrbin_exec_SCRIPTS)'; test -n "$(usrbin_execdir)" || exit 0; \
	files=`for p in $$list; do echo "$$p"; done | \
	       sed -e 's,.*/,,;$(transform)'`; \
	test -n "$$list" || exit 0; \
	echo " ( cd '$(DESTDIR)$(usrbin_execdir)' && rm -f" $$files ")"; \
	cd "$(DESTDIR)$(usrbin_execdir)" && rm -f $$files
install-usrbin_execSCRIPTS: $(usrbin_exec_SCRIPTS)
	@$(NORMAL_INSTALL)
	test -z "$(usrbin_execdir)" || $(MKDIR_P) "$(DESTDIR)$(usrbin_execdir)"
	@list='$(usrbin_exec_SCRIPTS)'; test -n "$(usrbin_execdir)" || list=; \
	for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
	done | \
	sed -e 'p;s,.*/,,;n' \
	    -e 'h;s|.*|.|' \
	    -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
	    if ($$2 == $$4) { files[d] = files[d] " " $$1; \
	      if (++n[d] == $(am__install_max)) { \
		print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
	    else { print "f", d "/" $$4, $$1 } } \
	  END { for (d in files) print "f", d, files[d] }' | \
	while read type dir files; do \
	     if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
	     test -z "$$files" || { \
	       echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(usrbin_execdir)$$dir'"; \
	       $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(usrbin_execdir)$$dir" || exit $$?; \
	     } \
	; done

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

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

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

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blkid-blkid.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blkid-ismounted.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blkid_static-blkid.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blkid_static-ismounted.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cal.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ddate.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/findfs-findfs.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logger.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/look.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mcookie.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/namei.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/procs.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rename.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/script.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scriptreplay.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setterm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uuidd-uuidd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uuidgen-uuidgen.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/whereis.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wipefs-wipefs.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/write-write.Po@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
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(COMPILE) -c $<

.c.obj:
@am__fastdepCC_TRUE@	$(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
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`

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

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

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

blkid-ismounted.o: $(top_srcdir)/lib/ismounted.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(blkid_CFLAGS) $(CFLAGS) -MT blkid-ismounted.o -MD -MP -MF $(DEPDIR)/blkid-ismounted.Tpo -c -o blkid-ismounted.o `test -f '$(top_srcdir)/lib/ismounted.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/ismounted.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/blkid-ismounted.Tpo $(DEPDIR)/blkid-ismounted.Po
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/ismounted.c' object='blkid-ismounted.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(blkid_CFLAGS) $(CFLAGS) -c -o blkid-ismounted.o `test -f '$(top_srcdir)/lib/ismounted.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/ismounted.c

blkid-ismounted.obj: $(top_srcdir)/lib/ismounted.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(blkid_CFLAGS) $(CFLAGS) -MT blkid-ismounted.obj -MD -MP -MF $(DEPDIR)/blkid-ismounted.Tpo -c -o blkid-ismounted.obj `if test -f '$(top_srcdir)/lib/ismounted.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/ismounted.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/ismounted.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/blkid-ismounted.Tpo $(DEPDIR)/blkid-ismounted.Po
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/ismounted.c' object='blkid-ismounted.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(blkid_CFLAGS) $(CFLAGS) -c -o blkid-ismounted.obj `if test -f '$(top_srcdir)/lib/ismounted.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/ismounted.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/ismounted.c'; fi`

blkid_static-blkid.o: blkid.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(blkid_static_CFLAGS) $(CFLAGS) -MT blkid_static-blkid.o -MD -MP -MF $(DEPDIR)/blkid_static-blkid.Tpo -c -o blkid_static-blkid.o `test -f 'blkid.c' || echo '$(srcdir)/'`blkid.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/blkid_static-blkid.Tpo $(DEPDIR)/blkid_static-blkid.Po
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='blkid.c' object='blkid_static-blkid.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(blkid_static_CFLAGS) $(CFLAGS) -c -o blkid_static-blkid.o `test -f 'blkid.c' || echo '$(srcdir)/'`blkid.c

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

blkid_static-ismounted.o: $(top_srcdir)/lib/ismounted.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(blkid_static_CFLAGS) $(CFLAGS) -MT blkid_static-ismounted.o -MD -MP -MF $(DEPDIR)/blkid_static-ismounted.Tpo -c -o blkid_static-ismounted.o `test -f '$(top_srcdir)/lib/ismounted.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/ismounted.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/blkid_static-ismounted.Tpo $(DEPDIR)/blkid_static-ismounted.Po
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/ismounted.c' object='blkid_static-ismounted.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(blkid_static_CFLAGS) $(CFLAGS) -c -o blkid_static-ismounted.o `test -f '$(top_srcdir)/lib/ismounted.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/ismounted.c

blkid_static-ismounted.obj: $(top_srcdir)/lib/ismounted.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(blkid_static_CFLAGS) $(CFLAGS) -MT blkid_static-ismounted.obj -MD -MP -MF $(DEPDIR)/blkid_static-ismounted.Tpo -c -o blkid_static-ismounted.obj `if test -f '$(top_srcdir)/lib/ismounted.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/ismounted.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/ismounted.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/blkid_static-ismounted.Tpo $(DEPDIR)/blkid_static-ismounted.Po
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/lib/ismounted.c' object='blkid_static-ismounted.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(blkid_static_CFLAGS) $(CFLAGS) -c -o blkid_static-ismounted.obj `if test -f '$(top_srcdir)/lib/ismounted.c'; then $(CYGPATH_W) '$(top_srcdir)/lib/ismounted.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/lib/ismounted.c'; fi`

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

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

md5.o: ../lib/md5.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT md5.o -MD -MP -MF $(DEPDIR)/md5.Tpo -c -o md5.o `test -f '../lib/md5.c' || echo '$(srcdir)/'`../lib/md5.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/md5.Tpo $(DEPDIR)/md5.Po
@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='../lib/md5.c' object='md5.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o md5.o `test -f '../lib/md5.c' || echo '$(srcdir)/'`../lib/md5.c

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

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

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

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

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

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

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

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

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

mostlyclean-libtool:
	-rm -f *.lo

clean-libtool:
	-rm -rf .libs _libs
install-man1: $(dist_man_MANS)
	@$(NORMAL_INSTALL)
	test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
	@list=''; test -n "$(man1dir)" || exit 0; \
	{ for i in $$list; do echo "$$i"; done; \
	l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \
	  sed -n '/\.1[a-z]*$$/p'; \
	} | while read p; do \
	  if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
	  echo "$$d$$p"; echo "$$p"; \
	done | \
	sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
	sed 'N;N;s,\n, ,g' | { \
	list=; while read file base inst; do \
	  if test "$$base" = "$$inst"; then list="$$list $$file"; else \
	    echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
	    $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
	  fi; \
	done; \
	for i in $$list; do echo "$$i"; done | $(am__base_list) | \
	while read files; do \
	  test -z "$$files" || { \
	    echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
	    $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
	done; }

uninstall-man1:
	@$(NORMAL_UNINSTALL)
	@list=''; test -n "$(man1dir)" || exit 0; \
	files=`{ for i in $$list; do echo "$$i"; done; \
	l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \
	  sed -n '/\.1[a-z]*$$/p'; \
	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
	test -z "$$files" || { \
	  echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
	  cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
install-man8: $(dist_man_MANS)
	@$(NORMAL_INSTALL)
	test -z "$(man8dir)" || $(MKDIR_P) "$(DESTDIR)$(man8dir)"
	@list=''; test -n "$(man8dir)" || exit 0; \
	{ for i in $$list; do echo "$$i"; done; \
	l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \
	  sed -n '/\.8[a-z]*$$/p'; \
	} | while read p; do \
	  if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
	  echo "$$d$$p"; echo "$$p"; \
	done | \
	sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \
	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
	sed 'N;N;s,\n, ,g' | { \
	list=; while read file base inst; do \
	  if test "$$base" = "$$inst"; then list="$$list $$file"; else \
	    echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \
	    $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \
	  fi; \
	done; \
	for i in $$list; do echo "$$i"; done | $(am__base_list) | \
	while read files; do \
	  test -z "$$files" || { \
	    echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \
	    $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \
	done; }

uninstall-man8:
	@$(NORMAL_UNINSTALL)
	@list=''; test -n "$(man8dir)" || exit 0; \
	files=`{ for i in $$list; do echo "$$i"; done; \
	l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \
	  sed -n '/\.8[a-z]*$$/p'; \
	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \
	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
	test -z "$$files" || { \
	  echo " ( cd '$(DESTDIR)$(man8dir)' && rm -f" $$files ")"; \
	  cd "$(DESTDIR)$(man8dir)" && rm -f $$files; }

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

distdir: $(DISTFILES)
	@list='$(MANS)'; if test -n "$$list"; then \
	  list=`for p in $$list; do \
	    if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
	    if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
	  if test -n "$$list" && \
	    grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
	    echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
	    grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
	    echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
	    echo "       typically \`make maintainer-clean' will remove them" >&2; \
	    exit 1; \
	  else :; fi; \
	else :; fi
	@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
check: check-am
all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(MANS) $(DATA)
installdirs:
	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(usrbin_execdir)" "$(DESTDIR)$(usrsbin_execdir)" "$(DESTDIR)$(usrbin_execdir)" "$(DESTDIR)$(usrbin_execdir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man8dir)"; do \
	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
	done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am

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

installcheck: installcheck-am
install-strip:
	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	  `test -z '$(STRIP)' || \
	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:

clean-generic:
	-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."
@BUILD_WRITE_FALSE@install-exec-hook:
@MAKEINSTALL_DO_CHOWN_FALSE@install-exec-hook:
@USE_TTY_GROUP_FALSE@install-exec-hook:
clean: clean-am

clean-am: clean-binPROGRAMS clean-generic clean-libtool \
	clean-sbinPROGRAMS clean-usrbin_execPROGRAMS \
	clean-usrsbin_execPROGRAMS 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-man

install-dvi: install-dvi-am

install-dvi-am:

install-exec-am: install-binPROGRAMS install-dist_usrbin_execSCRIPTS \
	install-sbinPROGRAMS install-usrbin_execPROGRAMS \
	install-usrbin_execSCRIPTS install-usrsbin_execPROGRAMS
	@$(NORMAL_INSTALL)
	$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
install-html: install-html-am

install-html-am:

install-info: install-info-am

install-info-am:

install-man: install-man1 install-man8

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-binPROGRAMS uninstall-dist_usrbin_execSCRIPTS \
	uninstall-man uninstall-sbinPROGRAMS \
	uninstall-usrbin_execPROGRAMS uninstall-usrbin_execSCRIPTS \
	uninstall-usrsbin_execPROGRAMS

uninstall-man: uninstall-man1 uninstall-man8

.MAKE: install-am install-exec-am install-strip

.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
	clean-generic clean-libtool clean-sbinPROGRAMS \
	clean-usrbin_execPROGRAMS clean-usrsbin_execPROGRAMS ctags \
	distclean distclean-compile distclean-generic \
	distclean-libtool distclean-tags distdir dvi dvi-am html \
	html-am info info-am install install-am install-binPROGRAMS \
	install-data install-data-am install-dist_usrbin_execSCRIPTS \
	install-dvi install-dvi-am install-exec install-exec-am \
	install-exec-hook install-html install-html-am install-info \
	install-info-am install-man install-man1 install-man8 \
	install-pdf install-pdf-am install-ps install-ps-am \
	install-sbinPROGRAMS install-strip install-usrbin_execPROGRAMS \
	install-usrbin_execSCRIPTS install-usrsbin_execPROGRAMS \
	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-binPROGRAMS \
	uninstall-dist_usrbin_execSCRIPTS uninstall-man uninstall-man1 \
	uninstall-man8 uninstall-sbinPROGRAMS \
	uninstall-usrbin_execPROGRAMS uninstall-usrbin_execSCRIPTS \
	uninstall-usrsbin_execPROGRAMS


$(ul_libblkid_la):
	$(MAKE) -C $(ul_libblkid_builddir)

$(ul_libuuid_la):
	$(MAKE) -C $(ul_libuuid_builddir)

@BUILD_WRITE_TRUE@@MAKEINSTALL_DO_CHOWN_TRUE@@USE_TTY_GROUP_TRUE@install-exec-hook::
@BUILD_WRITE_TRUE@@MAKEINSTALL_DO_CHOWN_TRUE@@USE_TTY_GROUP_TRUE@	chgrp tty $(DESTDIR)$(usrbin_execdir)/write
@BUILD_WRITE_TRUE@@MAKEINSTALL_DO_CHOWN_TRUE@@USE_TTY_GROUP_TRUE@	chmod g+s $(DESTDIR)$(usrbin_execdir)/write

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