AboutSummaryRefsLogTreeCommitDiffStats
path: root/build-aux/pre-inst-env.in
diff options
context:
space:
mode:
authorMathieu Lirzin <mthl@gnu.org>2015-10-17 20:05:08 +0200
committerMathieu Lirzin <mthl@gnu.org>2016-05-07 23:38:53 +0200
commit8952d2dc442913f0ecf1fa896d97c882a5daa664 (patch)
tree11492526f1a25cbdecd40f899f2ba19adfa90433 /build-aux/pre-inst-env.in
parentb59f2f5ea6f99681ca61f9342206c11f3a165b2c (diff)
downloadmcron-8952d2dc442913f0ecf1fa896d97c882a5daa664.tar.gz
mcron-8952d2dc442913f0ecf1fa896d97c882a5daa664.tar.bz2
mcron-8952d2dc442913f0ecf1fa896d97c882a5daa664.zip
build: Support VPATH builds.
This allows using 'mcron' before it is installed without hardcoding the local build environment in the executable. * build-aux/pre-inst-env.in: New script. * configure.ac (AC_CONFIG_FILES): Create it. (AC_CONFIG_HEADER): Add 'config.h'. (moduledir): New variable. (PACKAGE_LOAD_PATH): new C preprocessor macro. * mcron.c: Include "config.h". (main): Don't overwrite Guile load paths. (inner_main): Prepend Mcron modules load paths. * Makefile.am (.scm.go, doc/mcron.1): Use 'pre-inst-env'. (mcron_CFLAGS): Remove GUILE_LOAD_PATH macro. (noinst_SCRIPTS): New variable. * .gitignore: Update.
Diffstat (limited to 'build-aux/pre-inst-env.in')
-rw-r--r--build-aux/pre-inst-env.in35
1 files changed, 35 insertions, 0 deletions
diff --git a/build-aux/pre-inst-env.in b/build-aux/pre-inst-env.in
new file mode 100644
index 0000000..7e69b44
--- /dev/null
+++ b/build-aux/pre-inst-env.in
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+# Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
+#
+# This file is part of GNU Mcron.
+#
+# GNU Mcron 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 3 of the License, or
+# (at your option) any later version.
+#
+# GNU Mcron 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 GNU Mcron. If not, see <http://www.gnu.org/licenses/>.
+
+abs_top_srcdir="`cd "@abs_top_srcdir@" > /dev/null; pwd`"
+abs_top_builddir="`cd "@abs_top_builddir@" > /dev/null; pwd`"
+
+GUILE_LOAD_COMPILED_PATH="$abs_top_builddir/scm${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
+GUILE_LOAD_PATH="$abs_top_builddir/scm:$abs_top_srcdir/scm${GUILE_LOAD_PATH:+:}:$GUILE_LOAD_PATH"
+export GUILE_LOAD_COMPILED_PATH GUILE_LOAD_PATH
+
+PATH="$abs_top_builddir:$PATH"
+export PATH
+
+# Define $MCRON_UNINSTALLED to prevent 'mcron' from prepending @moduledir@ to
+# the Guile load paths.
+MCRON_UNINSTALLED=1
+export MCRON_UNINSTALLED
+
+exec "$@"