diff --git a/source3/Makefile.in b/source3/Makefile.in index daea0ed6f7e..6346a0c8e58 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 f428f79beec..ef40065c507 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 467eba70987..5ccaeb756f1 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 1ecaa14b76a..b07cf4c2c43 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 4ee39a2406b..1e89bbab7ea 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);