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