Add selection of the modules to configure (merge from HEAD)
authorJelmer Vernooij <jelmer@samba.org>
Tue, 15 Apr 2003 12:02:24 +0000 (12:02 +0000)
committerJelmer Vernooij <jelmer@samba.org>
Tue, 15 Apr 2003 12:02:24 +0000 (12:02 +0000)
(This used to be commit 3e283989ffc41d55f75f9dacbedca0cf920208fb)

source3/Makefile.in
source3/aclocal.m4
source3/configure.in

index eb54473092d488000803a92a9805b5f2ba93254b..70519847f2a8c5ec0ff42d65273f6a6b49875056 100644 (file)
@@ -4,6 +4,7 @@
 # Copyright (C) 2001 by Martin Pool <mbp@samba.org>
 # Copyright Andrew Bartlett 2002
 # Copyright (C) 2003 Anthony Liguori <aliguor@us.ibm.com>
 # Copyright (C) 2001 by Martin Pool <mbp@samba.org>
 # Copyright Andrew Bartlett 2002
 # Copyright (C) 2003 Anthony Liguori <aliguor@us.ibm.com>
+# Copyright (C) 2002-2003 Jelmer Vernooij <jelmer@samba.org>
 ###########################################################################
 
 prefix=@prefix@
 ###########################################################################
 
 prefix=@prefix@
@@ -55,6 +56,8 @@ LIBDIR = @libdir@
 VFSLIBDIR = $(LIBDIR)/vfs
 PDBLIBDIR = $(LIBDIR)/pdb
 RPCLIBDIR = $(LIBDIR)/rpc
 VFSLIBDIR = $(LIBDIR)/vfs
 PDBLIBDIR = $(LIBDIR)/pdb
 RPCLIBDIR = $(LIBDIR)/rpc
+CHARSETLIBDIR = $(LIBDIR)/charset
+AUTHLIBDIR = $(LIBDIR)/auth
 CONFIGDIR = @configdir@
 VARDIR = @localstatedir@
 MANDIR = @mandir@
 CONFIGDIR = @configdir@
 VARDIR = @localstatedir@
 MANDIR = @mandir@
@@ -175,7 +178,7 @@ POPT_LIB_OBJ = lib/popt_common.o
 UBIQX_OBJ = ubiqx/ubi_BinTree.o ubiqx/ubi_Cache.o ubiqx/ubi_SplayTree.o \
             ubiqx/ubi_dLinkList.o ubiqx/ubi_sLinkList.o 
 
 UBIQX_OBJ = ubiqx/ubi_BinTree.o ubiqx/ubi_Cache.o ubiqx/ubi_SplayTree.o \
             ubiqx/ubi_dLinkList.o ubiqx/ubi_sLinkList.o 
 
-PARAM_OBJ = param/loadparm.o param/params.o dynconfig.o
+PARAM_OBJ = dynconfig.o param/loadparm.o param/params.o
 
 KRBCLIENT_OBJ = libads/kerberos.o
 
 
 KRBCLIENT_OBJ = libads/kerberos.o
 
index 7bec88dd87c983a6091a919e1118a6d4494be21f..f470e2e8b0e0f1cbc083bfe35b05d1f6427f6056 100644 (file)
@@ -36,6 +36,43 @@ if test $ac_cv_dirent_d_off = yes; then
 fi
 ])
 
 fi
 ])
 
+dnl Mark specified module as shared
+dnl SMB_MODULE(name,static_files,shared_files,subsystem,whatif-static,whatif-shared)
+AC_DEFUN(SMB_MODULE,
+[
+       AC_MSG_CHECKING([how to build $1])
+       if test "$[MODULE_][$1]"; then
+               DEST=$[MODULE_][$1]
+       elif test "$[MODULE_]translit([$4], [A-Z], [a-z])" -a "$[MODULE_DEFAULT_][$1]"; then
+               DEST=$[MODULE_]translit([$4], [A-Z], [a-z])
+       else
+               DEST=$[MODULE_DEFAULT_][$1]
+       fi
+       
+       if test x"$DEST" = xSHARED; then
+               AC_DEFINE([$1][_init], [init_module], [Whether to build $1 as shared module])
+               $4_MODULES="$$4_MODULES $3"
+               AC_MSG_RESULT([shared])
+               [$6]
+       elif test x"$DEST" = xSTATIC; then
+               [init_static_modules_]translit([$4], [A-Z], [a-z])="$[init_static_modules_]translit([$4], [A-Z], [a-z]) $1_init();"
+               string_static_modules="$string_static_modules $1"
+               $4_STATIC="$$4_STATIC $2"
+               AC_SUBST($4_STATIC)
+               [$5]
+               AC_MSG_RESULT([static])
+       else
+               AC_MSG_RESULT([not])
+       fi
+       MODULES_CLEAN="$MODULES_CLEAN $2 $3"
+])
+
+AC_DEFUN(SMB_SUBSYSTEM,
+[
+       AC_SUBST($1_STATIC)
+       AC_SUBST($1_MODULES)
+       AC_DEFINE_UNQUOTED([static_init_]translit([$1], [A-Z], [a-z]), [{$init_static_modules_]translit([$1], [A-Z], [a-z])[}], [Static init functions])
+])
 
 dnl AC_PROG_CC_FLAG(flag)
 AC_DEFUN(AC_PROG_CC_FLAG,
 
 dnl AC_PROG_CC_FLAG(flag)
 AC_DEFUN(AC_PROG_CC_FLAG,
index adbe1fe122c37950cd2db4cb47554d3164abfe48..0dd73efb26c643c48cc27350692116da5790a99b 100644 (file)
@@ -332,6 +332,17 @@ AC_VALIDATE_CACHE_SYSTEM_TYPE
 
 DYNEXP=
 
 
 DYNEXP=
 
+dnl Add modules that have to be built by default here
+dnl These have to be built static:
+default_static_modules="pdb_smbpasswd pdb_tdbsam pdb_unix rpc_lsa rpc_samr rpc_reg rpc_wks rpc_net rpc_dfs rpc_srv rpc_spoolss auth_rhosts auth_sam auth_unix auth_winbind auth_server auth_domain auth_builtin idmap_winbind"
+
+if test "x$enable_developer" = xyes; then
+   default_static_modules="$default_static_modules rpc_echo"
+fi
+
+dnl These are preferably build shared, and static if dlopen() is not available
+default_shared_modules="vfs_recycle vfs_audit vfs_extd_audit vfs_fake_perms vfs_netatalk"
+
 #
 # Config CPPFLAG settings for strange OS's that must be set
 # before other tests.
 #
 # Config CPPFLAG settings for strange OS's that must be set
 # before other tests.
@@ -3452,6 +3463,91 @@ AC_ARG_WITH(python,
   esac ])
 AC_SUBST(PYTHON)
 
   esac ])
 AC_SUBST(PYTHON)
 
+for i in `echo $default_static_modules | sed -e's/,/ /g'`
+do
+       eval MODULE_DEFAULT_$i=STATIC
+done
+
+for i in `echo $default_shared_modules | sed -e's/,/ /g'`
+do
+       dnl Fall back to static if dlopen() is not available
+       eval MODULE_DEFAULT_$i=STATIC
+
+       if test x"$ac_cv_func_dlopen" = xyes; then
+               eval MODULE_DEFAULT_$i=SHARED
+       fi
+done
+
+dnl Always built these modules static
+MODULE_pdb_guest=STATIC
+MODULE_rpc_spoolss=STATIC
+MODULE_rpc_srv=STATIC
+
+AC_ARG_WITH(static-modules,
+[  --with-static-modules=MODULES  Comma-seperated list of names of modules to statically link in],
+[ if test $withval; then
+       for i in `echo $withval | sed -e's/,/ /g'`
+       do
+               eval MODULE_$i=STATIC
+       done
+fi ])
+
+AC_ARG_WITH(shared-modules,
+[  --with-shared-modules=MODULES  Comma-seperated list of names of modules to build shared],
+[ if test $withval; then
+       for i in `echo $withval | sed -e's/,/ /g'`
+       do
+                       eval MODULE_$i=SHARED
+       done
+fi ])
+
+SMB_MODULE(pdb_xml, modules/xml.o, "bin/xml.$SHLIBEXT", PDB,
+                 [ PASSDBLIBS="$PASSDBLIBS $XML_LIBS" ] )
+SMB_MODULE(pdb_mysql, modules/mysql.o, "bin/mysql.$SHLIBEXT", PDB, 
+                  [ PASSDBLIBS="$PASSDBLIBS $MYSQL_LIBS" ]     )
+SMB_MODULE(pdb_ldap, passdb/pdb_ldap.o, "bin/ldapsam.$SHLIBEXT", PDB, 
+                  [ PASSDBLIBS="$PASSDBLIBS $LDAP_LIBS" ] )
+SMB_MODULE(pdb_smbpasswd, passdb/pdb_smbpasswd.o, "bin/smbpasswd.$SHLIBEXT", PDB)
+SMB_MODULE(pdb_tdbsam, passdb/pdb_tdb.o, "bin/tdbsam.$SHLIBEXT", PDB)
+SMB_MODULE(pdb_nisplussam, passdb/pdb_nisplus.o, "bin/nisplussam.$SHLIBEXT", PDB)
+SMB_MODULE(pdb_unix, passdb/pdb_unix.o, "bin/unixsam.$SHLIBEXT", PDB)
+SMB_MODULE(pdb_guest, passdb/pdb_guest.o, "bin/guest.$SHLIBEXT", PDB)
+SMB_SUBSYSTEM(PDB)
+
+SMB_MODULE(rpc_lsa, \$(RPC_LSA_OBJ), "bin/librpc_lsarpc.$SHLIBEXT", RPC)
+SMB_MODULE(rpc_reg, \$(RPC_REG_OBJ), "bin/librpc_winreg.$SHLIBEXT", RPC)
+SMB_MODULE(rpc_wks, \$(RPC_WKS_OBJ), "bin/librpc_wkssvc.$SHLIBEXT", RPC)
+SMB_MODULE(rpc_net, \$(RPC_NETLOG_OBJ), "bin/librpc_NETLOGON.$SHLIBEXT", RPC)
+SMB_MODULE(rpc_dfs, \$(RPC_DFS_OBJ), "bin/librpc_netdfs.$SHLIBEXT", RPC)
+SMB_MODULE(rpc_srv, \$(RPC_SVC_OBJ), "bin/librpc_srvsvc.$SHLIBEXT", RPC)
+SMB_MODULE(rpc_spoolss, \$(RPC_SPOOLSS_OBJ), "bin/librpc_spoolss.$SHLIBEXT", RPC)
+SMB_MODULE(rpc_samr, \$(RPC_SAMR_OBJ), "bin/librpc_samr.$SHLIBEXT", RPC)
+SMB_MODULE(rpc_echo, \$(RPC_ECHO_OBJ), "bin/librpc_echo.$SHLIBEXT", RPC)
+SMB_SUBSYSTEM(RPC)
+
+SMB_MODULE(charset_weird, modules/developer.o, "bin/developer.$SHLIBEXT", CHARSET)
+SMB_SUBSYSTEM(CHARSET)
+
+SMB_MODULE(auth_rhosts, \$(AUTH_RHOSTS_OBJ), "bin/rhosts.$SHLIBEXT", AUTH)
+SMB_MODULE(auth_sam, \$(AUTH_SAM_OBJ), "bin/sam.$SHLIBEXT", AUTH)
+SMB_MODULE(auth_unix, \$(AUTH_UNIX_OBJ), "bin/unix.$SHLIBEXT", AUTH)
+SMB_MODULE(auth_winbind, \$(AUTH_WINBIND_OBJ), "bin/winbind.$SHLIBEXT", AUTH)
+SMB_MODULE(auth_server, \$(AUTH_SERVER_OBJ), "bin/server.$SHLIBEXT", AUTH)
+SMB_MODULE(auth_domain, \$(AUTH_DOMAIN_OBJ), "bin/domain.$SHLIBEXT", AUTH)
+SMB_MODULE(auth_builtin, \$(AUTH_BUILTIN_OBJ), "bin/builtin.$SHLIBEXT", AUTH)
+SMB_SUBSYSTEM(AUTH)
+
+SMB_MODULE(vfs_recycle, \$(VFS_RECYCLE_OBJ), "bin/recycle.$SHLIBEXT", VFS)
+SMB_MODULE(vfs_audit, \$(VFS_AUDIT_OBJ), "bin/audit.$SHLIBEXT", VFS)
+SMB_MODULE(vfs_extd_audit, \$(VFS_EXTD_AUDIT_OBJ), "bin/extd_audit.$SHLIBEXT", VFS)
+SMB_MODULE(vfs_fake_perms, \$(VFS_FAKE_PERMS_OBJ), "bin/fake_perms.$SHLIBEXT", VFS)
+SMB_MODULE(vfs_netatalk, \$(VFS_NETATALK_OBJ), "bin/netatalk.$SHLIBEXT", VFS)
+SMB_SUBSYSTEM(VFS)
+
+AC_DEFINE_UNQUOTED(STRING_STATIC_MODULES, "$string_static_modules", [String list of builtin modules])
+
+AC_SUBST(MODULES_CLEAN)
+
 #################################################
 # do extra things if we are running insure
 
 #################################################
 # do extra things if we are running insure