# GNU Guix --- Functional package management for GNU
-# Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2013 Andreas Enge <andreas@enge.fr>
#
# This file is part of GNU Guix.
include gnu-system.am
MODULES = \
- guix/scripts/build.scm \
- guix/scripts/download.scm \
- guix/scripts/import.scm \
- guix/scripts/package.scm \
- guix/scripts/gc.scm \
- guix/scripts/hash.scm \
- guix/scripts/pull.scm \
- guix/scripts/substitute-binary.scm \
- guix/scripts/refresh.scm \
guix/base32.scm \
guix/records.scm \
+ guix/hash.scm \
+ guix/pk-crypto.scm \
+ guix/pki.scm \
guix/utils.scm \
+ guix/download.scm \
+ guix/git-download.scm \
+ guix/monads.scm \
+ guix/profiles.scm \
guix/serialization.scm \
guix/nar.scm \
guix/derivations.scm \
- guix/download.scm \
guix/gnu-maintenance.scm \
guix/licenses.scm \
guix/build-system.scm \
guix/build-system/python.scm \
guix/build-system/trivial.scm \
guix/ftp-client.scm \
- guix/web.scm \
+ guix/http-client.scm \
guix/gnupg.scm \
guix/store.scm \
guix/ui.scm \
guix/build/download.scm \
guix/build/cmake-build-system.scm \
+ guix/build/git.scm \
+ guix/build/gnome.scm \
guix/build/gnu-build-system.scm \
+ guix/build/gnu-dist.scm \
+ guix/build/linux-initrd.scm \
guix/build/perl-build-system.scm \
guix/build/python-build-system.scm \
guix/build/utils.scm \
guix/build/union.scm \
+ guix/build/pull.scm \
guix/build/rpath.scm \
guix/packages.scm \
guix/snix.scm \
+ guix/scripts/download.scm \
+ guix/scripts/build.scm \
+ guix/scripts/archive.scm \
+ guix/scripts/import.scm \
+ guix/scripts/package.scm \
+ guix/scripts/gc.scm \
+ guix/scripts/hash.scm \
+ guix/scripts/pull.scm \
+ guix/scripts/substitute-binary.scm \
+ guix/scripts/authenticate.scm \
+ guix/scripts/refresh.scm \
+ guix/scripts/system.scm \
guix.scm \
$(GNU_SYSTEM_MODULES)
+if BUILD_DAEMON_OFFLOAD
+
+MODULES += \
+ guix/scripts/offload.scm
+
+endif BUILD_DAEMON_OFFLOAD
+
# Because of the autoload hack in (guix build download), we must build it
# first to avoid errors on systems where (gnutls) is unavailable.
guix/scripts/download.go: guix/build/download.go
+guix/download.go: guix/build/download.go
+
GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go
nobase_dist_guilemodule_DATA = $(MODULES)
+nobase_nodist_guilemodule_DATA = $(GOBJECTS) guix/config.scm
+# Do we need to provide our own non-broken (srfi srfi-37) module?
+if INSTALL_SRFI_37
+
+nobase_nodist_guilemodule_DATA += srfi/srfi-37.scm
+GOBJECTS += srfi/srfi-37.go
+
+srfi/srfi-37.scm: srfi/srfi-37.scm.in
+ $(MKDIR_P) srfi
+ cp "$<" "$@"
+
+endif INSTALL_SRFI_37
+
+# Handy way to remove the .go files without removing all the rest.
+clean-go:
+ -$(RM) -f $(GOBJECTS)
-nobase_nodist_guilemodule_DATA = $(GOBJECTS) guix/config.scm
SCM_TESTS = \
tests/base32.scm \
+ tests/hash.scm \
+ tests/pk-crypto.scm \
+ tests/pki.scm \
tests/builders.scm \
tests/derivations.scm \
tests/ui.scm \
tests/packages.scm \
tests/snix.scm \
tests/store.scm \
+ tests/monads.scm \
tests/nar.scm \
- tests/union.scm
+ tests/union.scm \
+ tests/profiles.scm
SH_TESTS = \
tests/guix-build.sh \
tests/guix-download.sh \
tests/guix-gc.sh \
tests/guix-hash.sh \
- tests/guix-package.sh
+ tests/guix-package.sh \
+ tests/guix-archive.sh \
+ tests/guix-authenticate.sh
+
+if BUILD_DAEMON
+
+SH_TESTS += tests/guix-register.sh
+
+endif BUILD_DAEMON
+
TESTS = $(SCM_TESTS) $(SH_TESTS)
TODO \
.dir-locals.el \
build-aux/hydra/gnu-system.scm \
+ build-aux/hydra/guix.scm \
+ build-aux/check-available-binaries.scm \
build-aux/download.scm \
- build-aux/sync-synopses.scm \
+ build-aux/list-packages.scm \
+ build-aux/sync-descriptions.scm \
+ srfi/srfi-37.scm.in \
srfi/srfi-64.scm \
srfi/srfi-64.upstream.scm \
tests/test.drv \
+ tests/signing-key.pub \
+ tests/signing-key.sec \
build-aux/config.rpath \
bootstrap \
release.nix \
$(TESTS)
+if !BUILD_DAEMON_OFFLOAD
+
+EXTRA_DIST += \
+ guix/scripts/offload.scm
+
+endif !BUILD_DAEMON_OFFLOAD
+
+
CLEANFILES = \
$(GOBJECTS) \
$(SCM_TESTS:tests/%.scm=%.log)
SUBDIRS = po
-info_TEXINFOS = doc/guix.texi
-EXTRA_DIST += doc/fdl-1.3.texi
+include doc.am
if BUILD_DAEMON
--with-nix-prefix="$(NIX_PREFIX)" \
--enable-daemon
-dist-hook: sync-synopses gen-ChangeLog assert-no-store-file-names
+dist-hook: sync-descriptions gen-ChangeLog assert-no-store-file-names
+distcheck-hook: assert-binaries-available
-sync-synopses:
+sync-descriptions:
-$(top_builddir)/pre-inst-env $(GUILE) \
- $(top_srcdir)/build-aux/sync-synopses.scm
+ $(top_srcdir)/build-aux/sync-descriptions.scm
gen-ChangeLog:
if test -d .git; then \
mv $(distdir)/cl-t $(distdir)/ChangeLog; \
fi
-# Make sure we're not shipping a file that embeds a local /nix/store file name.
+# Make sure we're not shipping a file that embeds a local /gnu/store file name.
assert-no-store-file-names:
if grep -r --exclude=*.texi --exclude=*.info \
"$(storedir)/[a-z0-9]{32}-" $(distdir) ; \
exit 1 ; \
fi
-.PHONY: sync-synopses gen-ChangeLog assert-no-store-file-names
+# Make sure hydra.gnu.org has the important binaries.
+assert-binaries-available:
+ $(top_builddir)/pre-inst-env "$(GUILE)" \
+ "$(top_srcdir)/build-aux/check-available-binaries.scm"
+
+.PHONY: sync-descriptions gen-ChangeLog clean-go
+.PHONY: assert-no-store-file-names assert-binaries-available