]> git.proxmox.com Git - mirror_ovs.git/blame - lib/dirs.c.in
ovsdb-doc: Fix definition of .TQ macro.
[mirror_ovs.git] / lib / dirs.c.in
CommitLineData
b43c6fe2
BP
1#line 2 "@srcdir@/lib/dirs.c.in"
2/*
3 * Copyright (c) 2008, 2009, 2010 Nicira Networks.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at:
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#include <config.h>
19#include "dirs.h"
20#include <stdlib.h>
21
22struct directory {
23 const char *value; /* Actual value; NULL if not yet determined. */
24 const char *default_value; /* Default value. */
25 const char *var_name; /* Environment variable to override default. */
26};
27
28static const char *
29get_dir(struct directory *d)
30{
31 if (!d->value) {
32 d->value = getenv(d->var_name);
33 if (!d->value || !d->value[0]) {
34 d->value = d->default_value;
35 }
36 }
37 return d->value;
38}
39
40const char *
41ovs_pkgdatadir(void)
42{
43 static struct directory d = { NULL, @pkgdatadir@, "OVS_PKGDATADIR" };
44 return get_dir(&d);
45}
46
47const char *
48ovs_rundir(void)
49{
50 static struct directory d = { NULL, @RUNDIR@, "OVS_RUNDIR" };
51 return get_dir(&d);
52}
53
54const char *
55ovs_logdir(void)
56{
57 static struct directory d = { NULL, @LOGDIR@, "OVS_LOGDIR" };
58 return get_dir(&d);
59}
60
61const char *
62ovs_bindir(void)
63{
64 static struct directory d = { NULL, @bindir@, "OVS_BINDIR" };
65 return get_dir(&d);
66}