8 INCDIR=${.CURDIR:H}/include
12 .PATH: ${SRCDIR}/avl \
15 ${SRCDIR}/os/freebsd/spl \
16 ${SRCDIR}/os/freebsd/zfs \
25 CFLAGS+= -I${.OBJDIR:H}/include
27 CFLAGS+= -I${INCDIR}/spl
28 CFLAGS+= -I${INCDIR}/os/freebsd
29 CFLAGS+= -I${INCDIR}/os/freebsd/spl
30 CFLAGS+= -I${INCDIR}/os/freebsd/zfs
31 CFLAGS+= -I${SRCDIR}/zstd/include
32 CFLAGS+= -include ${INCDIR}/os/freebsd/spl/sys/ccompile.h
34 CFLAGS+= -D__KERNEL__ -DFREEBSD_NAMECACHE -DBUILDING_ZFS -D__BSD_VISIBLE=1 \
35 -DHAVE_UIO_ZEROCOPY -DWITHOUT_NETDUMP -D__KERNEL -D_SYS_CONDVAR_H_ \
36 -D_SYS_VMEM_H_ -DKDTRACE_HOOKS -DSMP -DHAVE_KSID -DCOMPAT_FREEBSD11
38 .if ${MACHINE_ARCH} == "amd64"
39 CFLAGS+= -DHAVE_AVX2 -DHAVE_AVX -D__x86_64 -DHAVE_SSE2 -DHAVE_AVX512F -DHAVE_SSSE3
42 .if defined(WITH_DEBUG) && ${WITH_DEBUG} == "true"
43 CFLAGS+= -DINVARIANTS -DWITNESS -g -O0 -DZFS_DEBUG -DOPENSOLARIS_WITNESS
48 .if defined(WITH_VFS_DEBUG) && ${WITH_VFS_DEBUG} == "true"
49 # kernel must also be built with this option for this to work
50 CFLAGS+= -DDEBUG_VFS_LOCKS
53 .if defined(WITH_GCOV) && ${WITH_GCOV} == "true"
54 CFLAGS+= -fprofile-arcs -ftest-coverage
59 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "powerpc" || \
60 ${MACHINE_ARCH} == "arm"
61 CFLAGS+= -DBITS_PER_LONG=32
63 CFLAGS+= -DBITS_PER_LONG=64
66 SRCS= vnode_if.h device_if.h bus_if.h
104 SRCS+= acl_common.c \
129 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "powerpc" || \
130 ${MACHINE_ARCH} == "arm"
163 SRCS+= zfeature_common.c \
167 zfs_fletcher_avx512.c \
168 zfs_fletcher_intel.c \
170 zfs_fletcher_superscalar.c \
171 zfs_fletcher_superscalar4.c \
249 vdev_indirect_births.c \
250 vdev_indirect_mapping.c \
258 vdev_raidz_math_scalar.c \
260 vdev_raidz_math_avx2.c \
261 vdev_raidz_math_avx512bw.c \
262 vdev_raidz_math_avx512f.c \
263 vdev_raidz_math_sse2.c \
264 vdev_raidz_math_ssse3.c \
304 .if ${MK_DEBUG_FILES} != "no"
306 -f /etc/mtree/BSD.debug.dist \
307 -p ${DESTDIR}/usr/lib
310 .include <bsd.kmod.mk>
313 CFLAGS.gcc+= -Wno-pointer-to-int-cast
315 CFLAGS.lapi.c= -Wno-cast-qual
316 CFLAGS.lcompat.c= -Wno-cast-qual
317 CFLAGS.lobject.c= -Wno-cast-qual
318 CFLAGS.ltable.c= -Wno-cast-qual
319 CFLAGS.lvm.c= -Wno-cast-qual
320 CFLAGS.nvpair.c= -DHAVE_RPC_TYPES -Wno-cast-qual
321 CFLAGS.spl_string.c= -Wno-cast-qual
322 CFLAGS.spl_vm.c= -Wno-cast-qual
323 CFLAGS.spl_zlib.c= -Wno-cast-qual
324 CFLAGS.abd.c= -Wno-cast-qual
325 CFLAGS.zfs_log.c= -Wno-cast-qual
326 CFLAGS.zfs_vnops.c= -Wno-pointer-arith
327 CFLAGS.u8_textprep.c= -Wno-cast-qual
328 CFLAGS.zfs_fletcher.c= -Wno-cast-qual -Wno-pointer-arith
329 CFLAGS.zfs_fletcher_intel.c= -Wno-cast-qual -Wno-pointer-arith
330 CFLAGS.zfs_fletcher_sse.c= -Wno-cast-qual -Wno-pointer-arith
331 CFLAGS.zfs_fletcher_avx512.c= -Wno-cast-qual -Wno-pointer-arith
332 CFLAGS.zprop_common.c= -Wno-cast-qual
333 CFLAGS.ddt.c= -Wno-cast-qual
334 CFLAGS.dmu.c= -Wno-cast-qual
335 CFLAGS.dmu_traverse.c= -Wno-cast-qual
336 CFLAGS.dsl_dir.c= -Wno-cast-qual
337 CFLAGS.dsl_deadlist.c= -Wno-cast-qual
338 CFLAGS.dsl_prop.c= -Wno-cast-qual
339 CFLAGS.fm.c= -Wno-cast-qual
340 CFLAGS.lz4.c= -Wno-cast-qual
341 CFLAGS.spa.c= -Wno-cast-qual
342 CFLAGS.spa_misc.c= -Wno-cast-qual
343 CFLAGS.sysctl_os.c= -include ../zfs_config.h
344 CFLAGS.vdev_raidz.c= -Wno-cast-qual
345 CFLAGS.vdev_raidz_math.c= -Wno-cast-qual
346 CFLAGS.vdev_raidz_math_scalar.c= -Wno-cast-qual
347 CFLAGS.vdev_raidz_math_avx2.c= -Wno-cast-qual -Wno-duplicate-decl-specifier
348 CFLAGS.vdev_raidz_math_avx512f.c= -Wno-cast-qual -Wno-duplicate-decl-specifier
349 CFLAGS.vdev_raidz_math_sse2.c= -Wno-cast-qual -Wno-duplicate-decl-specifier
350 CFLAGS.zap_leaf.c= -Wno-cast-qual
351 CFLAGS.zap_micro.c= -Wno-cast-qual
352 CFLAGS.zcp.c= -Wno-cast-qual
353 CFLAGS.zfs_fm.c= -Wno-cast-qual
354 CFLAGS.zfs_ioctl.c= -Wno-cast-qual
355 CFLAGS.zil.c= -Wno-cast-qual
356 CFLAGS.zio.c= -Wno-cast-qual
357 CFLAGS.zrlock.c= -Wno-cast-qual
358 CFLAGS.zfs_zstd.c= -Wno-cast-qual -Wno-pointer-arith
359 CFLAGS.zstd.c= -fno-tree-vectorize -U__BMI__