1#!/bin/sh 2 3set -ef 4 5usage() 6{ 7 echo "usage: $0 <kernel source tree>" >&2 8 exit 1 9} 10 11[ "$#" -eq 1 ] || usage 12KERNEL_DIR="$1" 13 14if ! [ -e 'zfs_config.h' ] 15then 16 echo "$0: you did not run configure, or you're not in the ZFS source directory." 17 echo "$0: run configure with --with-linux=$KERNEL_DIR and --enable-linux-builtin." 18 19 exit 1 20fi >&2 21 22make clean ||: 23make gitrev 24 25rm -rf "$KERNEL_DIR/include/zfs" "$KERNEL_DIR/fs/zfs" 26cp -R include "$KERNEL_DIR/include/zfs" 27cp -R module "$KERNEL_DIR/fs/zfs" 28cp zfs_config.h "$KERNEL_DIR/include/zfs/" 29 30cat > "$KERNEL_DIR/fs/zfs/Kconfig" <<EOF 31config ZFS 32 tristate "ZFS filesystem support" 33 depends on EFI_PARTITION 34 select ZLIB_INFLATE 35 select ZLIB_DEFLATE 36 help 37 This is the ZFS filesystem from the OpenZFS project. 38 39 See https://github.com/openzfs/zfs 40 41 To compile this file system support as a module, choose M here. 42 43 If unsure, say N. 44EOF 45 46sed -i '/source "fs\/ext2\/Kconfig\"/i\source "fs/zfs/Kconfig"' "$KERNEL_DIR/fs/Kconfig" 47echo 'obj-$(CONFIG_ZFS) += zfs/' >> "$KERNEL_DIR/fs/Makefile" 48 49echo "$0: done. now you can build the kernel with ZFS support." >&2 50echo "$0: make sure you enable ZFS support (CONFIG_ZFS) before building." >&2 51