Merge branch 'master' into core-updates
[jackhill/guix/guix.git] / Makefile.am
index 9faa654..764332a 100644 (file)
@@ -1,5 +1,5 @@
 # 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.
@@ -27,22 +27,19 @@ nodist_noinst_SCRIPTS =                             \
 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                                \
@@ -52,36 +49,80 @@ MODULES =                                   \
   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                                 \
@@ -91,15 +132,26 @@ SCM_TESTS =                                        \
   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)
 
@@ -127,16 +179,30 @@ EXTRA_DIST =                                      \
   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)
@@ -168,8 +234,7 @@ $(guix_install_go_files): install-nobase_dist_guilemoduleDATA
 
 SUBDIRS = po
 
-info_TEXINFOS = doc/guix.texi
-EXTRA_DIST += doc/fdl-1.3.texi
+include doc.am
 
 if BUILD_DAEMON
 
@@ -183,11 +248,12 @@ AM_DISTCHECK_CONFIGURE_FLAGS =                    \
   --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                           \
@@ -197,7 +263,7 @@ gen-ChangeLog:
          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) ;                           \
@@ -206,4 +272,10 @@ assert-no-store-file-names:
          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