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.
This commit is contained in:
Mathieu Lirzin 2015-10-17 20:05:08 +02:00
commit 8952d2dc44
5 changed files with 59 additions and 7 deletions

View file

@ -23,13 +23,15 @@
AC_PREREQ(2.61)
AC_INIT([GNU Mcron], [1.0.8], [bug-mcron@gnu.org])
AC_CONFIG_HEADER([config.h])
AC_CONFIG_AUX_DIR([build-aux])
AM_INIT_AUTOMAKE([subdir-objects])
AM_SILENT_RULES([yes]) # enables silent rules by default
mcronmoduledir="${datarootdir}/guile/site/2.0/mcron"
AC_SUBST([mcronmoduledir])
moduledir="${datarootdir}/guile/site/2.0"
AC_SUBST([mcronmoduledir], ["${moduledir}/mcron"])
AC_DEFINE_UNQUOTED([PACKAGE_LOAD_PATH], ["${moduledir}"],
[Define to the guile modules location of this package.])
AC_MSG_CHECKING([whether debugging is requested])
AC_ARG_ENABLE(debug,
AC_HELP_STRING([--enable-debug],
@ -181,6 +183,8 @@ AC_SUBST(CONFIG_TMP_DIR)
real_program_prefix=`echo $program_prefix | sed s/NONE//`
AC_SUBST(real_program_prefix)
AC_CONFIG_FILES([pre-inst-env:build-aux/pre-inst-env.in],
[chmod +x pre-inst-env])
AC_CONFIG_FILES([doc/config.texi
Makefile
scm/mcron/config.scm])