summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2006-03-13 18:31:42 +0000
committerJelmer Vernooij <jelmer@samba.org>2006-03-13 18:31:42 +0000
commit1c42ad8c5536e28aed1ab6a425035dfb9c4242ef (patch)
tree476c4a279a16df41500b2899ae248a03de72171d
parentbc03f724d2594e44b467fe6eef0857cd4b8bc7ed (diff)
downloadsamba-1c42ad8c5536e28aed1ab6a425035dfb9c4242ef.tar.gz
samba-1c42ad8c5536e28aed1ab6a425035dfb9c4242ef.tar.xz
samba-1c42ad8c5536e28aed1ab6a425035dfb9c4242ef.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.
-rw-r--r--source/build/smb_build/makefile.pm8
-rw-r--r--source/dynconfig.c45
-rw-r--r--source/dynconfig.h1
-rw-r--r--source/gtk/common/gtk-smb.c3
-rw-r--r--source/lib/version.c63
-rw-r--r--source/param/config.mk28
6 files changed, 92 insertions, 56 deletions
diff --git a/source/build/smb_build/makefile.pm b/source/build/smb_build/makefile.pm
index 8ab19e980d4..7002bc8844c 100644
--- a/source/build/smb_build/makefile.pm
+++ b/source/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/source/dynconfig.c b/source/dynconfig.c
index 26bbbec2d4c..41728af57de 100644
--- a/source/dynconfig.c
+++ b/source/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/source/dynconfig.h b/source/dynconfig.h
index 9504a5886a1..b1a7fff191a 100644
--- a/source/dynconfig.h
+++ b/source/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/source/gtk/common/gtk-smb.c b/source/gtk/common/gtk-smb.c
index 57a437ef966..3f818dae76f 100644
--- a/source/gtk/common/gtk-smb.c
+++ b/source/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/source/lib/version.c b/source/lib/version.c
new file mode 100644
index 00000000000..b7aa81a0817
--- /dev/null
+++ b/source/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/source/param/config.mk b/source/param/config.mk
index b6e94c004c2..2304195e264 100644
--- a/source/param/config.mk
+++ b/source/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 $@