summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2012-06-13 18:01:25 +0200
committerLudovic Courtès <ludo@gnu.org>2012-06-13 18:01:25 +0200
commitaf51c820b160dbb3c51a740c16c390c6db456914 (patch)
tree7a7280d5a22ab8b9eea7ec3a2704a0752f0469b2
parent2acb2cb6d006a4799ae9f477c22177824fcc8f52 (diff)
Add a build system.
* configure.ac, Makefile.am: New files.
-rw-r--r--.gitignore8
-rw-r--r--Makefile.am62
-rw-r--r--configure.ac54
3 files changed, 124 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 7fd2b68d51..a0331bcc5d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,11 @@
*.go
tmp
*.log
+/build-aux
+/configure
+Makefile.in
+Makefile
+/autom4te.cache
+config.cache
+/aclocal.m4
+/config.status
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000000..5f618505dd
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,62 @@
+# Guix --- Nix package management from Guile. -*- coding: utf-8 -*-
+# Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org>
+#
+# 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 <http://www.gnu.org/licenses/>.
+
+MODULES = \
+ guix.scm \
+ guix/derivations.scm \
+ guix/gnu-build-system.scm \
+ guix/http.scm \
+ guix/store.scm \
+ guix/utils.scm \
+ guix/build/gnu-build-system.scm \
+ guix/build/http.scm \
+ guix/build/utils.scm
+
+GOBJECTS = $(MODULES:%.scm=%.go)
+
+nobase_dist_guilemodule_DATA = $(MODULES)
+nobase_nodist_guilemodule_DATA = $(GOBJECTS)
+
+TESTS = \
+ tests/builders.scm \
+ tests/derivations.scm \
+ tests/utils.scm
+
+TESTS_ENVIRONMENT = \
+ NIXPKGS="$(NIXPKGS)" \
+ GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH" \
+ $(GUILE) -L "$(top_srcdir)"
+
+CLEANFILES = $(GOBJECTS) *.log
+
+.scm.go:
+ $(MKDIR_P) `dirname "$@"`
+ GUILE_AUTO_COMPILE=0 \
+ GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH" \
+ $(GUILD) compile -Wformat -Wunbound-variable -Warity-mismatch \
+ -o "$@" "$<"
+
+SUFFIXES = .go
+
+# Make sure source files are installed first, so that the mtime of
+# installed compiled files is greater than that of installed source
+# files. See
+# <http://lists.gnu.org/archive/html/guile-devel/2010-07/msg00125.html>
+# for details.
+guix_install_go_files = install-nobase_nodist_guilemoduleDATA
+$(guix_install_go_files): install-nobase_dist_guilemoduleDATA
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000000..8826258b04
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,54 @@
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ(2.68)
+AC_INIT([guix], [0.0], [guile-user@gnu.org])
+AC_CONFIG_AUX_DIR([build-aux])
+
+AM_INIT_AUTOMAKE([1.11 foreign silent-rules subdir-objects \
+ color-tests parallel-tests])
+
+AC_CONFIG_SRCDIR([guix.scm])
+AC_CONFIG_MACRO_DIR([m4])
+
+guilemoduledir="${datarootdir}/guile/site/2.0"
+AC_SUBST([guilemoduledir])
+
+PKG_CHECK_MODULES([GUILE], [guile-2.0])
+AC_PATH_PROG([GUILE], [guile])
+AC_PATH_PROG([GUILD], [guild])
+
+AC_ARG_WITH([nix-prefix],
+ [AS_HELP_STRING([--with-nix-prefix=DIR], [search for Nix in DIR])],
+ [case "$withval" in
+ yes|no) ;;
+ *) PATH="$withval/bin:$PATH"; export PATH;;
+ esac],
+ [])
+
+AC_PATH_PROG([NIX_INSTANTIATE], [nix-instantiate])
+AC_PATH_PROG([NIX_HASH], [nix-hash])
+if test "x$NIX_INSTANTIATE$NIX_HASH" = "x"; then
+ AC_MSG_ERROR([Nix programs not found; please install Nix or use `--with-nix-prefix'.])
+fi
+
+AC_ARG_WITH([nixpkgs],
+ [AS_HELP_STRING([--with-nixpkgs=DIR], [search for Nixpkgs in DIR])],
+ [case "$withval" in
+ yes|no) AC_MSG_ERROR([Please use `--with-nixpkgs=DIR'.]);;
+ *) NIXPKGS="$withval";;
+ esac],
+ [])
+
+if test -f "$NIXPKGS/default.nix"; then
+ AC_MSG_CHECKING([for Nixpkgs source tree])
+ AC_MSG_RESULT([$NIXPKGS])
+ AC_SUBST([NIXPKGS])
+else
+ AC_MSG_WARN([Nixpkgs not found; this will prevent most tests from running.])
+ AC_MSG_WARN([Please use `--with-nixpkgs'.])
+fi
+
+AC_CONFIG_FILES([Makefile])
+
+AC_OUTPUT