xref: /freebsd-13.1/sys/modules/zfs/Makefile (revision 99c3f157)
12109a92fSPawel Jakub Dawidek# $FreeBSD$
22109a92fSPawel Jakub Dawidek
39e5787d2SMatt MacySRCDIR=${SRCTOP}/sys/contrib/openzfs/module
49e5787d2SMatt MacyINCDIR=${SRCTOP}/sys/contrib/openzfs/include
50327754bSMarcel Moolenaar
62109a92fSPawel Jakub DawidekKMOD=	zfs
72109a92fSPawel Jakub Dawidek
89e5787d2SMatt Macy.PATH:	${SRCDIR}/avl \
99e5787d2SMatt Macy	${SRCDIR}/lua \
109e5787d2SMatt Macy	${SRCDIR}/nvpair \
119e5787d2SMatt Macy	${SRCDIR}/os/freebsd/spl \
129e5787d2SMatt Macy	${SRCDIR}/os/freebsd/zfs \
139e5787d2SMatt Macy	${SRCDIR}/unicode \
149e5787d2SMatt Macy	${SRCDIR}/zcommon \
159e5787d2SMatt Macy	${SRCDIR}/zfs	\
169e5787d2SMatt Macy	${SRCDIR}/zstd	\
179e5787d2SMatt Macy	${SRCDIR}/zstd/lib
182109a92fSPawel Jakub Dawidek
190a3374afSDavid E. O'Brien
209e5787d2SMatt MacyCFLAGS+= -I${INCDIR}
219e5787d2SMatt MacyCFLAGS+= -I${INCDIR}/os/freebsd
229e5787d2SMatt MacyCFLAGS+= -I${INCDIR}/os/freebsd/spl
239e5787d2SMatt MacyCFLAGS+= -I${INCDIR}/os/freebsd/zfs
249e5787d2SMatt MacyCFLAGS+= -I${SRCDIR}/zstd/include
259e5787d2SMatt MacyCFLAGS+= -I${.CURDIR}
262109a92fSPawel Jakub Dawidek
27692aa83dSMatt MacyCFLAGS+= -D__KERNEL__ -DFREEBSD_NAMECACHE -DBUILDING_ZFS \
289e5787d2SMatt Macy	-DHAVE_UIO_ZEROCOPY -DWITHOUT_NETDUMP -D__KERNEL -D_SYS_CONDVAR_H_ \
29*99c3f157SMartin Matuska	-D_SYS_VMEM_H_ -DIN_FREEBSD_BASE
302109a92fSPawel Jakub Dawidek
319e5787d2SMatt Macy.if ${MACHINE_ARCH} == "amd64"
329e5787d2SMatt MacyCFLAGS+= -DHAVE_AVX2 -DHAVE_AVX -D__x86_64 -DHAVE_SSE2 -DHAVE_AVX512F -DHAVE_AVX512BW -DHAVE_SSSE3
333b7917d7SPawel Jakub Dawidek.endif
342109a92fSPawel Jakub Dawidek
359e5787d2SMatt Macy.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "powerpc" || \
3678ec71bdSBrandon Bergren	${MACHINE_ARCH} == "powerpcspe" || ${MACHINE_ARCH} == "arm"
379e5787d2SMatt MacyCFLAGS+= -DBITS_PER_LONG=32
389e5787d2SMatt Macy.else
399e5787d2SMatt MacyCFLAGS+= -DBITS_PER_LONG=64
40afb13fc2SWill Andrews.endif
412109a92fSPawel Jakub Dawidek
429e5787d2SMatt MacySRCS=	vnode_if.h device_if.h bus_if.h
439e5787d2SMatt Macy
449e5787d2SMatt Macy# avl
459e5787d2SMatt MacySRCS+=	avl.c
469e5787d2SMatt Macy
479e5787d2SMatt Macy#lua
489e5787d2SMatt MacySRCS+=	lapi.c \
499e5787d2SMatt Macy	lauxlib.c \
509e5787d2SMatt Macy	lbaselib.c \
519e5787d2SMatt Macy	lcode.c \
529e5787d2SMatt Macy	lcompat.c \
539e5787d2SMatt Macy	lcorolib.c \
549e5787d2SMatt Macy	lctype.c \
559e5787d2SMatt Macy	ldebug.c \
569e5787d2SMatt Macy	ldo.c \
579e5787d2SMatt Macy	lfunc.c \
589e5787d2SMatt Macy	lgc.c \
599e5787d2SMatt Macy	llex.c \
609e5787d2SMatt Macy	lmem.c \
619e5787d2SMatt Macy	lobject.c \
629e5787d2SMatt Macy	lopcodes.c \
639e5787d2SMatt Macy	lparser.c \
649e5787d2SMatt Macy	lstate.c \
659e5787d2SMatt Macy	lstring.c \
669e5787d2SMatt Macy	lstrlib.c \
679e5787d2SMatt Macy	ltable.c \
689e5787d2SMatt Macy	ltablib.c \
699e5787d2SMatt Macy	ltm.c \
709e5787d2SMatt Macy	lvm.c \
719e5787d2SMatt Macy	lzio.c
729e5787d2SMatt Macy
739e5787d2SMatt Macy#nvpair
749e5787d2SMatt MacySRCS+=	nvpair.c \
759e5787d2SMatt Macy	fnvpair.c \
769e5787d2SMatt Macy	nvpair_alloc_spl.c \
779e5787d2SMatt Macy	nvpair_alloc_fixed.c
789e5787d2SMatt Macy
799e5787d2SMatt Macy#os/freebsd/spl
809e5787d2SMatt MacySRCS+=	acl_common.c \
819e5787d2SMatt Macy	btree.c \
829e5787d2SMatt Macy	callb.c \
839e5787d2SMatt Macy	list.c \
849e5787d2SMatt Macy	spl_acl.c \
859e5787d2SMatt Macy	spl_cmn_err.c \
869e5787d2SMatt Macy	spl_dtrace.c \
879e5787d2SMatt Macy	spl_kmem.c \
889e5787d2SMatt Macy	spl_kstat.c \
899e5787d2SMatt Macy	spl_misc.c \
909e5787d2SMatt Macy	spl_policy.c \
919e5787d2SMatt Macy	spl_string.c \
929e5787d2SMatt Macy	spl_sunddi.c \
939e5787d2SMatt Macy	spl_sysevent.c \
949e5787d2SMatt Macy	spl_taskq.c \
959e5787d2SMatt Macy	spl_uio.c \
969e5787d2SMatt Macy	spl_vfs.c \
979e5787d2SMatt Macy	spl_vm.c \
989e5787d2SMatt Macy	spl_zone.c \
999e5787d2SMatt Macy	sha256c.c \
1009e5787d2SMatt Macy	sha512c.c \
1019e5787d2SMatt Macy	spl_procfs_list.c \
1029e5787d2SMatt Macy	spl_zlib.c
1039e5787d2SMatt Macy
1049e5787d2SMatt Macy
1059e5787d2SMatt Macy.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "powerpc" || \
10678ec71bdSBrandon Bergren	${MACHINE_ARCH} == "powerpcspe" || ${MACHINE_ARCH} == "arm"
1079e5787d2SMatt MacySRCS+= spl_atomic.c
1089e5787d2SMatt Macy.endif
1099e5787d2SMatt Macy
1109e5787d2SMatt Macy#os/freebsd/zfs
1119e5787d2SMatt MacySRCS+=	abd_os.c \
1129e5787d2SMatt Macy	crypto_os.c \
1139e5787d2SMatt Macy	dmu_os.c \
1149e5787d2SMatt Macy	hkdf.c \
1159e5787d2SMatt Macy	kmod_core.c \
1169e5787d2SMatt Macy	spa_os.c \
1179e5787d2SMatt Macy	sysctl_os.c \
1189e5787d2SMatt Macy	vdev_file.c \
1199e5787d2SMatt Macy	vdev_label_os.c \
1209e5787d2SMatt Macy	vdev_geom.c \
1219e5787d2SMatt Macy	zfs_acl.c \
1229e5787d2SMatt Macy	zfs_ctldir.c \
1239e5787d2SMatt Macy	zfs_dir.c \
1249e5787d2SMatt Macy	zfs_ioctl_compat.c \
1259e5787d2SMatt Macy	zfs_ioctl_os.c \
1269e5787d2SMatt Macy	zfs_log.c \
12721269625SMartin Matuska	zfs_racct.c \
1289e5787d2SMatt Macy	zfs_replay.c \
1299e5787d2SMatt Macy	zfs_vfsops.c \
130b363d3d5SMatt Macy	zfs_vnops_os.c \
1319e5787d2SMatt Macy	zfs_znode.c \
1329e5787d2SMatt Macy	zio_crypt.c \
1339e5787d2SMatt Macy	zvol_os.c
1349e5787d2SMatt Macy
1359e5787d2SMatt Macy#unicode
1369e5787d2SMatt MacySRCS+=	uconv.c \
1379e5787d2SMatt Macy	u8_textprep.c
1389e5787d2SMatt Macy
1399e5787d2SMatt Macy#zcommon
1409e5787d2SMatt MacySRCS+=	zfeature_common.c \
1419e5787d2SMatt Macy	zfs_comutil.c \
1429e5787d2SMatt Macy	zfs_deleg.c \
1439e5787d2SMatt Macy	zfs_fletcher.c \
1449e5787d2SMatt Macy	zfs_fletcher_avx512.c \
1459e5787d2SMatt Macy	zfs_fletcher_intel.c \
1469e5787d2SMatt Macy	zfs_fletcher_sse.c \
1479e5787d2SMatt Macy	zfs_fletcher_superscalar.c \
1489e5787d2SMatt Macy	zfs_fletcher_superscalar4.c \
1499e5787d2SMatt Macy	zfs_namecheck.c \
1509e5787d2SMatt Macy	zfs_prop.c \
1519e5787d2SMatt Macy	zpool_prop.c \
1529e5787d2SMatt Macy	zprop_common.c
1539e5787d2SMatt Macy
1549e5787d2SMatt Macy#zfs
1559e5787d2SMatt MacySRCS+=	abd.c \
1569e5787d2SMatt Macy	aggsum.c \
1579e5787d2SMatt Macy	arc.c \
1589e5787d2SMatt Macy	arc_os.c \
1599e5787d2SMatt Macy	blkptr.c \
1609e5787d2SMatt Macy	bplist.c \
1619e5787d2SMatt Macy	bpobj.c \
1629e5787d2SMatt Macy	cityhash.c \
1639e5787d2SMatt Macy	dbuf.c \
1649e5787d2SMatt Macy	dbuf_stats.c \
1659e5787d2SMatt Macy	bptree.c \
1669e5787d2SMatt Macy	bqueue.c \
1679e5787d2SMatt Macy	dataset_kstats.c \
1689e5787d2SMatt Macy	ddt.c \
1699e5787d2SMatt Macy	ddt_zap.c \
1709e5787d2SMatt Macy	dmu.c \
1719e5787d2SMatt Macy	dmu_diff.c \
1729e5787d2SMatt Macy	dmu_object.c \
1739e5787d2SMatt Macy	dmu_objset.c \
1749e5787d2SMatt Macy	dmu_recv.c \
1759e5787d2SMatt Macy	dmu_redact.c \
1769e5787d2SMatt Macy	dmu_send.c \
1779e5787d2SMatt Macy	dmu_traverse.c \
1789e5787d2SMatt Macy	dmu_tx.c \
1799e5787d2SMatt Macy	dmu_zfetch.c \
1809e5787d2SMatt Macy	dnode.c \
1819e5787d2SMatt Macy	dnode_sync.c \
1829e5787d2SMatt Macy	dsl_dataset.c \
1839e5787d2SMatt Macy	dsl_deadlist.c \
1849e5787d2SMatt Macy	dsl_deleg.c \
1859e5787d2SMatt Macy	dsl_bookmark.c \
1869e5787d2SMatt Macy	dsl_dir.c \
1879e5787d2SMatt Macy	dsl_crypt.c \
1889e5787d2SMatt Macy	dsl_destroy.c \
1899e5787d2SMatt Macy	dsl_pool.c \
1909e5787d2SMatt Macy	dsl_prop.c \
1919e5787d2SMatt Macy	dsl_scan.c \
1929e5787d2SMatt Macy	dsl_synctask.c \
1939e5787d2SMatt Macy	dsl_userhold.c \
1949e5787d2SMatt Macy	fm.c \
1959e5787d2SMatt Macy	gzip.c \
1969e5787d2SMatt Macy	lzjb.c \
1979e5787d2SMatt Macy	lz4.c \
1989e5787d2SMatt Macy	metaslab.c \
1999e5787d2SMatt Macy	mmp.c \
2009e5787d2SMatt Macy	multilist.c \
2019e5787d2SMatt Macy	objlist.c \
2029e5787d2SMatt Macy	pathname.c \
2039e5787d2SMatt Macy	range_tree.c \
2049e5787d2SMatt Macy	refcount.c \
2059e5787d2SMatt Macy	rrwlock.c \
2069e5787d2SMatt Macy	sa.c \
2079e5787d2SMatt Macy	sha256.c \
2089e5787d2SMatt Macy	skein_zfs.c \
2099e5787d2SMatt Macy	spa.c \
2109e5787d2SMatt Macy	spa_boot.c \
2119e5787d2SMatt Macy	spa_checkpoint.c \
2129e5787d2SMatt Macy	spa_config.c \
2139e5787d2SMatt Macy	spa_errlog.c \
2149e5787d2SMatt Macy	spa_history.c \
2159e5787d2SMatt Macy	spa_log_spacemap.c \
2169e5787d2SMatt Macy	spa_misc.c \
2179e5787d2SMatt Macy	spa_stats.c \
2189e5787d2SMatt Macy	space_map.c \
2199e5787d2SMatt Macy	space_reftree.c \
2209e5787d2SMatt Macy	txg.c \
2219e5787d2SMatt Macy	uberblock.c \
2229e5787d2SMatt Macy	unique.c \
2239e5787d2SMatt Macy	vdev.c \
2249e5787d2SMatt Macy	vdev_cache.c \
225b363d3d5SMatt Macy	vdev_draid.c \
226b363d3d5SMatt Macy	vdev_draid_rand.c \
2279e5787d2SMatt Macy	vdev_indirect.c \
2289e5787d2SMatt Macy	vdev_indirect_births.c \
2299e5787d2SMatt Macy	vdev_indirect_mapping.c \
2309e5787d2SMatt Macy	vdev_initialize.c \
2319e5787d2SMatt Macy	vdev_label.c \
2329e5787d2SMatt Macy	vdev_mirror.c \
2339e5787d2SMatt Macy	vdev_missing.c \
2349e5787d2SMatt Macy	vdev_queue.c \
2359e5787d2SMatt Macy	vdev_raidz.c \
2369e5787d2SMatt Macy	vdev_raidz_math.c \
2379e5787d2SMatt Macy	vdev_raidz_math_scalar.c \
2389e5787d2SMatt Macy	vdev_raidz_math_avx2.c \
2399e5787d2SMatt Macy	vdev_raidz_math_avx512bw.c \
2409e5787d2SMatt Macy	vdev_raidz_math_avx512f.c \
2419e5787d2SMatt Macy	vdev_raidz_math_sse2.c \
2429e5787d2SMatt Macy	vdev_raidz_math_ssse3.c \
2439e5787d2SMatt Macy	vdev_rebuild.c \
2449e5787d2SMatt Macy	vdev_removal.c \
2459e5787d2SMatt Macy	vdev_root.c \
2469e5787d2SMatt Macy	vdev_trim.c \
2479e5787d2SMatt Macy	zap.c \
2489e5787d2SMatt Macy	zap_leaf.c \
2499e5787d2SMatt Macy	zap_micro.c \
2509e5787d2SMatt Macy	zcp.c \
2519e5787d2SMatt Macy	zcp_get.c \
2529e5787d2SMatt Macy	zcp_global.c \
2539e5787d2SMatt Macy	zcp_iter.c \
2549e5787d2SMatt Macy	zcp_set.c \
2559e5787d2SMatt Macy	zcp_synctask.c \
2569e5787d2SMatt Macy	zfeature.c \
2579e5787d2SMatt Macy	zfs_byteswap.c \
2589e5787d2SMatt Macy	zfs_debug.c \
2599e5787d2SMatt Macy	zfs_file_os.c \
2609e5787d2SMatt Macy	zfs_fm.c \
2619e5787d2SMatt Macy	zfs_fuid.c \
2629e5787d2SMatt Macy	zfs_ioctl.c \
2639e5787d2SMatt Macy	zfs_onexit.c \
2649e5787d2SMatt Macy	zfs_quota.c \
2659e5787d2SMatt Macy	zfs_ratelimit.c \
2669e5787d2SMatt Macy	zfs_rlock.c \
2679e5787d2SMatt Macy	zfs_sa.c \
268b363d3d5SMatt Macy	zfs_vnops.c \
2699e5787d2SMatt Macy	zil.c \
2709e5787d2SMatt Macy	zio.c \
2719e5787d2SMatt Macy	zio_checksum.c \
2729e5787d2SMatt Macy	zio_compress.c \
2739e5787d2SMatt Macy	zio_inject.c \
2749e5787d2SMatt Macy	zle.c \
2759e5787d2SMatt Macy	zrlock.c \
2769e5787d2SMatt Macy	zthr.c \
2779e5787d2SMatt Macy	zvol.c
2789e5787d2SMatt Macy
2799e5787d2SMatt MacySRCS+=	zfs_zstd.c \
280f941f0a0SMartin Matuska	zstd.c \
281f941f0a0SMartin Matuska	zstd_sparc.c
2829e5787d2SMatt Macy
2832109a92fSPawel Jakub Dawidek.include <bsd.kmod.mk>
284741ac35cSRuslan Ermilov
2858874f305SAlan SomersCFLAGS+= -include ${SRCTOP}/sys/cddl/compat/opensolaris/sys/debug_compat.h
2860cb06bccSAlexander MotinCFLAGS+= -include ${INCDIR}/os/freebsd/spl/sys/ccompile.h
2870cb06bccSAlexander MotinCFLAGS+= -include ${SRCTOP}/sys/modules/zfs/static_ccompile.h
2888874f305SAlan Somers
289d021434aSRyan LibbyCWARNFLAGS+=	${OPENZFS_CWARNFLAGS}
290c319ea15SAndriy Gapon
2919e5787d2SMatt MacyCFLAGS.gcc+= -Wno-pointer-to-int-cast
2929e5787d2SMatt Macy
2939e5787d2SMatt MacyCFLAGS.lapi.c= -Wno-cast-qual
2949e5787d2SMatt MacyCFLAGS.lcompat.c= -Wno-cast-qual
2959e5787d2SMatt MacyCFLAGS.lobject.c= -Wno-cast-qual
2969e5787d2SMatt MacyCFLAGS.ltable.c= -Wno-cast-qual
2979e5787d2SMatt MacyCFLAGS.lvm.c= -Wno-cast-qual
2989e5787d2SMatt MacyCFLAGS.nvpair.c= -Wno-cast-qual -DHAVE_RPC_TYPES
2999e5787d2SMatt MacyCFLAGS.spl_string.c= -Wno-cast-qual
3009e5787d2SMatt MacyCFLAGS.spl_vm.c= -Wno-cast-qual
3019e5787d2SMatt MacyCFLAGS.spl_zlib.c= -Wno-cast-qual
3029e5787d2SMatt MacyCFLAGS.abd.c= -Wno-cast-qual
303408fc218SMartin MatuskaCFLAGS.arc.c= -Wno-unused-variable
3049e5787d2SMatt MacyCFLAGS.zfs_log.c= -Wno-cast-qual
305b363d3d5SMatt MacyCFLAGS.zfs_vnops_os.c= -Wno-pointer-arith
3069e5787d2SMatt MacyCFLAGS.u8_textprep.c= -Wno-cast-qual
3079e5787d2SMatt MacyCFLAGS.zfs_fletcher.c= -Wno-cast-qual -Wno-pointer-arith
3089e5787d2SMatt MacyCFLAGS.zfs_fletcher_intel.c= -Wno-cast-qual -Wno-pointer-arith
3099e5787d2SMatt MacyCFLAGS.zfs_fletcher_sse.c= -Wno-cast-qual -Wno-pointer-arith
3109e5787d2SMatt MacyCFLAGS.zfs_fletcher_avx512.c= -Wno-cast-qual -Wno-pointer-arith
3119e5787d2SMatt MacyCFLAGS.zprop_common.c= -Wno-cast-qual
3129e5787d2SMatt MacyCFLAGS.ddt.c= -Wno-cast-qual
3139e5787d2SMatt MacyCFLAGS.dmu.c= -Wno-cast-qual
3149e5787d2SMatt MacyCFLAGS.dmu_traverse.c= -Wno-cast-qual
3159e5787d2SMatt MacyCFLAGS.dsl_dir.c= -Wno-cast-qual
3169e5787d2SMatt MacyCFLAGS.dsl_deadlist.c= -Wno-cast-qual
3179e5787d2SMatt MacyCFLAGS.dsl_prop.c= -Wno-cast-qual
3189e5787d2SMatt MacyCFLAGS.fm.c= -Wno-cast-qual
3199e5787d2SMatt MacyCFLAGS.lz4.c= -Wno-cast-qual
3209e5787d2SMatt MacyCFLAGS.spa.c= -Wno-cast-qual
3219e5787d2SMatt MacyCFLAGS.spa_misc.c= -Wno-cast-qual
3229e5787d2SMatt MacyCFLAGS.sysctl_os.c= -include ${SRCTOP}/sys/modules/zfs/zfs_config.h
323b363d3d5SMatt MacyCFLAGS.vdev_draid.c= -Wno-cast-qual
3249e5787d2SMatt MacyCFLAGS.vdev_raidz.c= -Wno-cast-qual
3259e5787d2SMatt MacyCFLAGS.vdev_raidz_math.c= -Wno-cast-qual
3269e5787d2SMatt MacyCFLAGS.vdev_raidz_math_scalar.c= -Wno-cast-qual
3279e5787d2SMatt MacyCFLAGS.vdev_raidz_math_avx2.c= -Wno-cast-qual -Wno-duplicate-decl-specifier
3289e5787d2SMatt MacyCFLAGS.vdev_raidz_math_avx512f.c= -Wno-cast-qual -Wno-duplicate-decl-specifier
3299e5787d2SMatt MacyCFLAGS.vdev_raidz_math_sse2.c= -Wno-cast-qual -Wno-duplicate-decl-specifier
3309e5787d2SMatt MacyCFLAGS.zap_leaf.c= -Wno-cast-qual
3319e5787d2SMatt MacyCFLAGS.zap_micro.c= -Wno-cast-qual
3329e5787d2SMatt MacyCFLAGS.zcp.c= -Wno-cast-qual
3339e5787d2SMatt MacyCFLAGS.zfs_fm.c= -Wno-cast-qual
3349e5787d2SMatt MacyCFLAGS.zfs_ioctl.c= -Wno-cast-qual
3359e5787d2SMatt MacyCFLAGS.zil.c= -Wno-cast-qual
3369e5787d2SMatt MacyCFLAGS.zio.c= -Wno-cast-qual
3379e5787d2SMatt MacyCFLAGS.zrlock.c= -Wno-cast-qual
3389e5787d2SMatt MacyCFLAGS.zfs_zstd.c= -Wno-cast-qual -Wno-pointer-arith
3394d5d7201SRyan MoellerCFLAGS.zstd.c= -U__BMI__ -fno-tree-vectorize
3409e5787d2SMatt Macy.if ${MACHINE_CPUARCH} == "aarch64"
3419e5787d2SMatt MacyCFLAGS.zstd.c+= -include ${SRCDIR}/zstd/include/aarch64_compat.h
3429e5787d2SMatt Macy.endif
343284434f7SDimitry AndricCFLAGS.zstd.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
344