1b819cea2SGordon Ross#
2b819cea2SGordon Ross# CDDL HEADER START
3b819cea2SGordon Ross#
4b819cea2SGordon Ross# The contents of this file are subject to the terms of the
5b819cea2SGordon Ross# Common Development and Distribution License (the "License").
6b819cea2SGordon Ross# You may not use this file except in compliance with the License.
7b819cea2SGordon Ross#
8b819cea2SGordon Ross# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9b819cea2SGordon Ross# or http://www.opensolaris.org/os/licensing.
10b819cea2SGordon Ross# See the License for the specific language governing permissions
11b819cea2SGordon Ross# and limitations under the License.
12b819cea2SGordon Ross#
13b819cea2SGordon Ross# When distributing Covered Code, include this CDDL HEADER in each
14b819cea2SGordon Ross# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15b819cea2SGordon Ross# If applicable, add the following below this CDDL HEADER, with the
16b819cea2SGordon Ross# fields enclosed by brackets "[]" replaced with your own identifying
17b819cea2SGordon Ross# information: Portions Copyright [yyyy] [name of copyright owner]
18b819cea2SGordon Ross#
19b819cea2SGordon Ross# CDDL HEADER END
20b819cea2SGordon Ross#
21b819cea2SGordon Ross#
22b819cea2SGordon Ross# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
23b819cea2SGordon Ross# Use is subject to license terms.
24b819cea2SGordon Ross#
25*f82c7503SGordon Ross# Copyright 2014-2021 Tintri by DDN, Inc. All rights reserved.
26b819cea2SGordon Ross#
2705ede3dbSJohn Levon# Copyright (c) 2018, Joyent, Inc.
284e065a9fSAlexander Stetsenko#
294e065a9fSAlexander Stetsenko# Copyright 2020 RackTop Systems, Inc.
30b819cea2SGordon Ross
31b819cea2SGordon RossLIBRARY =	libfksmbsrv.a
32b819cea2SGordon RossVERS =		.1
33b819cea2SGordon Ross
34b819cea2SGordon RossOBJS_LOCAL = \
35b819cea2SGordon Ross		fksmb_cred.o \
361160dcf7SMatt Barden		fksmb_encrypt_pkcs.o \
37b819cea2SGordon Ross		fksmb_fem.o \
38b819cea2SGordon Ross		fksmb_idmap.o \
39b819cea2SGordon Ross		fksmb_init.o \
40b819cea2SGordon Ross		fksmb_kdoor.o \
414e065a9fSAlexander Stetsenko		fksmb_preauth_pkcs.o \
42b819cea2SGordon Ross		fksmb_sign_pkcs.o \
43*f82c7503SGordon Ross		fake_ksocket.o \
44b819cea2SGordon Ross		fake_lookup.o \
45b819cea2SGordon Ross		fake_nblk.o \
46*f82c7503SGordon Ross		fake_stream.o \
47b819cea2SGordon Ross		fake_vfs.o \
48b819cea2SGordon Ross		fake_vnode.o \
49b819cea2SGordon Ross		fake_vop.o \
50b819cea2SGordon Ross		fake_xattr.o \
51b819cea2SGordon Ross		reparse.o \
52b819cea2SGordon Ross		vncache.o
53b819cea2SGordon Ross
54b819cea2SGordon Ross# See also: $SRC/uts/common/Makefile.files
55b819cea2SGordon Ross# NB: Intentionally ommitted, compared w/ the above:
56b819cea2SGordon Ross#   smb_cred, smb_fem, smb_idmap, smb_init, smb_kdoor
57b819cea2SGordon Ross#
58b819cea2SGordon RossOBJS_FS_SMBSRV = \
59b819cea2SGordon Ross		smb_acl.o				\
60b819cea2SGordon Ross		smb_alloc.o				\
6112b65585SGordon Ross		smb_authenticate.o			\
62b819cea2SGordon Ross		smb_close.o				\
6394047d49SGordon Ross		smb_cmn_oplock.o			\
64a90cf9f2SGordon Ross		smb_cmn_rename.o			\
65a90cf9f2SGordon Ross		smb_cmn_setfile.o			\
66b819cea2SGordon Ross		smb_common_open.o			\
67b819cea2SGordon Ross		smb_common_transact.o			\
68b819cea2SGordon Ross		smb_create.o				\
69b819cea2SGordon Ross		smb_delete.o				\
70a90cf9f2SGordon Ross		smb_dfs.o				\
71b819cea2SGordon Ross		smb_directory.o				\
72b819cea2SGordon Ross		smb_dispatch.o				\
73b819cea2SGordon Ross		smb_echo.o				\
74a90cf9f2SGordon Ross		smb_errno.o				\
75b819cea2SGordon Ross		smb_find.o				\
76b819cea2SGordon Ross		smb_flush.o				\
77b819cea2SGordon Ross		smb_fsinfo.o				\
78b819cea2SGordon Ross		smb_fsops.o				\
79b819cea2SGordon Ross		smb_kshare.o				\
80b819cea2SGordon Ross		smb_kutil.o				\
81b819cea2SGordon Ross		smb_lock.o				\
82b819cea2SGordon Ross		smb_lock_byte_range.o			\
83b819cea2SGordon Ross		smb_locking_andx.o			\
84b819cea2SGordon Ross		smb_logoff_andx.o			\
85b819cea2SGordon Ross		smb_mangle_name.o			\
86b819cea2SGordon Ross		smb_mbuf_marshaling.o			\
87b819cea2SGordon Ross		smb_mbuf_util.o				\
88b819cea2SGordon Ross		smb_negotiate.o				\
89b819cea2SGordon Ross		smb_net.o				\
90b819cea2SGordon Ross		smb_node.o				\
91a90cf9f2SGordon Ross		smb_notify.o				\
92b819cea2SGordon Ross		smb_nt_cancel.o				\
93b819cea2SGordon Ross		smb_nt_create_andx.o			\
94b819cea2SGordon Ross		smb_nt_transact_create.o		\
95b819cea2SGordon Ross		smb_nt_transact_ioctl.o			\
96b819cea2SGordon Ross		smb_nt_transact_notify_change.o		\
97b819cea2SGordon Ross		smb_nt_transact_quota.o			\
98b819cea2SGordon Ross		smb_nt_transact_security.o		\
99b819cea2SGordon Ross		smb_odir.o				\
100b819cea2SGordon Ross		smb_ofile.o				\
101b819cea2SGordon Ross		smb_open_andx.o				\
102b819cea2SGordon Ross		smb_opipe.o				\
103b819cea2SGordon Ross		smb_oplock.o				\
104b819cea2SGordon Ross		smb_pathname.o				\
105b819cea2SGordon Ross		smb_print.o				\
106b819cea2SGordon Ross		smb_process_exit.o			\
107b819cea2SGordon Ross		smb_query_fileinfo.o			\
108a90cf9f2SGordon Ross		smb_quota.o				\
109b819cea2SGordon Ross		smb_read.o				\
110b819cea2SGordon Ross		smb_rename.o				\
111b819cea2SGordon Ross		smb_sd.o				\
112b819cea2SGordon Ross		smb_seek.o				\
113b819cea2SGordon Ross		smb_server.o				\
114b819cea2SGordon Ross		smb_session.o				\
115b819cea2SGordon Ross		smb_session_setup_andx.o		\
116b819cea2SGordon Ross		smb_set_fileinfo.o			\
117b819cea2SGordon Ross		smb_signing.o				\
11894047d49SGordon Ross		smb_srv_oplock.o			\
119b819cea2SGordon Ross		smb_thread.o				\
120b819cea2SGordon Ross		smb_tree.o				\
121b819cea2SGordon Ross		smb_trans2_create_directory.o		\
122b819cea2SGordon Ross		smb_trans2_dfs.o			\
123b819cea2SGordon Ross		smb_trans2_find.o			\
124b819cea2SGordon Ross		smb_tree_connect.o			\
125b819cea2SGordon Ross		smb_unlock_byte_range.o			\
126b819cea2SGordon Ross		smb_user.o				\
127b819cea2SGordon Ross		smb_vops.o				\
128b819cea2SGordon Ross		smb_vss.o				\
129a90cf9f2SGordon Ross		smb_write.o				\
130a90cf9f2SGordon Ross		\
131d082c877SGordon Ross		smb2_aapl.o \
132a90cf9f2SGordon Ross		smb2_dispatch.o \
133811599a4SMatt Barden		smb2_durable.o \
134a90cf9f2SGordon Ross		smb2_cancel.o \
135a90cf9f2SGordon Ross		smb2_change_notify.o \
136a90cf9f2SGordon Ross		smb2_close.o \
137a90cf9f2SGordon Ross		smb2_create.o \
138a90cf9f2SGordon Ross		smb2_echo.o \
139a90cf9f2SGordon Ross		smb2_flush.o \
14055f0a249SGordon Ross		smb2_fsctl_copychunk.o \
14155f0a249SGordon Ross		smb2_fsctl_fs.o \
1428d499c80SGordon Ross		smb2_fsctl_odx.o \
14355f0a249SGordon Ross		smb2_fsctl_sparse.o \
144a90cf9f2SGordon Ross		smb2_ioctl.o \
14594047d49SGordon Ross		smb2_lease.o \
146a90cf9f2SGordon Ross		smb2_lock.o \
147a90cf9f2SGordon Ross		smb2_logoff.o \
148a90cf9f2SGordon Ross		smb2_negotiate.o \
149a90cf9f2SGordon Ross		smb2_ofile.o \
150a90cf9f2SGordon Ross		smb2_oplock.o \
151a90cf9f2SGordon Ross		smb2_qinfo_file.o \
152a90cf9f2SGordon Ross		smb2_qinfo_fs.o \
153a90cf9f2SGordon Ross		smb2_qinfo_sec.o \
154a90cf9f2SGordon Ross		smb2_qinfo_quota.o \
155a90cf9f2SGordon Ross		smb2_query_dir.o \
156a90cf9f2SGordon Ross		smb2_query_info.o \
157a90cf9f2SGordon Ross		smb2_read.o \
158a90cf9f2SGordon Ross		smb2_session_setup.o \
159a90cf9f2SGordon Ross		smb2_set_info.o \
160a90cf9f2SGordon Ross		smb2_setinfo_file.o \
161a90cf9f2SGordon Ross		smb2_setinfo_fs.o \
162a90cf9f2SGordon Ross		smb2_setinfo_quota.o \
163a90cf9f2SGordon Ross		smb2_setinfo_sec.o \
164a90cf9f2SGordon Ross		smb2_signing.o \
165a90cf9f2SGordon Ross		smb2_tree_connect.o \
166a90cf9f2SGordon Ross		smb2_tree_disconn.o \
1671160dcf7SMatt Barden		smb2_write.o \
1681160dcf7SMatt Barden	        \
1694e065a9fSAlexander Stetsenko	        smb3_kdf.o \
1701160dcf7SMatt Barden	        smb3_encrypt.o
171b819cea2SGordon Ross
172b819cea2SGordon Ross# Can't just link with -lsmb because of user vs kernel API
173b819cea2SGordon Ross# i.e. can't call free with mem from kmem_alloc, which is
174b819cea2SGordon Ross# what happens if we just link with -lsmb
175b819cea2SGordon RossOBJS_CMN_SMBSRV = \
1761160dcf7SMatt Barden		smb_cfg_util.o \
177b819cea2SGordon Ross		smb_inet.o \
178b819cea2SGordon Ross		smb_match.o \
179b819cea2SGordon Ross		smb_msgbuf.o \
180b819cea2SGordon Ross		smb_native.o \
181b819cea2SGordon Ross		smb_netbios_util.o \
182b819cea2SGordon Ross		smb_oem.o \
183b819cea2SGordon Ross		smb_sid.o \
184b819cea2SGordon Ross		smb_string.o \
185b819cea2SGordon Ross		smb_token.o \
186b819cea2SGordon Ross		smb_token_xdr.o \
187b819cea2SGordon Ross		smb_utf8.o \
188b819cea2SGordon Ross		smb_xdr.o
189b819cea2SGordon Ross
190b819cea2SGordon RossOBJS_MISC = \
191b819cea2SGordon Ross		acl_common.o \
192b819cea2SGordon Ross		pathname.o \
193b819cea2SGordon Ross		refstr.o \
194a90cf9f2SGordon Ross		smb_status2winerr.o \
195b819cea2SGordon Ross		xattr_common.o
196b819cea2SGordon Ross
19793bc28dbSGordon Ross# This one can't be in OBJECTS, as it has to depend on
19893bc28dbSGordon Ross# all of those for the COMPILE.d rule (which processes
19993bc28dbSGordon Ross# all those objects collecting probe instances).
20093bc28dbSGordon RossDTRACE_OBJS = fksmb_dt.o
20193bc28dbSGordon Ross
202b819cea2SGordon RossOBJECTS = \
203b819cea2SGordon Ross	$(OBJS_LOCAL) \
204b819cea2SGordon Ross	$(OBJS_FS_SMBSRV) \
205b819cea2SGordon Ross	$(OBJS_CMN_SMBSRV) \
206b819cea2SGordon Ross	$(OBJS_MISC)
207b819cea2SGordon Ross
208b819cea2SGordon Rossinclude ../../../Makefile.lib
209b819cea2SGordon Rossinclude ../../Makefile.lib
210b819cea2SGordon Ross
211b819cea2SGordon Ross# Force SOURCEDEBUG
212299e09deSRichard LoweCSOURCEDEBUGFLAGS	= $(CCGDEBUG)
213299e09deSRichard LoweCCSOURCEDEBUGFLAGS	= $(CCGDEBUG)
214299e09deSRichard LoweSTRIP_STABS	= :
215b819cea2SGordon Ross
216b819cea2SGordon Ross
217b819cea2SGordon Ross# Note: need our sys includes _before_ ENVCPPFLAGS, proto etc.
2188d94f651SGordon Ross# Also, like Makefile.uts, reset CPPFLAGS
219b819cea2SGordon RossCPPFLAGS.first += -I../../../libfakekernel/common
220b819cea2SGordon RossCPPFLAGS.first += -I../common
2218d94f651SGordon RossCPPFLAGS	= $(CPPFLAGS.first)
222b819cea2SGordon Ross
223b819cea2SGordon RossINCS += -I$(SRC)/uts/common
224b819cea2SGordon RossINCS += -I$(SRC)/common/smbsrv
225b819cea2SGordon RossINCS += -I$(SRC)/common
226b819cea2SGordon Ross
227b819cea2SGordon RossLDLIBS +=	$(MACH_LDLIBS)
228b819cea2SGordon RossLDLIBS +=	-lfakekernel -lidmap -lcmdutils
229b819cea2SGordon RossLDLIBS +=	-lavl -lnvpair -lnsl -lpkcs11 -lreparse -lc
230b819cea2SGordon Ross
231b819cea2SGordon RossCPPFLAGS += $(INCS) -D_REENTRANT -D_FAKE_KERNEL
232b819cea2SGordon RossCPPFLAGS += -D_FILE_OFFSET_BITS=64
233b819cea2SGordon Ross# Always want DEBUG here
234b819cea2SGordon RossCPPFLAGS += -DDEBUG
235b819cea2SGordon Ross
236b819cea2SGordon RossCERRWARN += -_gcc=-Wno-switch
237b819cea2SGordon Ross
23805ede3dbSJohn Levon# not linted
23905ede3dbSJohn LevonSMATCH=off
24005ede3dbSJohn Levon
241b819cea2SGordon RossSRCS=   $(OBJS_LOCAL:%.o=$(SRCDIR)/%.c) \
242b819cea2SGordon Ross	$(OBJS_FS_SMBSRV:%.o=$(SRC)/uts/common/fs/smbsrv/%.c) \
243b819cea2SGordon Ross	$(OBJS_CMN_SMBSRV:%.o=$(SRC)/common/smbsrv/%.c)
244b819cea2SGordon Ross
245b819cea2SGordon Rossall:
246b819cea2SGordon Ross
247b819cea2SGordon Rosspics/%.o:	$(SRC)/uts/common/fs/smbsrv/%.c
248b819cea2SGordon Ross	$(COMPILE.c) -o $@ $<
249b819cea2SGordon Ross	$(POST_PROCESS_O)
250b819cea2SGordon Ross
251b819cea2SGordon Rosspics/acl_common.o:	   $(SRC)/common/acl/acl_common.c
252b819cea2SGordon Ross	$(COMPILE.c) -o $@ $(SRC)/common/acl/acl_common.c
253b819cea2SGordon Ross	$(POST_PROCESS_O)
254b819cea2SGordon Ross
255b819cea2SGordon Rosspics/pathname.o:	   $(SRC)/uts/common/fs/pathname.c
256b819cea2SGordon Ross	$(COMPILE.c) -o $@ $(SRC)/uts/common/fs/pathname.c
257b819cea2SGordon Ross	$(POST_PROCESS_O)
258b819cea2SGordon Ross
259b819cea2SGordon Rosspics/refstr.o:		   $(SRC)/uts/common/os/refstr.c
260b819cea2SGordon Ross	$(COMPILE.c) -o $@ $(SRC)/uts/common/os/refstr.c
261b819cea2SGordon Ross	$(POST_PROCESS_O)
262b819cea2SGordon Ross
26393bc28dbSGordon Rosspics/smb_status2winerr.o:  $(SRC)/common/smbclnt/smb_status2winerr.c
26493bc28dbSGordon Ross	$(COMPILE.c) -o $@ $(SRC)/common/smbclnt/smb_status2winerr.c
26593bc28dbSGordon Ross	$(POST_PROCESS_O)
26693bc28dbSGordon Ross
267b819cea2SGordon Rosspics/xattr_common.o:	   $(SRC)/common/xattr/xattr_common.c
268b819cea2SGordon Ross	$(COMPILE.c) -o $@ $(SRC)/common/xattr/xattr_common.c
269b819cea2SGordon Ross	$(POST_PROCESS_O)
270b819cea2SGordon Ross
271b819cea2SGordon Ross# Makefile.targ has rule for $(SRC)/common/smbsrv/%.c
272b819cea2SGordon Ross
273b819cea2SGordon Ross.KEEP_STATE:
274b819cea2SGordon Ross
275b819cea2SGordon Rossinclude ../../Makefile.targ
276b819cea2SGordon Rossinclude ../../../Makefile.targ
27793bc28dbSGordon Ross
27893bc28dbSGordon RossEXTPICS= $(DTRACE_OBJS:%=pics/%)
27993bc28dbSGordon RossCLEANFILES += $(EXTPICS)
28093bc28dbSGordon Ross
28193bc28dbSGordon Ross$(OBJS) $(PICS) : ../common/fksmb_dt.h
28293bc28dbSGordon Ross
28393bc28dbSGordon Rosspics/fksmb_dt.o: ../common/fksmb_dt.d $(PICS)
28493bc28dbSGordon Ross	$(COMPILE.d) -C -s ../common/fksmb_dt.d -o $@ $(PICS)
28593bc28dbSGordon Ross	$(POST_PROCESS_O)
286