8 INCDIR=${.CURDIR:H}/include
12 .PATH: ${SRCDIR}/avl \
15 ${SRCDIR}/icp/algs/edonr \
16 ${SRCDIR}/os/freebsd/spl \
17 ${SRCDIR}/os/freebsd/zfs \
26 CFLAGS+= -I${.OBJDIR:H}/include
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+= -DZFS_DEBUG -g
44 .if defined(WITH_INVARIANTS) && ${WITH_INVARIANTS} == "true"
45 CFLAGS+= -DINVARIANTS -DWITNESS -DOPENSOLARIS_WITNESS
47 .if defined(WITH_O0) && ${WITH_O0} == "true"
54 .if defined(WITH_VFS_DEBUG) && ${WITH_VFS_DEBUG} == "true"
55 # kernel must also be built with this option for this to work
56 CFLAGS+= -DDEBUG_VFS_LOCKS
59 .if defined(WITH_GCOV) && ${WITH_GCOV} == "true"
60 CFLAGS+= -fprofile-arcs -ftest-coverage
65 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "powerpc" || \
66 ${MACHINE_ARCH} == "arm"
67 CFLAGS+= -DBITS_PER_LONG=32
69 CFLAGS+= -DBITS_PER_LONG=64
72 SRCS= vnode_if.h device_if.h bus_if.h
113 SRCS+= acl_common.c \
137 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "powerpc" || \
138 ${MACHINE_ARCH} == "arm"
172 SRCS+= zfeature_common.c \
176 zfs_fletcher_avx512.c \
177 zfs_fletcher_intel.c \
179 zfs_fletcher_superscalar.c \
180 zfs_fletcher_superscalar4.c \
261 vdev_indirect_births.c \
262 vdev_indirect_mapping.c \
270 vdev_raidz_math_scalar.c \
271 vdev_raidz_math_avx2.c \
272 vdev_raidz_math_avx512bw.c \
273 vdev_raidz_math_avx512f.c \
274 vdev_raidz_math_sse2.c \
275 vdev_raidz_math_ssse3.c \
318 .if ${MK_DEBUG_FILES} != "no"
320 -f /etc/mtree/BSD.debug.dist \
321 -p ${DESTDIR}/usr/lib
324 .include <bsd.kmod.mk>
327 CFLAGS.gcc+= -Wno-pointer-to-int-cast
329 CFLAGS.lapi.c= -Wno-cast-qual
330 CFLAGS.lcompat.c= -Wno-cast-qual
331 CFLAGS.lobject.c= -Wno-cast-qual
332 CFLAGS.ltable.c= -Wno-cast-qual
333 CFLAGS.lvm.c= -Wno-cast-qual
334 CFLAGS.nvpair.c= -DHAVE_RPC_TYPES -Wno-cast-qual
335 CFLAGS.spl_string.c= -Wno-cast-qual
336 CFLAGS.spl_vm.c= -Wno-cast-qual
337 CFLAGS.spl_zlib.c= -Wno-cast-qual
338 CFLAGS.abd.c= -Wno-cast-qual
339 CFLAGS.zfs_log.c= -Wno-cast-qual
340 CFLAGS.zfs_vnops_os.c= -Wno-pointer-arith
341 CFLAGS.u8_textprep.c= -Wno-cast-qual
342 CFLAGS.zfs_fletcher.c= -Wno-cast-qual -Wno-pointer-arith
343 CFLAGS.zfs_fletcher_intel.c= -Wno-cast-qual -Wno-pointer-arith
344 CFLAGS.zfs_fletcher_sse.c= -Wno-cast-qual -Wno-pointer-arith
345 CFLAGS.zfs_fletcher_avx512.c= -Wno-cast-qual -Wno-pointer-arith
346 CFLAGS.zprop_common.c= -Wno-cast-qual
347 CFLAGS.ddt.c= -Wno-cast-qual
348 CFLAGS.dmu.c= -Wno-cast-qual
349 CFLAGS.dmu_traverse.c= -Wno-cast-qual
350 CFLAGS.dsl_dir.c= -Wno-cast-qual
351 CFLAGS.dsl_deadlist.c= -Wno-cast-qual
352 CFLAGS.dsl_prop.c= -Wno-cast-qual
353 CFLAGS.edonr.c=-Wno-cast-qual
354 CFLAGS.fm.c= -Wno-cast-qual
355 CFLAGS.lz4.c= -Wno-cast-qual
356 CFLAGS.spa.c= -Wno-cast-qual
357 CFLAGS.spa_misc.c= -Wno-cast-qual
358 CFLAGS.sysctl_os.c= -include ../zfs_config.h
359 CFLAGS.vdev_draid.c= -Wno-cast-qual
360 CFLAGS.vdev_raidz.c= -Wno-cast-qual
361 CFLAGS.vdev_raidz_math.c= -Wno-cast-qual
362 CFLAGS.vdev_raidz_math_scalar.c= -Wno-cast-qual
363 CFLAGS.vdev_raidz_math_avx2.c= -Wno-cast-qual -Wno-duplicate-decl-specifier
364 CFLAGS.vdev_raidz_math_avx512f.c= -Wno-cast-qual -Wno-duplicate-decl-specifier
365 CFLAGS.vdev_raidz_math_sse2.c= -Wno-cast-qual -Wno-duplicate-decl-specifier
366 CFLAGS.zap_leaf.c= -Wno-cast-qual
367 CFLAGS.zap_micro.c= -Wno-cast-qual
368 CFLAGS.zcp.c= -Wno-cast-qual
369 CFLAGS.zfs_fm.c= -Wno-cast-qual
370 CFLAGS.zfs_ioctl.c= -Wno-cast-qual
371 CFLAGS.zil.c= -Wno-cast-qual
372 CFLAGS.zio.c= -Wno-cast-qual
373 CFLAGS.zrlock.c= -Wno-cast-qual
374 CFLAGS.zfs_zstd.c= -Wno-cast-qual -Wno-pointer-arith
375 CFLAGS.zstd.c= -fno-tree-vectorize -U__BMI__