Hi Jens, Jens Elkner wrote:
You are right, $(LDFLAGS) is missing for libsmbclient.1) For SHLD the LDSHFLAGS parameter is used. It should get set to -shared.
And that is exactly the problem! It is set only to "-shared" and not to "-shared $LDFLAGS". So if I do not apply the Makefile.in patch I get for build: Linking libsmbclient shared library bin/libsmbclient.so gcc -shared -o bin/libsmbclient.so libsmb/libsmbclient.po lib/charcnv.po lib/charset.po lib/debug.po lib/fault.po lib/getsmbpass.po lib/interface.po lib/kanji.po lib/md4.po lib/interfaces.po lib/pidfile.po lib/replace.po lib/signal.po lib/system.po lib/sendfile.po lib/time.po lib/ufc.po lib/genrand.po lib/username.po lib/util_getent.po lib/access.po lib/smbrun.po lib/bitmap.po lib/crc32.po lib/snprintf.po lib/wins_srv.po lib/util_str.po lib/util_sid.po lib/util_unistr.po lib/util_file.po lib/util.po lib/util_sock.po lib/util_sec.po smbd/ssl.po lib/talloc.po lib/hash.po lib/substitute.po lib/fsusage.po lib/ms_fnmatch.po lib/select.po lib/error.po lib/messages.po lib/pam_errors.po nsswitch/wb_client.po nsswitch/wb_common.po tdb/tdb.po tdb/spinlock.po tdb/tdbutil.po libsmb/clientgen.po libsmb/cliconnect.po libsmb/clifile.po libsmb/clirap.po libsmb/clierror.po libsmb/climessage.po libsmb/clireadwrite.po libsmb/clilist.po libsmb/cliprint.po libsmb/clitrans.po libsmb/clisecdesc.! po libsmb/clidgram.po libsmb/namequery.po libsmb/nmblib.po libsmb/clistr.po libsmb/nterr.po libsmb/smbdes.po libsmb/smbencrypt.po libsmb/smberr.po libsmb/credentials.po libsmb/pwd_cache.po libsmb/clioplock.po libsmb/errormap.po libsmb/doserr.po libsmb/passchange.po libsmb/unexpected.po rpc_parse/parse_prs.po rpc_parse/parse_sec.po rpc_parse/parse_misc.po libsmb/namecache.po param/loadparm.po param/params.po ubiqx/ubi_BinTree.po ubiqx/ubi_Cache.po ubiqx/ubi_SplayTree.po ubiqx/ubi_dLinkList.po ubiqx/ubi_sLinkList.po ubiqx/debugparse.po -lacl -lcups -lnsl \ -Wl,-soname=`basename bin/libsmbclient.so`.0 /usr/bin/ld: cannot find -lacl collect2: ld returned 1 exit status make: *** [bin/libsmbclient.so] Error 1
I think the correct patch would be to add the missing $(LDFLAGS) in Makefile.in only where it is missing:
----------------------------------
--- Makefile.in.orig 2002-09-20 21:10:45.000000000 +0200
+++ Makefile.in 2003-01-05 23:15:22.000000000 +0100
@@ -645,7 +645,7 @@
bin/libsmbclient.@SHLIBEXT@: $(LIBSMBCLIENT_PICOBJS) bin/.dummy
@echo Linking libsmbclient shared library $@
- @$(SHLD) @LDSHFLAGS@ -o $@ $(LIBSMBCLIENT_PICOBJS) $(LIBS) \
+ @$(SHLD) @LDSHFLAGS@ -o $@ $(LIBSMBCLIENT_PICOBJS) $(LDFLAGS) $(LIBS) \
@SONAMEFLAG@`basename $@`.$(LIBSMBCLIENT_MAJOR)
bin/libsmbclient.a: $(LIBSMBCLIENT_PICOBJS) bin/.dummy
----------------------------------
I guess nobody ever had this problem before and complained loud enough about it :-)
Look at2) cups-config is coming from the cups installation. It's created when you run
configure at the cups source. You can specify the directories there. If you install
cups from a rpm it should also be correct.
And that�s exactly the point. "if you install it" - I do not want to install it on the system, where smb is build ... Furthermore, why should the smb stuff linked against the same libs, libcups was linked to? Perhaps cups has (not yet) its own mechanism, to find the libs it needs ...
http://cvs.samba.org/cgi-bin/cvsweb/samba/source/configure.in.diff?r1=1.130.4.144&r2=1.130.4.145&only_with_tag=SAMBA_2_2&f=h
There you see the way configure.in was before cups-config was used. You see it's not just looking for libcups and cups.h ...
...Juergen
