#include <config.h>
#include "dirs.h"
#include <stdlib.h>
+#include "util.h"
struct directory {
const char *value; /* Actual value; NULL if not yet determined. */
const char *
ovs_dbdir(void)
{
- static struct directory d = { NULL, @DBDIR@, "OVS_DBDIR" };
- return get_dir(&d);
+ static const char *dbdir;
+ if (!dbdir) {
+ dbdir = getenv("OVS_DBDIR");
+ if (!dbdir || !dbdir[0]) {
+ char *sysconfdir = getenv("OVS_SYSCONFDIR");
+
+ dbdir = (sysconfdir
+ ? xasprintf("%s/openvswitch", sysconfdir)
+ : @DBDIR@);
+ }
+ }
+ return dbdir;
}
const char *
nobase_pkgdata_DATA = $(ovs_pyfiles) $(ovstest_pyfiles)
ovs-install-data-local:
$(MKDIR_P) python/ovs
- (echo "import os" && \
- echo 'PKGDATADIR = os.environ.get("OVS_PKGDATADIR", """$(pkgdatadir)""")' && \
- echo 'RUNDIR = os.environ.get("OVS_RUNDIR", """@RUNDIR@""")' && \
- echo 'LOGDIR = os.environ.get("OVS_LOGDIR", """@LOGDIR@""")' && \
- echo 'DBDIR = os.environ.get("OVS_DBDIR", """@DBDIR@""")' && \
- echo 'BINDIR = os.environ.get("OVS_BINDIR", """$(bindir)""")') \
+ sed \
+ -e '/^##/d' \
+ -e 's,[@]pkgdatadir[@],$(pkgdatadir),g' \
+ -e 's,[@]RUNDIR[@],$(RUNDIR),g' \
+ -e 's,[@]LOGDIR[@],$(LOGDIR),g' \
+ -e 's,[@]bindir[@],$(bindir),g' \
+ -e 's,[@]sysconfdir[@],$(sysconfdir),g' \
+ -e 's,[@]DBDIR[@],$(DBDIR),g' \
+ < $(srcdir)/python/ovs/dirs.py.template \
> python/ovs/dirs.py.tmp
$(MKDIR_P) $(DESTDIR)$(pkgdatadir)/python/ovs
$(INSTALL_DATA) python/ovs/dirs.py.tmp $(DESTDIR)$(pkgdatadir)/python/ovs/dirs.py
$(ro_shell) > $(@F).tmp
echo 'VERSION = "$(VERSION)"' >> $(@F).tmp
if cmp -s $(@F).tmp $@; then touch $@; rm $(@F).tmp; else mv $(@F).tmp $@; fi
+
+ALL_LOCAL += $(srcdir)/python/ovs/dirs.py
+$(srcdir)/python/ovs/dirs.py: python/ovs/dirs.py.template
+ sed \
+ -e '/^##/d' \
+ -e 's,[@]pkgdatadir[@],/usr/local/share/openvswitch,g' \
+ -e 's,[@]RUNDIR[@],/var/run,g' \
+ -e 's,[@]LOGDIR[@],/usr/local/var/log,g' \
+ -e 's,[@]bindir[@],/usr/local/bin,g' \
+ -e 's,[@]sysconfdir[@],/usr/local/etc,g' \
+ -e 's,[@]DBDIR[@],/usr/local/etc/openvswitch,g' \
+ < $? > $@.tmp
+ mv $@.tmp $@
+EXTRA_DIST += python/ovs/dirs.py python/ovs/dirs.py.template
-# These are the default directories. They will be replaced by the
-# configured directories at install time.
-
import os
-PKGDATADIR = os.environ.get("OVS_PKGDATADIR", "/usr/local/share/openvswitch")
-RUNDIR = os.environ.get("OVS_RUNDIR", "/var/run")
-LOGDIR = os.environ.get("OVS_LOGDIR", "/usr/local/var/log")
-DBDIR = os.environ.get("OVS_DBDIR", "/usr/local/etc/openvswitch")
-BINDIR = os.environ.get("OVS_BINDIR", "/usr/local/bin")
+PKGDATADIR = os.environ.get("OVS_PKGDATADIR", """/usr/local/share/openvswitch""")
+RUNDIR = os.environ.get("OVS_RUNDIR", """/var/run""")
+LOGDIR = os.environ.get("OVS_LOGDIR", """/usr/local/var/log""")
+BINDIR = os.environ.get("OVS_BINDIR", """/usr/local/bin""")
+
+DBDIR = os.environ.get("OVS_DBDIR")
+if not DBDIR:
+ sysconfdir = os.environ.get("OVS_SYSCONFDIR")
+ if sysconfdir:
+ DBDIR = "%s/openvswitch" % sysconfdir
+ else:
+ DBDIR = """/usr/local/etc/openvswitch"""
--- /dev/null
+## The @variables@ in this file are replaced by default directories for
+## use in python/ovs/dirs.py in the source directory and replaced by the
+## configured directories for use in the installed python/ovs/dirs.py.
+##
+import os
+PKGDATADIR = os.environ.get("OVS_PKGDATADIR", """@pkgdatadir@""")
+RUNDIR = os.environ.get("OVS_RUNDIR", """@RUNDIR@""")
+LOGDIR = os.environ.get("OVS_LOGDIR", """@LOGDIR@""")
+BINDIR = os.environ.get("OVS_BINDIR", """@bindir@""")
+
+DBDIR = os.environ.get("OVS_DBDIR")
+if not DBDIR:
+ sysconfdir = os.environ.get("OVS_SYSCONFDIR")
+ if sysconfdir:
+ DBDIR = "%s/openvswitch" % sysconfdir
+ else:
+ DBDIR = """@DBDIR@"""
# All of these should be substituted by the Makefile at build time.
logdir=${OVS_LOGDIR-'@LOGDIR@'} # /var/log/openvswitch
rundir=${OVS_RUNDIR-'@RUNDIR@'} # /var/run/openvswitch
-dbdir=${OVS_DBDIR-'@DBDIR@'} # /etc/openvswitch
- # or /var/lib/openvswitch
sysconfdir=${OVS_SYSCONFDIR-'@sysconfdir@'} # /etc
etcdir=$sysconfdir/openvswitch # /etc/openvswitch
datadir=${OVS_PKGDATADIR-'@pkgdatadir@'} # /usr/share/openvswitch
bindir=${OVS_BINDIR-'@bindir@'} # /usr/bin
sbindir=${OVS_SBINDIR-'@sbindir@'} # /usr/sbin
+# /etc/openvswitch or /var/lib/openvswitch
+if test X"$OVS_DBDIR" != X; then
+ dbdir=$OVS_DBDIR
+elif test X"$OVS_SYSCONFDIR" != X; then
+ dbdir=$OVS_SYSCONFDIR/openvswitch
+else
+ dbdir='@DBDIR@'
+fi
+
VERSION='@VERSION@'
LC_ALL=C; export LC_ALL