[SCM] Samba Shared Repository - branch v3-2-test updated -
initial-v3-2-test-2159-gbc4482c
Michael Adam
obnox at samba.org
Wed Feb 13 08:26:18 GMT 2008
The branch, v3-2-test has been updated
via bc4482cde1571bb1cb2d55106fc8ee22d26efa23 (commit)
via 97a60565ad6657af8e4a3b8b38b69b48597e3eec (commit)
via d1bec3882908086747e1176a275617700cada097 (commit)
via dddfdee90ee30d225e08d7f1685409f62fabf7c1 (commit)
via 71b990d9d687b517dec3d4eff67b6a3fe417a12a (commit)
via 880238c65c13c8b280e2f34431aa331a16af4a7b (commit)
via ed2337e3a24e800e0a445a9ffc7d735d49abc6d7 (commit)
via cb7f42bcbc6cbe84823402cd3c7bb9327669ed9b (commit)
from 5116c9d9f4bd1a523ac7a2a31b3b1552388f040f (commit)
http://gitweb.samba.org/?samba.git;a=shortlog;h=v3-2-test
- Log -----------------------------------------------------------------
commit bc4482cde1571bb1cb2d55106fc8ee22d26efa23
Author: Michael Adam <obnox at samba.org>
Date: Tue Feb 12 15:28:51 2008 +0100
Fix some comment typos.
Michael
commit 97a60565ad6657af8e4a3b8b38b69b48597e3eec
Author: Michael Adam <obnox at samba.org>
Date: Tue Feb 12 15:26:00 2008 +0100
Remove some unneded variables: we always build and install some talloc libs.
LIBTALLOC, INSTALL_LIBTALLOC, UNINSTALL_LIBTALLOC
Michael
commit d1bec3882908086747e1176a275617700cada097
Author: Michael Adam <obnox at samba.org>
Date: Tue Feb 12 15:18:56 2008 +0100
Put talloc lib targets into variables and uses these.
LIBTALLOC_STATIC_TARGET and LIBTALLOC_SHARED_TARGET.
Michael
commit dddfdee90ee30d225e08d7f1685409f62fabf7c1
Author: Michael Adam <obnox at samba.org>
Date: Tue Feb 12 14:43:20 2008 +0100
Simplify code by moving duplicate assignment to common place.
Michael
commit 71b990d9d687b517dec3d4eff67b6a3fe417a12a
Author: Michael Adam <obnox at samba.org>
Date: Fri Feb 8 14:41:30 2008 +0100
Add support for linking talloc library statically or dynamically into samba.
This also establishes a general configure mechanism to control static vs
dynamic linking of internal subsystems built as libraries:
This first simple approach is as follows.
* It applies only to "subsystems" that we build as libraries and for
that linking samba against the libraries (as opposed to linking in
the plain object files) has been configured in Makefile.in.
* If we do build the shared library, then we link dynamically by default.
* We only link statically if we don't build shared or if the library
appears in the new --with-static-libs configure option
(comma-separated list).
Example (currently only one):
--with-static-libs=talloc makes use of libtalloc.a instead
of linking the dynamic variant with -ltalloc.
A possilble way to setup linking against libraries in Makefile.in is this:
For a subsystem, "mylib" say, we build bin/libmylib.a and bin/libmylib.so.
The subsystem usually has a MYLIB_OBJ definition in Makefile.in. Define
LIBMYLIB_STATIC=bin/libmylib.a and and LIBMYLIB_LIBS=-lmylib in configure.in
as controlled by presence of "mylib" in the list given to --with-static-libs
and change uses of $(MYLIB_OBJ) to @LIBMYLIB_STATIC@ in Makefile.in and
add @LIBMYLIB_LIBS@ to the link targets as needed.
In the example of talloc, which is needed everywhere, I have simply
added @LIBTALLOC_LIBS@ to the definition of "LIBS" in Makefile.in.
For other subsystems, one will have to be more careful.
Michael
commit 880238c65c13c8b280e2f34431aa331a16af4a7b
Author: Michael Adam <obnox at samba.org>
Date: Fri Feb 8 17:16:51 2008 +0100
Use data from lib/talloc/libtalloc.m4 instead of hard coded data.
Michael
commit ed2337e3a24e800e0a445a9ffc7d735d49abc6d7
Author: Michael Adam <obnox at samba.org>
Date: Mon Feb 11 16:09:19 2008 +0100
Move the AC_LIBREPLACE_CC_CHECKS up before building SAMBA_CPPFLAGS.
Michael
commit cb7f42bcbc6cbe84823402cd3c7bb9327669ed9b
Author: Michael Adam <obnox at samba.org>
Date: Fri Feb 8 01:00:03 2008 +0100
Add support for building libtalloc.a and libtalloc.so.
Michael
-----------------------------------------------------------------------
Summary of changes:
source/Makefile.in | 46 +++++++++++++++----
source/configure.in | 105 +++++++++++++++++++++++++++++++++++++++++---
source/library-versions.in | 1 +
3 files changed, 135 insertions(+), 17 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source/Makefile.in b/source/Makefile.in
index 4c1fef4..5de5bc4 100644
--- a/source/Makefile.in
+++ b/source/Makefile.in
@@ -18,7 +18,7 @@ datarootdir=@datarootdir@
selftest_prefix=@selftest_prefix@
smbtorture4_path=@smbtorture4_path@
-LIBS=@LIBS@
+LIBS=@LIBS@ @LIBTALLOC_LIBS@
CC=@CC@
SHLD=@SHLD@
LIB_PATH_VAR=@LIB_PATH_VAR@
@@ -141,6 +141,9 @@ CODEPAGEDIR = @codepagedir@
# the directory where pid files go
PIDDIR = @piddir@
+LIBTALLOC_SHARED_TARGET=@LIBTALLOC_SHARED_TARGET@
+LIBTALLOC_STATIC_TARGET=@LIBTALLOC_STATIC_TARGET@
+LIBTALLOC=$(LIBTALLOC_STATIC_TARGET) @LIBTALLOC_SHARED@
LIBSMBCLIENT=bin/libsmbclient.a @LIBSMBCLIENT_SHARED@
LIBSMBSHAREMODES=bin/libsmbsharemodes.a @LIBSMBSHAREMODES_SHARED@
LIBADDNS=bin/libaddns.a @LIBADDNS_SHARED@
@@ -203,7 +206,7 @@ EVERYTHING_PROGS = bin/debug2html at EXEEXT@ bin/smbfilter at EXEEXT@ \
bin/log2pcap at EXEEXT@ bin/sharesec at EXEEXT@ bin/ndrdump at EXEEXT@ \
bin/vlp at EXEEXT@
-SHLIBS = @LIBWBCLIENT@ @LIBSMBCLIENT@ @LIBSMBSHAREMODES@ @LIBADDNS@ @LIBNETAPI@
+SHLIBS = libtalloc @LIBWBCLIENT@ @LIBSMBCLIENT@ @LIBSMBSHAREMODES@ @LIBADDNS@ @LIBNETAPI@
PAM_MODULES = @PAM_MODULES@
@@ -293,9 +296,13 @@ LIBREPLACE_OBJ = @LIBREPLACE_OBJS@
SOCKET_WRAPPER_OBJ = @SOCKET_WRAPPER_OBJS@
NSS_WRAPPER_OBJ = @NSS_WRAPPER_OBJS@
-TALLOC_OBJ = lib/talloc/talloc.o
+TALLOC_OBJ = @TALLOC_OBJS@
-LIBSAMBAUTIL_OBJ = $(TALLOC_OBJ) \
+
+LIBTALLOC_OBJ0 = $(TALLOC_OBJ)
+LIBTALLOC_OBJ = $(LIBTALLOC_OBJ0)
+
+LIBSAMBAUTIL_OBJ = @LIBTALLOC_STATIC@ \
$(LIBREPLACE_OBJ) \
$(SOCKET_WRAPPER_OBJ) \
$(NSS_WRAPPER_OBJ)
@@ -348,7 +355,7 @@ KRBCLIENT_OBJ = libads/kerberos.o libads/ads_status.o
LIBADDNS_OBJ0 = libaddns/dnsrecord.o libaddns/dnsutils.o libaddns/dnssock.o \
libaddns/dnsgss.o libaddns/dnsmarshall.o
-LIBADDNS_OBJ = $(LIBADDNS_OBJ0) $(TALLOC_OBJ)
+LIBADDNS_OBJ = $(LIBADDNS_OBJ0) @LIBTALLOC_STATIC@
LIBWBCLIENT_OBJ0 = nsswitch/libwbclient/wbclient.o \
nsswitch/libwbclient/wbc_util.o \
@@ -356,7 +363,7 @@ LIBWBCLIENT_OBJ0 = nsswitch/libwbclient/wbclient.o \
nsswitch/libwbclient/wbc_idmap.o \
nsswitch/libwbclient/wbc_sid.o \
nsswitch/libwbclient/wbc_pam.o
-LIBWBCLIENT_OBJ = $(LIBWBCLIENT_OBJ0) $(WBCOMMON_OBJ) $(TALLOC_OBJ) $(LIBREPLACE_OBJ)
+LIBWBCLIENT_OBJ = $(LIBWBCLIENT_OBJ0) $(WBCOMMON_OBJ) @LIBTALLOC_STATIC@ $(LIBREPLACE_OBJ)
LIBGPO_OBJ0 = libgpo/gpo_ldap.o libgpo/gpo_ini.o libgpo/gpo_util.o \
libgpo/gpo_fetch.o libgpo/gpo_filesync.o libgpo/gpo_sec.o
@@ -877,7 +884,7 @@ SHARESEC_OBJ = $(SHARESEC_OBJ0) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(REGOBJS_OBJ)
$(ERRORMAP_OBJ) $(RPC_PARSE_OBJ1) $(LIBSAMBA_OBJ) $(DOSERR_OBJ) \
$(POPT_LIB_OBJ) $(SECRETS_OBJ)
-TALLOCTORT_OBJ = lib/talloc/testsuite.o $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
+TALLOCTORT_OBJ = @tallocdir@/testsuite.o $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
$(RPC_PARSE_OBJ1) $(DOSERR_OBJ) $(LIBSAMBA_OBJ) $(SECRETS_OBJ)
REPLACETORT_OBJ = lib/replace/test/testsuite.o \
@@ -1110,7 +1117,7 @@ idl:
#####################################################################
-everything: all libsmbclient libnetapi debug2html smbfilter talloctort replacetort modules torture \
+everything: all libtalloc libsmbclient libnetapi debug2html smbfilter talloctort replacetort modules torture \
$(EVERYTHING_PROGS)
.SUFFIXES:
@@ -1436,6 +1443,16 @@ bin/ldbdel: $(BINARY_PREREQS) $(LDBDEL_OBJ) @BUILD_POPT@ @LIBWBCLIENT_SHARED@
@POPTLIBS@ $(KRB5LIBS) $(UUID_LIBS) $(LDAP_LIBS) $(PASSDB_LIBS) \
$(TERMLDFLAGS) $(TERMLIBS) $(NSCD_LIBS) @WINBIND_LIBS@
+$(LIBTALLOC_SHARED_TARGET): $(BINARY_PREREQS) $(LIBTALLOC_OBJ)
+ @echo Linking shared library $@
+ @$(SHLD_DSO) $(LIBTALLOC_OBJ) \
+ @SONAMEFLAG@`basename $@`.$(SONAME_VER)
+ @ln -s -f `basename $@` $@.$(SONAME_VER)
+
+$(LIBTALLOC_STATIC_TARGET): $(BINARY_PREREQS) $(LIBTALLOC_OBJ0)
+ @echo Linking non-shared library $@
+ @-$(AR) -rc $@ $(LIBTALLOC_OBJ0)
+
bin/libwbclient. at SHLIBEXT@: $(BINARY_PREREQS) $(LIBWBCLIENT_OBJ)
@echo Linking shared library $@
@$(SHLD_DSO) $(LIBWBCLIENT_OBJ) \
@@ -1499,6 +1516,7 @@ bin/libbigballofmud. at SHLIBEXT@: $(BINARY_PREREQS) $(LIBBIGBALLOFMUD_OBJ)
# it can be fixed or if they just can't be called from a static
# library.
+libtalloc: $(LIBTALLOC)
libsmbclient: $(LIBSMBCLIENT)
libsmbsharemodes: $(LIBSMBSHAREMODES)
libaddns: $(LIBADDNS)
@@ -1868,6 +1886,7 @@ bin/timelimit at EXEEXT@: script/tests/timelimit.o
install: installservers installbin @INSTALL_CIFSMOUNT@ @INSTALL_CIFSSPNEGO@ installman \
installscripts installdat installmodules @SWAT_INSTALL_TARGETS@ \
+ installlibtalloc \
@INSTALL_LIBSMBCLIENT@ @INSTALL_PAM_MODULES@ \
@INSTALL_LIBSMBSHAREMODES@ @INSTALL_LIBWBCLIENT@ @INSTALL_LIBNETAPI@
@@ -1936,6 +1955,12 @@ installclientlib: installdirs libsmbclient
@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) ${prefix}/include
-$(INSTALLCMD) -m $(INSTALLPERMS_DATA) $(srcdir)/include/libsmbclient.h $(DESTDIR)${prefix}/include
+installlibtalloc: installdirs libtalloc
+ @$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(LIBDIR)
+ -$(INSTALLLIBCMD_SH) $(LIBTALLOC_SHARED_TARGET) $(DESTDIR)$(LIBDIR)
+ -$(INSTALLLIBCMD_A) $(LIBTALLOC_STATIC_TARGET) $(DESTDIR)$(LIBDIR)
+ -$(INSTALLCMD) -m $(INSTALLPERMS_DATA) @tallocdir@/talloc.h $(DESTDIR)${prefix}/include
+
installlibsmbsharemodes: installdirs libsmbsharemodes
@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(LIBDIR)
-$(INSTALLLIBCMD_SH) bin/libsmbsharemodes. at SHLIBEXT@ $(DESTDIR)$(LIBDIR)
@@ -1993,7 +2018,7 @@ showlayout:
@echo " swatdir: $(SWATDIR)"
-uninstall: uninstallman uninstallservers uninstallbin @UNINSTALL_CIFSMOUNT@ @UNINSTALL_CIFSSPNEGO@ uninstallscripts uninstalldat uninstallswat uninstallmodules @UNINSTALL_LIBSMBCLIENT@ @UNINSTALL_PAM_MODULES@ @UNINSTALL_LIBSMBSHAREMODES@ @UNINSTALL_LIBNETAPI@
+uninstall: uninstallman uninstallservers uninstallbin @UNINSTALL_CIFSMOUNT@ @UNINSTALL_CIFSSPNEGO@ uninstallscripts uninstalldat uninstallswat uninstallmodules uninstalllibtalloc @UNINSTALL_LIBSMBCLIENT@ @UNINSTALL_PAM_MODULES@ @UNINSTALL_LIBSMBSHAREMODES@ @UNINSTALL_LIBNETAPI@
uninstallman:
@$(SHELL) $(srcdir)/script/uninstallman.sh $(DESTDIR)$(MANDIR) $(srcdir) C
@@ -2064,7 +2089,8 @@ clean: delheaders
../testsuite/*/*.o \
*/*. at SHLIBEXT@ */*/*. at SHLIBEXT@ */*/*/*. at SHLIBEXT@ \
$(TOPFILES) $(BIN_PROGS) $(SBIN_PROGS) $(ROOT_SBIN_PROGS) \
- $(MODULES) $(TORTURE_PROGS) $(LIBSMBCLIENT) $(LIBADDNS) \
+ $(MODULES) $(TORTURE_PROGS) \
+ $(LIBTALLOC) $(LIBSMBCLIENT) $(LIBADDNS) \
$(LIBSMBSHAREMODES) $(EVERYTHING_PROGS) $(LIBNETAPI) \
bin/libwbclient.so.0 bin/timelimit \
.headers.stamp */src/*.o proto_exists
diff --git a/source/configure.in b/source/configure.in
index 9e4692b..074bdfa 100644
--- a/source/configure.in
+++ b/source/configure.in
@@ -271,9 +271,19 @@ do
done
])
+AC_LIBREPLACE_CC_CHECKS
+
+m4_include(lib/talloc/libtalloc.m4)
+
+TALLOC_OBJS=""
+for obj in ${TALLOC_OBJ}; do
+ TALLOC_OBJS="${TALLOCOBJS} ${tallocdir}/${obj}"
+done
+AC_SUBST(TALLOC_OBJS)
+
SAMBA_CPPFLAGS="-Iinclude -I${srcdir-.}/include -I. -I${srcdir-.}"
SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/lib/replace"
-SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/lib/talloc"
+SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${TALLOC_CFLAGS}"
SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/lib/tdb/include"
SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/libaddns"
SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/librpc"
@@ -322,6 +332,12 @@ AC_SUBST(UNINSTALL_LIBADDNS)
AC_SUBST(LIBADDNS_SHARED)
AC_SUBST(LIBADDNS)
+AC_SUBST(LIBTALLOC_STATIC_TARGET)
+AC_SUBST(LIBTALLOC_SHARED_TARGET)
+AC_SUBST(LIBTALLOC_SHARED)
+AC_SUBST(LIBTALLOC_STATIC)
+AC_SUBST(LIBTALLOC_LIBS)
+
AC_SUBST(INSTALL_LIBWBCLIENT)
AC_SUBST(UNINSTALL_LIBWBCLIENT)
AC_SUBST(LIBWBCLIENT_SHARED)
@@ -387,8 +403,6 @@ fi
CFLAGS="${CFLAGS} -D_SAMBA_BUILD_=3"
-AC_LIBREPLACE_CC_CHECKS
-
m4_include(lib/socket_wrapper/config.m4)
m4_include(lib/nss_wrapper/config.m4)
@@ -5114,6 +5128,83 @@ if test $enable_static = yes; then
fi
#################################################
+# --with-static-libs=LIBS:
+# link (internal) libs dynamically or statically?
+#
+# If a subsystem is built as a library then this controls whether they are
+# linked into Samba targets statically or dynamically:
+#
+# * If we build the shared library at all, we link dynamically by default.
+#
+# * We only link statically if we don't build shared or if the library
+# appears in the --with-static-libs configure option.
+#
+# Example:
+# --with-static-libs=talloc makes use of libtalloc.a instead
+# of linking the dynamic variant with -ltalloc.
+#
+# NOTE: This option only affects libraries that we do not only build
+# but that samba also links against as libraries (as opposed to linking
+# the plain object files. - This has to be configured in Makefile.in.
+# So in particular it does not harm to give invalid or unknown names here.
+#
+
+AC_ARG_WITH([static-libs],
+ [AC_HELP_STRING([--with-static-libs=LIBS],
+ [Comma-separated list of names of (internal) libraries to link statically (instead of dynamically)])],
+ [AS_IF([test $withval],
+ [for lib in `echo $withval | sed -e 's/,/ /g'` ; do
+ [lib=`echo $lib | tr '[a-z]' '[A-Z]'`]
+ eval LIB_$lib=STATIC
+ done], [])],
+ [])
+
+#################################################
+# should we build libtalloc?
+LIBTALLOC_SHARED_TARGET=bin/libtalloc.$SHLIBEXT
+LIBTALLOC_STATIC_TARGET=bin/libtalloc.a
+LIBTALLOC_SHARED=
+LIBTALLOC_STATIC=
+LIBTALLOC_LIBS=
+
+AC_MSG_CHECKING(whether to build the libtalloc shared library)
+AC_ARG_WITH(libtalloc,
+[AS_HELP_STRING([--with-libtalloc],
+ [Build the libtalloc shared library (default=yes if shared libs supported)])],
+[
+case "$withval" in
+ *)
+ AC_MSG_RESULT(no)
+ ;;
+ yes)
+ samba_cv_with_libtalloc=yes
+ ;;
+esac
+],
+[
+# if unspecified, default is to build it if possible.
+samba_cv_with_libtalloc=yes
+]
+)
+
+if test x"$samba_cv_with_libtalloc" = "xyes" -a $BLDSHARED = true; then
+ LIBTALLOC_SHARED=$LIBTALLOC_SHARED_TARGET
+ AC_MSG_RESULT(yes)
+ if test x"$LIB_TALLOC" = "xSTATIC" ; then
+ LIBTALLOC_STATIC=$LIBTALLOC_STATIC_TARGET
+ else
+ LIBTALLOC_LIBS=-ltalloc
+ fi
+else
+ enable_static=yes
+ AC_MSG_RESULT(no shared library support -- will supply static library)
+fi
+if test $enable_static = yes; then
+ LIBTALLOC_STATIC=$LIBTALLOC_STATIC_TARGET
+fi
+
+
+#################################################
# should we build libnetapi?
INSTALL_LIBNETAPI=
UNINSTALL_LIBNETAPI=
@@ -5143,7 +5234,7 @@ AC_ARG_WITH(libnetapi,
;;
esac ],
[
-# if unspecified, default is to built it if possible.
+# if unspecified, default is to build it if possible.
if test $BLDSHARED = true; then
LIBNETAPI_SHARED=bin/libnetapi.$SHLIBEXT
LIBNETAPI=libnetapi
@@ -5221,7 +5312,7 @@ AC_ARG_WITH(libsmbclient,
;;
esac ],
[
-# if unspecified, default is to built it if possible.
+# if unspecified, default is to build it if possible.
if test $BLDSHARED = true; then
LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
LIBSMBCLIENT=libsmbclient
@@ -5264,7 +5355,7 @@ AC_ARG_WITH(libsmbsharemodes,
;;
esac ],
[
-# if unspecified, default is to built it if possible.
+# if unspecified, default is to build it if possible.
if test $BLDSHARED = true; then
LIBSMBSHAREMODES_SHARED=bin/libsmbsharemodes.$SHLIBEXT
LIBSMBSHAREMODES=libsmbsharemodes
@@ -6416,7 +6507,7 @@ do
fi
done
-dnl Always built these modules static
+dnl Always build these modules static
MODULE_rpc_spoolss=STATIC
MODULE_rpc_srvsvc2=STATIC
MODULE_idmap_tdb=STATIC
diff --git a/source/library-versions.in b/source/library-versions.in
index cdd1807..2d69d3e 100644
--- a/source/library-versions.in
+++ b/source/library-versions.in
@@ -2,6 +2,7 @@
## Basic script for defining the major and minor library revision numbers
## Makefile_target:major:minor
##
+bin/libtalloc. at SHLIBEXT@:1:0
bin/libsmbclient. at SHLIBEXT@:0:1
bin/libsmbsharemodes. at SHLIBEXT@:0:2
bin/libaddns. at SHLIBEXT@:0:1
--
Samba Shared Repository
More information about the samba-cvs
mailing list