summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2006-03-13 18:31:42 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:57:12 -0500
commite47f76e96dde0ab53a51a6cd66372eafa2b1385d (patch)
tree233c4ed557e33f9cd227ac0c35f22872cd0c4852
parente153a8099e9a187e6bcac6507ed4b1ddfe7cb764 (diff)
downloadsamba-e47f76e96dde0ab53a51a6cd66372eafa2b1385d.tar.gz
samba-e47f76e96dde0ab53a51a6cd66372eafa2b1385d.tar.bz2
samba-e47f76e96dde0ab53a51a6cd66372eafa2b1385d.zip
r14332: Built in different paths when running locally (from ./bin/) in developer
mode (./configure.developer). This will change the hardcoded value of a few paths (BINDIR, SWATDIR, EJSDIR, SETUPDIR, DATADIR, MODULESDIR). The regular locations will be used when running 'make install'. This enables developers to work on (shared built) modules, swat, ejs and setup files without having to run 'make install' each time. (This used to be commit f12c1ee19349e17dc5d109ccc71b5374796a6e23)
-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 $@