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 \
130 vdev_indirect_births.c \
132 vdev_indirect_mapping.c \
139 vdev_raidz_math_aarch64_neon.c \
140 vdev_raidz_math_aarch64_neonx2.c \
141 vdev_raidz_math_avx2.c \
142 vdev_raidz_math_avx512bw.c \
143 vdev_raidz_math_avx512f.c \
145 vdev_raidz_math_scalar.c \
180 .if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
181 ARCH_C += vdev_raidz_math_sse2.c \
182 vdev_raidz_math_ssse3.c \
183 zfs_fletcher_intel.c \
185 CFLAGS += -DHAVE_SSE2 -DHAVE_SSE3
187 .if ${MACHINE_ARCH} == "amd64"
188 ARCH_C += zfs_fletcher_avx512.c
189 CFLAGS+= -DHAVE_AVX2 -DHAVE_AVX -D__x86_64 -DHAVE_AVX512F \
192 .if ${MACHINE_CPUARCH} == "aarch64"
193 ARCH_C += zfs_fletcher_aarch64_neon.c
222 UNICODE_C = u8_textprep.c uconv.c
224 SRCS= ${USER_C} ${KERNEL_C} ${LUA_C} ${UNICODE_C} ${ARCH_C}
229 -I${ZFSTOP}/include \
230 -I${ZFSTOP}/lib/libspl/include \
231 -I${ZFSTOP}/lib/libspl/include/os/freebsd \
233 -I${ZFSTOP}/include/os/freebsd/zfs \
234 -I${SRCTOP}/cddl/compat/opensolaris/include \
235 -I${ZFSTOP}/module/icp/include \
236 -include ${ZFSTOP}/include/os/freebsd/spl/sys/ccompile.h \
238 -include ${SRCTOP}/sys/modules/zfs/zfs_config.h \
239 -I${SRCTOP}/sys/modules/zfs \
240 -I${ZFSTOP}/include/os/freebsd/zfs \
241 -DLIB_ZPOOL_BUILD -DZFS_DEBUG \
243 # XXX: pthread doesn't have mutex_owned() equivalent, so we need to look
244 # into libthr private structures. That's sooo evil, but it's only for
245 # ZFS debugging tools needs.
246 CFLAGS+= -DWANTS_MUTEX_OWNED
247 CFLAGS+= -I${SRCTOP}/lib/libpthread/thread
248 CFLAGS+= -I${SRCTOP}/lib/libpthread/sys
249 CFLAGS+= -I${SRCTOP}/lib/libthr/arch/${MACHINE_CPUARCH}/include
250 CFLAGS.gcc+= -fms-extensions
252 LIBADD= md pthread z spl icp nvpair avl umem
254 # atomic.S doesn't like profiling.
259 # Since there are many asserts in this library, it makes no sense to compile
260 # it without debugging.
262 CFLAGS+= -g -DDEBUG=1
264 CFLAGS.zfs_zstd.c= -Wno-cast-qual -Wno-pointer-arith
265 CFLAGS.zstd.c+= -fno-tree-vectorize
267 .include <bsd.lib.mk>