-AUTOMAKE_OPTIONS = foreign dist-zip
+ACLOCAL_AMFLAGS = -I config
-SUBDIRS = doc scripts $(BUILDDIR)
-CONFIG_CLEAN_FILES = aclocal.m4 config.guess config.sub
-CONFIG_CLEAN_FILES += depcomp missing mkinstalldirs
-EXTRA_DIST = autogen.sh
+include config/rpm.am
+include config/deb.am
+include config/tgz.am
-.PHONY: quilt
-quilt: .quilt-$(BUILDDIR)
-autogen: .autogen-$(BUILDDIR)
-config: .config-$(BUILDDIR)
-.quilt-$(BUILDDIR):
- ./scripts/quilt.sh -p $(NAME) -b $(BUILDDIR) -s $(SERIESFILE) -d $(PATCHDIR)
- echo $(BUILDDIR) >$@
+SUBDIRS = include rpm
+if CONFIG_USER
+SUBDIRS += udev etc man scripts lib tests cmd contrib
+endif
+if CONFIG_KERNEL
+SUBDIRS += module
-unquilt:
- rm -rf $(BUILDDIR)
- rm -f .quilt-$(BUILDDIR)
+extradir = @prefix@/src/zfs-$(VERSION)
+extra_HEADERS = zfs.release.in zfs_config.h.in
-clean-generic:
+kerneldir = @prefix@/src/zfs-$(VERSION)/$(LINUX_VERSION)
+nodist_kernel_HEADERS = zfs.release zfs_config.h module/$(LINUX_SYMBOLS)
+endif
-distclean: unquilt
+AUTOMAKE_OPTIONS = foreign
+EXTRA_DIST = autogen.sh copy-builtin
+EXTRA_DIST += config/config.awk config/rpm.am config/deb.am config/tgz.am
+EXTRA_DIST += META DISCLAIMER COPYRIGHT README.markdown OPENSOLARIS.LICENSE
-rpms: dist Makefile
- rpmbuild -ta $(distdir).tar.gz
+distclean-local::
+ -$(RM) -R autom4te*.cache
+ -find . \( -name SCCS -o -name BitKeeper -o -name .svn -o -name CVS \
+ -o -name .pc -o -name .hg -o -name .git \) -prune -o \
+ \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
+ -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
+ -o -name '.*.rej' -o -name '.script-config' -o -size 0 \
+ -o -name '*%' -o -name '.*.cmd' -o -name 'core' \
+ -o -name 'Makefile' -o -name 'Module.symvers' \
+ -o -name '*.order' -o -name '*.markers' \) \
+ -type f -print | xargs $(RM)
+
+dist-hook:
+ sed -i 's/Release:[[:print:]]*/Release: $(RELEASE)/' \
+ $(distdir)/META
+
+checkstyle: cstyle shellcheck flake8 commitcheck
+
+commitcheck:
+ @if git rev-parse --git-dir > /dev/null 2>&1; then \
+ scripts/commitcheck.sh; \
+ fi
+
+cstyle:
+ @find ${top_srcdir} -name '*.[hc]' ! -name 'zfs_config.*' \
+ ! -name '*.mod.c' -type f -exec scripts/cstyle.pl -cpP {} \+
+
+shellcheck:
+ @if type shellcheck > /dev/null 2>&1; then \
+ shellcheck --exclude=SC1090 --format=gcc scripts/paxcheck.sh \
+ scripts/zloop.sh \
+ scripts/zfs-tests.sh \
+ scripts/zfs.sh \
+ scripts/commitcheck.sh \
+ $$(find cmd/zed/zed.d/*.sh -type f) \
+ $$(find cmd/zpool/zpool.d/* -executable); \
+ fi
+
+lint: cppcheck paxcheck
+
+cppcheck:
+ @if type cppcheck > /dev/null 2>&1; then \
+ cppcheck --inline-suppr --quiet --force --error-exitcode=2 \
+ ${top_srcdir}; \
+ fi
+
+paxcheck:
+ @if type scanelf > /dev/null 2>&1; then \
+ scripts/paxcheck.sh ${top_srcdir}; \
+ fi
+
+flake8:
+ @if type flake8 > /dev/null 2>&1; then \
+ flake8 ${top_srcdir}; \
+ fi
+
+ctags:
+ $(RM) tags
+ find $(top_srcdir) -name .git -prune -o -name '*.[hc]' | xargs ctags
+
+etags:
+ $(RM) TAGS
+ find $(top_srcdir) -name .pc -prune -o -name '*.[hc]' | xargs etags -a
+
+tags: ctags etags
+
+pkg: @DEFAULT_PACKAGE@
+pkg-kmod: @DEFAULT_PACKAGE@-kmod
+pkg-utils: @DEFAULT_PACKAGE@-utils