kumquat-buildroot/package/zfs/zfs.mk
José Luis Salvador Rufo 4470bc9914 package/zfs: new package
OpenZFS is an advanced file system and volume manager which was originally
developed for Solaris and is now maintained by the OpenZFS community. This
repository contains the code for running OpenZFS on Linux and FreeBSD.

http://zfsonlinux.org/

Signed-off-by: José Luis Salvador Rufo <salvador.joseluis@gmail.com>
[me:
  - fix test case on how to use a pre-built toolchain
  - reorder the test case config
  - add test case with glibc
  - drop superflous test timeout override
  - only select libtirpc when C library lacks native RPC
  - drop unused ZFS_MODULES variable
  - drop ZFS_CPE_ID_PREFIX and ZFS_AUTORECONF_OPTS which are defaults
  - drop NLS options, already set in a generic manner
  - drop incomplete/improper sysvinit support
  - some cosmetics
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2021-04-13 23:08:17 +02:00

92 lines
2.7 KiB
Makefile

################################################################################
#
# zfs
#
################################################################################
ZFS_VERSION = 2.0.4
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))