]> git.proxmox.com Git - mirror_zfs.git/blame - Makefile.am
autoconf: use include directives instead of recursing down udev
[mirror_zfs.git] / Makefile.am
CommitLineData
5cdca5b1
AZ
1CLEANFILES =
2EXTRA_DIST =
3INSTALL_DATA_HOOKS =
0a8b1fc6 4ALL_LOCAL =
93a8c85e 5CHECKS = shellcheck checkbashisms
5cdca5b1 6
c3ef9f75 7include $(top_srcdir)/config/Shellcheck.am
c8970f52
AZ
8include $(top_srcdir)/config/Rules.am
9include $(top_srcdir)/config/CppCheck.am
5cdca5b1 10include $(top_srcdir)/config/Substfiles.am
c3ef9f75 11
8c392629
JE
12ACLOCAL_AMFLAGS = -I config
13
bced7e3a
MM
14SUBDIRS = include
15if BUILD_LINUX
28207198 16include $(srcdir)/%D%/rpm/Makefile.am
bced7e3a
MM
17endif
18
5cdca5b1 19CPPCHECKDIRS += etc/systemd/system-generators
c9c0d073 20if CONFIG_USER
0f6c4fd0 21SUBDIRS += . tests etc contrib
5cdca5b1 22include $(srcdir)/%D%/cmd/Makefile.am
0f6c4fd0
AZ
23include $(srcdir)/%D%/lib/Makefile.am
24include $(srcdir)/%D%/man/Makefile.am
25include $(srcdir)/%D%/scripts/Makefile.am
bced7e3a 26if BUILD_LINUX
674a9f37 27include $(srcdir)/%D%/udev/Makefile.am
bced7e3a 28endif
c9c0d073 29endif
c8970f52 30CPPCHECKDIRS += module
c9c0d073 31if CONFIG_KERNEL
fd7fd5eb 32SUBDIRS += module
775f2d34 33
93ce2b4c 34extradir = $(prefix)/src/zfs-$(VERSION)
775f2d34 35extra_HEADERS = zfs.release.in zfs_config.h.in
bced7e3a 36endif
c9c0d073 37
c8970f52 38EXTRA_DIST += autogen.sh copy-builtin
c9c0d073 39EXTRA_DIST += config/config.awk config/rpm.am config/deb.am config/tgz.am
c0af3c7b
BB
40EXTRA_DIST += AUTHORS CODE_OF_CONDUCT.md COPYRIGHT LICENSE META NEWS NOTICE
41EXTRA_DIST += README.md RELEASES.md
6b99fc06 42EXTRA_DIST += module/lua/README.zfs module/os/linux/spl/README.md
c9c0d073 43
53b5fcd3 44# Include all the extra licensing information for modules
f66a1f88
RM
45EXTRA_DIST += module/icp/algs/skein/THIRDPARTYLICENSE
46EXTRA_DIST += module/icp/algs/skein/THIRDPARTYLICENSE.descrip
47EXTRA_DIST += module/icp/asm-x86_64/aes/THIRDPARTYLICENSE.gladman
48EXTRA_DIST += module/icp/asm-x86_64/aes/THIRDPARTYLICENSE.gladman.descrip
49EXTRA_DIST += module/icp/asm-x86_64/aes/THIRDPARTYLICENSE.openssl
50EXTRA_DIST += module/icp/asm-x86_64/aes/THIRDPARTYLICENSE.openssl.descrip
9642beef
AS
51EXTRA_DIST += module/icp/asm-x86_64/modes/THIRDPARTYLICENSE.cryptogams
52EXTRA_DIST += module/icp/asm-x86_64/modes/THIRDPARTYLICENSE.cryptogams.descrip
53EXTRA_DIST += module/icp/asm-x86_64/modes/THIRDPARTYLICENSE.openssl
54EXTRA_DIST += module/icp/asm-x86_64/modes/THIRDPARTYLICENSE.openssl.descrip
bced7e3a
MM
55EXTRA_DIST += module/os/linux/spl/THIRDPARTYLICENSE.gplv2
56EXTRA_DIST += module/os/linux/spl/THIRDPARTYLICENSE.gplv2.descrip
f66a1f88
RM
57EXTRA_DIST += module/zfs/THIRDPARTYLICENSE.cityhash
58EXTRA_DIST += module/zfs/THIRDPARTYLICENSE.cityhash.descrip
53b5fcd3 59
acf04442
PS
60@CODE_COVERAGE_RULES@
61
109d2c93 62GITREV = include/zfs_gitrev.h
5cdca5b1 63CLEANFILES += $(GITREV)
c8970f52 64PHONY += gitrev
4cbde2ec 65gitrev:
d32a59fe 66 $(AM_V_GEN)$(top_srcdir)/scripts/make_gitrev.sh $(GITREV)
109d2c93 67
e6c093dd 68all: gitrev
4cbde2ec 69
5cdca5b1
AZ
70PHONY += install-data-hook $(INSTALL_DATA_HOOKS)
71install-data-hook: $(INSTALL_DATA_HOOKS)
72
73PHONY += maintainer-clean-local
74maintainer-clean-local:
59415fc9
AS
75 -$(RM) $(GITREV)
76
5cdca5b1
AZ
77PHONY += distclean-local
78distclean-local:
608f8749 79 -$(RM) -R autom4te*.cache build
c9c0d073
BB
80 -find . \( -name SCCS -o -name BitKeeper -o -name .svn -o -name CVS \
81 -o -name .pc -o -name .hg -o -name .git \) -prune -o \
82 \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
83 -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
c8f9061f
BB
84 -o -name '.*.rej' -o -size 0 -o -name '*%' -o -name '.*.cmd' \
85 -o -name 'core' -o -name 'Makefile' -o -name 'Module.symvers' \
d9ec8b9b
BB
86 -o -name '*.order' -o -name '*.markers' -o -name '*.gcda' \
87 -o -name '*.gcno' \) \
a67a1873 88 -type f -delete
c9c0d073 89
0a8b1fc6
AZ
90PHONY += $(ALL_LOCAL)
91all-local: $(ALL_LOCAL)
a430cef9 92
109d2c93 93dist-hook:
5cdca5b1
AZ
94 $(top_srcdir)/scripts/make_gitrev.sh -D $(distdir) $(GITREV)
95 $(SED) $(ac_inplace) 's/\(Release:[[:space:]]*\).*/\1$(RELEASE)/' $(distdir)/META
f6fb7651 96
93a8c85e
AZ
97PHONY += codecheck $(CHECKS)
98codecheck: $(CHECKS)
99
100SHELLCHECKDIRS = contrib etc tests
101SHELLCHECKSCRIPTS += autogen.sh
c23f8d48 102
94a2dca6 103PHONY += checkstyle
c23f8d48 104checkstyle: codecheck commitcheck
cb524aa2 105
94a2dca6 106PHONY += commitcheck
cb524aa2
GDN
107commitcheck:
108 @if git rev-parse --git-dir > /dev/null 2>&1; then \
26cb4b87 109 ${top_srcdir}/scripts/commitcheck.sh; \
cb524aa2 110 fi
c11cd7f9 111
f788aaeb
AZ
112if HAVE_PARALLEL
113cstyle_line = -print0 | parallel -X0 ${top_srcdir}/scripts/cstyle.pl -cpP {}
114else
115cstyle_line = -exec ${top_srcdir}/scripts/cstyle.pl -cpP {} +
116endif
93a8c85e 117CHECKS += cstyle
c11cd7f9 118cstyle:
dc544aba
MN
119 @find ${top_srcdir} -name build -prune \
120 -o -type f -name '*.[hc]' \
9f0a21e6
MM
121 ! -name 'zfs_config.*' ! -name '*.mod.c' \
122 ! -name 'opt_global.h' ! -name '*_if*.h' \
6ef00196 123 ! -name 'zstd_compat_wrapper.h' \
dc544aba 124 ! -path './module/zstd/lib/*' \
7ada752a
AZ
125 ! -path './include/sys/lua/*' \
126 ! -path './module/lua/l*.[ch]' \
d6c1bbdd 127 ! -path './module/zfs/lz4.c' \
f788aaeb 128 $(cstyle_line)
a35beedf 129
bced7e3a 130filter_executable = -exec test -x '{}' \; -print
93a8c85e 131CHECKS += testscheck
9ca25e70 132testscheck:
93a8c85e
AZ
133 @[ $$(find $(top_srcdir)/tests/zfs-tests -type f \
134 \( -name '*.ksh' -not $(filter_executable) \) -o \
135 \( -name '*.kshlib' $(filter_executable) \) -o \
136 \( -name '*.shlib' $(filter_executable) \) -o \
137 \( -name '*.cfg' $(filter_executable) \) | \
a67a1873 138 tee /dev/stderr | wc -l) -eq 0 ]
9ca25e70 139
93a8c85e 140CHECKS += vcscheck
7b02fae7 141vcscheck:
142 @if git rev-parse --git-dir > /dev/null 2>&1; then \
143 git ls-files . --exclude-standard --others | \
144 awk '{c++; print} END {if(c>0) exit 1}' ; \
145 fi
146
93a8c85e 147CHECKS += zstdcheck
6ef00196 148zstdcheck:
ad9e7676 149 @$(MAKE) -C module check-zstd-symbols
6ef00196 150
94a2dca6 151PHONY += lint
f26eb428 152lint: cppcheck paxcheck
b64e02e5 153
94a2dca6 154PHONY += paxcheck
f26eb428
JZ
155paxcheck:
156 @if type scanelf > /dev/null 2>&1; then \
2b5f3045 157 ${top_srcdir}/scripts/paxcheck.sh ${top_builddir}; \
58c0f374
MA
158 else \
159 echo "skipping paxcheck because scanelf is not installed"; \
f26eb428
JZ
160 fi
161
93a8c85e 162CHECKS += flake8
46bb91e1
GDN
163flake8:
164 @if type flake8 > /dev/null 2>&1; then \
165 flake8 ${top_srcdir}; \
58c0f374
MA
166 else \
167 echo "skipping flake8 because flake8 is not installed"; \
46bb91e1
GDN
168 fi
169
94a2dca6 170PHONY += ctags
c9c0d073 171ctags:
47a4a6fd 172 $(RM) tags
0b032548 173 find $(top_srcdir) -name '.?*' -prune \
a67a1873 174 -o -type f -name '*.[hcS]' -exec ctags -a {} +
c9c0d073 175
94a2dca6 176PHONY += etags
c9c0d073 177etags:
47a4a6fd 178 $(RM) TAGS
0b032548 179 find $(top_srcdir) -name '.?*' -prune \
a67a1873 180 -o -type f -name '*.[hcS]' -exec etags -a {} +
0b032548 181
94a2dca6 182PHONY += cscopelist
0b032548
AS
183cscopelist:
184 find $(top_srcdir) -name '.?*' -prune \
185 -o -type f -name '*.[hc]' -print >cscope.files
c9c0d073 186
94a2dca6 187PHONY += tags
c9c0d073
BB
188tags: ctags etags
189
94a2dca6 190PHONY += pkg pkg-dkms pkg-kmod pkg-utils
c9c0d073 191pkg: @DEFAULT_PACKAGE@
7670f721 192pkg-dkms: @DEFAULT_PACKAGE@-dkms
f3757573 193pkg-kmod: @DEFAULT_PACKAGE@-kmod
c9c0d073 194pkg-utils: @DEFAULT_PACKAGE@-utils
94a2dca6 195
e6c093dd
AS
196include config/rpm.am
197include config/deb.am
198include config/tgz.am
199
94a2dca6 200.PHONY: $(PHONY)