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