xref: /illumos-gate/usr/src/lib/libzpool/Makefile.com (revision d17be682a2c70b4505d43c830bbd2603da11918d)
1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License (the "License").
6# You may not use this file except in compliance with the License.
7#
8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9# or http://www.opensolaris.org/os/licensing.
10# See the License for the specific language governing permissions
11# and limitations under the License.
12#
13# When distributing Covered Code, include this CDDL HEADER in each
14# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15# If applicable, add the following below this CDDL HEADER, with the
16# fields enclosed by brackets "[]" replaced with your own identifying
17# information: Portions Copyright [yyyy] [name of copyright owner]
18#
19# CDDL HEADER END
20#
21#
22# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
23# Copyright (c) 2013, 2016 by Delphix. All rights reserved.
24# Copyright 2020 Joyent, Inc.
25# Copyright 2023 OmniOS Community Edition (OmniOSce) Association.
26#
27
28LIBRARY= libzpool.a
29VERS= .1
30
31# include the list of ZFS sources
32include ../../../uts/common/Makefile.files
33KERNEL_OBJS = kernel.o util.o
34DTRACE_OBJS = zfs.o
35
36OBJECTS=$(LUA_OBJS) $(ZFS_COMMON_OBJS) $(ZFS_SHARED_OBJS) $(KERNEL_OBJS)
37
38# include library definitions
39include ../../Makefile.lib
40
41LUA_SRCS=		$(LUA_OBJS:%.o=../../../uts/common/fs/zfs/lua/%.c)
42ZFS_COMMON_SRCS=	$(ZFS_COMMON_OBJS:%.o=../../../uts/common/fs/zfs/%.c)
43ZFS_SHARED_SRCS=	$(ZFS_SHARED_OBJS:%.o=../../../common/zfs/%.c)
44KERNEL_SRCS=		$(KERNEL_OBJS:%.o=../common/%.c)
45
46SRCS=$(LUA_SRCS) $(ZFS_COMMON_SRCS) $(ZFS_SHARED_SRCS) $(KERNEL_SRCS)
47SRCDIR=		../common
48
49# There should be a mapfile here
50MAPFILES =
51
52LIBS +=		$(DYNLIB)
53
54INCS += -I../common
55INCS += -I../../../uts/common/fs/zfs
56INCS += -I../../../uts/common/fs/zfs/lua
57INCS += -I../../../common/zfs
58INCS += -I../../../common
59INCS += -I../../libzutil/common
60
61
62CLEANFILES += ../common/zfs.h
63CLEANFILES += $(EXTPICS)
64
65$(LIBS): ../common/zfs.h
66
67CSTD=	$(CSTD_GNU99)
68
69CFLAGS +=	$(CCGDEBUG) $(CCVERBOSE)
70CFLAGS64 +=	$(CCGDEBUG) $(CCVERBOSE)
71LDLIBS +=	-lcmdutils -lumem -lavl -lnvpair -lz -lc -lmd \
72		-lfakekernel -lzutil
73NATIVE_LIBS +=	libz.so
74CPPFLAGS.first =	-I$(SRC)/lib/libfakekernel/common
75# The in-gate lz4 headers must take precedence over any that may appear in an
76# adjunct.
77CPPFLAGS.first +=	-I$(SRC)/common/lz4
78CPPFLAGS +=	$(INCS)	-DDEBUG -D_FAKE_KERNEL
79
80CERRWARN +=	-_gcc=-Wno-parentheses
81CERRWARN +=	-_gcc=-Wno-switch
82CERRWARN +=	-_gcc=-Wno-type-limits
83CERRWARN +=	-_gcc=-Wno-unused-variable
84CERRWARN +=	-_gcc=-Wno-empty-body
85CERRWARN +=	-_gcc=-Wno-unused-function
86CERRWARN +=	-_gcc=-Wno-unused-label
87
88# not linted
89SMATCH=off
90
91.KEEP_STATE:
92
93all: $(LIBS)
94
95include ../../Makefile.targ
96
97EXTPICS= $(DTRACE_OBJS:%=pics/%)
98
99pics/%.o: ../../../uts/common/fs/zfs/%.c ../common/zfs.h
100	$(COMPILE.c) -o $@ $<
101	$(POST_PROCESS_O)
102
103pics/%.o: ../../../uts/common/fs/zfs/lua/%.c
104	$(COMPILE.c) -o $@ $<
105	$(POST_PROCESS_O)
106
107pics/%.o: ../../../common/zfs/%.c ../common/zfs.h
108	$(COMPILE.c) -o $@ $<
109	$(POST_PROCESS_O)
110
111pics/%.o: ../../../common/lz4/%.c ../common/zfs.h
112	$(COMPILE.c) -o $@ $<
113	$(POST_PROCESS_O)
114
115pics/%.o: ../common/%.d $(PICS)
116	$(COMPILE.d) -C -s $< -o $@ $(PICS)
117	$(POST_PROCESS_O)
118
119../common/%.h: ../common/%.d
120	$(DTRACE) -xnolibs -h -s $< -o $@
121