executable footprint reduction

Ken Cross kjchome at comcast.net
Tue Feb 3 23:35:01 GMT 2004


Dave:

FWIW, I've been doing in for about a year, but linking to dynamic libraries
is somewhat system-dependent (I'm on NetBSD).  For instance, I've added this
at the top of Makefile.in:

 LIBS=@LIBS@ -L bin -R $(DESTDIR)${prefix}/lib -lsmbclient

When I distribute updates, I often only need to change libsmbclient.so.
Regardless, the exe's are *much* smaller.  

Not trivial, but the effort is worth it, IMO.

Ken Cross
Network Storage Solutions


-----Original Message-----
From: samba-technical-bounces+kcross=nssolutions.com at lists.samba.org
[mailto:samba-technical-bounces+kcross=nssolutions.com at lists.samba.org] On
Behalf Of David Wuertele
Sent: Tuesday, February 03, 2004 5:51 PM
To: samba-technical at lists.samba.org
Subject: executable footprint reduction

Am I the only one who doesn't like statically linking the same objects
into every single executable?

Here's my patch to the Makefile.in for the samba-3.0.1 sources that
dynamically links as much as possible into libsmbclient.  I say "as
much as possible" but it could definitely be more.  This is just what
I was able to do in a spare twenty minutes I came across.

Is there some reason not to do this?  Or is it just a shortage of
round tuits?

Dave

diff -Nur samba-3.0.1/source/Makefile.in~ samba-3.0.1/source/Makefile.in
--- samba-3.0.1/source/Makefile.in~	2003-12-10 13:59:18.000000000 -0800
+++ samba-3.0.1/source/Makefile.in	2004-01-27 17:17:30.000000000 -0800
@@ -354,15 +354,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 \
@@ -387,54 +387,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) $(SECRETS_OBJ) \
+WREPL_OBJ = $(WREPL_OBJ1) \
+	    $(PROFILE_OBJ) $(POPT_LIB_OBJ) $(SECRETS_OBJ) \
 	    $(LIBSAMBA_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 \
@@ -445,9 +442,8 @@
 		 rpcclient/cmd_echo.o rpcclient/cmd_shutdown.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
 
@@ -460,8 +456,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
 
@@ -479,16 +474,15 @@
 
 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=. at PICSUFFIX@)
 
 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 \
@@ -497,64 +491,55 @@
 	   utils/net_cache.o utils/net_groupmap.o utils/net_idmap.o \
 	   utils/net_status.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 \
@@ -563,13 +548,11 @@
              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) \
@@ -585,8 +568,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=. at PICSUFFIX@)
 
@@ -595,8 +578,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=. at PICSUFFIX@)
 
@@ -620,14 +603,13 @@
 
 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@
 
@@ -772,176 +754,176 @@
 	  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) $(LDFLAGS) $(LDAP_LIBS) \
 		$(KRB5LIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) \
-		$(ACL_LIBS) $(PASSDB_LIBS) $(LIBS) @POPTLIBS@
+		$(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 $@ $(LDFLAGS) $(PASSDB_LIBS) $(RPCCLIENT_OBJ) \
 		$(DYNEXP) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) @POPTLIBS@ \
-		$(KRB5LIBS) $(LDAP_LIBS)
+		$(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) $(LDFLAGS) $(PASSDB_LIBS) \
-		$(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) 
+		$(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) $(LDAP_LIBS)
+	@$(CC) $(FLAGS) -o $@ $(PDBEDIT_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS)
@POPTLIBS@ $(PASSDB_LIBS) $(LDAP_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 $@
@@ -1018,9 +1000,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) $(PASSDB_LIBS)
+	@$(LINK) -o $@ $(WINBINDD_OBJ) $(DYNEXP) $(LIBS) @POPTLIBS@
$(KRB5LIBS) $(LDAP_LIBS) $(PASSDB_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.
@@ -1154,15 +1136,15 @@
 	@$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_CAP_OBJ:.o=. at PICSUFFIX@) \
 		@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)
+		@POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS) -L ./bin -lsmbclient
$(LDFLAGS) -liconv
 
 bin/pam_smbpass. at SHLIBEXT@: $(PAM_SMBPASS_PICOOBJ)
 	@echo "Linking shared library $@"
@@ -1171,9 +1153,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/tdbdump at EXEEXT@: $(TDBDUMP_OBJ) bin/.dummy
 	@echo Linking $@
@@ -1251,9 +1233,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=. at PICSUFFIX@)
 



More information about the samba-technical mailing list