r14332: Built in different paths when running locally (from ./bin/) in developer
authorJelmer Vernooij <jelmer@samba.org>
Mon, 13 Mar 2006 18:31:42 +0000 (18:31 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:57:12 +0000 (13:57 -0500)
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.

source/build/smb_build/makefile.pm
source/dynconfig.c
source/dynconfig.h
source/gtk/common/gtk-smb.c
source/lib/version.c [new file with mode: 0644]
source/param/config.mk

index 8ab19e980d457c29faf49fbfbdde7f9efbc1a550..7002bc8844c544fb782b5383b01cb6f9a2ce0a01 100644 (file)
@@ -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__
 );
index 26bbbec2d4c45d061ebd337a32a38a0b851fd27b..41728af57de542656ab8e1f7738f438bdf2d000e 100644 (file)
@@ -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;
-}
index 9504a5886a1547acc511d0e13ae1be914663c3ee..b1a7fff191a01f5a8c6880069011d6d71c37fc98 100644 (file)
@@ -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;
index 57a437ef966247429cf28a8cfac7d27addf6dc70..3f818dae76f8f8133199228ad0b20547b6f65b79 100644 (file)
@@ -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 (file)
index 0000000..b7aa81a
--- /dev/null
@@ -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;
+}
index b6e94c004c2c41229d4b0ad82ab4b7e352e971d7..2304195e2640bd5a3368179df85fb78b9abf0afc 100644 (file)
@@ -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 $@