summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/build/smb_build/makefile.pm8
-rw-r--r--source4/dynconfig.c45
-rw-r--r--source4/dynconfig.h1
-rw-r--r--source4/gtk/common/gtk-smb.c3
-rw-r--r--source4/lib/version.c63
-rw-r--r--source4/param/config.mk28
6 files changed, 92 insertions, 56 deletions
diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm
index 8ab19e980d..7002bc8844 100644
--- a/source4/build/smb_build/makefile.pm
+++ b/source4/build/smb_build/makefile.pm
@@ -408,22 +408,22 @@ sub Binary($$)
if ($self->{duplicate_build}) {
$self->output(<< "__EOD__"
#
-bin/$ctx->{BINARY}: \$($ctx->{TYPE}_$ctx->{NAME}_DEPEND_LIST) \$($ctx->{TYPE}_$ctx->{NAME}_OBJ_LIST)
+bin/$ctx->{BINARY}: \$($ctx->{TYPE}_$ctx->{NAME}_DEPEND_LIST) \$($ctx->{TYPE}_$ctx->{NAME}_OBJ_LIST) \$(builddir)/dynconfig-devel.o
\@echo Linking \$\@
\@\$(CC) \$(LDFLAGS) -o \$\@ \$(LOCAL_LINK_FLAGS) \\
\$\($ctx->{TYPE}_$ctx->{NAME}_LINK_LIST) \\
- \$\($ctx->{TYPE}_$ctx->{NAME}_LINK_FLAGS)
+ \$\($ctx->{TYPE}_$ctx->{NAME}_LINK_FLAGS) \$(builddir)/dynconfig-devel.o
__EOD__
);
}
$self->output(<< "__EOD__"
-$installdir/$ctx->{BINARY}: \$($ctx->{TYPE}_$ctx->{NAME}_DEPEND_LIST) \$($ctx->{TYPE}_$ctx->{NAME}_OBJ_LIST)
+$installdir/$ctx->{BINARY}: \$($ctx->{TYPE}_$ctx->{NAME}_DEPEND_LIST) \$($ctx->{TYPE}_$ctx->{NAME}_OBJ_LIST) \$(builddir)/dynconfig.o
\@echo Linking \$\@
\@\$(CC) \$(LDFLAGS) -o \$\@ \$(INSTALL_LINK_FLAGS) \\
\$\($ctx->{TYPE}_$ctx->{NAME}_LINK_LIST) \\
- \$\($ctx->{TYPE}_$ctx->{NAME}_LINK_FLAGS)
+ \$\($ctx->{TYPE}_$ctx->{NAME}_LINK_FLAGS) \$(builddir)/dynconfig.o
__EOD__
);
diff --git a/source4/dynconfig.c b/source4/dynconfig.c
index 26bbbec2d4..41728af57d 100644
--- a/source4/dynconfig.c
+++ b/source4/dynconfig.c
@@ -20,7 +20,6 @@
*/
#include "includes.h"
-#include "version.h"
/**
* @file dynconfig.c
@@ -42,9 +41,6 @@
* table? There's kind of a chicken-and-egg situation there...
**/
-/** Directory with super-user binaries */
-_PUBLIC_ const char *dyn_SBINDIR = SBINDIR;
-
/** Directory with generic binaries */
_PUBLIC_ const char *dyn_BINDIR = BINDIR;
@@ -91,45 +87,4 @@ _PUBLIC_ const char *dyn_SETUPDIR = SETUPDIR;
_PUBLIC_ const char *dyn_JSDIR = JSDIR;
/** Where to find the winbindd socket */
-
_PUBLIC_ const char *dyn_WINBINDD_SOCKET_DIR = WINBINDD_SOCKET_DIR;
-
-_PUBLIC_ const char *samba_version_string(void)
-{
- const char *official_string = SAMBA_VERSION_OFFICIAL_STRING;
-#ifdef SAMBA_VERSION_RELEASE_NICKNAME
- const char *release_nickname = SAMBA_VERSION_RELEASE_NICKNAME;
-#else
- const char *release_nickname = NULL;
-#endif
-#ifdef SAMBA_VERSION_VENDOR_SUFFIX
- const char *vendor_suffix = SAMBA_VERSION_VENDOR_SUFFIX;
-#else
- const char *vendor_suffix = NULL;
-#endif
-#ifdef SAMBA_VERSION_VENDOR_PATCH
- const char *vendor_patch = SAMBA_VERSION_VENDOR_PATCH;
-#else
- const char *vendor_patch = NULL;
-#endif
- static char *samba_version;
- static BOOL init_samba_version;
-
- if (init_samba_version) {
- return samba_version;
- }
-
- samba_version = talloc_asprintf(talloc_autofree_context(),
- "%s%s%s%s%s%s%s%s",
- official_string,
- (vendor_suffix?"-":""),
- (vendor_suffix?vendor_suffix:""),
- (vendor_patch?"-":""),
- (vendor_patch?vendor_patch:""),
- (release_nickname?" (":""),
- (release_nickname?release_nickname:""),
- (release_nickname?")":""));
-
- init_samba_version = True;
- return samba_version;
-}
diff --git a/source4/dynconfig.h b/source4/dynconfig.h
index 9504a5886a..b1a7fff191 100644
--- a/source4/dynconfig.h
+++ b/source4/dynconfig.h
@@ -25,7 +25,6 @@
* @brief Exported global configurations.
**/
-extern const char *dyn_SBINDIR;
extern const char *dyn_BINDIR;
extern const char *dyn_CONFIGFILE;
extern const char *dyn_NCALRPCDIR;
diff --git a/source4/gtk/common/gtk-smb.c b/source4/gtk/common/gtk-smb.c
index 57a437ef96..3f818dae76 100644
--- a/source4/gtk/common/gtk-smb.c
+++ b/source4/gtk/common/gtk-smb.c
@@ -22,6 +22,7 @@
#include "includes.h"
#include "gtk/common/gtk-smb.h"
#include "gtk/common/select.h"
+#include "version.h"
void gtk_show_werror(GtkWidget *win, const char *message, WERROR err)
{
@@ -282,7 +283,7 @@ GtkWidget *create_gtk_samba_about_dialog (const char *appname)
label1 = gtk_label_new (appname);
gtk_box_pack_start (GTK_BOX (dialog_vbox1), label1, FALSE, FALSE, 0);
- label2 = gtk_label_new (samba_version_string());
+ label2 = gtk_label_new (SAMBA_VERSION_STRING);
gtk_box_pack_start (GTK_BOX (dialog_vbox1), label2, FALSE, FALSE, 0);
label3 = gtk_label_new_with_mnemonic ("Part of Samba <http://www.samba.org/>");
diff --git a/source4/lib/version.c b/source4/lib/version.c
new file mode 100644
index 0000000000..b7aa81a081
--- /dev/null
+++ b/source4/lib/version.c
@@ -0,0 +1,63 @@
+/*
+ Unix SMB/CIFS implementation.
+ Samba Version functions
+
+ Copyright (C) Stefan Metzmacher 2003
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include "includes.h"
+#include "version.h"
+
+const char *samba_version_string(void)
+{
+ const char *official_string = SAMBA_VERSION_OFFICIAL_STRING;
+#ifdef SAMBA_VERSION_RELEASE_NICKNAME
+ const char *release_nickname = SAMBA_VERSION_RELEASE_NICKNAME;
+#else
+ const char *release_nickname = NULL;
+#endif
+#ifdef SAMBA_VERSION_VENDOR_SUFFIX
+ const char *vendor_suffix = SAMBA_VERSION_VENDOR_SUFFIX;
+#else
+ const char *vendor_suffix = NULL;
+#endif
+#ifdef SAMBA_VERSION_VENDOR_PATCH
+ const char *vendor_patch = SAMBA_VERSION_VENDOR_PATCH;
+#else
+ const char *vendor_patch = NULL;
+#endif
+ static char *samba_version;
+ static BOOL init_samba_version;
+
+ if (init_samba_version) {
+ return samba_version;
+ }
+
+ samba_version = talloc_asprintf(talloc_autofree_context(),
+ "%s%s%s%s%s%s%s%s",
+ official_string,
+ (vendor_suffix?"-":""),
+ (vendor_suffix?vendor_suffix:""),
+ (vendor_patch?"-":""),
+ (vendor_patch?vendor_patch:""),
+ (release_nickname?" (":""),
+ (release_nickname?release_nickname:""),
+ (release_nickname?")":""));
+
+ init_samba_version = True;
+ return samba_version;
+}
diff --git a/source4/param/config.mk b/source4/param/config.mk
index b6e94c004c..2304195e26 100644
--- a/source4/param/config.mk
+++ b/source4/param/config.mk
@@ -1,12 +1,12 @@
[SUBSYSTEM::CONFIG]
-OBJ_FILES = ../dynconfig.o \
- loadparm.o \
- params.o \
- generic.o
+OBJ_FILES = loadparm.o \
+ params.o \
+ generic.o \
+ ../lib/version.o
REQUIRED_SUBSYSTEMS = LIBBASIC
PRIVATE_PROTO_HEADER = param.h
-PATH_FLAGS = -DCONFIGFILE=\"$(CONFIGFILE)\" -DSBINDIR=\"$(SBINDIR)\" \
+PATH_FLAGS = -DCONFIGFILE=\"$(CONFIGFILE)\" \
-DBINDIR=\"$(BINDIR)\" -DLMHOSTSFILE=\"$(LMHOSTSFILE)\" \
-DLOCKDIR=\"$(LOCKDIR)\" -DPIDDIR=\"$(PIDDIR)\" -DDATADIR=\"$(DATADIR)\" \
-DLOGFILEBASE=\"$(LOGFILEBASE)\" -DSHLIBEXT=\"$(SHLIBEXT)\" \
@@ -18,3 +18,21 @@ PATH_FLAGS = -DCONFIGFILE=\"$(CONFIGFILE)\" -DSBINDIR=\"$(SBINDIR)\" \
dynconfig.o: dynconfig.c Makefile
@echo Compiling $<
@$(CC) $(CFLAGS) $(PICFLAG) $(PATH_FLAGS) -c $< -o $@
+
+# dynconfig defines used for binaries in bin/, when configure ran in developer
+# mode:
+
+DEVEL_PATH_FLAGS = -DCONFIGFILE=\"$(CONFIGFILE)\" -DBINDIR=\"$(builddir)/bin\" \
+ -DLMHOSTSFILE=\"$(LMHOSTSFILE)\" -DLOCKDIR=\"$(LOCKDIR)\" \
+ -DPIDDIR=\"$(PIDDIR)\" -DDATADIR=\"$(srcdir)/codepages\" \
+ -DLOGFILEBASE=\"$(LOGFILEBASE)\" -DSHLIBEXT=\"$(SHLIBEXT)\" \
+ -DCONFIGDIR=\"$(CONFIGDIR)\" -DNCALRPCDIR=\"$(NCALRPCDIR)\" \
+ -DSWATDIR=\"$(srcdir)/../swat\" -DPRIVATE_DIR=\"$(PRIVATEDIR)\" \
+ -DMODULESDIR=\"$(builddir)/bin/modules\" \
+ -DJSDIR=\"$(srcdir)/scripting/libjs\" \
+ -DSETUPDIR=\"$(srcdir)/setup\" \
+ -DWINBINDD_SOCKET_DIR=\"$(WINBINDD_SOCKET_DIR)\"
+
+dynconfig-devel.o: dynconfig.c Makefile
+ @echo Compiling $<
+ @$(CC) $(CFLAGS) $(PICFLAG) $(DEVEL_PATH_FLAGS) -c $< -o $@