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}/os/freebsd
28 CFLAGS+= -I${INCDIR}/os/freebsd/spl
29 CFLAGS+= -I${INCDIR}/os/freebsd/zfs
30 CFLAGS+= -I${SRCDIR}/zstd/include
31 CFLAGS+= -include ${INCDIR}/os/freebsd/spl/sys/ccompile.h
33 CFLAGS+= -D__KERNEL__ -DFREEBSD_NAMECACHE -DBUILDING_ZFS -D__BSD_VISIBLE=1 \
34 -DHAVE_UIO_ZEROCOPY -DWITHOUT_NETDUMP -D__KERNEL -D_SYS_CONDVAR_H_ \
35 -D_SYS_VMEM_H_ -DKDTRACE_HOOKS -DSMP -DHAVE_KSID -DCOMPAT_FREEBSD11
37 .if ${MACHINE_ARCH} == "amd64"
38 CFLAGS+= -DHAVE_AVX2 -DHAVE_AVX -D__x86_64 -DHAVE_SSE2 -DHAVE_AVX512F -DHAVE_SSSE3
41 .if defined(WITH_DEBUG) && ${WITH_DEBUG} == "true"
42 CFLAGS+= -DZFS_DEBUG -g
43 .if defined(WITH_INVARIANTS) && ${WITH_INVARIANTS} == "true"
44 CFLAGS+= -DINVARIANTS -DWITNESS -DOPENSOLARIS_WITNESS
46 .if defined(WITH_O0) && ${WITH_O0} == "true"
53 .if defined(WITH_VFS_DEBUG) && ${WITH_VFS_DEBUG} == "true"
54 # kernel must also be built with this option for this to work
55 CFLAGS+= -DDEBUG_VFS_LOCKS
58 .if defined(WITH_GCOV) && ${WITH_GCOV} == "true"
59 CFLAGS+= -fprofile-arcs -ftest-coverage
64 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "powerpc" || \
65 ${MACHINE_ARCH} == "arm"
66 CFLAGS+= -DBITS_PER_LONG=32
68 CFLAGS+= -DBITS_PER_LONG=64
71 SRCS= vnode_if.h device_if.h bus_if.h
109 SRCS+= acl_common.c \
133 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "powerpc" || \
134 ${MACHINE_ARCH} == "arm"
168 SRCS+= zfeature_common.c \
172 zfs_fletcher_avx512.c \
173 zfs_fletcher_intel.c \
175 zfs_fletcher_superscalar.c \
176 zfs_fletcher_superscalar4.c \
256 vdev_indirect_births.c \
257 vdev_indirect_mapping.c \
265 vdev_raidz_math_scalar.c \
267 vdev_raidz_math_avx2.c \
268 vdev_raidz_math_avx512bw.c \
269 vdev_raidz_math_avx512f.c \
270 vdev_raidz_math_sse2.c \
271 vdev_raidz_math_ssse3.c \
313 .if ${MK_DEBUG_FILES} != "no"
315 -f /etc/mtree/BSD.debug.dist \
316 -p ${DESTDIR}/usr/lib
319 .include <bsd.kmod.mk>
322 CFLAGS.gcc+= -Wno-pointer-to-int-cast
324 CFLAGS.lapi.c= -Wno-cast-qual
325 CFLAGS.lcompat.c= -Wno-cast-qual
326 CFLAGS.lobject.c= -Wno-cast-qual
327 CFLAGS.ltable.c= -Wno-cast-qual
328 CFLAGS.lvm.c= -Wno-cast-qual
329 CFLAGS.nvpair.c= -DHAVE_RPC_TYPES -Wno-cast-qual
330 CFLAGS.spl_string.c= -Wno-cast-qual
331 CFLAGS.spl_vm.c= -Wno-cast-qual
332 CFLAGS.spl_zlib.c= -Wno-cast-qual
333 CFLAGS.abd.c= -Wno-cast-qual
334 CFLAGS.zfs_log.c= -Wno-cast-qual
335 CFLAGS.zfs_vnops_os.c= -Wno-pointer-arith
336 CFLAGS.u8_textprep.c= -Wno-cast-qual
337 CFLAGS.zfs_fletcher.c= -Wno-cast-qual -Wno-pointer-arith
338 CFLAGS.zfs_fletcher_intel.c= -Wno-cast-qual -Wno-pointer-arith
339 CFLAGS.zfs_fletcher_sse.c= -Wno-cast-qual -Wno-pointer-arith
340 CFLAGS.zfs_fletcher_avx512.c= -Wno-cast-qual -Wno-pointer-arith
341 CFLAGS.zprop_common.c= -Wno-cast-qual
342 CFLAGS.ddt.c= -Wno-cast-qual
343 CFLAGS.dmu.c= -Wno-cast-qual
344 CFLAGS.dmu_traverse.c= -Wno-cast-qual
345 CFLAGS.dsl_dir.c= -Wno-cast-qual
346 CFLAGS.dsl_deadlist.c= -Wno-cast-qual
347 CFLAGS.dsl_prop.c= -Wno-cast-qual
348 CFLAGS.fm.c= -Wno-cast-qual
349 CFLAGS.lz4.c= -Wno-cast-qual
350 CFLAGS.spa.c= -Wno-cast-qual
351 CFLAGS.spa_misc.c= -Wno-cast-qual
352 CFLAGS.sysctl_os.c= -include ../zfs_config.h
353 CFLAGS.vdev_draid.c= -Wno-cast-qual
354 CFLAGS.vdev_raidz.c= -Wno-cast-qual
355 CFLAGS.vdev_raidz_math.c= -Wno-cast-qual
356 CFLAGS.vdev_raidz_math_scalar.c= -Wno-cast-qual
357 CFLAGS.vdev_raidz_math_avx2.c= -Wno-cast-qual -Wno-duplicate-decl-specifier
358 CFLAGS.vdev_raidz_math_avx512f.c= -Wno-cast-qual -Wno-duplicate-decl-specifier
359 CFLAGS.vdev_raidz_math_sse2.c= -Wno-cast-qual -Wno-duplicate-decl-specifier
360 CFLAGS.zap_leaf.c= -Wno-cast-qual
361 CFLAGS.zap_micro.c= -Wno-cast-qual
362 CFLAGS.zcp.c= -Wno-cast-qual
363 CFLAGS.zfs_fm.c= -Wno-cast-qual
364 CFLAGS.zfs_ioctl.c= -Wno-cast-qual
365 CFLAGS.zil.c= -Wno-cast-qual
366 CFLAGS.zio.c= -Wno-cast-qual
367 CFLAGS.zrlock.c= -Wno-cast-qual
368 CFLAGS.zfs_zstd.c= -Wno-cast-qual -Wno-pointer-arith
369 CFLAGS.zstd.c= -fno-tree-vectorize -U__BMI__