From af51c820b160dbb3c51a740c16c390c6db456914 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 13 Jun 2012 18:01:25 +0200 Subject: Add a build system. * configure.ac, Makefile.am: New files. --- .gitignore | 8 ++++++++ Makefile.am | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 124 insertions(+) create mode 100644 Makefile.am create mode 100644 configure.ac 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 +# +# 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 . + +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 +# +# 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 -- cgit 1.4.1