3 ZFSTOP= ${SRCTOP}/sys/contrib/openzfs
6 .PATH: ${ZFSTOP}/module/zfs
7 .PATH: ${ZFSTOP}/module/zcommon
8 .PATH: ${ZFSTOP}/module/unicode
10 .PATH: ${ZFSTOP}/module/lua
12 .PATH: ${ZFSTOP}/module/zstd
13 .PATH: ${ZFSTOP}/module/zstd/lib
15 .PATH: ${ZFSTOP}/module/os/linux/zfs
17 .PATH: ${ZFSTOP}/lib/libzpool
19 .if exists(${SRCTOP}/sys/cddl/contrib/opensolaris/common/atomic/${MACHINE_ARCH}/opensolaris_atomic.S)
20 .PATH: ${SRCTOP}/sys/cddl/contrib/opensolaris/common/atomic/${MACHINE_ARCH}
21 ATOMIC_SRCS= opensolaris_atomic.S
22 ACFLAGS+= -Wa,--noexecstack
24 .PATH: ${SRCTOP}/sys/cddl/compat/opensolaris/kern
25 ATOMIC_SRCS= opensolaris_atomic.c
28 .if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpcspe"
29 # Don't waste GOT entries on small data.
45 zfs_fletcher_superscalar.c \
46 zfs_fletcher_superscalar4.c \
128 vdev_indirect_births.c \
130 vdev_indirect_mapping.c \
137 vdev_raidz_math_aarch64_neon.c \
138 vdev_raidz_math_aarch64_neonx2.c \
139 vdev_raidz_math_avx2.c \
140 vdev_raidz_math_avx512bw.c \
141 vdev_raidz_math_avx512f.c \
143 vdev_raidz_math_scalar.c \
178 .if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
179 ARCH_C += vdev_raidz_math_sse2.c \
180 vdev_raidz_math_ssse3.c \
181 zfs_fletcher_intel.c \
183 CFLAGS += -DHAVE_SSE2 -DHAVE_SSE3
185 .if ${MACHINE_ARCH} == "amd64"
186 ARCH_C += zfs_fletcher_avx512.c
187 CFLAGS+= -DHAVE_AVX2 -DHAVE_AVX -D__x86_64 -DHAVE_AVX512F \
190 .if ${MACHINE_ARCH} == "aarch64"
191 ARCH_C += zfs_fletcher_aarch64_neon.c
220 UNICODE_C = u8_textprep.c uconv.c
222 SRCS= ${USER_C} ${KERNEL_C} ${LUA_C} ${UNICODE_C} ${ARCH_C}
227 -I${ZFSTOP}/include \
228 -I${ZFSTOP}/lib/libspl/include \
229 -I${ZFSTOP}/lib/libspl/include/os/freebsd \
231 -I${SRCTOP}/cddl/compat/opensolaris/include \
232 -I${ZFSTOP}/module/icp/include \
233 -include ${ZFSTOP}/include/os/freebsd/spl/sys/ccompile.h \
235 -include ${SRCTOP}/sys/modules/zfs/zfs_config.h \
236 -I${SRCTOP}/sys/modules/zfs \
237 -DLIB_ZPOOL_BUILD -DZFS_DEBUG \
239 # XXX: pthread doesn't have mutex_owned() equivalent, so we need to look
240 # into libthr private structures. That's sooo evil, but it's only for
241 # ZFS debugging tools needs.
242 CFLAGS+= -DWANTS_MUTEX_OWNED
243 CFLAGS+= -I${SRCTOP}/lib/libpthread/thread
244 CFLAGS+= -I${SRCTOP}/lib/libpthread/sys
245 CFLAGS+= -I${SRCTOP}/lib/libthr/arch/${MACHINE_CPUARCH}/include
246 CFLAGS.gcc+= -fms-extensions
248 LIBADD= md pthread z spl icp nvpair avl umem
250 # atomic.S doesn't like profiling.
255 # Since there are many asserts in this library, it makes no sense to compile
256 # it without debugging.
258 CFLAGS+= -g -DDEBUG=1
260 CFLAGS.zfs_zstd.c= -Wno-cast-qual -Wno-pointer-arith
261 CFLAGS.zstd.c+= -fno-tree-vectorize
263 .include <bsd.lib.mk>