mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-11-17 10:01:01 +03:00
76659dc110
For a long time now the kernel has been moving away from using the pdflush daemon to write 'old' dirty pages to disk. The primary reason for this is because the pdflush daemon is single threaded and can be a limiting factor for performance. Since pdflush sequentially walks the dirty inode list for each super block any delay in processing can slow down dirty page writeback for all filesystems. The replacement for pdflush is called bdi (backing device info). The bdi system involves creating a per-filesystem control structure each with its own private sets of queues to manage writeback. The advantage is greater parallelism which improves performance and prevents a single filesystem from slowing writeback to the others. For a long time both systems co-existed in the kernel so it wasn't strictly required to implement the bdi scheme. However, as of Linux 2.6.36 kernels the pdflush functionality has been retired. Since ZFS already bypasses the page cache for most I/O this is only an issue for mmap(2) writes which must go through the page cache. Even then adding this missing support for newer kernels was overlooked because there are other mechanisms which can trigger writeback. However, there is one critical case where not implementing the bdi functionality can cause problems. If an application handles a page fault it can enter the balance_dirty_pages() callpath. This will result in the application hanging until the number of dirty pages in the system drops below the dirty ratio. Without a registered backing_device_info for the filesystem the dirty pages will not get written out. Thus the application will hang. As mentioned above this was less of an issue with older kernels because pdflush would eventually write out the dirty pages. This change adds a backing_device_info structure to the zfs_sb_t which is already allocated per-super block. It is then registered when the filesystem mounted and unregistered on unmount. It will not be registered for mounted snapshots which are read-only. This change will result in flush-<pool> thread being dynamically created and destroyed per-mounted filesystem for writeback. Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #174
658 lines
20 KiB
Makefile
658 lines
20 KiB
Makefile
# 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@
|
|
target_triplet = @target@
|
|
subdir = lib
|
|
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
|
am__aclocal_m4_deps = \
|
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
|
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
|
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
|
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
|
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
|
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
|
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
|
$(top_srcdir)/config/kernel-blk-rq-sectors.m4 \
|
|
$(top_srcdir)/config/kernel-blkdev-get-by-path.m4 \
|
|
$(top_srcdir)/config/kernel-check-disk-size-change.m4 \
|
|
$(top_srcdir)/config/kernel-d-obtain-alias.m4 \
|
|
$(top_srcdir)/config/kernel-evict-inode.m4 \
|
|
$(top_srcdir)/config/kernel-fmode-t.m4 \
|
|
$(top_srcdir)/config/kernel-fsync.m4 \
|
|
$(top_srcdir)/config/kernel-get-disk-ro.m4 \
|
|
$(top_srcdir)/config/kernel-insert-inode-locked.m4 \
|
|
$(top_srcdir)/config/kernel-invalidate-bdev-args.m4 \
|
|
$(top_srcdir)/config/kernel-kobj-name-len.m4 \
|
|
$(top_srcdir)/config/kernel-mount-nodev.m4 \
|
|
$(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
|
|
$(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
|
|
$(top_srcdir)/config/kernel-rq-is_sync.m4 \
|
|
$(top_srcdir)/config/kernel-security-inode-init.m4 \
|
|
$(top_srcdir)/config/kernel-truncate-setsize.m4 \
|
|
$(top_srcdir)/config/kernel-xattr-handler.m4 \
|
|
$(top_srcdir)/config/kernel.m4 \
|
|
$(top_srcdir)/config/user-arch.m4 \
|
|
$(top_srcdir)/config/user-frame-larger-than.m4 \
|
|
$(top_srcdir)/config/user-ioctl.m4 \
|
|
$(top_srcdir)/config/user-libblkid.m4 \
|
|
$(top_srcdir)/config/user-libuuid.m4 \
|
|
$(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
|
|
$(top_srcdir)/config/user-selinux.m4 \
|
|
$(top_srcdir)/config/user-zlib.m4 $(top_srcdir)/config/user.m4 \
|
|
$(top_srcdir)/config/zfs-build.m4 \
|
|
$(top_srcdir)/config/zfs-meta.m4 $(top_srcdir)/configure.ac
|
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
|
$(ACLOCAL_M4)
|
|
mkinstalldirs = $(install_sh) -d
|
|
CONFIG_HEADER = $(top_builddir)/zfs_config.h
|
|
CONFIG_CLEAN_FILES =
|
|
CONFIG_CLEAN_VPATH_FILES =
|
|
AM_V_GEN = $(am__v_GEN_$(V))
|
|
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
|
|
am__v_GEN_0 = @echo " GEN " $@;
|
|
AM_V_at = $(am__v_at_$(V))
|
|
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
|
|
am__v_at_0 = @
|
|
SOURCES =
|
|
DIST_SOURCES =
|
|
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
|
html-recursive info-recursive install-data-recursive \
|
|
install-dvi-recursive install-exec-recursive \
|
|
install-html-recursive install-info-recursive \
|
|
install-pdf-recursive install-ps-recursive install-recursive \
|
|
installcheck-recursive installdirs-recursive pdf-recursive \
|
|
ps-recursive uninstall-recursive
|
|
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
|
distclean-recursive maintainer-clean-recursive
|
|
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
|
|
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
|
|
distdir
|
|
ETAGS = etags
|
|
CTAGS = ctags
|
|
DIST_SUBDIRS = $(SUBDIRS)
|
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
|
am__relativize = \
|
|
dir0=`pwd`; \
|
|
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
|
|
sed_rest='s,^[^/]*/*,,'; \
|
|
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
|
|
sed_butlast='s,/*[^/]*$$,,'; \
|
|
while test -n "$$dir1"; do \
|
|
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
|
|
if test "$$first" != "."; then \
|
|
if test "$$first" = ".."; then \
|
|
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
|
|
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
|
|
else \
|
|
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
|
|
if test "$$first2" = "$$first"; then \
|
|
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
|
|
else \
|
|
dir2="../$$dir2"; \
|
|
fi; \
|
|
dir0="$$dir0"/"$$first"; \
|
|
fi; \
|
|
fi; \
|
|
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
|
|
done; \
|
|
reldir="$$dir2"
|
|
ACLOCAL = @ACLOCAL@
|
|
ALIEN = @ALIEN@
|
|
ALIEN_VERSION = @ALIEN_VERSION@
|
|
AMTAR = @AMTAR@
|
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
|
AR = @AR@
|
|
AUTOCONF = @AUTOCONF@
|
|
AUTOHEADER = @AUTOHEADER@
|
|
AUTOMAKE = @AUTOMAKE@
|
|
AWK = @AWK@
|
|
CC = @CC@
|
|
CCAS = @CCAS@
|
|
CCASDEPMODE = @CCASDEPMODE@
|
|
CCASFLAGS = @CCASFLAGS@
|
|
CCDEPMODE = @CCDEPMODE@
|
|
CFLAGS = @CFLAGS@
|
|
CPP = @CPP@
|
|
CPPFLAGS = @CPPFLAGS@
|
|
CYGPATH_W = @CYGPATH_W@
|
|
DEBUG_CFLAGS = @DEBUG_CFLAGS@
|
|
DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
|
|
DEFAULT_INIT_DIR = @DEFAULT_INIT_DIR@
|
|
DEFAULT_INIT_SCRIPT = @DEFAULT_INIT_SCRIPT@
|
|
DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
|
|
DEFS = @DEFS@
|
|
DEPDIR = @DEPDIR@
|
|
DPKG = @DPKG@
|
|
DPKGBUILD = @DPKGBUILD@
|
|
DPKGBUILD_VERSION = @DPKGBUILD_VERSION@
|
|
DPKG_VERSION = @DPKG_VERSION@
|
|
DSYMUTIL = @DSYMUTIL@
|
|
DUMPBIN = @DUMPBIN@
|
|
ECHO_C = @ECHO_C@
|
|
ECHO_N = @ECHO_N@
|
|
ECHO_T = @ECHO_T@
|
|
EGREP = @EGREP@
|
|
EXEEXT = @EXEEXT@
|
|
FGREP = @FGREP@
|
|
FRAME_LARGER_THAN = @FRAME_LARGER_THAN@
|
|
GREP = @GREP@
|
|
HAVE_ALIEN = @HAVE_ALIEN@
|
|
HAVE_DPKG = @HAVE_DPKG@
|
|
HAVE_DPKGBUILD = @HAVE_DPKGBUILD@
|
|
HAVE_RPM = @HAVE_RPM@
|
|
HAVE_RPMBUILD = @HAVE_RPMBUILD@
|
|
INSTALL = @INSTALL@
|
|
INSTALL_DATA = @INSTALL_DATA@
|
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
|
KERNELCPPFLAGS = @KERNELCPPFLAGS@
|
|
KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
|
|
LD = @LD@
|
|
LDFLAGS = @LDFLAGS@
|
|
LIBBLKID = @LIBBLKID@
|
|
LIBOBJS = @LIBOBJS@
|
|
LIBS = @LIBS@
|
|
LIBSELINUX = @LIBSELINUX@
|
|
LIBTOOL = @LIBTOOL@
|
|
LIBUUID = @LIBUUID@
|
|
LINUX = @LINUX@
|
|
LINUX_OBJ = @LINUX_OBJ@
|
|
LINUX_SYMBOLS = @LINUX_SYMBOLS@
|
|
LINUX_VERSION = @LINUX_VERSION@
|
|
LIPO = @LIPO@
|
|
LN_S = @LN_S@
|
|
LTLIBOBJS = @LTLIBOBJS@
|
|
MAINT = @MAINT@
|
|
MAKEINFO = @MAKEINFO@
|
|
MKDIR_P = @MKDIR_P@
|
|
NM = @NM@
|
|
NMEDIT = @NMEDIT@
|
|
NO_UNUSED_BUT_SET_VARIABLE = @NO_UNUSED_BUT_SET_VARIABLE@
|
|
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@
|
|
RANLIB = @RANLIB@
|
|
RPM = @RPM@
|
|
RPMBUILD = @RPMBUILD@
|
|
RPMBUILD_VERSION = @RPMBUILD_VERSION@
|
|
RPM_VERSION = @RPM_VERSION@
|
|
SED = @SED@
|
|
SET_MAKE = @SET_MAKE@
|
|
SHELL = @SHELL@
|
|
SPL = @SPL@
|
|
SPL_OBJ = @SPL_OBJ@
|
|
SPL_SYMBOLS = @SPL_SYMBOLS@
|
|
SPL_VERSION = @SPL_VERSION@
|
|
STRIP = @STRIP@
|
|
TARGET_ASM_DIR = @TARGET_ASM_DIR@
|
|
VENDOR = @VENDOR@
|
|
VERSION = @VERSION@
|
|
ZFS_CONFIG = @ZFS_CONFIG@
|
|
ZFS_META_ALIAS = @ZFS_META_ALIAS@
|
|
ZFS_META_AUTHOR = @ZFS_META_AUTHOR@
|
|
ZFS_META_DATA = @ZFS_META_DATA@
|
|
ZFS_META_LICENSE = @ZFS_META_LICENSE@
|
|
ZFS_META_LT_AGE = @ZFS_META_LT_AGE@
|
|
ZFS_META_LT_CURRENT = @ZFS_META_LT_CURRENT@
|
|
ZFS_META_LT_REVISION = @ZFS_META_LT_REVISION@
|
|
ZFS_META_NAME = @ZFS_META_NAME@
|
|
ZFS_META_RELEASE = @ZFS_META_RELEASE@
|
|
ZFS_META_VERSION = @ZFS_META_VERSION@
|
|
ZLIB = @ZLIB@
|
|
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@
|
|
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 = @target@
|
|
target_alias = @target_alias@
|
|
target_cpu = @target_cpu@
|
|
target_os = @target_os@
|
|
target_vendor = @target_vendor@
|
|
top_build_prefix = @top_build_prefix@
|
|
top_builddir = @top_builddir@
|
|
top_srcdir = @top_srcdir@
|
|
SUBDIRS = libspl libavl libefi libnvpair libshare libunicode libuutil \
|
|
libzpool libzfs
|
|
all: all-recursive
|
|
|
|
.SUFFIXES:
|
|
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
|
@for dep in $?; do \
|
|
case '$(am__configure_deps)' in \
|
|
*$$dep*) \
|
|
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
|
&& { if test -f $@; then exit 0; else break; fi; }; \
|
|
exit 1;; \
|
|
esac; \
|
|
done; \
|
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \
|
|
$(am__cd) $(top_srcdir) && \
|
|
$(AUTOMAKE) --gnu lib/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
|
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
|
$(am__aclocal_m4_deps):
|
|
|
|
mostlyclean-libtool:
|
|
-rm -f *.lo
|
|
|
|
clean-libtool:
|
|
-rm -rf .libs _libs
|
|
|
|
# This directory's subdirectories are mostly independent; you can cd
|
|
# into them and run `make' without going through this Makefile.
|
|
# To change the values of `make' variables: instead of editing Makefiles,
|
|
# (1) if the variable is set in `config.status', edit `config.status'
|
|
# (which will cause the Makefiles to be regenerated when you run `make');
|
|
# (2) otherwise, pass the desired values on the `make' command line.
|
|
$(RECURSIVE_TARGETS):
|
|
@fail= failcom='exit 1'; \
|
|
for f in x $$MAKEFLAGS; do \
|
|
case $$f in \
|
|
*=* | --[!k]*);; \
|
|
*k*) failcom='fail=yes';; \
|
|
esac; \
|
|
done; \
|
|
dot_seen=no; \
|
|
target=`echo $@ | sed s/-recursive//`; \
|
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
|
echo "Making $$target in $$subdir"; \
|
|
if test "$$subdir" = "."; then \
|
|
dot_seen=yes; \
|
|
local_target="$$target-am"; \
|
|
else \
|
|
local_target="$$target"; \
|
|
fi; \
|
|
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
|
|| eval $$failcom; \
|
|
done; \
|
|
if test "$$dot_seen" = "no"; then \
|
|
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
|
fi; test -z "$$fail"
|
|
|
|
$(RECURSIVE_CLEAN_TARGETS):
|
|
@fail= failcom='exit 1'; \
|
|
for f in x $$MAKEFLAGS; do \
|
|
case $$f in \
|
|
*=* | --[!k]*);; \
|
|
*k*) failcom='fail=yes';; \
|
|
esac; \
|
|
done; \
|
|
dot_seen=no; \
|
|
case "$@" in \
|
|
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
|
*) list='$(SUBDIRS)' ;; \
|
|
esac; \
|
|
rev=''; for subdir in $$list; do \
|
|
if test "$$subdir" = "."; then :; else \
|
|
rev="$$subdir $$rev"; \
|
|
fi; \
|
|
done; \
|
|
rev="$$rev ."; \
|
|
target=`echo $@ | sed s/-recursive//`; \
|
|
for subdir in $$rev; do \
|
|
echo "Making $$target in $$subdir"; \
|
|
if test "$$subdir" = "."; then \
|
|
local_target="$$target-am"; \
|
|
else \
|
|
local_target="$$target"; \
|
|
fi; \
|
|
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
|
|| eval $$failcom; \
|
|
done && test -z "$$fail"
|
|
tags-recursive:
|
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
|
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
|
done
|
|
ctags-recursive:
|
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
|
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
|
done
|
|
|
|
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|
unique=`for i in $$list; do \
|
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|
done | \
|
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|
mkid -fID $$unique
|
|
tags: TAGS
|
|
|
|
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
|
$(TAGS_FILES) $(LISP)
|
|
set x; \
|
|
here=`pwd`; \
|
|
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
|
include_option=--etags-include; \
|
|
empty_fix=.; \
|
|
else \
|
|
include_option=--include; \
|
|
empty_fix=; \
|
|
fi; \
|
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
|
if test "$$subdir" = .; then :; else \
|
|
test ! -f $$subdir/TAGS || \
|
|
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
|
|
fi; \
|
|
done; \
|
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|
unique=`for i in $$list; do \
|
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|
done | \
|
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|
shift; \
|
|
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
|
test -n "$$unique" || unique=$$empty_fix; \
|
|
if test $$# -gt 0; then \
|
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
|
"$$@" $$unique; \
|
|
else \
|
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
|
$$unique; \
|
|
fi; \
|
|
fi
|
|
ctags: CTAGS
|
|
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
|
$(TAGS_FILES) $(LISP)
|
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|
unique=`for i in $$list; do \
|
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|
done | \
|
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|
test -z "$(CTAGS_ARGS)$$unique" \
|
|
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
|
$$unique
|
|
|
|
GTAGS:
|
|
here=`$(am__cd) $(top_builddir) && pwd` \
|
|
&& $(am__cd) $(top_srcdir) \
|
|
&& gtags -i $(GTAGS_ARGS) "$$here"
|
|
|
|
distclean-tags:
|
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
|
|
|
distdir: $(DISTFILES)
|
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
|
list='$(DISTFILES)'; \
|
|
dist_files=`for file in $$list; do echo $$file; done | \
|
|
sed -e "s|^$$srcdirstrip/||;t" \
|
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
|
case $$dist_files in \
|
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
|
sort -u` ;; \
|
|
esac; \
|
|
for file in $$dist_files; do \
|
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
|
if test -d $$d/$$file; then \
|
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
|
if test -d "$(distdir)/$$file"; then \
|
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
|
fi; \
|
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
|
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
|
fi; \
|
|
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
|
else \
|
|
test -f "$(distdir)/$$file" \
|
|
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
|
|| exit 1; \
|
|
fi; \
|
|
done
|
|
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
|
if test "$$subdir" = .; then :; else \
|
|
test -d "$(distdir)/$$subdir" \
|
|
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
|
|| exit 1; \
|
|
fi; \
|
|
done
|
|
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
|
if test "$$subdir" = .; then :; else \
|
|
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
|
|
$(am__relativize); \
|
|
new_distdir=$$reldir; \
|
|
dir1=$$subdir; dir2="$(top_distdir)"; \
|
|
$(am__relativize); \
|
|
new_top_distdir=$$reldir; \
|
|
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
|
|
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
|
|
($(am__cd) $$subdir && \
|
|
$(MAKE) $(AM_MAKEFLAGS) \
|
|
top_distdir="$$new_top_distdir" \
|
|
distdir="$$new_distdir" \
|
|
am__remove_distdir=: \
|
|
am__skip_length_check=: \
|
|
am__skip_mode_fix=: \
|
|
distdir) \
|
|
|| exit 1; \
|
|
fi; \
|
|
done
|
|
check-am: all-am
|
|
check: check-recursive
|
|
all-am: Makefile
|
|
installdirs: installdirs-recursive
|
|
installdirs-am:
|
|
install: install-recursive
|
|
install-exec: install-exec-recursive
|
|
install-data: install-data-recursive
|
|
uninstall: uninstall-recursive
|
|
|
|
install-am: all-am
|
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
|
|
|
installcheck: installcheck-recursive
|
|
install-strip:
|
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
|
`test -z '$(STRIP)' || \
|
|
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
|
mostlyclean-generic:
|
|
|
|
clean-generic:
|
|
|
|
distclean-generic:
|
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
|
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
|
|
|
maintainer-clean-generic:
|
|
@echo "This command is intended for maintainers to use"
|
|
@echo "it deletes files that may require special tools to rebuild."
|
|
clean: clean-recursive
|
|
|
|
clean-am: clean-generic clean-libtool mostlyclean-am
|
|
|
|
distclean: distclean-recursive
|
|
-rm -f Makefile
|
|
distclean-am: clean-am distclean-generic distclean-tags
|
|
|
|
dvi: dvi-recursive
|
|
|
|
dvi-am:
|
|
|
|
html: html-recursive
|
|
|
|
html-am:
|
|
|
|
info: info-recursive
|
|
|
|
info-am:
|
|
|
|
install-data-am:
|
|
|
|
install-dvi: install-dvi-recursive
|
|
|
|
install-dvi-am:
|
|
|
|
install-exec-am:
|
|
|
|
install-html: install-html-recursive
|
|
|
|
install-html-am:
|
|
|
|
install-info: install-info-recursive
|
|
|
|
install-info-am:
|
|
|
|
install-man:
|
|
|
|
install-pdf: install-pdf-recursive
|
|
|
|
install-pdf-am:
|
|
|
|
install-ps: install-ps-recursive
|
|
|
|
install-ps-am:
|
|
|
|
installcheck-am:
|
|
|
|
maintainer-clean: maintainer-clean-recursive
|
|
-rm -f Makefile
|
|
maintainer-clean-am: distclean-am maintainer-clean-generic
|
|
|
|
mostlyclean: mostlyclean-recursive
|
|
|
|
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
|
|
|
pdf: pdf-recursive
|
|
|
|
pdf-am:
|
|
|
|
ps: ps-recursive
|
|
|
|
ps-am:
|
|
|
|
uninstall-am:
|
|
|
|
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
|
|
install-am install-strip tags-recursive
|
|
|
|
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
|
all all-am check check-am clean clean-generic clean-libtool \
|
|
ctags ctags-recursive distclean 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 installdirs-am maintainer-clean \
|
|
maintainer-clean-generic mostlyclean mostlyclean-generic \
|
|
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
|
|
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:
|