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 2008 Sun Microsystems, Inc.  All rights reserved.
  23 # Use is subject to license terms.
  24 #
  25 # Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
  26 #
  27 # Copyright (c) 2018, Joyent, Inc.
  28 
  29 LIBRARY =       libfksmbsrv.a
  30 VERS =          .1
  31 
  32 OBJS_LOCAL = \
  33                 fksmb_cred.o \
  34                 fksmb_dt.o \
  35                 fksmb_fem.o \
  36                 fksmb_idmap.o \
  37                 fksmb_init.o \
  38                 fksmb_kdoor.o \
  39                 fksmb_sign_pkcs.o \
  40                 fake_lookup.o \
  41                 fake_nblk.o \
  42                 fake_vfs.o \
  43                 fake_vnode.o \
  44                 fake_vop.o \
  45                 fake_xattr.o \
  46                 reparse.o \
  47                 vncache.o
  48 
  49 # See also: $SRC/uts/common/Makefile.files
  50 # NB: Intentionally ommitted, compared w/ the above:
  51 #   smb_cred, smb_fem, smb_idmap, smb_init, smb_kdoor
  52 #
  53 OBJS_FS_SMBSRV = \
  54                 smb_acl.o                               \
  55                 smb_alloc.o                             \
  56                 smb_authenticate.o                      \
  57                 smb_close.o                             \
  58                 smb_cmn_rename.o                        \
  59                 smb_cmn_setfile.o                       \
  60                 smb_common_open.o                       \
  61                 smb_common_transact.o                   \
  62                 smb_create.o                            \
  63                 smb_delete.o                            \
  64                 smb_dfs.o                               \
  65                 smb_directory.o                         \
  66                 smb_dispatch.o                          \
  67                 smb_echo.o                              \
  68                 smb_errno.o                             \
  69                 smb_find.o                              \
  70                 smb_flush.o                             \
  71                 smb_fsinfo.o                            \
  72                 smb_fsops.o                             \
  73                 smb_kshare.o                            \
  74                 smb_kutil.o                             \
  75                 smb_lock.o                              \
  76                 smb_lock_byte_range.o                   \
  77                 smb_locking_andx.o                      \
  78                 smb_logoff_andx.o                       \
  79                 smb_mangle_name.o                       \
  80                 smb_mbuf_marshaling.o                   \
  81                 smb_mbuf_util.o                         \
  82                 smb_negotiate.o                         \
  83                 smb_net.o                               \
  84                 smb_node.o                              \
  85                 smb_notify.o                            \
  86                 smb_nt_cancel.o                         \
  87                 smb_nt_create_andx.o                    \
  88                 smb_nt_transact_create.o                \
  89                 smb_nt_transact_ioctl.o                 \
  90                 smb_nt_transact_notify_change.o         \
  91                 smb_nt_transact_quota.o                 \
  92                 smb_nt_transact_security.o              \
  93                 smb_odir.o                              \
  94                 smb_ofile.o                             \
  95                 smb_open_andx.o                         \
  96                 smb_opipe.o                             \
  97                 smb_oplock.o                            \
  98                 smb_pathname.o                          \
  99                 smb_print.o                             \
 100                 smb_process_exit.o                      \
 101                 smb_query_fileinfo.o                    \
 102                 smb_quota.o                             \
 103                 smb_read.o                              \
 104                 smb_rename.o                            \
 105                 smb_sd.o                                \
 106                 smb_seek.o                              \
 107                 smb_server.o                            \
 108                 smb_session.o                           \
 109                 smb_session_setup_andx.o                \
 110                 smb_set_fileinfo.o                      \
 111                 smb_signing.o                           \
 112                 smb_thread.o                            \
 113                 smb_tree.o                              \
 114                 smb_trans2_create_directory.o           \
 115                 smb_trans2_dfs.o                        \
 116                 smb_trans2_find.o                       \
 117                 smb_tree_connect.o                      \
 118                 smb_unlock_byte_range.o                 \
 119                 smb_user.o                              \
 120                 smb_vfs.o                               \
 121                 smb_vops.o                              \
 122                 smb_vss.o                               \
 123                 smb_write.o                             \
 124                 \
 125                 smb2_dispatch.o \
 126                 smb2_cancel.o \
 127                 smb2_change_notify.o \
 128                 smb2_close.o \
 129                 smb2_create.o \
 130                 smb2_echo.o \
 131                 smb2_flush.o \
 132                 smb2_ioctl.o \
 133                 smb2_lock.o \
 134                 smb2_logoff.o \
 135                 smb2_negotiate.o \
 136                 smb2_ofile.o \
 137                 smb2_oplock.o \
 138                 smb2_qinfo_file.o \
 139                 smb2_qinfo_fs.o \
 140                 smb2_qinfo_sec.o \
 141                 smb2_qinfo_quota.o \
 142                 smb2_query_dir.o \
 143                 smb2_query_info.o \
 144                 smb2_read.o \
 145                 smb2_session_setup.o \
 146                 smb2_set_info.o \
 147                 smb2_setinfo_file.o \
 148                 smb2_setinfo_fs.o \
 149                 smb2_setinfo_quota.o \
 150                 smb2_setinfo_sec.o \
 151                 smb2_signing.o \
 152                 smb2_tree_connect.o \
 153                 smb2_tree_disconn.o \
 154                 smb2_write.o
 155 
 156 # Can't just link with -lsmb because of user vs kernel API
 157 # i.e. can't call free with mem from kmem_alloc, which is
 158 # what happens if we just link with -lsmb
 159 OBJS_CMN_SMBSRV = \
 160                 smb_inet.o \
 161                 smb_match.o \
 162                 smb_msgbuf.o \
 163                 smb_native.o \
 164                 smb_netbios_util.o \
 165                 smb_oem.o \
 166                 smb_sid.o \
 167                 smb_string.o \
 168                 smb_token.o \
 169                 smb_token_xdr.o \
 170                 smb_utf8.o \
 171                 smb_xdr.o
 172 
 173 OBJS_MISC = \
 174                 acl_common.o \
 175                 pathname.o \
 176                 refstr.o \
 177                 smb_status2winerr.o \
 178                 xattr_common.o
 179 
 180 OBJECTS = \
 181         $(OBJS_LOCAL) \
 182         $(OBJS_FS_SMBSRV) \
 183         $(OBJS_CMN_SMBSRV) \
 184         $(OBJS_MISC)
 185 
 186 include ../../../Makefile.lib
 187 include ../../Makefile.lib
 188 
 189 # Force SOURCEDEBUG
 190 CSOURCEDEBUGFLAGS       = -g
 191 CCSOURCEDEBUGFLAGS      = -g
 192 STRIP_STABS     = :
 193 
 194 
 195 # Note: need our sys includes _before_ ENVCPPFLAGS, proto etc.
 196 CPPFLAGS.first += -I../../../libfakekernel/common
 197 CPPFLAGS.first += -I../common
 198 
 199 INCS += -I$(SRC)/uts/common
 200 INCS += -I$(SRC)/common/smbsrv
 201 INCS += -I$(SRC)/common
 202 
 203 LINTCHECKFLAGS += -erroff=E_INCONS_ARG_DECL2
 204 LINTCHECKFLAGS += -erroff=E_INCONS_VAL_TYPE_DECL2
 205 LINTCHECKFLAGS += -erroff=E_INCONS_VAL_TYPE_USED2
 206 
 207 LDLIBS +=       $(MACH_LDLIBS)
 208 LDLIBS +=       -lfakekernel -lidmap -lcmdutils
 209 LDLIBS +=       -lavl -lnvpair -lnsl -lpkcs11 -lreparse -lc
 210 
 211 CPPFLAGS += $(INCS) -D_REENTRANT -D_FAKE_KERNEL
 212 CPPFLAGS += -D_FILE_OFFSET_BITS=64
 213 # Always want DEBUG here
 214 CPPFLAGS += -DDEBUG
 215 
 216 CERRWARN += -_gcc=-Wno-parentheses
 217 CERRWARN += -_gcc=-Wno-switch
 218 
 219 # not linted
 220 SMATCH=off
 221 
 222 SRCS=   $(OBJS_LOCAL:%.o=$(SRCDIR)/%.c) \
 223         $(OBJS_FS_SMBSRV:%.o=$(SRC)/uts/common/fs/smbsrv/%.c) \
 224         $(OBJS_CMN_SMBSRV:%.o=$(SRC)/common/smbsrv/%.c)
 225 
 226 all:
 227 
 228 pics/%.o:       $(SRC)/uts/common/fs/smbsrv/%.c
 229         $(COMPILE.c) -o $@ $<
 230         $(POST_PROCESS_O)
 231 
 232 pics/acl_common.o:         $(SRC)/common/acl/acl_common.c
 233         $(COMPILE.c) -o $@ $(SRC)/common/acl/acl_common.c
 234         $(POST_PROCESS_O)
 235 
 236 pics/smb_status2winerr.o:  $(SRC)/common/smbclnt/smb_status2winerr.c
 237         $(COMPILE.c) -o $@ $(SRC)/common/smbclnt/smb_status2winerr.c
 238         $(POST_PROCESS_O)
 239 
 240 pics/pathname.o:           $(SRC)/uts/common/fs/pathname.c
 241         $(COMPILE.c) -o $@ $(SRC)/uts/common/fs/pathname.c
 242         $(POST_PROCESS_O)
 243 
 244 pics/refstr.o:             $(SRC)/uts/common/os/refstr.c
 245         $(COMPILE.c) -o $@ $(SRC)/uts/common/os/refstr.c
 246         $(POST_PROCESS_O)
 247 
 248 pics/xattr_common.o:       $(SRC)/common/xattr/xattr_common.c
 249         $(COMPILE.c) -o $@ $(SRC)/common/xattr/xattr_common.c
 250         $(POST_PROCESS_O)
 251 
 252 # Makefile.targ has rule for $(SRC)/common/smbsrv/%.c
 253 
 254 .KEEP_STATE:
 255 
 256 include ../../Makefile.targ
 257 include ../../../Makefile.targ