Reducing the samba-3.0.0 footprint

David Wuertele dave-gnus at bfnet.com
Fri Nov 14 02:11:00 GMT 2003


I'm sticking samba into an embedded system, and disk space is at a
premium.  I noticed that the many of the same object files that are
being compiled into libsmbclient.so are also being compiled into
many other targets.  As an experiment, I created the following patch,
which dynamically links most targets to libsambaclient.so instead of
statically linking the common objects.

The result worked beautifully, so I'm including my patch here in case
it might help someone with a similar goal.  To use it, apply the
patch, then run autoconf.  You might need to upgrade your autoconf,
since samba-3.0.0 requires a relatively recent one.

I'm also invoking configure thusly:

CFLAGS="-Os" ./configure --disable-cups --with-libsmbclient --with-privatedir=/tmp --with-lockdir=/var/locks --with-piddir=/var/locks --with-configdir=/etc --with-logfilebase=/var/log --without-ldap --without-utmp --without-python --with-smbmount --with-libiconv=/home/dave/C/perforce/source/deschutes/rootfs/ati-nfsroot --disable-debug --disable-developer --disable-krb5developer

Here are the programs I use with their new, smaller sizes:

 198310 nmblookup
 182157 smbclient
  22370 smbmnt
  36838 smbmount
  12379 smbumount
 326827 nmbd
2815766 smbd

This is still about 1.5MB larger than my samba-2.2.8a installation.
I'm looking for any suggestions on how I might make my samba footprint
even smaller.

Dave

diff -Nur samba-3.0.0/source/Makefile.in samba-3.0.0-dave/source/Makefile.in
--- samba-3.0.0/source/Makefile.in	2003-09-24 10:16:13.000000000 -0700
+++ samba-3.0.0-dave/source/Makefile.in	2003-11-13 10:57:09.000000000 -0800
@@ -350,15 +350,15 @@
 	       smbd/quotas.o smbd/ntquotas.o lib/afs.o \
 	       $(MANGLE_OBJ) @VFS_STATIC@
 
-SMBD_OBJ_BASE = $(PARAM_OBJ) $(SMBD_OBJ_SRV) $(MSDFS_OBJ) $(LIBSMB_OBJ) \
+SMBD_OBJ_BASE =  $(SMBD_OBJ_SRV) $(MSDFS_OBJ)  \
 		$(RPC_SERVER_OBJ) $(RPC_PARSE_OBJ) $(SECRETS_OBJ) \
 		$(LOCKING_OBJ) $(PASSDB_OBJ) $(PRINTING_OBJ) $(PROFILE_OBJ) \
-		$(LIB_OBJ) $(PRINTBACKEND_OBJ) $(OPLOCK_OBJ) \
+		 $(PRINTBACKEND_OBJ) $(OPLOCK_OBJ) \
 		$(NOTIFY_OBJ) $(GROUPDB_OBJ) $(AUTH_OBJ) \
 		$(LIBMSRPC_OBJ) \
-		$(LIBADS_OBJ) $(KRBCLIENT_OBJ) $(LIBADS_SERVER_OBJ) \
+		$(LIBADS_OBJ)  $(LIBADS_SERVER_OBJ) \
 		$(LIB_SMBD_OBJ) $(REGISTRY_OBJ) $(POPT_LIB_OBJ) \
-		$(UBIQX_OBJ) $(BUILDOPT_OBJ) $(SMBLDAP_OBJ)
+		 $(BUILDOPT_OBJ) $(SMBLDAP_OBJ)
 
 PRINTING_OBJ = printing/pcap.o printing/print_svid.o \
 				printing/print_cups.o printing/print_generic.o \
@@ -383,53 +383,51 @@
             nmbd/nmbd_subnetdb.o nmbd/nmbd_winsproxy.o nmbd/nmbd_winsserver.o \
             nmbd/nmbd_workgroupdb.o nmbd/nmbd_synclists.o
 
-NMBD_OBJ = $(NMBD_OBJ1) $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(UBIQX_OBJ) \
-           $(PROFILE_OBJ) $(LIB_OBJ) $(SECRETS_OBJ) $(POPT_LIB_OBJ)
+NMBD_OBJ = $(NMBD_OBJ1)     \
+           $(PROFILE_OBJ)  $(SECRETS_OBJ) $(POPT_LIB_OBJ)
 
 WREPL_OBJ1 = wrepld/server.o wrepld/process.o wrepld/parser.o wrepld/socket.o \
              wrepld/partners.o
 
-WREPL_OBJ = $(WREPL_OBJ1)  $(PARAM_OBJ) $(UBIQX_OBJ) \
-	    $(PROFILE_OBJ) $(LIB_OBJ) $(POPT_LIB_OBJ)
+WREPL_OBJ = $(WREPL_OBJ1)    \
+	    $(PROFILE_OBJ)  $(POPT_LIB_OBJ)
 
 SWAT_OBJ1 = web/cgi.o web/diagnose.o web/startstop.o web/statuspage.o \
            web/swat.o web/neg_lang.o 
 
-SWAT_OBJ = $(SWAT_OBJ1) $(PARAM_OBJ) $(PRINTING_OBJ) $(LIBSMB_OBJ) \
-	   $(LOCKING_OBJ) $(PASSDB_OBJ) $(SECRETS_OBJ) $(KRBCLIENT_OBJ) \
-	   $(UBIQX_OBJ) $(LIB_OBJ) $(GROUPDB_OBJ) $(PLAINTEXT_AUTH_OBJ) \
+SWAT_OBJ = $(SWAT_OBJ1)  $(PRINTING_OBJ)  \
+	   $(LOCKING_OBJ) $(PASSDB_OBJ) $(SECRETS_OBJ)  \
+	     $(GROUPDB_OBJ) $(PLAINTEXT_AUTH_OBJ) \
 	   $(POPT_LIB_OBJ) $(SMBLDAP_OBJ) lib/dummyroot.o
 
-SMBSH_OBJ = smbwrapper/smbsh.o smbwrapper/shared.o \
-            $(PARAM_OBJ) $(UBIQX_OBJ) $(LIB_OBJ)
+SMBSH_OBJ = smbwrapper/smbsh.o smbwrapper/shared.o
 
-STATUS_OBJ = utils/status.o $(LOCKING_OBJ) $(PARAM_OBJ) \
-             $(UBIQX_OBJ) $(PROFILE_OBJ) $(LIB_OBJ) $(POPT_LIB_OBJ) \
+STATUS_OBJ = utils/status.o $(LOCKING_OBJ)  \
+              $(PROFILE_OBJ)  $(POPT_LIB_OBJ) \
 	     $(SECRETS_OBJ) $(LIBSAMBA_OBJ) lib/dummyroot.o libsmb/errormap.o 
 
-SMBCONTROL_OBJ = utils/smbcontrol.o $(LOCKING_OBJ) $(PARAM_OBJ) \
-	$(UBIQX_OBJ) $(PROFILE_OBJ) $(LIB_OBJ) $(POPT_LIB_OBJ) \
+SMBCONTROL_OBJ = utils/smbcontrol.o $(LOCKING_OBJ)  \
+	 $(PROFILE_OBJ)  $(POPT_LIB_OBJ) \
 	$(SECRETS_OBJ) $(LIBSAMBA_OBJ) \
 	printing/notify.o printing/printing_db.o lib/dummyroot.o libsmb/errormap.o
 
-SMBTREE_OBJ = utils/smbtree.o $(LOCKING_OBJ) $(PARAM_OBJ) \
-             $(UBIQX_OBJ) $(PROFILE_OBJ) $(LIB_OBJ) $(LIBSMB_OBJ) \
-	     $(KRBCLIENT_OBJ) $(POPT_LIB_OBJ) $(SECRETS_OBJ) 
+SMBTREE_OBJ = utils/smbtree.o $(LOCKING_OBJ)  \
+              $(PROFILE_OBJ)   \
+	      $(POPT_LIB_OBJ) $(SECRETS_OBJ) 
 
 TESTPARM_OBJ = utils/testparm.o \
-               $(PARAM_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) $(POPT_LIB_OBJ) \
+                  $(POPT_LIB_OBJ) \
 	       $(SECRETS_OBJ) $(LIBSAMBA_OBJ)
 
-TESTPRNS_OBJ = utils/testprns.o $(PARAM_OBJ) $(PRINTING_OBJ) $(UBIQX_OBJ) \
-               $(LIB_OBJ)
+TESTPRNS_OBJ = utils/testprns.o  $(PRINTING_OBJ)
 
-SMBPASSWD_OBJ = utils/smbpasswd.o $(PARAM_OBJ) $(SECRETS_OBJ) \
-		$(LIBSMB_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ)\
-                $(UBIQX_OBJ) $(LIB_OBJ) $(KRBCLIENT_OBJ) \
+SMBPASSWD_OBJ = utils/smbpasswd.o  $(SECRETS_OBJ) \
+		 $(PASSDB_OBJ) $(GROUPDB_OBJ)\
+                   \
 		$(SMBLDAP_OBJ) lib/dummyroot.o
 
-PDBEDIT_OBJ = utils/pdbedit.o $(PARAM_OBJ) $(PASSDB_OBJ) $(LIBSAMBA_OBJ) \
-		$(UBIQX_OBJ) $(LIB_OBJ) $(GROUPDB_OBJ) $(SECRETS_OBJ) \
+PDBEDIT_OBJ = utils/pdbedit.o  $(PASSDB_OBJ) $(LIBSAMBA_OBJ) \
+		  $(GROUPDB_OBJ) $(SECRETS_OBJ) \
 		$(POPT_LIB_OBJ) $(SMBLDAP_OBJ) lib/dummyroot.o
 
 RPCCLIENT_OBJ1 = rpcclient/rpcclient.o rpcclient/cmd_lsarpc.o \
@@ -440,9 +438,9 @@
 		 rpcclient/cmd_echo.o
 
 RPCCLIENT_OBJ = $(RPCCLIENT_OBJ1) \
-             $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) \
+                 \
              $(RPC_PARSE_OBJ) $(PASSDB_OBJ) $(LIBMSRPC_OBJ) \
-             $(READLINE_OBJ) $(GROUPDB_OBJ) $(KRBCLIENT_OBJ) \
+             $(READLINE_OBJ) $(GROUPDB_OBJ)  \
 	     $(LIBADS_OBJ) $(SECRETS_OBJ) $(POPT_LIB_OBJ) \
 	     $(SMBLDAP_OBJ) $(DCUTIL_OBJ) lib/dummyroot.o
 
@@ -453,8 +451,7 @@
 		smbwrapper/realcalls.o smbwrapper/shared.o \
 		smbwrapper/smbw_cache.o
 
-SMBW_OBJ = $(SMBW_OBJ1) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(PARAM_OBJ) \
-                $(UBIQX_OBJ) $(LIB_OBJ)
+SMBW_OBJ = $(SMBW_OBJ1)
 
 SMBWRAPPER_OBJ1 = smbwrapper/wrapped.o
 
@@ -470,16 +467,16 @@
 
 LIBBIGBALLOFMUD_MAJOR = 0
 
-LIBBIGBALLOFMUD_OBJ = $(PARAM_OBJ) $(LIB_OBJ) $(UBIQX_OBJ) $(SECRETS_OBJ) \
-	$(LIBSMB_OBJ) $(LIBMSRPC_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_OBJ) \
-	$(GROUPDB_OBJ) $(KRBCLIENT_OBJ) $(SMBLDAP_OBJ) lib/dummyroot.o
+LIBBIGBALLOFMUD_OBJ = $(PARAM_OBJ)   $(SECRETS_OBJ) \
+	 $(LIBMSRPC_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_OBJ) \
+	$(GROUPDB_OBJ)  $(SMBLDAP_OBJ) lib/dummyroot.o
 
 LIBBIGBALLOFMUD_PICOBJS = $(LIBBIGBALLOFMUD_OBJ:.o=.po)
 
 CLIENT_OBJ1 = client/client.o client/clitar.o 
 
-CLIENT_OBJ = $(CLIENT_OBJ1) $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) \
-	     $(LIB_OBJ) $(KRBCLIENT_OBJ) \
+CLIENT_OBJ = $(CLIENT_OBJ1)    \
+	       \
              $(READLINE_OBJ) $(POPT_LIB_OBJ) $(SECRETS_OBJ)
 
 NET_OBJ1 = utils/net.o utils/net_ads.o utils/net_ads_cldap.o utils/net_help.o \
@@ -487,64 +484,57 @@
 	   utils/net_rpc_join.o utils/net_time.o utils/net_lookup.o \
 	   utils/net_cache.o utils/net_groupmap.o utils/net_idmap.o
 
-NET_OBJ = $(NET_OBJ1) $(PARAM_OBJ) $(SECRETS_OBJ) $(LIBSMB_OBJ) \
+NET_OBJ = $(NET_OBJ1)  $(SECRETS_OBJ)  \
 	  $(RPC_PARSE_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
-	  $(KRBCLIENT_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) \
+	     \
 	  $(LIBMSRPC_OBJ) $(IDMAP_OBJ) \
 	  $(LIBADS_OBJ) $(LIBADS_SERVER_OBJ) $(POPT_LIB_OBJ) \
 	  $(SMBLDAP_OBJ) $(DCUTIL_OBJ) lib/dummyroot.o lib/server_mutex.o lib/afs.o
 
-CUPS_OBJ = client/smbspool.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) \
-	  $(LIB_OBJ) $(KRBCLIENT_OBJ) $(SECRETS_OBJ)
+CUPS_OBJ = client/smbspool.o    \
+	    $(SECRETS_OBJ)
 
-MOUNT_OBJ = client/smbmount.o \
-             $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) 
+MOUNT_OBJ = client/smbmount.o
 
 MNT_OBJ = client/smbmnt.o lib/version.o lib/snprintf.o
 
 UMOUNT_OBJ = client/smbumount.o
 
-NMBLOOKUP_OBJ = utils/nmblookup.o $(PARAM_OBJ) $(UBIQX_OBJ) $(LIBNMB_OBJ) \
-               $(LIB_OBJ) $(POPT_LIB_OBJ) $(SECRETS_OBJ) $(LIBSAMBA_OBJ)
+NMBLOOKUP_OBJ = utils/nmblookup.o   $(LIBNMB_OBJ) \
+                $(POPT_LIB_OBJ) $(SECRETS_OBJ) $(LIBSAMBA_OBJ)
 
 SMBTORTURE_OBJ1 = torture/torture.o torture/nbio.o torture/scanner.o torture/utable.o \
 		torture/denytest.o torture/mangle_test.o 
 
-SMBTORTURE_OBJ = $(SMBTORTURE_OBJ1) $(PARAM_OBJ) \
-	$(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(UBIQX_OBJ) $(LIB_OBJ)
+SMBTORTURE_OBJ = $(SMBTORTURE_OBJ1)	   
 
-MASKTEST_OBJ = torture/masktest.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
-                 $(UBIQX_OBJ) $(LIB_OBJ)
+MASKTEST_OBJ = torture/masktest.o                  
 
-MSGTEST_OBJ = torture/msgtest.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
-                 $(UBIQX_OBJ) $(LIB_OBJ)
+MSGTEST_OBJ = torture/msgtest.o                  
 
-LOCKTEST_OBJ = torture/locktest.o $(PARAM_OBJ) $(LOCKING_OBJ) $(KRBCLIENT_OBJ) \
-			   $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ)
+LOCKTEST_OBJ = torture/locktest.o  $(LOCKING_OBJ)			     
 
-NSSTEST_OBJ = torture/nsstest.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
-                 $(UBIQX_OBJ) $(LIB_OBJ)
+NSSTEST_OBJ = torture/nsstest.o                  
 
 VFSTEST_OBJ = torture/cmd_vfs.o torture/vfstest.o $(SMBD_OBJ_BASE) $(READLINE_OBJ)
 
-SMBICONV_OBJ = $(PARAM_OBJ) torture/smbiconv.o $(LIB_OBJ) $(UBIQX_OBJ) $(POPT_LIB_OBJ) $(SECRETS_OBJ) $(LIBSAMBA_OBJ)
+SMBICONV_OBJ =  torture/smbiconv.o   $(POPT_LIB_OBJ) $(SECRETS_OBJ) $(LIBSAMBA_OBJ)
 
 LOG2PCAP_OBJ = utils/log2pcaphex.o
 
-LOCKTEST2_OBJ = torture/locktest2.o $(PARAM_OBJ) $(LOCKING_OBJ) $(LIBSMB_OBJ) \
-		$(KRBCLIENT_OBJ) $(UBIQX_OBJ) $(LIB_OBJ)
+LOCKTEST2_OBJ = torture/locktest2.o  $(LOCKING_OBJ)		  
 
-SMBCACLS_OBJ = utils/smbcacls.o $(PARAM_OBJ) $(LOCKING_OBJ) $(LIBSMB_OBJ) \
-			   $(KRBCLIENT_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) $(RPC_PARSE_OBJ) \
+SMBCACLS_OBJ = utils/smbcacls.o  $(LOCKING_OBJ)  \
+			      $(RPC_PARSE_OBJ) \
 			   $(PASSDB_GET_SET_OBJ) $(LIBMSRPC_OBJ) $(SECRETS_OBJ) \
 			   $(POPT_LIB_OBJ) $(DCUTIL_OBJ) $(LIBADS_OBJ)
 
-SMBCQUOTAS_OBJ = utils/smbcquotas.o $(LOCKING_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
-		$(PARAM_OBJ) \
-		$(UBIQX_OBJ) $(LIB_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_GET_SET_OBJ) \
+SMBCQUOTAS_OBJ = utils/smbcquotas.o $(LOCKING_OBJ)   \
+		 \
+		  $(RPC_PARSE_OBJ) $(PASSDB_GET_SET_OBJ) \
 		$(LIBMSRPC_OBJ) $(SECRETS_OBJ) $(POPT_LIB_OBJ)
 
-TALLOCTORT_OBJ = lib/talloctort.o $(PARAM_OBJ) $(LIB_OBJ) $(UBIQX_OBJ)
+TALLOCTORT_OBJ = lib/talloctort.o   
 
 RPCTORTURE_OBJ = torture/rpctorture.o \
              rpcclient/display.o \
@@ -553,13 +543,12 @@
              rpcclient/cmd_samr.o \
              rpcclient/cmd_srvsvc.o \
              rpcclient/cmd_netlogon.o \
-             $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) $(KRBCLIENT_OBJ) \
+                  \
              $(RPC_CLIENT_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_GET_SET_OBJ)
 
 DEBUG2HTML_OBJ = utils/debug2html.o ubiqx/debugparse.o
 
-SMBFILTER_OBJ = utils/smbfilter.o $(PARAM_OBJ) $(LIBSMB_OBJ) \
-                 $(UBIQX_OBJ) $(LIB_OBJ) $(KRBCLIENT_OBJ) 
+SMBFILTER_OBJ = utils/smbfilter.o                    
 
 PROTO_OBJ = $(SMBD_OBJ_MAIN) \
 	    $(SMBD_OBJ_SRV) $(NMBD_OBJ1) $(SWAT_OBJ1) $(LIB_OBJ) $(LIBSMB_OBJ) \
@@ -575,8 +564,8 @@
 	    $(RPC_SVC_OBJ) $(RPC_WKS_OBJ) $(RPC_DFS_OBJ) $(RPC_SPOOLSS_OBJ) \
 	    $(RPC_ECHO_OBJ) $(SMBLDAP_OBJ) $(IDMAP_OBJ) libsmb/spnego.o
 
-WINBIND_WINS_NSS_OBJ = nsswitch/wins.o $(PARAM_OBJ) $(UBIQX_OBJ) \
-	$(LIBSMB_OBJ) $(LIB_OBJ) $(NSSWINS_OBJ) $(KRBCLIENT_OBJ)
+WINBIND_WINS_NSS_OBJ = nsswitch/wins.o   \
+	  $(NSSWINS_OBJ) 
 
 WINBIND_WINS_NSS_PICOBJS = $(WINBIND_WINS_NSS_OBJ:.o=.po)
 
@@ -585,8 +574,8 @@
 
 PAM_SMBPASS_OBJ_0 = pam_smbpass/pam_smb_auth.o pam_smbpass/pam_smb_passwd.o \
                pam_smbpass/pam_smb_acct.o pam_smbpass/support.o \
-               lib/dummyroot.o $(PARAM_OBJ) $(LIB_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
-               $(SECRETS_OBJ) $(UBIQX_OBJ) $(SMBLDAP_OBJ) $(LIBSAMBA_OBJ)
+               lib/dummyroot.o   $(PASSDB_OBJ) $(GROUPDB_OBJ) \
+               $(SECRETS_OBJ)  $(SMBLDAP_OBJ) $(LIBSAMBA_OBJ)
 
 PAM_SMBPASS_PICOOBJ = $(PAM_SMBPASS_OBJ_0:.o=.po)
 
@@ -610,14 +599,14 @@
 
 WINBINDD_OBJ = \
 		$(WINBINDD_OBJ1) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
-		$(PARAM_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) \
-		$(LIBSMB_OBJ) $(LIBMSRPC_OBJ) $(RPC_PARSE_OBJ) \
+		   \
+		 $(LIBMSRPC_OBJ) $(RPC_PARSE_OBJ) \
 		$(PROFILE_OBJ) $(SLCACHE_OBJ) $(SMBLDAP_OBJ) \
-		$(SECRETS_OBJ) $(LIBADS_OBJ) $(KRBCLIENT_OBJ) $(POPT_LIB_OBJ) \
+		$(SECRETS_OBJ) $(LIBADS_OBJ)  $(POPT_LIB_OBJ) \
 		$(DCUTIL_OBJ) $(IDMAP_OBJ) lib/dummyroot.o
 
-WBINFO_OBJ = nsswitch/wbinfo.o $(LIBSAMBA_OBJ) $(PARAM_OBJ) $(LIB_OBJ) \
-		$(UBIQX_OBJ) $(SECRETS_OBJ) $(POPT_LIB_OBJ)
+WBINFO_OBJ = nsswitch/wbinfo.o $(LIBSAMBA_OBJ)   \
+		 $(SECRETS_OBJ) $(POPT_LIB_OBJ)
 
 WINBIND_NSS_OBJ = nsswitch/wb_common.o lib/replace1.o @WINBIND_NSS_EXTRA_OBJS@
 
@@ -754,172 +743,172 @@
 	  dir=bin $(MAKEDIR); fi
 	@: >> $@ || : > $@ # what a fancy emoticon!
 
-bin/smbd at EXEEXT@: $(SMBD_OBJ) @BUILD_POPT@ bin/.dummy
+bin/smbd at EXEEXT@: $(SMBD_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
 	@$(CC) $(FLAGS) -o $@ $(SMBD_OBJ) $(KRB5LIBS) $(LDAP_LIBS) $(LDFLAGS) $(DYNEXP) $(PRINT_LIBS) \
-	  $(AUTH_LIBS) $(ACL_LIBS) $(PASSDB_LIBS) $(LIBS) @POPTLIBS@
+	  $(AUTH_LIBS) $(ACL_LIBS) $(PASSDB_LIBS) $(LIBS) @POPTLIBS@ -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/nmbd at EXEEXT@: $(NMBD_OBJ) @BUILD_POPT@ bin/.dummy
+bin/nmbd at EXEEXT@: $(NMBD_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(NMBD_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)
+	@$(CC) $(FLAGS) -o $@ $(NMBD_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS) -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/wrepld at EXEEXT@: $(WREPL_OBJ) @BUILD_POPT@ bin/.dummy
+bin/wrepld at EXEEXT@: $(WREPL_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(WREPL_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@
+	@$(CC) $(FLAGS) -o $@ $(WREPL_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@ -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/swat at EXEEXT@: $(SWAT_OBJ) @BUILD_POPT@ bin/.dummy
+bin/swat at EXEEXT@: $(SWAT_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
 	@$(CC) $(FLAGS) -o $@ $(SWAT_OBJ) $(LDFLAGS) $(DYNEXP) $(PRINT_LIBS) \
-	  $(AUTH_LIBS) $(LIBS) $(PASSDB_LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)
+	  $(AUTH_LIBS) $(LIBS) $(PASSDB_LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS) -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/rpcclient at EXEEXT@: $(RPCCLIENT_OBJ) @BUILD_POPT@ bin/.dummy
+bin/rpcclient at EXEEXT@: $(RPCCLIENT_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(PASSDB_LIBS) $(RPCCLIENT_OBJ) $(LDFLAGS) $(DYNEXP) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)
+	@$(CC) $(FLAGS) -o $@ $(PASSDB_LIBS) $(RPCCLIENT_OBJ) $(LDFLAGS) $(DYNEXP) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS) -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/smbclient at EXEEXT@: $(CLIENT_OBJ) @BUILD_POPT@ bin/.dummy
+bin/smbclient at EXEEXT@: $(CLIENT_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(CLIENT_OBJ) $(LDFLAGS) $(DYNEXP) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)
+	@$(CC) $(FLAGS) -o $@ $(CLIENT_OBJ) $(LDFLAGS) $(DYNEXP) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS) -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/net at EXEEXT@: $(NET_OBJ) @BUILD_POPT@ bin/.dummy
+bin/net at EXEEXT@: $(NET_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(NET_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS) $(PASSDB_LIBS)
+	@$(CC) $(FLAGS) -o $@ $(NET_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS) $(PASSDB_LIBS) -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/profiles at EXEEXT@: $(PROFILES_OBJ) @BUILD_POPT@ bin/.dummy
+bin/profiles at EXEEXT@: $(PROFILES_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(PROFILES_OBJ) $(LDFLAGS) $(LIBS) @POPTLIBS@
+	@$(CC) $(FLAGS) -o $@ $(PROFILES_OBJ) $(LDFLAGS) $(LIBS) @POPTLIBS@ -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/editreg at EXEEXT@: $(EDITREG_OBJ) @BUILD_POPT@ bin/.dummy
+bin/editreg at EXEEXT@: $(EDITREG_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(EDITREG_OBJ) $(LDFLAGS) $(LIBS) @POPTLIBS@
+	@$(CC) $(FLAGS) -o $@ $(EDITREG_OBJ) $(LDFLAGS) $(LIBS) @POPTLIBS@ -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/smbspool at EXEEXT@: $(CUPS_OBJ) bin/.dummy
+bin/smbspool at EXEEXT@: $(CUPS_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(CUPS_OBJ) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
+	@$(CC) $(FLAGS) -o $@ $(CUPS_OBJ) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/smbmount at EXEEXT@: $(MOUNT_OBJ) bin/.dummy
+bin/smbmount at EXEEXT@: $(MOUNT_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(MOUNT_OBJ) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
+	@$(CC) $(FLAGS) -o $@ $(MOUNT_OBJ) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/smbmnt at EXEEXT@: $(MNT_OBJ) bin/.dummy
+bin/smbmnt at EXEEXT@: $(MNT_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(MNT_OBJ) $(LDFLAGS) 
+	@$(CC) $(FLAGS) -o $@ $(MNT_OBJ) $(LDFLAGS)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/smbumount at EXEEXT@: $(UMOUNT_OBJ) bin/.dummy
+bin/smbumount at EXEEXT@: $(UMOUNT_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(UMOUNT_OBJ) $(LDFLAGS)
+	@$(CC) $(FLAGS) -o $@ $(UMOUNT_OBJ) $(LDFLAGS) -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/testparm at EXEEXT@: $(TESTPARM_OBJ) @BUILD_POPT@ bin/.dummy
+bin/testparm at EXEEXT@: $(TESTPARM_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(TESTPARM_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@
+	@$(CC) $(FLAGS) -o $@ $(TESTPARM_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/testprns at EXEEXT@: $(TESTPRNS_OBJ) bin/.dummy
+bin/testprns at EXEEXT@: $(TESTPRNS_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(TESTPRNS_OBJ) $(LDFLAGS) $(DYNEXP) $(PRINT_LIBS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(TESTPRNS_OBJ) $(LDFLAGS) $(DYNEXP) $(PRINT_LIBS) $(LIBS) -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/smbstatus at EXEEXT@: $(STATUS_OBJ) @BUILD_POPT@ bin/.dummy
+bin/smbstatus at EXEEXT@: $(STATUS_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
 	@$(CC) $(FLAGS) -o $@ $(STATUS_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
-	@POPTLIBS@
+	@POPTLIBS@ -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/smbcontrol at EXEEXT@: $(SMBCONTROL_OBJ) @BUILD_POPT@ bin/.dummy
+bin/smbcontrol at EXEEXT@: $(SMBCONTROL_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
 	@$(CC) -DUSING_SMBCONTROL $(FLAGS) -o $@ $(SMBCONTROL_OBJ) $(DYNEXP) \
 	$(LDFLAGS) $(LIBS) \
-	@POPTLIBS@
+	@POPTLIBS@ -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/smbtree at EXEEXT@: $(SMBTREE_OBJ) @BUILD_POPT@ bin/.dummy
+bin/smbtree at EXEEXT@: $(SMBTREE_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBTREE_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS) 
+	@$(CC) $(FLAGS) -o $@ $(SMBTREE_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/smbpasswd at EXEEXT@: $(SMBPASSWD_OBJ) bin/.dummy
+bin/smbpasswd at EXEEXT@: $(SMBPASSWD_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBPASSWD_OBJ) $(PASSDB_LIBS) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) 
+	@$(CC) $(FLAGS) -o $@ $(SMBPASSWD_OBJ) $(PASSDB_LIBS) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)   -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/pdbedit at EXEEXT@: $(PDBEDIT_OBJ) @BUILD_POPT@ bin/.dummy
+bin/pdbedit at EXEEXT@: $(PDBEDIT_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(PDBEDIT_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(PASSDB_LIBS)
+	@$(CC) $(FLAGS) -o $@ $(PDBEDIT_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(PASSDB_LIBS)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/samtest at EXEEXT@: $(SAMTEST_OBJ) @BUILD_POPT@ bin/.dummy
+bin/samtest at EXEEXT@: $(SAMTEST_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SAMTEST_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(PASSDB_LIBS) $(KRB5LIBS) $(LDAP_LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SAMTEST_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(PASSDB_LIBS) $(KRB5LIBS) $(LDAP_LIBS)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/nmblookup at EXEEXT@: $(NMBLOOKUP_OBJ) @BUILD_POPT@ bin/.dummy
+bin/nmblookup at EXEEXT@: $(NMBLOOKUP_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(NMBLOOKUP_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(LDAP_LIBS)
+	@$(CC) $(FLAGS) -o $@ $(NMBLOOKUP_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(LDAP_LIBS)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/smbtorture at EXEEXT@: $(SMBTORTURE_OBJ) bin/.dummy
+bin/smbtorture at EXEEXT@: $(SMBTORTURE_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBTORTURE_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(SECRETS_OBJ)
+	@$(CC) $(FLAGS) -o $@ $(SMBTORTURE_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(SECRETS_OBJ)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/talloctort at EXEEXT@: $(TALLOCTORT_OBJ) bin/.dummy
+bin/talloctort at EXEEXT@: $(TALLOCTORT_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(TALLOCTORT_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(TALLOCTORT_OBJ) $(LDFLAGS) $(LIBS)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/masktest at EXEEXT@: $(MASKTEST_OBJ) bin/.dummy
+bin/masktest at EXEEXT@: $(MASKTEST_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(MASKTEST_OBJ) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(SECRETS_OBJ)
+	@$(CC) $(FLAGS) -o $@ $(MASKTEST_OBJ) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(SECRETS_OBJ)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/msgtest at EXEEXT@: $(MSGTEST_OBJ) bin/.dummy
+bin/msgtest at EXEEXT@: $(MSGTEST_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(MSGTEST_OBJ) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) 
+	@$(CC) $(FLAGS) -o $@ $(MSGTEST_OBJ) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)   -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/smbcacls at EXEEXT@: $(SMBCACLS_OBJ) @BUILD_POPT@ bin/.dummy
+bin/smbcacls at EXEEXT@: $(SMBCACLS_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBCACLS_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBCACLS_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/smbcquotas at EXEEXT@: $(SMBCQUOTAS_OBJ) @BUILD_POPT@ bin/.dummy
+bin/smbcquotas at EXEEXT@: $(SMBCQUOTAS_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBCQUOTAS_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBCQUOTAS_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/locktest at EXEEXT@: $(LOCKTEST_OBJ) bin/.dummy
+bin/locktest at EXEEXT@: $(LOCKTEST_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(LOCKTEST_OBJ) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
+	@$(CC) $(FLAGS) -o $@ $(LOCKTEST_OBJ) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/nsstest at EXEEXT@: $(NSSTEST_OBJ) bin/.dummy
+bin/nsstest at EXEEXT@: $(NSSTEST_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(NSSTEST_OBJ) $(LDFLAGS) $(LIBS) $(KRB5LIBS)  $(LDAP_LIBS)
+	@$(CC) $(FLAGS) -o $@ $(NSSTEST_OBJ) $(LDFLAGS) $(LIBS) $(KRB5LIBS)  $(LDAP_LIBS)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/vfstest at EXEEXT@: $(VFSTEST_OBJ) @BUILD_POPT@ bin/.dummy
+bin/vfstest at EXEEXT@: $(VFSTEST_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(VFSTEST_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) $(ACL_LIBS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)
+	@$(CC) $(FLAGS) -o $@ $(VFSTEST_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) $(ACL_LIBS) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/smbiconv at EXEEXT@: $(SMBICONV_OBJ) @BUILD_POPT@ bin/.dummy
+bin/smbiconv at EXEEXT@: $(SMBICONV_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBICONV_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(LIBS) @POPTLIBS@
+	@$(CC) $(FLAGS) -o $@ $(SMBICONV_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(LIBS) @POPTLIBS@  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/log2pcap at EXEEXT@: $(LOG2PCAP_OBJ) @BUILD_POPT@ bin/.dummy
+bin/log2pcap at EXEEXT@: $(LOG2PCAP_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(LOG2PCAP_OBJ) $(LDFLAGS) @POPTLIBS@ $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(LOG2PCAP_OBJ) $(LDFLAGS) @POPTLIBS@ $(LIBS)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/locktest2 at EXEEXT@: $(LOCKTEST2_OBJ) bin/.dummy
+bin/locktest2 at EXEEXT@: $(LOCKTEST2_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(LOCKTEST2_OBJ) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
+	@$(CC) $(FLAGS) -o $@ $(LOCKTEST2_OBJ) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/rpctorture at EXEEXT@: $(RPCTORTURE_OBJ) bin/.dummy
+bin/rpctorture at EXEEXT@: $(RPCTORTURE_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(RPCTORTURE_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
+	@$(CC) $(FLAGS) -o $@ $(RPCTORTURE_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/debug2html at EXEEXT@: $(DEBUG2HTML_OBJ) bin/.dummy
+bin/debug2html at EXEEXT@: $(DEBUG2HTML_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(DEBUG2HTML_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(DEBUG2HTML_OBJ) $(LDFLAGS) $(LIBS)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/smbfilter at EXEEXT@: $(SMBFILTER_OBJ) bin/.dummy
+bin/smbfilter at EXEEXT@: $(SMBFILTER_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBFILTER_OBJ) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBFILTER_OBJ) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/smbw_sample at EXEEXT@: $(SMBW_OBJ) utils/smbw_sample.o bin/.dummy
+bin/smbw_sample at EXEEXT@: $(SMBW_OBJ) utils/smbw_sample.o bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBW_OBJ) utils/smbw_sample.o $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBW_OBJ) utils/smbw_sample.o $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/smbsh at EXEEXT@: $(SMBSH_OBJ) bin/.dummy
+bin/smbsh at EXEEXT@: $(SMBSH_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBSH_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBSH_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/smbwrapper. at SHLIBEXT@: $(PICOBJS) bin/.dummy
+bin/smbwrapper. at SHLIBEXT@: $(PICOBJS) bin/.dummy bin/libsmbclient.so
 	@echo Linking shared library $@
 	@$(SHLD) $(LDSHFLAGS) -o $@ $(PICOBJS) $(LIBS) \
 		$(KRB5LIBS) $(LDAP_LIBS) \
-		@SONAMEFLAG@`basename $@`
+		@SONAMEFLAG@`basename $@`  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
 bin/libsmbclient. at SHLIBEXT@: $(LIBSMBCLIENT_PICOBJS)
 	@echo Linking libsmbclient shared library $@
@@ -996,9 +985,9 @@
 	@$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_ECHO_OBJ) -lc \
 		@SONAMEFLAG@`basename $@`
 
-bin/winbindd at EXEEXT@: $(WINBINDD_OBJ) @BUILD_POPT@ bin/.dummy
+bin/winbindd at EXEEXT@: $(WINBINDD_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo "Linking $@"
-	@$(LINK) -o $@ $(WINBINDD_OBJ) $(DYNEXP) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS) 
+	@$(LINK) -o $@ $(WINBINDD_OBJ) $(DYNEXP) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)   -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
 # Please don't add .o files to libnss_winbind, libnss_wins, or the pam_winbind
 # libraries.  Add to the appropriate PICOBJ variable instead.
@@ -1127,15 +1116,15 @@
 	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_CAP_OBJ:.o=.po) \
 		@SONAMEFLAG@`basename $@`
 
-bin/wbinfo at EXEEXT@: $(WBINFO_OBJ) @BUILD_POPT@ bin/.dummy
+bin/wbinfo at EXEEXT@: $(WBINFO_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(LINK) -o $@ $(WBINFO_OBJ) $(LIBS) @POPTLIBS@
+	@$(LINK) -o $@ $(WBINFO_OBJ) $(LIBS) @POPTLIBS@  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
-bin/ntlm_auth at EXEEXT@: $(NTLM_AUTH_OBJ) $(PARAM_OBJ) $(LIB_OBJ) \
-		$(UBIQX_OBJ) @BUILD_POPT@ bin/.dummy
+bin/ntlm_auth at EXEEXT@: $(NTLM_AUTH_OBJ)   \
+		 @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(LINK) -o $@ $(NTLM_AUTH_OBJ) $(PARAM_OBJ) $(LIB_OBJ) \
-		$(UBIQX_OBJ) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)
+	@$(LINK) -o $@ $(NTLM_AUTH_OBJ)   \
+		 $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
 bin/pam_smbpass. at SHLIBEXT@: $(PAM_SMBPASS_PICOOBJ)
 	@echo "Linking shared library $@"
@@ -1144,9 +1133,9 @@
 bin/libmsrpc.a: $(LIBMSRPC_PICOBJ)
 	@-$(AR) -rc $@ $(LIBMSRPC_PICOBJ) 
 
-bin/tdbbackup at EXEEXT@: $(TDBBACKUP_OBJ) bin/.dummy
+bin/tdbbackup at EXEEXT@: $(TDBBACKUP_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(TDBBACKUP_OBJ)
+	@$(CC) $(FLAGS) -o $@ $(TDBBACKUP_OBJ)  -L ./bin -lsmbclient $(LDFLAGS) -liconv
 
 bin/t_strcmp at EXEEXT@: bin/libbigballofmud. at SHLIBEXT@ torture/t_strcmp.o
 	$(CC) $(FLAGS) -o $@ $(LIBS) torture/t_strcmp.o -L ./bin -lbigballofmud
@@ -1219,9 +1208,9 @@
 
 # Python extensions
 
-PYTHON_OBJS = $(PARAM_OBJ) $(LIB_OBJ) $(LIBSMB_OBJ) $(RPC_PARSE_OBJ) \
-	$(UBIQX_OBJ) $(LIBMSRPC_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
-	$(SECRETS_OBJ) $(KRBCLIENT_OBJ) $(SMBLDAP_OBJ) lib/dummyroot.o
+PYTHON_OBJS =   $(RPC_PARSE_OBJ) \
+	 $(LIBMSRPC_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
+	$(SECRETS_OBJ)  $(SMBLDAP_OBJ) lib/dummyroot.o
 
 PYTHON_PICOBJS = $(PYTHON_OBJS:.o=.po)
 




More information about the samba-technical mailing list