hc
2024-08-19 eb6b9ee90f50f13c5abb885ce483802d6262f2b5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
################################################################################
#
# zfs
#
################################################################################
 
ZFS_VERSION = 2.0.5
ZFS_SITE = https://github.com/openzfs/zfs/releases/download/zfs-$(ZFS_VERSION)
ZFS_LICENSE = CDDL
ZFS_LICENSE_FILES = LICENSE COPYRIGHT
ZFS_CPE_ID_VENDOR = openzfs
ZFS_CPE_ID_PRODUCT = openzfs
 
ZFS_AUTORECONF = YES
 
ZFS_DEPENDENCIES = libaio openssl udev util-linux zlib
 
# sysvinit installs only a commented-out modules-load.d/ config file
ZFS_CONF_OPTS = \
   --with-linux=$(LINUX_DIR) \
   --with-linux-obj=$(LINUX_DIR) \
   --disable-rpath \
   --disable-sysvinit
 
ifeq ($(BR2_PACKAGE_LIBTIRPC),y)
ZFS_DEPENDENCIES += libtirpc
ZFS_CONF_OPTS += --with-tirpc
else
ZFS_CONF_OPTS += --without-tirpc
endif
 
ifeq ($(BR2_INIT_SYSTEMD),y)
# Installs the optional systemd generators, units, and presets files.
ZFS_CONF_OPTS += --enable-systemd
else
ZFS_CONF_OPTS += --disable-systemd
endif
 
# The optional PyZFS uses different scripts depending on the python
# version (ex: arc_summary2 or arc_summary3).
ifeq ($(BR2_PACKAGE_PYTHON),y)
ZFS_DEPENDENCIES += python python-setuptools host-python-cffi
ZFS_CONF_ENV += \
   PYTHON=$(HOST_DIR)/usr/bin/python2 \
   PYTHON_CPPFLAGS="`$(STAGING_DIR)/usr/bin/python2-config --includes`" \
   PYTHON_LIBS="`$(STAGING_DIR)/usr/bin/python2-config --ldflags`" \
   PYTHON_SITE_PKG="/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages"
ZFS_CONF_OPTS += --enable-pyzfs
else ifeq ($(BR2_PACKAGE_PYTHON3),y)
ZFS_DEPENDENCIES += python3 python-setuptools host-python-cffi
ZFS_CONF_ENV += \
   PYTHON=$(HOST_DIR)/usr/bin/python3 \
   PYTHON_CPPFLAGS="`$(STAGING_DIR)/usr/bin/python3-config --includes`" \
   PYTHON_LIBS="`$(STAGING_DIR)/usr/bin/python3-config --ldflags`" \
   PYTHON_EXTRA_LIBS="`$(STAGING_DIR)/usr/bin/python3-config --libs --embed`" \
   PYTHON_SITE_PKG="/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages"
ZFS_CONF_OPTS += --enable-pyzfs
else
ZFS_CONF_OPTS += --disable-pyzfs --without-python
endif
 
ifeq ($(BR2_PACKAGE_LINUX_PAM),y)
ZFS_DEPENDENCIES += linux-pam
ZFS_CONF_ENV += --enable-pam=yes
else
ZFS_CONF_OPTS += --disable-pam
endif
 
# ZFS userland tools are unfunctional without the Linux kernel modules.
ZFS_MODULE_SUBDIRS = \
   module/avl \
   module/icp \
   module/lua \
   module/nvpair \
   module/spl \
   module/unicode \
   module/zcommon \
   module/zstd \
   module/zfs
 
# These requirements will be validated by zfs/config/kernel-config-defined.m4
define ZFS_LINUX_CONFIG_FIXUPS
   $(call KCONFIG_DISABLE_OPT,CONFIG_DEBUG_LOCK_ALLOC)
   $(call KCONFIG_DISABLE_OPT,CONFIG_TRIM_UNUSED_KSYMS)
   $(call KCONFIG_ENABLE_OPT,CONFIG_CRYPTO_DEFLATE)
   $(call KCONFIG_ENABLE_OPT,CONFIG_ZLIB_DEFLATE)
   $(call KCONFIG_ENABLE_OPT,CONFIG_ZLIB_INFLATE)
endef
 
$(eval $(kernel-module))
$(eval $(autotools-package))