summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@opensourcerouting.org>2024-01-25 20:29:14 +0100
committerDavid Lamparter <equinox@opensourcerouting.org>2024-01-27 19:02:52 +0100
commitbbd858935fad9a469b5b339948e1215b347b05c0 (patch)
tree3d6cff23ed9c13ea15f6fd37775dd3e9c8f8477a /configure.ac
parentf1ad2c46318a009c69e93f3bb8fd1391906f454e (diff)
build: homologize path handling
Use consistent `e_somepath` names for expanded versions of `somepath`. Also remove all paths from `config.h` and put them into `lib/config_paths.h` - this is to make more obvious when someone is doing something probably not quite properly structured. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac54
1 files changed, 25 insertions, 29 deletions
diff --git a/configure.ac b/configure.ac
index 4401319412..d902f23d76 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2715,31 +2715,26 @@ fi
AC_SUBST([CONFDATE])
dnl get the full path, recursing through variables...
-AX_RECURSIVE_EVAL([$bindir/vtysh], [vtysh_bin])
-AX_RECURSIVE_EVAL([$frr_sysconfdir], [CFG_SYSCONF])
-AX_RECURSIVE_EVAL([$sbindir], [CFG_SBIN])
-AX_RECURSIVE_EVAL([$bindir], [CFG_BIN])
-AX_RECURSIVE_EVAL([$frr_runstatedir], [CFG_STATE])
-AX_RECURSIVE_EVAL([$frr_libstatedir], [CFG_LIBSTATE])
-AX_RECURSIVE_EVAL([$moduledir], [CFG_MODULE])
-AX_RECURSIVE_EVAL([$yangmodelsdir], [CFG_YANGMODELS])
-AX_RECURSIVE_EVAL([$scriptdir], [CFG_SCRIPT])
-AC_SUBST([vtysh_bin])
-AC_SUBST([CFG_SYSCONF])
-AC_SUBST([CFG_SBIN])
-AC_SUBST([CFG_BIN])
-AC_SUBST([CFG_STATE])
-dnl AC_SUBST([CFG_LIBSTATE]) -- not currently used
-AC_SUBST([CFG_MODULE])
-AC_SUBST([CFG_SCRIPT])
-AC_SUBST([CFG_YANGMODELS])
-AC_DEFINE_UNQUOTED([VTYSH_BIN_PATH], ["$vtysh_bin"], [path to vtysh binary])
-AC_DEFINE_UNQUOTED([MODULE_PATH], ["$CFG_MODULE"], [path to modules])
-AC_DEFINE_UNQUOTED([SCRIPT_PATH], ["$CFG_SCRIPT"], [path to scripts])
-AC_DEFINE_UNQUOTED([FRR_RUNSTATE_PATH], ["$CFG_STATE"], [/run/frr equivalent])
-AC_DEFINE_UNQUOTED([FRR_LIBSTATE_PATH], ["$CFG_LIBSTATE"], [/var/lib/frr equivalent])
-AC_DEFINE_UNQUOTED([YANG_MODELS_PATH], ["$CFG_YANGMODELS"], [path to YANG data models])
-AC_DEFINE_UNQUOTED([WATCHFRR_SH_PATH], ["${CFG_SBIN%/}/watchfrr.sh"], [path to watchfrr.sh])
+AC_DEFUN([AX_SUBST_EXPANDED], [
+ AX_RECURSIVE_EVAL([[$]$1], [e_$1])
+ AC_SUBST([e_$1])
+])
+
+AX_SUBST_EXPANDED([bindir])
+AX_SUBST_EXPANDED([sbindir])
+AX_SUBST_EXPANDED([frr_sysconfdir])
+AX_SUBST_EXPANDED([frr_runstatedir])
+AX_SUBST_EXPANDED([frr_libstatedir])
+AX_SUBST_EXPANDED([moduledir])
+AX_SUBST_EXPANDED([yangmodelsdir])
+AX_SUBST_EXPANDED([scriptdir])
+
+dnl strip duplicate trailing slashes if necessary
+dnl note this uses e_bindir / e_sbindir created above
+watchfrr_sh="\${e_sbindir%/}/watchfrr.sh"
+AX_SUBST_EXPANDED([watchfrr_sh])
+vtysh_bin="\${e_bindir%/}/vtysh"
+AX_SUBST_EXPANDED([vtysh_bin])
dnl various features
AM_CONDITIONAL([SUPPORT_REALMS], [test "$enable_realms" = "yes"])
@@ -2811,6 +2806,7 @@ AC_CONFIG_FILES([
alpine/APKBUILD
snapcraft/snapcraft.yaml
lib/version.h
+ lib/config_paths.h
tests/lib/cli/test_cli.refout pkgsrc/mgmtd.sh
pkgsrc/bgpd.sh pkgsrc/ospf6d.sh pkgsrc/ospfd.sh
pkgsrc/ripd.sh pkgsrc/ripngd.sh pkgsrc/zebra.sh
@@ -2898,10 +2894,10 @@ compiler : ${CC}
compiler flags : ${CFLAGS} ${WERROR} ${AC_CFLAGS} ${SAN_FLAGS}
make : ${MAKE-make}
linker flags : ${LDFLAGS} ${SAN_FLAGS} ${LIBS} ${LIBCAP} ${LIBREADLINE} ${LIBM}
-state file directory : ${CFG_STATE}
-config file directory : ${CFG_SYSCONF}
-module directory : ${CFG_MODULE}
-script directory : ${CFG_SCRIPT}
+state file directory : ${e_frr_runstatedir}
+config file directory : ${e_sysconfdir}
+module directory : ${e_moduledir}
+script directory : ${e_scriptdir}
user to run as : ${enable_user}
group to run as : ${enable_group}
group for vty sockets : ${enable_vty_group}