The following patch changes the build process for samba (3_0) to build libsmbclient.so if and only if the operating system supports shared libraries. Today the build process tries to build libsmbclient.so even when the configure script has already determined that shared libraries aren't supported.
In the case where libsmbclient.so is requested, either explicitly or implicitly and cannot be built, the script substitutes libsmbclient.a. As before, if libsmbclient is suppressed (--without-libsmbclient), then neither file is built. I have tested this patch on Stratus VOS (which does not support shared libraries) and on Solaris 2.8 (which does support them). Samba (3_0) configures and builds as expected on each system. I looked in vain for any mention of libsmbclient in the documentation files, so I'm not proposing any documentation changes. ### START OF PATCH (samba 3_0) ### diff -urp old/samba_3_0/source/Makefile.in new/samba_3_0/source/Makefile.in --- old/samba_3_0/source/Makefile.in Sat Jan 25 21:48:25 2003 +++ new/samba_3_0/source/Makefile.in Sun Jan 26 18:14:08 2003 @@ -29,6 +29,8 @@ AUTHLIBS=@AUTHLIBS@ LINK=$(CC) $(FLAGS) $(LDFLAGS) INSTALLCMD=@INSTALL@ +INSTALLCLIENTCMD_SH=@INSTALLCLIENTCMD_SH@ +INSTALLCLIENTCMD_A=@INSTALLCLIENTCMD_A@ VPATH=@srcdir@ srcdir=@srcdir@ @@ -812,7 +814,7 @@ bin/libbigballofmud.@SHLIBEXT@: $(LIBBIG $(SHLD) $(LDSHFLAGS) -o $@ $(LIBBIGBALLOFMUD_PICOBJS) $(LIBS) \ @SONAMEFLAG@`basename $@`.$(LIBBIGBALLOFMUD_MAJOR) -libsmbclient: bin/libsmbclient.a bin/libsmbclient.@SHLIBEXT@ +libsmbclient: bin/libsmbclient.a @LIBSMBCLIENT_SHARED@ nsswitch/libnss_wins.@SHLIBEXT@: $(NSS_OBJ) @echo "Linking $@" @@ -916,7 +918,8 @@ installswat: installdirs @$(SHELL) $(srcdir)/script/installswat.sh $(DESTDIR)$(SWATDIR) $(srcdir) installclientlib: - -$(INSTALLCMD) bin/libsmbclient.@SHLIBEXT@ $(DESTDIR)${prefix}/lib + -$(INSTALLCLIENTCMD_SH) bin/libsmbclient.@SHLIBEXT@ $(DESTDIR)${prefix}/lib + -$(INSTALLCLIENTCMD_A) bin/libsmbclient.a $(DESTDIR)${prefix}/lib -$(INSTALLCMD) -d $(DESTDIR)${prefix}/include -$(INSTALLCMD) include/libsmbclient.h $(DESTDIR)${prefix}/include diff -urp old/samba_3_0/source/configure.in new/samba_3_0/source/configure.in --- old/samba_3_0/source/configure.in Sat Jan 25 09:36:00 2003 +++ new/samba_3_0/source/configure.in Sun Jan 26 18:16:24 2003 @@ -140,6 +140,8 @@ AC_SUBST(PICFLAG) AC_SUBST(PICSUFFIX) AC_SUBST(POBAD_CC) AC_SUBST(SHLIBEXT) +AC_SUBST(INSTALLCLIENTCMD_SH) +AC_SUBST(INSTALLCLIENTCMD_A) AC_SUBST(LIBSMBCLIENT_SHARED) AC_SUBST(LIBSMBCLIENT) AC_SUBST(PRINTLIBS) @@ -1026,14 +1028,6 @@ if test $ac_cv_shlib_works = no; then fi fi - -# this updates our target list if we can build shared libs -if test $BLDSHARED = true; then - LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT -else - LIBSMBCLIENT_SHARED= -fi - ################ AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[ @@ -2460,26 +2454,42 @@ AC_ARG_WITH(manpages-langs, ################################################# # should we build libsmbclient? +INSTALLCLIENTCMD_SH=: +INSTALLCLIENTCMD_A=: LIBSMBCLIENT_SHARED= LIBSMBCLIENT= AC_MSG_CHECKING(whether to build the libsmbclient shared library) AC_ARG_WITH(libsmbclient, -[ --with-libsmbclient Build the libsmbclient shared library (default=yes)], +[ --with-libsmbclient Build the libsmbclient shared library (default=yes if +shared libs supported)], [ case "$withval" in no) AC_MSG_RESULT(no) ;; *) if test $BLDSHARED = true; then + INSTALLCLIENTCMD_SH="\$(INSTALLCMD)" LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT LIBSMBCLIENT=libsmbclient AC_MSG_RESULT(yes) else - AC_MSG_RESULT(no shared library support) + INSTALLCLIENTCMD_A="\$(INSTALLCMD)" + LIBSMBCLIENT=libsmbclient + AC_MSG_RESULT(no shared library support -- will supply static library) fi ;; esac ], - AC_MSG_RESULT(yes) +[ +# if unspecified, default is to built it iff possible. + if test $BLDSHARED = true; then + INSTALLCLIENTCMD_SH="\$(INSTALLCMD)" + LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT + LIBSMBCLIENT=libsmbclient + AC_MSG_RESULT(yes) + else + INSTALLCLIENTCMD_A="\$(INSTALLCMD)" + LIBSMBCLIENT=libsmbclient + AC_MSG_RESULT(no shared library support -- will supply static library) + fi] ) ### END OF PATCH (samba 3_0) ### Thanks PG -- Paul Green | Mail: [EMAIL PROTECTED] Senior Technical Consultant | Voice: +1 978-461-7557 Stratus Technologies | FAX: +1 978-461-3610 Maynard, MA 01754 | Disclaimer: I speak for myself, not Stratus.