summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2001-09-19 09:44:12 +0000
committerAndrew Bartlett <abartlet@samba.org>2001-09-19 09:44:12 +0000
commit6794b58a8c5941ede29e07247bda911328cd7b20 (patch)
treec57ea30d76a3b5d3c08cde0785ce42a86e873439
parentebe02a7e8743e413113562150f40e7db3d2d378c (diff)
downloadsamba-6794b58a8c5941ede29e07247bda911328cd7b20.tar.gz
samba-6794b58a8c5941ede29e07247bda911328cd7b20.tar.bz2
samba-6794b58a8c5941ede29e07247bda911328cd7b20.zip
Add the ability to display Samba's build options with smbd -b and as a level 4
DEBUG(). Also included are details like build date/time, location and compiler. This should get most of the options we set, except those that don't affect smbd, like WITH_PAM_SMBPASSWD or WITH_WINBINDD. This work due to Vance Lankhaar <vlankhaar@hotmail.com> Some work needs to be done to make it only rebuild when needed (ie smbd being rebuilt) but its in pretty good shape already. Also fix up some printf() -> d_printf(). Andrew Bartlett (This used to be commit beff1d2beaf4337dba6bfc372c5e09a43cfd791a)
-rw-r--r--source3/Makefile.in21
-rw-r--r--source3/acconfig.h7
-rw-r--r--source3/configure.in10
-rw-r--r--source3/include/.cvsignore1
-rw-r--r--source3/smbd/server.c39
5 files changed, 54 insertions, 24 deletions
diff --git a/source3/Makefile.in b/source3/Makefile.in
index daea0ed6f7..6346a0c8e5 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -63,8 +63,8 @@ BLDSHARED = @BLDSHARED@
PASSWD_FLAGS = -DSMB_PASSWD_FILE=\"$(SMB_PASSWD_FILE)\" -DPRIVATE_DIR=\"$(PRIVATE_DIR)\"
FLAGS1 = $(CFLAGS) -Iinclude -I$(srcdir)/include -I$(srcdir)/ubiqx -I$(srcdir)/smbwrapper $(CPPFLAGS) -DLOGFILEBASE=\"$(LOGFILEBASE)\"
-FLAGS2 = -DCONFIGFILE=\"$(CONFIGFILE)\" -DLMHOSTSFILE=\"$(LMHOSTSFILE)\"
-FLAGS3 = -DSWATDIR=\"$(SWATDIR)\" -DSBINDIR=\"$(SBINDIR)\" -DLOCKDIR=\"$(LOCKDIR)\"
+FLAGS2 = -DCONFIGFILE=\"$(CONFIGFILE)\" -DLMHOSTSFILE=\"$(LMHOSTSFILE)\"
+FLAGS3 = -DSWATDIR=\"$(SWATDIR)\" -DSBINDIR=\"$(SBINDIR)\" -DLOCKDIR=\"$(LOCKDIR)\"
FLAGS4 = -DDRIVERFILE=\"$(DRIVERFILE)\" -DBINDIR=\"$(BINDIR)\" -DFORMSFILE=\"$(FORMSFILE)\" -DNTDRIVERSDIR=\"$(NTDRIVERSDIR)\"
FLAGS5 = $(FLAGS1) $(FLAGS2) $(FLAGS3) $(FLAGS4) -DHAVE_INCLUDES_H
FLAGS = $(ISA) $(FLAGS5) $(PASSWD_FLAGS)
@@ -193,7 +193,8 @@ SMBD_OBJ1 = smbd/server.o smbd/files.o smbd/chgpasswd.o smbd/connection.o \
smbd/vfs.o smbd/vfs-wrap.o smbd/statcache.o \
smbd/posix_acls.o \
smbd/process.o smbd/service.o smbd/error.o \
- printing/printfsp.o lib/util_seaccess.o smbd/srvstr.o
+ printing/printfsp.o lib/util_seaccess.o smbd/srvstr.o \
+ smbd/build_options.o
PRINTING_OBJ = printing/pcap.o printing/print_svid.o \
printing/print_cups.o printing/print_generic.o \
@@ -209,7 +210,6 @@ SMBD_OBJ = $(SMBD_OBJ1) $(MSDFS_OBJ) $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) \
$(LIB_OBJ) $(PRINTBACKEND_OBJ) $(QUOTAOBJS) $(OPLOCK_OBJ) \
$(NOTIFY_OBJ) $(GROUPDB_OBJ) $(AUTH_OBJ)
-
NMBD_OBJ1 = nmbd/asyncdns.o nmbd/nmbd.o nmbd/nmbd_become_dmb.o \
nmbd/nmbd_become_lmb.o nmbd/nmbd_browserdb.o \
nmbd/nmbd_browsesync.o nmbd/nmbd_elections.o \
@@ -484,7 +484,7 @@ bin/.dummy:
dir=bin $(MAKEDIR); fi
@: >> $@ || : > $@ # what a fancy emoticon!
-bin/smbd: $(SMBD_OBJ) bin/.dummy
+bin/smbd: build_env $(SMBD_OBJ) bin/.dummy
@echo Linking $@
@$(CC) $(FLAGS) -o $@ $(SMBD_OBJ) $(LDFLAGS) $(LIBS)
@@ -695,7 +695,7 @@ uninstallscripts:
@$(SHELL) $(srcdir)/script/uninstallscripts.sh $(INSTALLPERMS) $(BINDIR) $(SCRIPTS)
clean:
- -rm -f core */*~ *~ */*.o */*.po */*.po32 */*.@SHLIBEXT@ $(PROGS) $(SPROGS)
+ -rm -f core */*~ *~ */*.o */*.po */*.po32 */*.@SHLIBEXT@ $(PROGS) $(SPROGS) include/build_env.h
winbindd_proto:
@cd $(srcdir) && $(SHELL) script/mkproto.sh $(AWK) \
@@ -717,6 +717,15 @@ include/proto.h:
proto: delproto include/proto.h
+delbuild_env:
+ @/bin/rm -f include/build_env.h
+
+include/build_env.h:
+ @echo rebuilding include/build_env.h
+ @cd $(srcdir) && $(SHELL) script/build_env.sh $(srcdir) $(builddir) $(CC) > include/build_env.h
+
+build_env: delbuild_env include/build_env.h
+ @rm -f smbd/build_options.o
etags:
etags `find $(srcdir) -name "*.[ch]" | grep -v /CVS/`
diff --git a/source3/acconfig.h b/source3/acconfig.h
index f428f79bee..ef40065c50 100644
--- a/source3/acconfig.h
+++ b/source3/acconfig.h
@@ -59,6 +59,7 @@
#undef WITH_SYSLOG
#undef WITH_PROFILE
#undef WITH_SSL
+#undef SSL_DIR
#undef WITH_LDAP
#undef WITH_NISPLUS
#undef WITH_TDBPWD
@@ -66,6 +67,8 @@
#undef WITH_NISPLUS_HOME
#undef WITH_AUTOMOUNT
#undef WITH_SMBMOUNT
+#undef WITH_QUOTAS
+#undef WITH_WINBIND
#undef HAVE_BROKEN_GETGROUPS
#undef REPLACE_GETPASS
#undef REPLACE_INET_NTOA
@@ -76,6 +79,7 @@
#undef WITH_NETATALK
#undef WITH_UTMP
#undef WITH_MSDFS
+#undef WITH_LIBICONV
#undef HAVE_INO64_T
#undef HAVE_STRUCT_FLOCK64
#undef SIZEOF_INO_T
@@ -93,6 +97,8 @@
#undef HAVE_UINT32_FROM_RPC_RPC_H
#undef KRB4_AUTH
#undef KRB5_AUTH
+#undef KRB4_DIR
+#undef KRB5_DIR
#undef SEEKDIR_RETURNS_VOID
#undef HAVE_DIRENT_D_OFF
#undef HAVE_GETSPNAM
@@ -104,6 +110,7 @@
#undef HAVE_SETRESGID
#undef HAVE_SETRESGID_DECL
#undef HAVE_SHADOW_H
+#undef HAVE_CUPS
#undef HAVE_MEMSET
#undef HAVE_STRCASECMP
#undef HAVE_STRUCT_DIRENT64
diff --git a/source3/configure.in b/source3/configure.in
index 467eba7098..5ccaeb756f 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -1046,6 +1046,7 @@ AC_ARG_WITH(libiconv,
CFLAGS="$CFLAGS -I$withval/include"
LDFLAGS="$LDFLAGS -L$withval/lib"
AC_CHECK_LIB(iconv, iconv_open)
+ AC_DEFINE_UNQUOTED(WITH_LIBICONV, "${withval}")
;;
esac ],
AC_MSG_RESULT(no)
@@ -1582,6 +1583,7 @@ AC_ARG_WITH(krb4,
LIBS="$LIBS -lkrb -ldes"
CFLAGS="$CFLAGS -I$withval/include"
LDFLAGS="$LDFLAGS -L$withval/lib"
+ AC_DEFINE_UNQUOTED(KRB4_DIR, ${withval})
;;
*)
AC_MSG_RESULT(no)
@@ -1602,6 +1604,7 @@ AC_ARG_WITH(krb5,
LIBS="$LIBS -ldes425 -lkrb5 -lcrypto -lcom_err"
CFLAGS="$CFLAGS -I$withval/include"
LDFLAGS="$LDFLAGS -L$withval/lib"
+ AC_DEFINE_UNQUOTED(KRB5_DIR,${withval})
;;
*)
AC_MSG_RESULT(no)
@@ -1818,11 +1821,13 @@ AC_ARG_WITH(ssl,
CFLAGS="-I/usr/local/ssl/include $CFLAGS"
LIBS="-lssl -lcrypto $LIBS"
LDFLAGS="=L/usr/local/ssl/lib $LDFLAGS"
+ AC_DEFINE(SSL_DIR, "/usr/local/ssl")
;;
* )
CFLAGS="-I${withval} $CFLAGS"
LIBS="-lssl -lcrypto $LIBS"
LDFLAGS="-L${withval}/lib $LDFLAGS"
+ AC_DEFINE_UNQUOTED(SSL_DIR, "${withval}", Used for determining the compile time options)
;;
esac
@@ -1831,9 +1836,10 @@ AC_ARG_WITH(ssl,
CFLAGS="-I/usr/local/ssl/include $CFLAGS"
LIBS="-lssl -lcrypto $LIBS"
LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS"
+ AC_DEFINE(SSL_DIR, "/usr/local/ssl")
fi
-
+
if test ! -d ${withval}; then
echo "configure: error: called with --with-ssl, but ssl base directory ${withval} does not exist or is not a directory. Aborting config" 1>&2
exit 1
@@ -1895,6 +1901,7 @@ AC_ARG_WITH(quotas,
yes)
AC_MSG_RESULT(yes)
QUOTAOBJS=smbd/quotas.o
+ AC_DEFINE(WITH_QUOTAS)
;;
*)
AC_MSG_RESULT(no)
@@ -2331,7 +2338,6 @@ if test x"$HAVE_WINBIND" = x"yes"; then
WINBIND_TARGETS="\$(WINBIND_PROGS)"
WINBIND_STARGETS="\$(WINBIND_SPROGS)"
WINBIND_LTARGETS="\$(WINBIND_LPROGS)"
-
case "$with_pam" in
yes)
WINBIND_PAM_PROGS="\$(WINBIND_PAM_PROGS)"
diff --git a/source3/include/.cvsignore b/source3/include/.cvsignore
index 1ecaa14b76..b07cf4c2c4 100644
--- a/source3/include/.cvsignore
+++ b/source3/include/.cvsignore
@@ -1,3 +1,4 @@
+build_env.h
config.h
stamp-h
proto.h
diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index 4ee39a2406..1e89bbab7e 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -560,23 +560,23 @@ usage on the program
static void usage(char *pname)
{
- printf("Usage: %s [-DaoPh?V] [-d debuglevel] [-l log basename] [-p port]\n", pname);
- printf(" [-O socket options] [-s services file]\n");
- printf("\t-D Become a daemon\n");
- printf("\t-a Append to log file (default)\n");
- printf("\t-o Overwrite log file, don't append\n");
- printf("\t-h Print usage\n");
- printf("\t-? Print usage\n");
- printf("\t-V Print version\n");
- printf("\t-d debuglevel Set the debuglevel\n");
- printf("\t-l log basename. Basename for log/debug files\n");
- printf("\t-p port Listen on the specified port\n");
- printf("\t-O socket options Socket options\n");
- printf("\t-s services file. Filename of services file\n");
- printf("\n");
+ d_printf("Usage: %s [-DaoPh?Vb] [-d debuglevel] [-l log basename] [-p port]\n", pname);
+ d_printf(" [-O socket options] [-s services file]\n");
+ d_printf("\t-D Become a daemon\n");
+ d_printf("\t-a Append to log file (default)\n");
+ d_printf("\t-o Overwrite log file, don't append\n");
+ d_printf("\t-h Print usage\n");
+ d_printf("\t-? Print usage\n");
+ d_printf("\t-V Print version\n");
+ d_printf("\t-b Print build options\n");
+ d_printf("\t-d debuglevel Set the debuglevel\n");
+ d_printf("\t-l log basename. Basename for log/debug files\n");
+ d_printf("\t-p port Listen on the specified port\n");
+ d_printf("\t-O socket options Socket options\n");
+ d_printf("\t-s services file. Filename of services file\n");
+ d_printf("\n");
}
-
/****************************************************************************
main program
****************************************************************************/
@@ -600,7 +600,7 @@ static void usage(char *pname)
argc--;
}
- while ( EOF != (opt = getopt(argc, argv, "O:l:s:d:Dp:h?Vaof:")) )
+ while ( EOF != (opt = getopt(argc, argv, "O:l:s:d:Dp:h?bVaof:")) )
switch (opt) {
case 'O':
pstrcpy(user_socket_options,optarg);
@@ -648,6 +648,10 @@ static void usage(char *pname)
d_printf("Version %s\n",VERSION);
exit(0);
break;
+ case 'b':
+ build_options(True); /* Display output to screen as well as debug */
+ exit(0);
+ break;
default:
DEBUG(0,("Incorrect program usage - are you sure the command line is correct?\n"));
usage(argv[0]);
@@ -718,6 +722,9 @@ static void usage(char *pname)
DEBUG(2,("uid=%d gid=%d euid=%d egid=%d\n",
(int)getuid(),(int)getgid(),(int)geteuid(),(int)getegid()));
+ /* Output the build options to the debug log */
+ build_options(False);
+
if (sizeof(uint16) < 2 || sizeof(uint32) < 4) {
DEBUG(0,("ERROR: Samba is not configured correctly for the word size on your machine\n"));
exit(1);