1# $FreeBSD$
2
3.include "${.CURDIR}/../../../sys/cddl/contrib/opensolaris/uts/common/Makefile.files"
4
5# ZFS_COMMON_SRCS
6.PATH: ${.CURDIR}/../../../sys/cddl/contrib/opensolaris/uts/common/fs/zfs
7# ZFS_SHARED_SRCS
8.PATH: ${.CURDIR}/../../../sys/cddl/contrib/opensolaris/common/zfs
9# KERNEL_SRCS
10.PATH: ${.CURDIR}/../../../cddl/contrib/opensolaris/lib/libzpool/common
11# LIST_SRCS
12.PATH: ${.CURDIR}/../../../sys/cddl/contrib/opensolaris/uts/common/os
13# ATOMIC_SRCS
14.if exists(${.CURDIR}/../../../sys/cddl/contrib/opensolaris/common/atomic/${MACHINE_ARCH}/opensolaris_atomic.S)
15.PATH: ${.CURDIR}/../../../sys/cddl/contrib/opensolaris/common/atomic/${MACHINE_ARCH}
16ATOMIC_SRCS=	opensolaris_atomic.S
17.if ${MACHINE_ARCH} != "ia64" && ${MACHINE_ARCH} != "sparc64"
18ACFLAGS+=	-Wa,--noexecstack
19.endif
20.else
21.PATH: ${.CURDIR}/../../../sys/cddl/compat/opensolaris/kern
22ATOMIC_SRCS=	opensolaris_atomic.c
23.endif
24# UNICODE_SRCS
25.PATH: ${.CURDIR}/../../../sys/cddl/contrib/opensolaris/common/unicode
26
27LIB=		zpool
28
29ZFS_COMMON_SRCS= ${ZFS_COMMON_OBJS:C/.o$/.c/} vdev_file.c trim_map.c
30ZFS_SHARED_SRCS= ${ZFS_SHARED_OBJS:C/.o$/.c/}
31KERNEL_SRCS=	kernel.c taskq.c util.c
32LIST_SRCS=	list.c
33UNICODE_SRCS=	u8_textprep.c
34
35SRCS=		${ZFS_COMMON_SRCS} ${ZFS_SHARED_SRCS} \
36		${KERNEL_SRCS} ${LIST_SRCS} ${ATOMIC_SRCS} \
37		${UNICODE_SRCS}
38
39WARNS?=		0
40CFLAGS+=	-I${.CURDIR}/../../../sys/cddl/compat/opensolaris
41CFLAGS+=	-I${.CURDIR}/../../compat/opensolaris/include
42CFLAGS+=	-I${.CURDIR}/../../compat/opensolaris/lib/libumem
43CFLAGS+=	-I${.CURDIR}/../../contrib/opensolaris/lib/libzpool/common
44CFLAGS+=	-I${.CURDIR}/../../../sys/cddl/contrib/opensolaris/uts/common/sys
45CFLAGS+=	-I${.CURDIR}/../../../sys/cddl/contrib/opensolaris/uts/common/fs/zfs
46CFLAGS+=	-I${.CURDIR}/../../../sys/cddl/contrib/opensolaris/common/zfs
47CFLAGS+=	-I${.CURDIR}/../../../sys/cddl/contrib/opensolaris/uts/common
48CFLAGS+=	-I${.CURDIR}/../../contrib/opensolaris/head
49CFLAGS+=	-I${.CURDIR}/../../lib/libumem
50CFLAGS+=	-I${.CURDIR}/../../contrib/opensolaris/lib/libnvpair
51# XXX: pthread doesn't have mutex_owned() equivalent, so we need to look
52#      into libthr private structures. That's sooo evil, but it's only for
53#      ZFS debugging tools needs.
54CFLAGS+=	-DWANTS_MUTEX_OWNED
55CFLAGS+=	-I${.CURDIR}/../../../lib/libpthread/thread
56CFLAGS+=	-I${.CURDIR}/../../../lib/libpthread/sys
57CFLAGS+=	-I${.CURDIR}/../../../lib/libthr/arch/${MACHINE_CPUARCH}/include
58
59DPADD=		${LIBMD} ${LIBPTHREAD} ${LIBZ}
60LDADD=		-lmd -lpthread -lz
61
62# atomic.S doesn't like profiling.
63NO_PROFILE=
64
65CSTD=	c99
66
67# Since there are many asserts in this library, it makes no sense to compile
68# it without debugging.
69
70CFLAGS+=	-g -DDEBUG=1
71
72.include <bsd.lib.mk>
73