zfs build changes

Yesterday, I revised the way we build ZFS which we use in the MDS backend for the file system metadata storage.

Previously, there was a make(1) target zbuild that branded two compilations of the ZFS codes: one that built the standalone executables such as zpool(8) and zfs-fuse(8) and the second which constructed a library providing the core ZFS functionality for use in slashd which we call libzfs-fuse.a.

The problem was that, anytime hacking on ZFS occurs, because both compilations reused object file naming, you had to clear out both compilations and build both over again from scratch. So I eliminated the zbuild target in place of our common make infrastructure targets. Now, to build ZFS, simply descend into ${ROOTDIR}/zfs and run make there.

The new build process maintains separate object directories for the standalone utilities and for libzfs-fuse.a which minimizes the amount of work to be done when source files shared between them get modified. This approach also has the benefit of reducing surprises and unique make targets to bootstrap the system codes by following the general procedure for building our components.