diff --git a/.gitignore b/.gitignore index 9a7cb18c0f..9bd55bc311 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,4 @@ config.cache /tests/*.trs /INSTALL /m4/* +/pre-inst-env diff --git a/configure.ac b/configure.ac index 3c7150fc75..b718330178 100644 --- a/configure.ac +++ b/configure.ac @@ -80,8 +80,9 @@ AC_SUBST([LIBGCRYPT]) AC_CONFIG_FILES([Makefile po/Makefile.in - guix-build]) + guix-build + pre-inst-env]) -AC_CONFIG_COMMANDS([commands-exec], [chmod +x guix-build]) +AC_CONFIG_COMMANDS([commands-exec], [chmod +x guix-build pre-inst-env]) AC_OUTPUT diff --git a/pre-inst-env.in b/pre-inst-env.in new file mode 100644 index 0000000000..3022ee5cff --- /dev/null +++ b/pre-inst-env.in @@ -0,0 +1,48 @@ +#!/bin/sh + +# Guix --- Nix package management from Guile. -*- coding: utf-8 -*- +# Copyright (C) 2012 Ludovic Courtès +# +# This file is part of Guix. +# +# Guix 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. +# +# Guix 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 Guix. If not, see . + +# Usage: ./pre-inst-env COMMAND ARG... +# +# Run COMMAND in a pre-installation environment. Typical use is +# "./pre-inst-env guix-build hello". + +DISTRO_PATCH_DIRECTORY="@abs_top_srcdir@/distro/patches" +GUILE_LOAD_COMPILED_PATH="@abs_top_builddir@${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH" +GUILE_LOAD_PATH="@abs_top_srcdir@${GUILE_LOAD_PATH:+:}:$GUILE_LOAD_PATH" + +export DISTRO_PATCH_DIRECTORY GUILE_LOAD_COMPILED_PATH GUILE_LOAD_PATH + +# Define $PATH so that `guix-build' and friends are easily found. + +PATH="@abs_top_builddir@:$PATH" +export PATH + +# The following variables need only be defined when compiling Guix +# modules, but we define them to be on the safe side in case of +# auto-compilation. + +NIX_HASH="@NIX_HASH@" +NIX_INSTANTIATE="@NIX_INSTANTIATE@" +NIXPKGS="@NIXPKGS@" +LIBGCRYPT="@LIBGCRYPT@" + +export NIX_HASH NIX_INSTANTIATE NIXPKGS LIBGCRYPT + +exec "$@"