2013-03-30 02:33:09 +00:00
|
|
|
ACLOCAL_AMFLAGS = -I config
|
|
|
|
|
2019-09-06 18:26:26 +00:00
|
|
|
SUBDIRS = include
|
|
|
|
if BUILD_LINUX
|
|
|
|
SUBDIRS += rpm
|
|
|
|
endif
|
|
|
|
|
2010-08-26 18:22:58 +00:00
|
|
|
if CONFIG_USER
|
2019-09-06 18:26:26 +00:00
|
|
|
SUBDIRS += etc man scripts lib tests cmd contrib
|
|
|
|
if BUILD_LINUX
|
|
|
|
SUBDIRS += udev
|
|
|
|
endif
|
2010-08-26 18:22:58 +00:00
|
|
|
endif
|
|
|
|
if CONFIG_KERNEL
|
2012-12-16 05:35:16 +00:00
|
|
|
SUBDIRS += module
|
2013-02-21 23:10:11 +00:00
|
|
|
|
2018-02-16 01:53:18 +00:00
|
|
|
extradir = $(prefix)/src/zfs-$(VERSION)
|
2013-02-21 23:10:11 +00:00
|
|
|
extra_HEADERS = zfs.release.in zfs_config.h.in
|
|
|
|
|
2019-09-06 18:26:26 +00:00
|
|
|
if BUILD_LINUX
|
2018-02-16 01:53:18 +00:00
|
|
|
kerneldir = $(prefix)/src/zfs-$(VERSION)/$(LINUX_VERSION)
|
2013-02-21 23:10:11 +00:00
|
|
|
nodist_kernel_HEADERS = zfs.release zfs_config.h module/$(LINUX_SYMBOLS)
|
2010-08-26 18:22:58 +00:00
|
|
|
endif
|
2019-09-06 18:26:26 +00:00
|
|
|
endif
|
2010-08-26 18:22:58 +00:00
|
|
|
|
2010-09-02 20:18:17 +00:00
|
|
|
AUTOMAKE_OPTIONS = foreign
|
2013-02-17 20:10:17 +00:00
|
|
|
EXTRA_DIST = autogen.sh copy-builtin
|
2010-08-26 18:22:58 +00:00
|
|
|
EXTRA_DIST += config/config.awk config/rpm.am config/deb.am config/tgz.am
|
2021-04-02 23:33:40 +00:00
|
|
|
EXTRA_DIST += AUTHORS CODE_OF_CONDUCT.md COPYRIGHT LICENSE META NEWS NOTICE
|
|
|
|
EXTRA_DIST += README.md RELEASES.md
|
2020-06-25 18:14:54 +00:00
|
|
|
EXTRA_DIST += module/lua/README.zfs module/os/linux/spl/README.md
|
2010-08-26 18:22:58 +00:00
|
|
|
|
2019-01-08 17:29:34 +00:00
|
|
|
# Include all the extra licensing information for modules
|
2019-08-21 16:01:59 +00:00
|
|
|
EXTRA_DIST += module/icp/algs/skein/THIRDPARTYLICENSE
|
|
|
|
EXTRA_DIST += module/icp/algs/skein/THIRDPARTYLICENSE.descrip
|
|
|
|
EXTRA_DIST += module/icp/asm-x86_64/aes/THIRDPARTYLICENSE.gladman
|
|
|
|
EXTRA_DIST += module/icp/asm-x86_64/aes/THIRDPARTYLICENSE.gladman.descrip
|
|
|
|
EXTRA_DIST += module/icp/asm-x86_64/aes/THIRDPARTYLICENSE.openssl
|
|
|
|
EXTRA_DIST += module/icp/asm-x86_64/aes/THIRDPARTYLICENSE.openssl.descrip
|
2020-06-22 01:04:02 +00:00
|
|
|
EXTRA_DIST += module/icp/asm-x86_64/modes/THIRDPARTYLICENSE.cryptogams
|
|
|
|
EXTRA_DIST += module/icp/asm-x86_64/modes/THIRDPARTYLICENSE.cryptogams.descrip
|
|
|
|
EXTRA_DIST += module/icp/asm-x86_64/modes/THIRDPARTYLICENSE.openssl
|
|
|
|
EXTRA_DIST += module/icp/asm-x86_64/modes/THIRDPARTYLICENSE.openssl.descrip
|
2019-09-06 18:26:26 +00:00
|
|
|
EXTRA_DIST += module/os/linux/spl/THIRDPARTYLICENSE.gplv2
|
|
|
|
EXTRA_DIST += module/os/linux/spl/THIRDPARTYLICENSE.gplv2.descrip
|
2019-08-21 16:01:59 +00:00
|
|
|
EXTRA_DIST += module/zfs/THIRDPARTYLICENSE.cityhash
|
|
|
|
EXTRA_DIST += module/zfs/THIRDPARTYLICENSE.cityhash.descrip
|
2019-01-08 17:29:34 +00:00
|
|
|
|
2017-09-23 01:49:57 +00:00
|
|
|
@CODE_COVERAGE_RULES@
|
|
|
|
|
2020-06-20 02:08:59 +00:00
|
|
|
GITREV = include/zfs_gitrev.h
|
|
|
|
|
2020-06-26 22:38:48 +00:00
|
|
|
PHONY = gitrev
|
2018-10-09 04:57:02 +00:00
|
|
|
gitrev:
|
2020-07-17 21:30:51 +00:00
|
|
|
$(AM_V_GEN)$(top_srcdir)/scripts/make_gitrev.sh $(GITREV)
|
2020-06-20 02:08:59 +00:00
|
|
|
|
Fix parallel make srpm
When building srpm using make -j, each of the recursive makes invoked to
build srpm-{dkms,kmod,utils} will build the dist target. This is both
unnecessary, and also has a very good chance of breaking when they race
trying to build gitrev.
Fix this by make dist a prerequisite of srpm-{dkms,kmod,utils} instead
of srpm-common, so that it will be done once before invoking the
recursive makes.
Also, gitrev is not really required for make dist, so instead of adding
it to BUILT_SOURCES, just add it as a prerequisite of the all target.
Mark the individual package targets as PHONY.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu>
Closes #10564
2020-07-13 21:24:07 +00:00
|
|
|
all: gitrev
|
2018-10-09 04:57:02 +00:00
|
|
|
|
2019-08-26 18:48:31 +00:00
|
|
|
# Double-colon rules are allowed; there are multiple independent definitions.
|
2020-07-19 01:24:48 +00:00
|
|
|
maintainer-clean-local::
|
|
|
|
-$(RM) $(GITREV)
|
|
|
|
|
2019-08-26 18:48:31 +00:00
|
|
|
distclean-local::
|
2019-10-01 19:50:34 +00:00
|
|
|
-$(RM) -R autom4te*.cache build
|
2010-08-26 18:22:58 +00:00
|
|
|
-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' \
|
Retire legacy test infrastructure
* Removed zpios kmod, utility, headers and man page.
* Removed unused scripts zpios-profile/*, zpios-test/*,
zpool-config/*, smb.sh, zpios-sanity.sh, zpios-survey.sh,
zpios.sh, and zpool-create.sh.
* Removed zfs-script-config.sh.in. When building 'make' generates
a common.sh with in-tree path information from the common.sh.in
template. This file and sourced by the test scripts and used
for in-tree testing, it is not included in the packages. When
building packages 'make install' uses the same template to
create a new common.sh which is appropriate for the packaging.
* Removed unused functions/variables from scripts/common.sh.in.
Only minimal path information and configuration environment
variables remain.
* Removed unused scripts from scripts/ directory.
* Remaining shell scripts in the scripts directory updated to
cleanly pass shellcheck and added to checked scripts.
* Renamed tests/test-runner/cmd/ to tests/test-runner/bin/ to
match install location name.
* Removed last traces of the --enable-debug-dmu-tx configure
options which was retired some time ago.
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #6509
2017-08-16 00:26:38 +00:00
|
|
|
-o -name '.*.rej' -o -size 0 -o -name '*%' -o -name '.*.cmd' \
|
|
|
|
-o -name 'core' -o -name 'Makefile' -o -name 'Module.symvers' \
|
2017-09-15 17:24:13 +00:00
|
|
|
-o -name '*.order' -o -name '*.markers' -o -name '*.gcda' \
|
|
|
|
-o -name '*.gcno' \) \
|
2010-08-26 18:22:58 +00:00
|
|
|
-type f -print | xargs $(RM)
|
|
|
|
|
2018-05-21 17:36:59 +00:00
|
|
|
all-local:
|
2019-06-24 16:32:47 +00:00
|
|
|
-[ -x ${top_builddir}/scripts/zfs-tests.sh ] && \
|
|
|
|
${top_builddir}/scripts/zfs-tests.sh -c
|
2018-05-21 17:36:59 +00:00
|
|
|
|
2020-06-20 02:08:59 +00:00
|
|
|
dist-hook:
|
2020-07-19 01:24:48 +00:00
|
|
|
$(AM_V_GEN)$(top_srcdir)/scripts/make_gitrev.sh -D $(distdir) $(GITREV)
|
2020-06-22 16:08:12 +00:00
|
|
|
$(SED) ${ac_inplace} -e 's/Release:[[:print:]]*/Release: $(RELEASE)/' \
|
2013-03-22 21:46:11 +00:00
|
|
|
$(distdir)/META
|
|
|
|
|
2019-09-06 18:26:26 +00:00
|
|
|
if BUILD_LINUX
|
2018-02-16 01:53:18 +00:00
|
|
|
# For compatibility, create a matching spl-x.y.z directly which contains
|
|
|
|
# symlinks to the updated header and object file locations. These
|
|
|
|
# compatibility links will be removed in the next major release.
|
|
|
|
if CONFIG_KERNEL
|
|
|
|
install-data-hook:
|
2018-05-31 16:19:59 +00:00
|
|
|
rm -rf $(DESTDIR)$(prefix)/src/spl-$(VERSION) && \
|
2018-02-16 01:53:18 +00:00
|
|
|
mkdir $(DESTDIR)$(prefix)/src/spl-$(VERSION) && \
|
|
|
|
cd $(DESTDIR)$(prefix)/src/spl-$(VERSION) && \
|
|
|
|
ln -s ../zfs-$(VERSION)/include/spl include && \
|
|
|
|
ln -s ../zfs-$(VERSION)/$(LINUX_VERSION) $(LINUX_VERSION) && \
|
|
|
|
ln -s ../zfs-$(VERSION)/zfs_config.h.in spl_config.h.in && \
|
|
|
|
ln -s ../zfs-$(VERSION)/zfs.release.in spl.release.in && \
|
|
|
|
cd $(DESTDIR)$(prefix)/src/zfs-$(VERSION)/$(LINUX_VERSION) && \
|
2018-05-31 16:19:59 +00:00
|
|
|
ln -fs zfs_config.h spl_config.h && \
|
|
|
|
ln -fs zfs.release spl.release
|
2018-02-16 01:53:18 +00:00
|
|
|
endif
|
2019-09-06 18:26:26 +00:00
|
|
|
endif
|
2018-02-16 01:53:18 +00:00
|
|
|
|
2020-06-26 22:38:48 +00:00
|
|
|
PHONY += codecheck
|
2020-07-10 03:04:49 +00:00
|
|
|
codecheck: cstyle shellcheck checkbashisms flake8 mancheck testscheck vcscheck
|
2018-10-04 20:10:10 +00:00
|
|
|
|
2020-06-26 22:38:48 +00:00
|
|
|
PHONY += checkstyle
|
2018-10-04 20:10:10 +00:00
|
|
|
checkstyle: codecheck commitcheck
|
2017-03-31 16:33:38 +00:00
|
|
|
|
2020-06-26 22:38:48 +00:00
|
|
|
PHONY += commitcheck
|
2017-03-31 16:33:38 +00:00
|
|
|
commitcheck:
|
|
|
|
@if git rev-parse --git-dir > /dev/null 2>&1; then \
|
2018-02-21 20:35:59 +00:00
|
|
|
${top_srcdir}/scripts/commitcheck.sh; \
|
2017-03-31 16:33:38 +00:00
|
|
|
fi
|
2015-05-18 18:49:24 +00:00
|
|
|
|
2020-06-26 22:38:48 +00:00
|
|
|
PHONY += cstyle
|
2015-05-18 18:49:24 +00:00
|
|
|
cstyle:
|
2020-08-18 17:10:10 +00:00
|
|
|
@find ${top_srcdir} -name build -prune \
|
|
|
|
-o -type f -name '*.[hc]' \
|
2020-04-14 18:36:28 +00:00
|
|
|
! -name 'zfs_config.*' ! -name '*.mod.c' \
|
|
|
|
! -name 'opt_global.h' ! -name '*_if*.h' \
|
2020-08-18 17:10:10 +00:00
|
|
|
! -path './module/zstd/lib/*' \
|
2018-02-21 20:35:59 +00:00
|
|
|
-exec ${top_srcdir}/scripts/cstyle.pl -cpP {} \+
|
2013-10-30 18:19:53 +00:00
|
|
|
|
2019-09-06 18:26:26 +00:00
|
|
|
filter_executable = -exec test -x '{}' \; -print
|
|
|
|
|
2020-06-26 22:38:48 +00:00
|
|
|
PHONY += shellcheck
|
2015-05-18 18:49:24 +00:00
|
|
|
shellcheck:
|
|
|
|
@if type shellcheck > /dev/null 2>&1; then \
|
Trim excess shellcheck annotations. Widen to all non-Korn scripts
Before, make shellcheck checked
scripts/{commitcheck,make_gitrev,man-dates,paxcheck,zfs-helpers,zfs,
zfs-tests,zimport,zloop}.sh
cmd/zed/zed.d/{{all-debug,all-syslog,data-notify,generic-notify,
resilver_finish-start-scrub,scrub_finish-notify,
statechange-led,statechange-notify,trim_finish-notify,
zed-functions}.sh,history_event-zfs-list-cacher.sh.in}
cmd/zpool/zpool.d/{dm-deps,iostat,lsblk,media,ses,smart,upath}
now it also checks
contrib/dracut/{02zfsexpandknowledge/module-setup,
90zfs/{export-zfs,parse-zfs,zfs-needshutdown,
zfs-load-key,zfs-lib,module-setup,
mount-zfs,zfs-generator}}.sh.in
cmd/zed/zed.d/{pool_import-led,vdev_attach-led,
resilver_finish-notify,vdev_clear-led}.sh
contrib/initramfs/{zfsunlock,hooks/zfs.in,scripts/local-top/zfs}
tests/zfs-tests/tests/perf/scripts/prefetch_io.sh
scripts/common.sh.in
contrib/bpftrace/zfs-trace.sh
autogen.sh
Reviewed-by: John Kennedy <john.kennedy@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #12042
2021-05-14 12:02:11 +00:00
|
|
|
shellcheck --exclude=SC1090,SC1117,SC1091 --format=gcc \
|
|
|
|
$$(find ${top_srcdir} -name "config*" -prune -name tests -prune \
|
|
|
|
-o -name "*.sh" -o -name "*.sh.in" -type f) \
|
2019-09-06 18:26:26 +00:00
|
|
|
$$(find ${top_srcdir}/cmd/zpool/zpool.d/* \
|
|
|
|
-type f ${filter_executable}); \
|
2018-10-04 20:11:45 +00:00
|
|
|
else \
|
|
|
|
echo "skipping shellcheck because shellcheck is not installed"; \
|
2017-04-07 00:16:41 +00:00
|
|
|
fi
|
2015-05-18 18:49:24 +00:00
|
|
|
|
2020-11-15 04:35:31 +00:00
|
|
|
PHONY += checkabi storeabi
|
|
|
|
checkabi: lib
|
|
|
|
$(MAKE) -C lib checkabi
|
|
|
|
|
|
|
|
storeabi: lib
|
|
|
|
$(MAKE) -C lib storeabi
|
|
|
|
|
2020-07-10 03:04:49 +00:00
|
|
|
PHONY += checkbashisms
|
|
|
|
checkbashisms:
|
|
|
|
@if type checkbashisms > /dev/null 2>&1; then \
|
|
|
|
checkbashisms -n -p -x \
|
|
|
|
$$(find ${top_srcdir} \
|
|
|
|
-name '.git' -prune \
|
|
|
|
-o -name 'build' -prune \
|
|
|
|
-o -name 'tests' -prune \
|
|
|
|
-o -name 'config' -prune \
|
2020-08-20 20:45:47 +00:00
|
|
|
-o -name 'zed-functions.sh*' -prune \
|
|
|
|
-o -name 'zfs-import*' -prune \
|
|
|
|
-o -name 'zfs-mount*' -prune \
|
|
|
|
-o -name 'zfs-zed*' -prune \
|
|
|
|
-o -name 'smart' -prune \
|
|
|
|
-o -name 'paxcheck.sh' -prune \
|
|
|
|
-o -name 'make_gitrev.sh' -prune \
|
dracut: use /bin/sh instead of bash as the intepreter
Despite that dracut has a hard dependency on bash,
its modules doesn't, dracut only has a hard dependency on bash for
module-setup (on a fully usable machine). Inside initramfs, dracut
allows users choose from a list of handful other shells, e.g. bash,
busybox, dash, mkfsh.
In fact, my local machine's initramfs is being built with dash,
and it's functional for a very long time.
Before 64025fa3a (Silence 'make checkbashisms', 2020-08-20), we also
allows our users to have that right, too.
Let's fix the problem 'make checkbashisms' reported and allows our users
to have that right, again.
For 'plymouth' case, let's simply run the command inside the if instead
of checking for the existence of command before running it, because the
status is also failture if plymouth is unavailable.
While we're at it, let's remove an unnecessary fork for grep in
zfs-generator.sh.in and its following complicated 'if elif fi' with
a simple 'case ... esac'.
To support this change, also exclude 90zfs from "make checkbashisms"
because the current CI infrastructure ships an old version of
"checkbashisms", which complains about "command -v", while the current
latest "checkbashisms" thinks it's fine. In the near future, we can
revert that change to "Makefile.am" when CI infrastructure is updated.
Reviewed-by: Gabriel A. Devenyi <gdevenyi@gmail.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
Closes #11244
2020-11-28 19:02:08 +00:00
|
|
|
-o -name '90zfs' -prune \
|
2021-05-14 04:47:53 +00:00
|
|
|
-o -path '*initramfs/hooks' -prune \
|
2020-07-10 03:04:49 +00:00
|
|
|
-o -type f ! -name 'config*' \
|
|
|
|
! -name 'libtool' \
|
2021-05-14 04:47:53 +00:00
|
|
|
-exec awk 'FNR==1 && /^#!.*bin\/sh/ {print FILENAME}' {} \+); \
|
2020-07-10 03:04:49 +00:00
|
|
|
else \
|
|
|
|
echo "skipping checkbashisms because checkbashisms is not installed"; \
|
|
|
|
fi
|
|
|
|
|
2020-06-26 22:38:48 +00:00
|
|
|
PHONY += mancheck
|
2017-09-16 17:51:24 +00:00
|
|
|
mancheck:
|
|
|
|
@if type mandoc > /dev/null 2>&1; then \
|
2021-05-10 15:24:59 +00:00
|
|
|
find ${top_srcdir}/man/man8 -type f -name '*[1-9]*' \
|
|
|
|
-exec mandoc -Tlint -Werror {} \+; \
|
2018-10-04 20:11:45 +00:00
|
|
|
else \
|
|
|
|
echo "skipping mancheck because mandoc is not installed"; \
|
2017-09-16 17:51:24 +00:00
|
|
|
fi
|
|
|
|
|
2019-09-06 18:26:26 +00:00
|
|
|
if BUILD_LINUX
|
|
|
|
stat_fmt = -c '%A %n'
|
|
|
|
else
|
|
|
|
stat_fmt = -f '%Sp %N'
|
|
|
|
endif
|
|
|
|
|
2020-06-26 22:38:48 +00:00
|
|
|
PHONY += testscheck
|
2018-02-07 20:43:24 +00:00
|
|
|
testscheck:
|
2019-05-24 21:12:14 +00:00
|
|
|
@find ${top_srcdir}/tests/zfs-tests -type f \
|
2019-09-06 18:26:26 +00:00
|
|
|
\( -name '*.ksh' -not ${filter_executable} \) -o \
|
|
|
|
\( -name '*.kshlib' ${filter_executable} \) -o \
|
|
|
|
\( -name '*.shlib' ${filter_executable} \) -o \
|
|
|
|
\( -name '*.cfg' ${filter_executable} \) | \
|
|
|
|
xargs -r stat ${stat_fmt} | \
|
2018-02-07 20:43:24 +00:00
|
|
|
awk '{c++; print} END {if(c>0) exit 1}'
|
|
|
|
|
2020-06-26 22:38:48 +00:00
|
|
|
PHONY += vcscheck
|
2019-01-15 19:56:29 +00:00
|
|
|
vcscheck:
|
|
|
|
@if git rev-parse --git-dir > /dev/null 2>&1; then \
|
|
|
|
git ls-files . --exclude-standard --others | \
|
|
|
|
awk '{c++; print} END {if(c>0) exit 1}' ; \
|
|
|
|
fi
|
|
|
|
|
2020-06-26 22:38:48 +00:00
|
|
|
PHONY += lint
|
2016-10-28 23:10:00 +00:00
|
|
|
lint: cppcheck paxcheck
|
2016-08-01 18:00:47 +00:00
|
|
|
|
2021-01-22 20:54:34 +00:00
|
|
|
CPPCHECKDIRS = cmd lib module
|
2020-06-26 22:38:48 +00:00
|
|
|
PHONY += cppcheck
|
2021-01-22 20:54:34 +00:00
|
|
|
cppcheck: $(CPPCHECKDIRS)
|
|
|
|
@if test -n "$(CPPCHECK)"; then \
|
|
|
|
set -e ; for dir in $(CPPCHECKDIRS) ; do \
|
|
|
|
$(MAKE) -C $$dir cppcheck ; \
|
|
|
|
done \
|
2018-10-04 20:11:45 +00:00
|
|
|
else \
|
|
|
|
echo "skipping cppcheck because cppcheck is not installed"; \
|
2016-08-01 18:00:47 +00:00
|
|
|
fi
|
|
|
|
|
2020-06-26 22:38:48 +00:00
|
|
|
PHONY += paxcheck
|
2016-10-28 23:10:00 +00:00
|
|
|
paxcheck:
|
|
|
|
@if type scanelf > /dev/null 2>&1; then \
|
2020-06-26 22:27:30 +00:00
|
|
|
${top_srcdir}/scripts/paxcheck.sh ${top_builddir}; \
|
2018-10-04 20:11:45 +00:00
|
|
|
else \
|
|
|
|
echo "skipping paxcheck because scanelf is not installed"; \
|
2016-10-28 23:10:00 +00:00
|
|
|
fi
|
|
|
|
|
2020-06-26 22:38:48 +00:00
|
|
|
PHONY += flake8
|
2016-10-06 17:50:15 +00:00
|
|
|
flake8:
|
|
|
|
@if type flake8 > /dev/null 2>&1; then \
|
|
|
|
flake8 ${top_srcdir}; \
|
2018-10-04 20:11:45 +00:00
|
|
|
else \
|
|
|
|
echo "skipping flake8 because flake8 is not installed"; \
|
2016-10-06 17:50:15 +00:00
|
|
|
fi
|
|
|
|
|
2020-06-26 22:38:48 +00:00
|
|
|
PHONY += ctags
|
2010-08-26 18:22:58 +00:00
|
|
|
ctags:
|
2014-06-09 21:55:31 +00:00
|
|
|
$(RM) tags
|
Fix tags targets in module/Makefile.in + cleanup
These targets look to have been copied from an automake-generated
Makefile.in, and can't work since none of the auto-generated automake
variables are defined here.
Moreover, ctags has been overridden in the top-level Makefile, so the
target is pointless anyway, and gtags is not a recursive target.
Fix cscopelist by moving it to the top-level Makefile as well, in line
with ctags and etags.
Also, add -a to ctags command as well, otherwise it won't work if more
than one xargs invocation takes place.
Add assembler files to ctags/etags, prune all dotted-dirs, and restrict
the find to files only.
Cleanup: add .PHONY to module/Makefile.in, and fix one recipe with a
missing continuation character.
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu>
Closes #10493
2020-06-22 02:13:02 +00:00
|
|
|
find $(top_srcdir) -name '.?*' -prune \
|
|
|
|
-o -type f -name '*.[hcS]' -print | xargs ctags -a
|
2010-08-26 18:22:58 +00:00
|
|
|
|
2020-06-26 22:38:48 +00:00
|
|
|
PHONY += etags
|
2010-08-26 18:22:58 +00:00
|
|
|
etags:
|
2014-06-09 21:55:31 +00:00
|
|
|
$(RM) TAGS
|
Fix tags targets in module/Makefile.in + cleanup
These targets look to have been copied from an automake-generated
Makefile.in, and can't work since none of the auto-generated automake
variables are defined here.
Moreover, ctags has been overridden in the top-level Makefile, so the
target is pointless anyway, and gtags is not a recursive target.
Fix cscopelist by moving it to the top-level Makefile as well, in line
with ctags and etags.
Also, add -a to ctags command as well, otherwise it won't work if more
than one xargs invocation takes place.
Add assembler files to ctags/etags, prune all dotted-dirs, and restrict
the find to files only.
Cleanup: add .PHONY to module/Makefile.in, and fix one recipe with a
missing continuation character.
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu>
Closes #10493
2020-06-22 02:13:02 +00:00
|
|
|
find $(top_srcdir) -name '.?*' -prune \
|
|
|
|
-o -type f -name '*.[hcS]' -print | xargs etags -a
|
|
|
|
|
2020-06-26 22:38:48 +00:00
|
|
|
PHONY += cscopelist
|
Fix tags targets in module/Makefile.in + cleanup
These targets look to have been copied from an automake-generated
Makefile.in, and can't work since none of the auto-generated automake
variables are defined here.
Moreover, ctags has been overridden in the top-level Makefile, so the
target is pointless anyway, and gtags is not a recursive target.
Fix cscopelist by moving it to the top-level Makefile as well, in line
with ctags and etags.
Also, add -a to ctags command as well, otherwise it won't work if more
than one xargs invocation takes place.
Add assembler files to ctags/etags, prune all dotted-dirs, and restrict
the find to files only.
Cleanup: add .PHONY to module/Makefile.in, and fix one recipe with a
missing continuation character.
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu>
Closes #10493
2020-06-22 02:13:02 +00:00
|
|
|
cscopelist:
|
|
|
|
find $(top_srcdir) -name '.?*' -prune \
|
|
|
|
-o -type f -name '*.[hc]' -print >cscope.files
|
2010-08-26 18:22:58 +00:00
|
|
|
|
2020-06-26 22:38:48 +00:00
|
|
|
PHONY += tags
|
2010-08-26 18:22:58 +00:00
|
|
|
tags: ctags etags
|
|
|
|
|
2020-06-26 22:38:48 +00:00
|
|
|
PHONY += pkg pkg-dkms pkg-kmod pkg-utils
|
2010-08-26 18:22:58 +00:00
|
|
|
pkg: @DEFAULT_PACKAGE@
|
2017-10-15 20:00:44 +00:00
|
|
|
pkg-dkms: @DEFAULT_PACKAGE@-dkms
|
2013-02-17 20:10:17 +00:00
|
|
|
pkg-kmod: @DEFAULT_PACKAGE@-kmod
|
2010-08-26 18:22:58 +00:00
|
|
|
pkg-utils: @DEFAULT_PACKAGE@-utils
|
2020-06-26 22:38:48 +00:00
|
|
|
|
Fix parallel make srpm
When building srpm using make -j, each of the recursive makes invoked to
build srpm-{dkms,kmod,utils} will build the dist target. This is both
unnecessary, and also has a very good chance of breaking when they race
trying to build gitrev.
Fix this by make dist a prerequisite of srpm-{dkms,kmod,utils} instead
of srpm-common, so that it will be done once before invoking the
recursive makes.
Also, gitrev is not really required for make dist, so instead of adding
it to BUILT_SOURCES, just add it as a prerequisite of the all target.
Mark the individual package targets as PHONY.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu>
Closes #10564
2020-07-13 21:24:07 +00:00
|
|
|
include config/rpm.am
|
|
|
|
include config/deb.am
|
|
|
|
include config/tgz.am
|
|
|
|
|
2020-06-26 22:38:48 +00:00
|
|
|
.PHONY: $(PHONY)
|