xref: /freebsd/cddl/lib/libzfs/Makefile (revision fc6ed8627222a625a700e99cdfcda19654a0c651)
1.PATH: ${ZFSTOP}/module/icp
2.PATH: ${ZFSTOP}/module/zcommon
3.PATH: ${ZFSTOP}/module/zfs
4.PATH: ${ZFSTOP}/lib/libzfs
5.PATH: ${ZFSTOP}/lib/libzfs/os/freebsd
6.PATH: ${ZFSTOP}/include
7.PATH: ${ZFSTOP}/module/zstd
8.PATH: ${ZFSTOP}/module/zstd/lib
9
10PACKAGE=	zfs
11LIB_PACKAGE=
12
13LIB=	zfs
14LIBADD= \
15	avl \
16	bsdxml \
17	crypto \
18	geom \
19	m \
20	md \
21	nvpair \
22	pthread \
23	rt \
24	umem \
25	util \
26	z \
27	zfs_core \
28	zutil
29
30INCS=	libzfs.h
31USER_C = \
32	libzfs_changelist.c \
33	libzfs_config.c \
34	libzfs_crypto.c \
35	libzfs_dataset.c \
36	libzfs_diff.c \
37	libzfs_import.c \
38	libzfs_iter.c \
39	libzfs_mnttab.c \
40	libzfs_mount.c \
41	libzfs_pool.c \
42	libzfs_sendrecv.c \
43	libzfs_share.c \
44	libzfs_share_nfs.c \
45	libzfs_status.c \
46	libzfs_util.c \
47	os/freebsd/libzfs_share_nfs.c \
48	os/freebsd/libzfs_share_smb.c
49
50# FreeBSD
51USER_C += \
52        libzfs_compat.c \
53        libzfs_zmount.c
54
55KERNEL_C = \
56	btree.c \
57        cityhash.c \
58	range_tree.c \
59        zfeature_common.c \
60        zfs_comutil.c \
61        zfs_deleg.c \
62        zfs_fletcher.c \
63        zfs_fletcher_superscalar.c \
64        zfs_fletcher_superscalar4.c \
65        zfs_namecheck.c \
66        zfs_prop.c \
67        zfs_valstr.c \
68        zpool_prop.c \
69        zprop_common.c
70
71ARCH_C =
72.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
73ARCH_C += 	zfs_fletcher_intel.c \
74		zfs_fletcher_sse.c
75CFLAGS +=  -DHAVE_TOOLCHAIN_SSE2 -DHAVE_TOOLCHAIN_SSSE3
76.endif
77.if ${MACHINE_ARCH} == "amd64"
78ARCH_C +=	zfs_fletcher_avx512.c
79CFLAGS+= -D__x86_64 -DHAVE_TOOLCHAIN_AVX2 -DHAVE_TOOLCHAIN_AVX \
80	-DHAVE_TOOLCHAIN_AVX512F
81.endif
82.if ${MACHINE_CPUARCH} == "aarch64"
83ARCH_C +=	zfs_fletcher_aarch64_neon.c
84.endif
85
86SRCS= $(USER_C) $(KERNEL_C) $(ARCH_C)
87
88WARNS?=	2
89SHLIB_MAJOR= 4
90CSTD=	c99
91CFLAGS+= -DIN_BASE
92CFLAGS+= -I${ZFSTOP}/include
93CFLAGS+= -I${ZFSTOP}/include/os/freebsd
94CFLAGS+= -I${ZFSTOP}/lib/libspl/include
95CFLAGS+= -I${ZFSTOP}/lib/libspl/include/os/freebsd
96CFLAGS+= -I${ZFSTOP}/lib/libshare
97CFLAGS+= -I${ZFSTOP}/lib/libzpool/include
98CFLAGS+= -I${SRCTOP}/sys/contrib/ck/include
99CFLAGS+= -I${SRCTOP}/sys
100CFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/include
101CFLAGS+= -I${ZFSTOP}/module/icp/include
102CFLAGS+= -include ${ZFSTOP}/include/sys/simd_config.h
103CFLAGS+= -include ${ZFSTOP}/include/os/freebsd/spl/sys/ccompile.h
104CFLAGS+= -DHAVE_ISSETUGID
105CFLAGS+= -DHAVE_EXECVPE
106CFLAGS+= -include ${SRCTOP}/sys/modules/zfs/zfs_config.h
107CFLAGS+= -DSYSCONFDIR=\"/etc\"
108CFLAGS+= -DPKGDATADIR=\"/usr/share/zfs\"
109CFLAGS+= -DZFSEXECDIR=\"${LIBEXECDIR}/zfs\"
110
111CFLAGS.btree.c+=-fvisibility=hidden
112CFLAGS.range_tree.c+= -fvisibility=hidden
113
114.include <bsd.lib.mk>
115