Skip to content

Commit

Permalink
autoconf: use include directives instead of recursing down lib
Browse files Browse the repository at this point in the history
As a bonus, this also adds zfs-mount-generator (previously undescended
down) and libzstd (not included) to CppCheck

As a bonus bonus, abigail rules work out-of-tree, too

Against current trunk:
  $ diff -U0 ./destdir.listing ~/store/code/zfs/destdir.listing
  -destdir/usr/local/include/libspl/sscanf.h

  $ diff --color -U0 ./zfs-2.1.99.tar.gz.listing ../oot/zfs-2.1.99.tar.gz.listing | grep -v @@ | grep -v /Makefile
  -zfs-2.1.99/config/Abigail.am
  -zfs-2.1.99/lib/libspl/include/util/
  -zfs-2.1.99/lib/libspl/include/util/sscanf.h

  $ diff --color -U0 ./zfs-2.1.99.tar.gz.listing ../oot/zfs-2.1.99.tar.gz.listing | grep -v @@ | grep /Makefile
  -zfs-2.1.99/lib/libavl/Makefile.in
  -zfs-2.1.99/lib/libefi/Makefile.in
  -zfs-2.1.99/lib/libicp/Makefile.in
  -zfs-2.1.99/lib/libnvpair/Makefile.in
  -zfs-2.1.99/lib/libshare/Makefile.in
  -zfs-2.1.99/lib/libspl/include/Makefile.in
  -zfs-2.1.99/lib/libspl/include/os/freebsd/Makefile.am
  -zfs-2.1.99/lib/libspl/include/os/freebsd/Makefile.in
  -zfs-2.1.99/lib/libspl/include/os/freebsd/sys/Makefile.am
  -zfs-2.1.99/lib/libspl/include/os/freebsd/sys/Makefile.in
  -zfs-2.1.99/lib/libspl/include/os/linux/Makefile.am
  -zfs-2.1.99/lib/libspl/include/os/linux/Makefile.in
  -zfs-2.1.99/lib/libspl/include/os/linux/sys/Makefile.am
  -zfs-2.1.99/lib/libspl/include/os/linux/sys/Makefile.in
  -zfs-2.1.99/lib/libspl/include/os/Makefile.am
  -zfs-2.1.99/lib/libspl/include/os/Makefile.in
  -zfs-2.1.99/lib/libspl/include/rpc/Makefile.am
  -zfs-2.1.99/lib/libspl/include/rpc/Makefile.in
  -zfs-2.1.99/lib/libspl/include/sys/dktp/Makefile.am
  -zfs-2.1.99/lib/libspl/include/sys/dktp/Makefile.in
  -zfs-2.1.99/lib/libspl/include/sys/Makefile.am
  -zfs-2.1.99/lib/libspl/include/sys/Makefile.in
  -zfs-2.1.99/lib/libspl/include/util/Makefile.am
  -zfs-2.1.99/lib/libspl/include/util/Makefile.in
  -zfs-2.1.99/lib/libspl/Makefile.in
  -zfs-2.1.99/lib/libtpool/Makefile.in
  -zfs-2.1.99/lib/libunicode/Makefile.in
  -zfs-2.1.99/lib/libuutil/Makefile.in
  -zfs-2.1.99/lib/libzfsbootenv/Makefile.in
  -zfs-2.1.99/lib/libzfs_core/Makefile.in
  -zfs-2.1.99/lib/libzfs/Makefile.in
  -zfs-2.1.99/lib/libzpool/Makefile.in
  -zfs-2.1.99/lib/libzstd/Makefile.in
  -zfs-2.1.99/lib/libzutil/Makefile.in
  -zfs-2.1.99/lib/Makefile.in

Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Ahelenia Ziemiańska <[email protected]>
Closes openzfs#13316
  • Loading branch information
nabijaczleweli authored and andrewc12 committed Sep 23, 2022
1 parent b59227f commit 42c9b33
Show file tree
Hide file tree
Showing 58 changed files with 831 additions and 1,039 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/checkstyle.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@ jobs:
- name: CheckABI
id: CheckABI
run: |
docker run -v $(pwd):/source ghcr.io/openzfs/libabigail make -j$(nproc) --no-print-directory --silent checkabi
docker run -v $PWD:/source ghcr.io/openzfs/libabigail make -j$(nproc) --no-print-directory --silent checkabi
- name: StoreABI
if: failure() && steps.CheckABI.outcome == 'failure'
run: |
docker run -v $(pwd):/source ghcr.io/openzfs/libabigail make -j$(nproc) --no-print-directory --silent storeabi
docker run -v $PWD:/source ghcr.io/openzfs/libabigail make -j$(nproc) --no-print-directory --silent storeabi
- name: Prepare artifacts
if: failure() && steps.CheckABI.outcome == 'failure'
run: |
Expand Down
37 changes: 9 additions & 28 deletions Makefile.am
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
include $(top_srcdir)/config/Shellcheck.am
include $(top_srcdir)/config/Rules.am
include $(top_srcdir)/config/CppCheck.am

ACLOCAL_AMFLAGS = -I config

Expand All @@ -7,26 +9,24 @@ if BUILD_LINUX
SUBDIRS += rpm
endif

EXTRA_DIST =
CPPCHECKDIRS += cmd etc/systemd/system-generators
if CONFIG_USER
SUBDIRS += man scripts lib tests cmd etc contrib
SUBDIRS += scripts . man tests cmd etc contrib
include $(srcdir)/%D%/lib/Makefile.am
if BUILD_LINUX
SUBDIRS += udev
endif
endif
CPPCHECKDIRS += module
if CONFIG_KERNEL
SUBDIRS += module

extradir = $(prefix)/src/zfs-$(VERSION)
extra_HEADERS = zfs.release.in zfs_config.h.in

if BUILD_LINUX
kerneldir = $(prefix)/src/zfs-$(VERSION)/$(LINUX_VERSION)
nodist_kernel_HEADERS = zfs.release zfs_config.h module/$(LINUX_SYMBOLS)
endif
endif

AUTOMAKE_OPTIONS = foreign
EXTRA_DIST = autogen.sh copy-builtin
EXTRA_DIST += autogen.sh copy-builtin
EXTRA_DIST += config/config.awk config/rpm.am config/deb.am config/tgz.am
EXTRA_DIST += AUTHORS CODE_OF_CONDUCT.md COPYRIGHT LICENSE META NEWS NOTICE
EXTRA_DIST += README.md RELEASES.md
Expand All @@ -52,7 +52,7 @@ EXTRA_DIST += module/zfs/THIRDPARTYLICENSE.cityhash.descrip

GITREV = include/zfs_gitrev.h

PHONY = gitrev
PHONY += gitrev
gitrev:
$(AM_V_GEN)$(top_srcdir)/scripts/make_gitrev.sh $(GITREV)

Expand Down Expand Up @@ -117,14 +117,6 @@ filter_executable = -exec test -x '{}' \; -print
SHELLCHECKDIRS = cmd contrib etc scripts tests
SHELLCHECKSCRIPTS = autogen.sh

PHONY += checkabi storeabi

checkabi: lib
$(MAKE) -C lib checkabi

storeabi: lib
$(MAKE) -C lib storeabi

PHONY += mancheck
mancheck:
${top_srcdir}/scripts/mancheck.sh ${top_srcdir}/man ${top_srcdir}/tests/test-runner/man
Expand Down Expand Up @@ -152,17 +144,6 @@ zstdcheck:
PHONY += lint
lint: cppcheck paxcheck

CPPCHECKDIRS = cmd lib module
PHONY += cppcheck
cppcheck: $(CPPCHECKDIRS)
@if test -n "$(CPPCHECK)"; then \
set -e ; for dir in $(CPPCHECKDIRS) ; do \
$(MAKE) -C $$dir cppcheck ; \
done \
else \
echo "skipping cppcheck because cppcheck is not installed"; \
fi

PHONY += paxcheck
paxcheck:
@if type scanelf > /dev/null 2>&1; then \
Expand Down
10 changes: 3 additions & 7 deletions cmd/Makefile.am
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
PHONY =
include $(top_srcdir)/config/Shellcheck.am
include $(top_srcdir)/config/CppCheck.am

SUBDIRS = zfs zpool zdb zhack zinject zstream ztest
SUBDIRS += fsck_zfs vdev_id raidz_test zfs_ids_to_path
SUBDIRS += zpool_influxdb

CPPCHECKDIRS = zfs zpool zdb zhack zinject zstream ztest
CPPCHECKDIRS += zfs zpool zdb zhack zinject zstream ztest
CPPCHECKDIRS += raidz_test zfs_ids_to_path zpool_influxdb

# TODO: #12084: SHELLCHECKDIRS += vdev_id
Expand All @@ -19,9 +21,3 @@ SUBDIRS += mount_zfs zed zgenhostid zvol_id zvol_wait
CPPCHECKDIRS += mount_zfs zed zgenhostid zvol_id
SHELLCHECKDIRS += zed
endif

PHONY = cppcheck
cppcheck: $(CPPCHECKDIRS)
set -e ; for dir in $(CPPCHECKDIRS) ; do \
$(MAKE) -C $$dir cppcheck ; \
done
7 changes: 4 additions & 3 deletions cmd/mount_zfs/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,11 @@ mount_zfs_SOURCES = \
mount_zfs.c

mount_zfs_LDADD = \
$(abs_top_builddir)/lib/libzfs/libzfs.la \
$(abs_top_builddir)/lib/libzfs_core/libzfs_core.la \
$(abs_top_builddir)/lib/libnvpair/libnvpair.la
$(abs_top_builddir)/libzfs.la \
$(abs_top_builddir)/libzfs_core.la \
$(abs_top_builddir)/libnvpair.la

mount_zfs_LDADD += $(LTLIBINTL)

include $(top_srcdir)/config/CppCheck.am
CPPCHECKTARGETS += mount.zfs
12 changes: 5 additions & 7 deletions cmd/raidz_test/Makefile.am
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
include $(top_srcdir)/config/Rules.am

# Includes kernel code, generate warnings for large stack frames
AM_CFLAGS += $(FRAME_LARGER_THAN)

# Unconditionally enable ASSERTs
AM_CPPFLAGS += -DDEBUG -UNDEBUG -DZFS_DEBUG
AM_CFLAGS += $(KERNEL_CFLAGS)
AM_CPPFLAGS += $(FORCEDEBUG_CPPFLAGS)

bin_PROGRAMS = raidz_test

Expand All @@ -14,9 +11,10 @@ raidz_test_SOURCES = \
raidz_bench.c

raidz_test_LDADD = \
$(abs_top_builddir)/lib/libzpool/libzpool.la \
$(abs_top_builddir)/lib/libzfs_core/libzfs_core.la
$(abs_top_builddir)/libzpool.la \
$(abs_top_builddir)/libzfs_core.la

raidz_test_LDADD += -lm

include $(top_srcdir)/config/CppCheck.am
CPPCHECKTARGETS += raidz_test
10 changes: 5 additions & 5 deletions cmd/zdb/Makefile.am
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
include $(top_srcdir)/config/Rules.am

# Unconditionally enable debugging for zdb
AM_CPPFLAGS += -DDEBUG -UNDEBUG -DZFS_DEBUG
AM_CPPFLAGS += $(FORCEDEBUG_CPPFLAGS)

sbin_PROGRAMS = zdb

Expand All @@ -11,8 +10,9 @@ zdb_SOURCES = \
zdb.h

zdb_LDADD = \
$(abs_top_builddir)/lib/libzpool/libzpool.la \
$(abs_top_builddir)/lib/libzfs_core/libzfs_core.la \
$(abs_top_builddir)/lib/libnvpair/libnvpair.la
$(abs_top_builddir)/libzpool.la \
$(abs_top_builddir)/libzfs_core.la \
$(abs_top_builddir)/libnvpair.la

include $(top_srcdir)/config/CppCheck.am
CPPCHECKTARGETS += zdb
9 changes: 5 additions & 4 deletions cmd/zed/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,15 @@ FMA_SRC = \
zed_SOURCES = $(ZED_SRC) $(FMA_SRC)

zed_LDADD = \
$(abs_top_builddir)/lib/libzfs/libzfs.la \
$(abs_top_builddir)/lib/libzfs_core/libzfs_core.la \
$(abs_top_builddir)/lib/libnvpair/libnvpair.la \
$(abs_top_builddir)/lib/libuutil/libuutil.la
$(abs_top_builddir)/libzfs.la \
$(abs_top_builddir)/libzfs_core.la \
$(abs_top_builddir)/libnvpair.la \
$(abs_top_builddir)/libuutil.la

zed_LDADD += -lrt $(LIBATOMIC_LIBS) $(LIBUDEV_LIBS) $(LIBUUID_LIBS)
zed_LDFLAGS = -pthread

EXTRA_DIST = agents/README.md

include $(top_srcdir)/config/CppCheck.am
CPPCHECKTARGETS += zed
9 changes: 5 additions & 4 deletions cmd/zfs/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ zfs_SOURCES = \
zfs_projectutil.h

zfs_LDADD = \
$(abs_top_builddir)/lib/libzfs/libzfs.la \
$(abs_top_builddir)/lib/libzfs_core/libzfs_core.la \
$(abs_top_builddir)/lib/libnvpair/libnvpair.la \
$(abs_top_builddir)/lib/libuutil/libuutil.la
$(abs_top_builddir)/libzfs.la \
$(abs_top_builddir)/libzfs_core.la \
$(abs_top_builddir)/libnvpair.la \
$(abs_top_builddir)/libuutil.la

zfs_LDADD += $(LTLIBINTL)

Expand All @@ -23,3 +23,4 @@ zfs_LDADD += -lgeom -ljail
endif

include $(top_srcdir)/config/CppCheck.am
CPPCHECKTARGETS += zfs
3 changes: 2 additions & 1 deletion cmd/zfs_ids_to_path/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ zfs_ids_to_path_SOURCES = \
zfs_ids_to_path.c

zfs_ids_to_path_LDADD = \
$(abs_top_builddir)/lib/libzfs/libzfs.la
$(abs_top_builddir)/libzfs.la

include $(top_srcdir)/config/CppCheck.am
CPPCHECKTARGETS += zfs_ids_to_path
1 change: 1 addition & 0 deletions cmd/zgenhostid/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ sbin_PROGRAMS = zgenhostid
zgenhostid_SOURCES = zgenhostid.c

include $(top_srcdir)/config/CppCheck.am
CPPCHECKTARGETS += zgenhostid
10 changes: 5 additions & 5 deletions cmd/zhack/Makefile.am
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
include $(top_srcdir)/config/Rules.am

# Unconditionally enable debugging for zhack
AM_CPPFLAGS += -DDEBUG -UNDEBUG -DZFS_DEBUG
AM_CPPFLAGS += $(FORCEDEBUG_CPPFLAGS)

sbin_PROGRAMS = zhack

zhack_SOURCES = \
zhack.c

zhack_LDADD = \
$(abs_top_builddir)/lib/libzpool/libzpool.la \
$(abs_top_builddir)/lib/libzfs_core/libzfs_core.la \
$(abs_top_builddir)/lib/libnvpair/libnvpair.la
$(abs_top_builddir)/libzpool.la \
$(abs_top_builddir)/libzfs_core.la \
$(abs_top_builddir)/libnvpair.la

include $(top_srcdir)/config/CppCheck.am
CPPCHECKTARGETS += zhack
7 changes: 4 additions & 3 deletions cmd/zinject/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ zinject_SOURCES = \
zinject.h

zinject_LDADD = \
$(abs_top_builddir)/lib/libzfs/libzfs.la \
$(abs_top_builddir)/lib/libzfs_core/libzfs_core.la \
$(abs_top_builddir)/lib/libnvpair/libnvpair.la
$(abs_top_builddir)/libzfs.la \
$(abs_top_builddir)/libzfs_core.la \
$(abs_top_builddir)/libnvpair.la

include $(top_srcdir)/config/CppCheck.am
CPPCHECKTARGETS += zinject
13 changes: 7 additions & 6 deletions cmd/zpool/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ include $(top_srcdir)/config/Shellcheck.am

AM_CFLAGS += $(LIBBLKID_CFLAGS) $(LIBUUID_CFLAGS)

DEFAULT_INCLUDES += -I$(srcdir)
AM_CPPFLAGS += -I$(srcdir)


sbin_PROGRAMS = zpool
Expand All @@ -24,11 +24,11 @@ zpool_SOURCES += os/linux/zpool_vdev_os.c
endif

zpool_LDADD = \
$(abs_top_builddir)/lib/libzfs/libzfs.la \
$(abs_top_builddir)/lib/libzfs_core/libzfs_core.la \
$(abs_top_builddir)/lib/libnvpair/libnvpair.la \
$(abs_top_builddir)/lib/libuutil/libuutil.la \
$(abs_top_builddir)/lib/libzutil/libzutil.la
$(abs_top_builddir)/libzfs.la \
$(abs_top_builddir)/libzfs_core.la \
$(abs_top_builddir)/libnvpair.la \
$(abs_top_builddir)/libuutil.la \
$(abs_top_builddir)/libzutil.la

zpool_LDADD += $(LTLIBINTL)

Expand All @@ -38,6 +38,7 @@ endif
zpool_LDADD += -lm $(LIBBLKID_LIBS) $(LIBUUID_LIBS)

include $(top_srcdir)/config/CppCheck.am
CPPCHECKTARGETS += zpool

zpoolconfdir = $(sysconfdir)/zfs/zpool.d
zpoolexecdir = $(zfsexecdir)/zpool.d
Expand Down
7 changes: 4 additions & 3 deletions cmd/zpool_influxdb/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@ zpool_influxdb_SOURCES = \
zpool_influxdb.c

zpool_influxdb_LDADD = \
$(top_builddir)/lib/libspl/libspl.la \
$(top_builddir)/lib/libnvpair/libnvpair.la \
$(top_builddir)/lib/libzfs/libzfs.la
$(top_builddir)/libspl.la \
$(top_builddir)/libnvpair.la \
$(top_builddir)/libzfs.la

include $(top_srcdir)/config/CppCheck.am
CPPCHECKTARGETS += zpool_influxdb
7 changes: 4 additions & 3 deletions cmd/zstream/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,12 @@ zstream_SOURCES = \
zstream_token.c

zstream_LDADD = \
$(abs_top_builddir)/lib/libzfs/libzfs.la \
$(abs_top_builddir)/lib/libzfs_core/libzfs_core.la \
$(abs_top_builddir)/lib/libnvpair/libnvpair.la
$(abs_top_builddir)/libzfs.la \
$(abs_top_builddir)/libzfs_core.la \
$(abs_top_builddir)/libnvpair.la

include $(top_srcdir)/config/CppCheck.am
CPPCHECKTARGETS += zstream

install-exec-hook:
cd $(DESTDIR)$(sbindir) && $(LN_S) -f zstream zstreamdump
15 changes: 7 additions & 8 deletions cmd/ztest/Makefile.am
Original file line number Diff line number Diff line change
@@ -1,25 +1,24 @@
include $(top_srcdir)/config/Rules.am

AM_CFLAGS += $(KERNEL_CFLAGS)

# Get rid of compiler warning for unchecked truncating snprintfs on gcc 7.1.1
AM_CFLAGS += $(NO_FORMAT_TRUNCATION)

# Includes kernel code, generate warnings for large stack frames
AM_CFLAGS += $(FRAME_LARGER_THAN)

# Unconditionally enable ASSERTs
AM_CPPFLAGS += -DDEBUG -UNDEBUG -DZFS_DEBUG
AM_CPPFLAGS += $(FORCEDEBUG_CPPFLAGS)

sbin_PROGRAMS = ztest

ztest_SOURCES = \
ztest.c

ztest_LDADD = \
$(abs_top_builddir)/lib/libzpool/libzpool.la \
$(abs_top_builddir)/lib/libzfs_core/libzfs_core.la \
$(abs_top_builddir)/lib/libnvpair/libnvpair.la
$(abs_top_builddir)/libzpool.la \
$(abs_top_builddir)/libzfs_core.la \
$(abs_top_builddir)/libnvpair.la

ztest_LDADD += -lm
ztest_LDFLAGS = -pthread

include $(top_srcdir)/config/CppCheck.am
CPPCHECKTARGETS += ztest
1 change: 1 addition & 0 deletions cmd/zvol_id/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ zvol_id_SOURCES = \
zvol_id_main.c

include $(top_srcdir)/config/CppCheck.am
CPPCHECKTARGETS += zvol_id
1 change: 0 additions & 1 deletion cmd/zvol_wait/Makefile.am
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
include $(top_srcdir)/config/Shellcheck.am

dist_bin_SCRIPTS = zvol_wait

Loading

0 comments on commit 42c9b33

Please sign in to comment.