linking smbclient commands with libsmb?

Richard Sharpe rsharpe at richardsharpe.com
Thu Jan 23 18:20:01 GMT 2003


On Thu, 23 Jan 2003, Herb Lewis wrote:

> I did a quick check on the SAMBA_2_2 tree and got the following size
> differences when they were linked against libsmbclient instead of 
> the "normal" linking. I've attached the patch to Makefile.in I used.
> Before running any of the commands you need to make sure you copy
> libsmbclient.so to your library path and create a link to 
> libsmbclient.so.0

While there are size reductions, in my view, this is not the cleanest way 
to do this.

We should think carefully about this. What is happening is the 
libsmbclient.so is pulling in many of the things that are needed by all 
these other commands, so linking against it ignores the libsmbclient entry 
points, but it does save space etc.

A cleaner approach would be to create a smaller base library, and then 
link that dynamically to both libsmbclient and to other things in Samba.
 
> file                    size w/ libsmb    orig size    % orig size
> make_printerdef            23,404          546,980     4.3
> make_smbcodepage           23,060          546,592     4.2
> make_unicodemap            22,844          546,376     4.2
> nmbd                      219,824          982,588     22.4
> nmblookup                  23,240          802,388     2.9
> rpcclient                 716,964        1,479,716     48.5
> smbcacls                  686,612        1,445,176     47.5
> smbclient                 117,848          880,508     13.4
> smbcontrol                 66,644          589,980     11.3
> smbd                    1,698,216        2,411,664     70.4
> smbfilter                  22,648          797,856     2.8
> smbpasswd                 644,552        1,403,212     45.9
> smbsh                      23,164          546,636     4.2
> smbspool                   22,648          801,996     2.8
> smbstatus                  70,736          594,068     11.9
> smbtorture                114,560          877,160     13.1
> swat                      671,892        1,434,552     46.8
> testparm                   22,644          546,224     4.1
> testprns                   42,460          565,828     7.3
> wbinfo                     68,040          591,360     11.5
> winbindd                1,057,968        1,564,856     67.6    
> 
> 

-- 
Regards
-----
Richard Sharpe, rsharpe[at]ns.aus.com, rsharpe[at]samba.org, 
sharpe[at]ethereal.com, http://www.richardsharpe.com
-------------- next part --------------
Index: Makefile.in
===================================================================
RCS file: /data/cvs/samba/source/Makefile.in,v
retrieving revision 1.227.2.151
diff -u -r1.227.2.151 Makefile.in
--- Makefile.in	6 Jan 2003 17:59:55 -0000	1.227.2.151
+++ Makefile.in	23 Jan 2003 16:36:35 -0000
@@ -209,9 +209,9 @@
 
 MSDFS_OBJ = msdfs/msdfs.o 
 
-SMBD_OBJ = $(SMBD_OBJ1) $(MSDFS_OBJ) $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) \
+SMBD_OBJ = $(SMBD_OBJ1) $(MSDFS_OBJ) \
            $(RPC_SERVER_OBJ) $(RPC_PARSE_OBJ) $(RPC_CLIENT_OBJ) \
-           $(LOCKING_OBJ) $(PASSDB_OBJ) $(PRINTING_OBJ) $(PROFILE_OBJ) $(LIB_OBJ) \
+           $(LOCKING_OBJ) $(PASSDB_OBJ) $(PRINTING_OBJ) $(PROFILE_OBJ) \
 	   $(PRINTBACKEND_OBJ) $(QUOTAOBJS) $(OPLOCK_OBJ) $(NOTIFY_OBJ)
 
 
@@ -228,45 +228,33 @@
             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) $(UBIQX_OBJ) \
-           $(PROFILE_OBJ) $(LIB_OBJ)
+NMBD_OBJ = $(NMBD_OBJ1) $(PROFILE_OBJ)
 
 SWAT_OBJ = web/cgi.o web/diagnose.o web/startstop.o web/statuspage.o \
-           web/swat.o $(PRINTING_OBJ) $(LIBSMB_OBJ) $(LOCKING_OBJ) \
-           $(PARAM_OBJ) $(PASSDB_OBJ) $(RPC_PARSE_OBJ) \
-           $(UBIQX_OBJ) $(LIB_OBJ) 
+           web/swat.o $(PRINTING_OBJ) $(LOCKING_OBJ) \
+           $(PASSDB_OBJ) $(RPC_PARSE_OBJ)
 
-SMBSH_OBJ = smbwrapper/smbsh.o smbwrapper/shared.o \
-            $(PARAM_OBJ) $(UBIQX_OBJ) $(LIB_OBJ)
+SMBSH_OBJ = smbwrapper/smbsh.o smbwrapper/shared.o
 
-MAKE_SMBCODEPAGE_OBJ = utils/make_smbcodepage.o $(PARAM_OBJ) \
-                       $(UBIQX_OBJ) $(LIB_OBJ)
+MAKE_SMBCODEPAGE_OBJ = utils/make_smbcodepage.o
 
-MAKE_UNICODEMAP_OBJ = utils/make_unicodemap.o $(PARAM_OBJ) \
-                       $(UBIQX_OBJ) $(LIB_OBJ)
+MAKE_UNICODEMAP_OBJ = utils/make_unicodemap.o
 
-MAKE_PRINTERDEF_OBJ = utils/make_printerdef.o $(PARAM_OBJ) \
-                      $(UBIQX_OBJ) $(LIB_OBJ)
+MAKE_PRINTERDEF_OBJ = utils/make_printerdef.o
 
-STATUS_OBJ = utils/status.o $(LOCKING_OBJ) $(PARAM_OBJ) \
-             $(UBIQX_OBJ) $(PROFILE_OBJ) $(LIB_OBJ)
+STATUS_OBJ = utils/status.o $(LOCKING_OBJ) $(PROFILE_OBJ)
 
-SMBCONTROL_OBJ = utils/smbcontrol.o $(LOCKING_OBJ) $(PARAM_OBJ) \
-             $(UBIQX_OBJ) $(PROFILE_OBJ) $(LIB_OBJ)
+SMBCONTROL_OBJ = utils/smbcontrol.o $(LOCKING_OBJ) $(PROFILE_OBJ)
 
-TESTPARM_OBJ = utils/testparm.o \
-               $(PARAM_OBJ) $(UBIQX_OBJ) $(LIB_OBJ)
+TESTPARM_OBJ = utils/testparm.o
 
-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) \
-				$(LIBSMB_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ)\
-				$(UBIQX_OBJ) $(RPC_CLIENT_OBJ) $(RPC_PARSE_OBJ) $(LIB_OBJ) \
+SMBPASSWD_OBJ = utils/smbpasswd.o $(PASSDB_OBJ) $(GROUPDB_OBJ)\
+				$(RPC_CLIENT_OBJ) $(RPC_PARSE_OBJ) \
 				libsmb/cli_lsarpc.o libsmb/cli_samr.o libsmb/cli_pipe_util.o
 
-PDBEDIT_OBJ = utils/pdbedit.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(PASSDB_OBJ) \
-		$(UBIQX_OBJ) $(LIB_OBJ) $(GROUPDB_OBJ)
+PDBEDIT_OBJ = utils/pdbedit.o $(PASSDB_OBJ) $(GROUPDB_OBJ)
 
 RPCCLIENT_OBJ1 = rpcclient/rpcclient.o rpcclient/cmd_lsarpc.o \
 				rpcclient/cmd_samr.o rpcclient/cmd_spoolss.o \
@@ -276,7 +264,6 @@
 				rpcclient/display_sec.o
  
 RPCCLIENT_OBJ = $(RPCCLIENT_OBJ1) \
-				$(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) \
 				$(RPC_PARSE_OBJ) $(PASSDB_OBJ) $(LIBMSRPC_OBJ) \
 				$(READLINE_OBJ)
 
@@ -286,7 +273,7 @@
 		smbwrapper/smbw_dir.o smbwrapper/smbw_stat.o \
 		smbwrapper/realcalls.o smbwrapper/shared.o \
 		$(LIBSMB_OBJ) $(PARAM_OBJ) \
-                $(UBIQX_OBJ) $(LIB_OBJ)
+		$(UBIQX_OBJ) $(LIB_OBJ)
 
 SMBWRAPPER_OBJ = $(SMBW_OBJ) smbwrapper/wrapped.o
 
@@ -294,45 +281,33 @@
 		$(PARAM_OBJ) $(UBIQX_OBJ)
 
 CLIENT_OBJ = client/client.o client/clitar.o \
-             $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) \
              $(READLINE_OBJ)
 
-CUPS_OBJ = client/smbspool.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ)
+CUPS_OBJ = client/smbspool.o
 
-MOUNT_OBJ = client/smbmount.o \
-             $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ)
+MOUNT_OBJ = client/smbmount.o
 
-MNT_OBJ = client/smbmnt.o \
-             $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ)
+MNT_OBJ = client/smbmnt.o
 
-UMOUNT_OBJ = client/smbumount.o \
-             $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ)
+UMOUNT_OBJ = client/smbumount.o
 
-NMBLOOKUP_OBJ = utils/nmblookup.o $(PARAM_OBJ) $(UBIQX_OBJ) \
-                $(LIBSMB_OBJ) $(LIB_OBJ)
+NMBLOOKUP_OBJ = utils/nmblookup.o
 
-SMBTORTURE_OBJ = utils/torture.o utils/nbio.o $(LIBSMB_OBJ) $(PARAM_OBJ) \
-                 $(UBIQX_OBJ) $(LIB_OBJ)
+SMBTORTURE_OBJ = utils/torture.o utils/nbio.o
 
-MASKTEST_OBJ = utils/masktest.o $(LIBSMB_OBJ) $(PARAM_OBJ) \
-                 $(UBIQX_OBJ) $(LIB_OBJ)
+MASKTEST_OBJ = utils/masktest.o
 
-MSGTEST_OBJ = utils/msgtest.o $(LIBSMB_OBJ) $(PARAM_OBJ) \
-                 $(UBIQX_OBJ) $(LIB_OBJ)
+MSGTEST_OBJ = utils/msgtest.o
 
-LOCKTEST_OBJ = utils/locktest.o $(LOCKING_OBJ) $(LIBSMB_OBJ) $(PARAM_OBJ) \
-                 $(UBIQX_OBJ) $(LIB_OBJ)
+LOCKTEST_OBJ = utils/locktest.o $(LOCKING_OBJ)
 
-NSSTEST_OBJ = utils/nsstest.o $(LIBSMB_OBJ) $(PARAM_OBJ) \
-				$(UBIQX_OBJ) $(LIB_OBJ)
+NSSTEST_OBJ = utils/nsstest.o
 
-SMBCACLS_OBJ = utils/smbcacls.o $(LOCKING_OBJ) $(LIBSMB_OBJ) $(PARAM_OBJ) \
-				$(UBIQX_OBJ) $(LIB_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_OBJ) \
+SMBCACLS_OBJ = utils/smbcacls.o $(LOCKING_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_OBJ) \
 				$(LIBMSRPC_OBJ)
 
 
-LOCKTEST2_OBJ = utils/locktest2.o $(LOCKING_OBJ) $(LIBSMB_OBJ) $(PARAM_OBJ) \
-                 $(UBIQX_OBJ) $(LIB_OBJ)
+LOCKTEST2_OBJ = utils/locktest2.o $(LOCKING_OBJ)
 
 RPCTORTURE_OBJ = utils/rpctorture.o \
              rpcclient/display.o \
@@ -341,17 +316,13 @@
              rpcclient/cmd_samr.o \
              rpcclient/cmd_srvsvc.o \
              rpcclient/cmd_netlogon.o \
-             $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) \
              $(RPC_PARSE_OBJ) $(PASSDB_OBJ)
 
-RPCCHECK_OBJ = utils/rpccheck.o \
-		$(LIB_OBJ)  $(RPC_PARSE_OBJ) \
-		$(UBIQX_OBJ) $(PARAM_OBJ) $(LIBSMB_OBJ)
+RPCCHECK_OBJ = utils/rpccheck.o $(RPC_PARSE_OBJ)
 
 DEBUG2HTML_OBJ = utils/debug2html.o ubiqx/debugparse.o
 
-SMBFILTER_OBJ = utils/smbfilter.o $(LIBSMB_OBJ) $(PARAM_OBJ) \
-                 $(UBIQX_OBJ) $(LIB_OBJ)
+SMBFILTER_OBJ = utils/smbfilter.o
 
 PROTO_OBJ = $(SMBD_OBJ) $(NMBD_OBJ) $(SWAT_OBJ) $(CLIENT_OBJ) \
 	    $(SMBWRAPPER_OBJ) $(SMBTORTURE_OBJ) $(RPCCLIENT_OBJ1) \
@@ -400,7 +371,6 @@
 
 WINBINDD_OBJ = \
 		$(WINBINDD_OBJ1) $(NOPROTO_OBJ) $(PASSDB_OBJ) \
-		$(LIBNMB_OBJ) $(PARAM_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) \
 		$(LIBSMB_OBJ) $(LIBMSRPC_OBJ) $(RPC_PARSE_OBJ) \
 		$(GROUPDB_OBJ) $(PROFILE_OBJ) \
 		$(NECESSARY_BECAUSE_SAMBA_DEPENDENCIES_ARE_SO_BROKEN_OBJ)
@@ -508,130 +478,130 @@
 	  dir=bin $(MAKEDIR); fi
 	@: >> $@ || : > $@ # what a fancy emoticon!
 
-bin/smbd: $(SMBD_OBJ) bin/.dummy
+bin/smbd: $(SMBD_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBD_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(LDAPLIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBD_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(LDAPLIBS) -L ./bin -lsmbclient
 
-bin/nmbd: $(NMBD_OBJ) bin/.dummy
+bin/nmbd: $(NMBD_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(NMBD_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(NMBD_OBJ) $(LDFLAGS) $(LIBS) -L ./bin -lsmbclient
 
-bin/swat: $(SWAT_OBJ) bin/.dummy
+bin/swat: $(SWAT_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SWAT_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(LDAPLIBS) 
+	@$(CC) $(FLAGS) -o $@ $(SWAT_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(LDAPLIBS)  -L ./bin -lsmbclient
 
-bin/rpcclient: $(RPCCLIENT_OBJ) bin/.dummy
+bin/rpcclient: $(RPCCLIENT_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(RPCCLIENT_OBJ) $(LDFLAGS) $(DYNEXP) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) $(LDAPLIBS)
+	@$(CC) $(FLAGS) -o $@ $(RPCCLIENT_OBJ) $(LDFLAGS) $(DYNEXP) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) $(LDAPLIBS) -L ./bin -lsmbclient
 
-bin/smbclient: $(CLIENT_OBJ) bin/.dummy
+bin/smbclient: $(CLIENT_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(CLIENT_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(CLIENT_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) -L ./bin -lsmbclient
 
-bin/smbspool: $(CUPS_OBJ) bin/.dummy
+bin/smbspool: $(CUPS_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(CUPS_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(CUPS_OBJ) $(LDFLAGS) $(LIBS) -L ./bin -lsmbclient
 
-bin/smbmount: $(MOUNT_OBJ) bin/.dummy
+bin/smbmount: $(MOUNT_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(MOUNT_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(MOUNT_OBJ) $(LDFLAGS) $(LIBS) -L ./bin -lsmbclient
 
-bin/smbmnt: $(MNT_OBJ) bin/.dummy
+bin/smbmnt: $(MNT_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(MNT_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(MNT_OBJ) $(LDFLAGS) $(LIBS) -L ./bin -lsmbclient
 
-bin/smbumount: $(UMOUNT_OBJ) bin/.dummy
+bin/smbumount: $(UMOUNT_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(UMOUNT_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(UMOUNT_OBJ) $(LDFLAGS) $(LIBS) -L ./bin -lsmbclient
 
-bin/testparm: $(TESTPARM_OBJ) bin/.dummy
+bin/testparm: $(TESTPARM_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(TESTPARM_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(TESTPARM_OBJ) $(LDFLAGS) $(LIBS) -L ./bin -lsmbclient
 
-bin/testprns: $(TESTPRNS_OBJ) bin/.dummy
+bin/testprns: $(TESTPRNS_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(TESTPRNS_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(TESTPRNS_OBJ) $(LDFLAGS) $(LIBS) -L ./bin -lsmbclient
 
-bin/smbstatus: $(STATUS_OBJ) bin/.dummy
+bin/smbstatus: $(STATUS_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(STATUS_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(STATUS_OBJ) $(LDFLAGS) $(LIBS) -L ./bin -lsmbclient
 
-bin/smbcontrol: $(SMBCONTROL_OBJ) bin/.dummy
+bin/smbcontrol: $(SMBCONTROL_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBCONTROL_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBCONTROL_OBJ) $(LDFLAGS) $(LIBS) -L ./bin -lsmbclient
 
-bin/smbpasswd: $(SMBPASSWD_OBJ) bin/.dummy
+bin/smbpasswd: $(SMBPASSWD_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBPASSWD_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(LDAPLIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBPASSWD_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(LDAPLIBS) -L ./bin -lsmbclient
 
-bin/pdbedit: $(PDBEDIT_OBJ) bin/.dummy
+bin/pdbedit: $(PDBEDIT_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(PDBEDIT_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(LDAPLIBS)
+	@$(CC) $(FLAGS) -o $@ $(PDBEDIT_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(LDAPLIBS) -L ./bin -lsmbclient
 
-bin/make_smbcodepage: $(MAKE_SMBCODEPAGE_OBJ) bin/.dummy
+bin/make_smbcodepage: $(MAKE_SMBCODEPAGE_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(MAKE_SMBCODEPAGE_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(MAKE_SMBCODEPAGE_OBJ) $(LDFLAGS) $(LIBS) -L ./bin -lsmbclient
 
-bin/make_unicodemap: $(MAKE_UNICODEMAP_OBJ) bin/.dummy
+bin/make_unicodemap: $(MAKE_UNICODEMAP_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(MAKE_UNICODEMAP_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(MAKE_UNICODEMAP_OBJ) $(LDFLAGS) $(LIBS) -L ./bin -lsmbclient
 
-bin/nmblookup: $(NMBLOOKUP_OBJ) bin/.dummy
+bin/nmblookup: $(NMBLOOKUP_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(NMBLOOKUP_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(NMBLOOKUP_OBJ) $(LDFLAGS) $(LIBS) -L ./bin -lsmbclient
 
-bin/make_printerdef: $(MAKE_PRINTERDEF_OBJ) bin/.dummy
+bin/make_printerdef: $(MAKE_PRINTERDEF_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(MAKE_PRINTERDEF_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(MAKE_PRINTERDEF_OBJ) $(LDFLAGS) $(LIBS) -L ./bin -lsmbclient
 
-bin/smbtorture: $(SMBTORTURE_OBJ) bin/.dummy
+bin/smbtorture: $(SMBTORTURE_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBTORTURE_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBTORTURE_OBJ) $(LDFLAGS) $(LIBS) -L ./bin -lsmbclient
 
-bin/masktest: $(MASKTEST_OBJ) bin/.dummy
+bin/masktest: $(MASKTEST_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(MASKTEST_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(MASKTEST_OBJ) $(LDFLAGS) $(LIBS) -L ./bin -lsmbclient
 
-bin/msgtest: $(MSGTEST_OBJ) bin/.dummy
+bin/msgtest: $(MSGTEST_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(MSGTEST_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(MSGTEST_OBJ) $(LDFLAGS) $(LIBS) -L ./bin -lsmbclient
 
-bin/smbcacls: $(SMBCACLS_OBJ) bin/.dummy
+bin/smbcacls: $(SMBCACLS_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBCACLS_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(LDAPLIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBCACLS_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(LDAPLIBS) -L ./bin -lsmbclient
 
-bin/locktest: $(LOCKTEST_OBJ) bin/.dummy
+bin/locktest: $(LOCKTEST_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(LOCKTEST_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(LOCKTEST_OBJ) $(LDFLAGS) $(LIBS) -L ./bin -lsmbclient
 
-bin/locktest2: $(LOCKTEST2_OBJ) bin/.dummy
+bin/locktest2: $(LOCKTEST2_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(LOCKTEST2_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(LOCKTEST2_OBJ) $(LDFLAGS) $(LIBS) -L ./bin -lsmbclient
 
-bin/nsstest: $(NSSTEST_OBJ) bin/.dummy
+bin/nsstest: $(NSSTEST_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(NSSTEST_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(NSSTEST_OBJ) $(LDFLAGS) $(LIBS) -L ./bin -lsmbclient
 
-bin/rpctorture: $(RPCTORTURE_OBJ) bin/.dummy
+bin/rpctorture: $(RPCTORTURE_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(RPCTORTURE_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(RPCTORTURE_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) -L ./bin -lsmbclient
 
 bin/debug2html: $(DEBUG2HTML_OBJ) bin/.dummy
 	@echo Linking $@
 	@$(CC) $(FLAGS) -o $@ $(DEBUG2HTML_OBJ) $(LDFLAGS) $(LIBS)
 
-bin/smbfilter: $(SMBFILTER_OBJ) bin/.dummy
+bin/smbfilter: $(SMBFILTER_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBFILTER_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBFILTER_OBJ) $(LDFLAGS) $(LIBS) -L ./bin -lsmbclient
 
 
 bin/smbw_sample: $(SMBW_OBJ) utils/smbw_sample.o bin/.dummy
 	@echo Linking $@
 	@$(CC) $(FLAGS) -o $@ $(SMBW_OBJ) utils/smbw_sample.o $(LDFLAGS) $(LIBS)
 
-bin/smbsh: $(SMBSH_OBJ) bin/.dummy
+bin/smbsh: $(SMBSH_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(CC) $(FLAGS) -o $@ $(SMBSH_OBJ) $(LDFLAGS) $(LIBS)
+	@$(CC) $(FLAGS) -o $@ $(SMBSH_OBJ) $(LDFLAGS) $(LIBS) -L ./bin -lsmbclient
 
 bin/smbwrapper. at SHLIBEXT@: $(PICOBJS) bin/.dummy
 	@echo Linking shared library $@
@@ -645,7 +615,7 @@
 
 bin/libsmbclient. at SHLIBEXT@: $(LIBSMBCLIENT_PICOBJS) bin/.dummy
 	@echo Linking libsmbclient shared library $@
-	@$(SHLD) @LDSHFLAGS@ -o $@ $(LIBSMBCLIENT_PICOBJS) $(LDFLAGS) $(LIBS) \
+	@$(SHLD) @LDSHFLAGS@ -o $@ $(LIBSMBCLIENT_PICOBJS) $(LIBS) \
 		@SONAMEFLAG@`basename $@`.$(LIBSMBCLIENT_MAJOR)
 
 bin/libsmbclient.a: $(LIBSMBCLIENT_PICOBJS) bin/.dummy
@@ -662,9 +632,9 @@
 	@$(SHLD) @LDSHFLAGS@ -o $@ $(NSS_OBJ) -lc \
 		@SONAMEFLAG@`basename $@`
 
-bin/winbindd: $(WINBINDD_OBJ) bin/.dummy
+bin/winbindd: $(WINBINDD_OBJ) bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(LINK) -o $@ $(WINBINDD_OBJ) $(DYNEXP) $(LIBS) $(LDAPLIBS)
+	@$(LINK) -o $@ $(WINBINDD_OBJ) $(DYNEXP) $(LIBS) $(LDAPLIBS) -L ./bin -lsmbclient
 
 nsswitch/libns_winbind.so: $(WINBIND_NSS_PICOBJS)
 	@echo "Linking $@"
@@ -682,10 +652,9 @@
 		@SONAMEFLAG@`basename $@`
 
 bin/wbinfo: $(WBINFO_OBJ) $(PARAM_OBJ) $(LIB_OBJ) $(NOPROTO_OBJ) \
-			$(UBIQX_OBJ) @BUILD_POPT@ bin/.dummy
+			$(UBIQX_OBJ) @BUILD_POPT@ bin/.dummy bin/libsmbclient.so
 	@echo Linking $@
-	@$(LINK) -o $@ $(WBINFO_OBJ) $(PARAM_OBJ) $(LIB_OBJ) $(NOPROTO_OBJ) \
-		$(UBIQX_OBJ) $(LIBS) @BUILD_POPT@
+	@$(LINK) -o $@ $(WBINFO_OBJ) $(NOPROTO_OBJ) $(LIBS) -L ./bin -lsmbclient @BUILD_POPT@
 
 bin/tdbbackup: $(TDBBACKUP_OBJ) bin/.dummy
 	@echo Linking $@


More information about the samba-technical mailing list