gnu: clutter-gtk: Update to 1.6.6.
[jackhill/guix/guix.git] / Makefile.am
index eba34af..760caed 100644 (file)
@@ -1,6 +1,7 @@
 # GNU Guix --- Functional package management for GNU
-# Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 # Copyright © 2013 Andreas Enge <andreas@enge.fr>
+# Copyright © 2015 Alex Kost <alezost@gmail.com>
 #
 # This file is part of GNU Guix.
 #
@@ -29,11 +30,14 @@ include gnu-system.am
 MODULES =                                      \
   guix/base32.scm                              \
   guix/base64.scm                              \
+  guix/cpio.scm                                        \
   guix/records.scm                             \
+  guix/gcrypt.scm                              \
   guix/hash.scm                                        \
   guix/pk-crypto.scm                           \
   guix/pki.scm                                 \
   guix/utils.scm                               \
+  guix/sets.scm                                        \
   guix/download.scm                            \
   guix/git-download.scm                                \
   guix/monads.scm                              \
@@ -44,39 +48,64 @@ MODULES =                                   \
   guix/nar.scm                                 \
   guix/derivations.scm                         \
   guix/gnu-maintenance.scm                     \
+  guix/upstream.scm                            \
   guix/licenses.scm                            \
+  guix/graph.scm                               \
+  guix/cve.scm                                 \
   guix/build-system.scm                                \
   guix/build-system/cmake.scm                  \
+  guix/build-system/emacs.scm                  \
+  guix/build-system/glib-or-gtk.scm            \
   guix/build-system/gnu.scm                    \
+  guix/build-system/haskell.scm                        \
   guix/build-system/perl.scm                   \
   guix/build-system/python.scm                 \
+  guix/build-system/waf.scm                    \
+  guix/build-system/r.scm                      \
   guix/build-system/ruby.scm                   \
   guix/build-system/trivial.scm                        \
   guix/ftp-client.scm                          \
   guix/http-client.scm                         \
   guix/gnupg.scm                               \
+  guix/elf.scm                                 \
   guix/store.scm                               \
+  guix/cvs-download.scm                                \
   guix/svn-download.scm                                \
   guix/ui.scm                                  \
   guix/build/download.scm                      \
   guix/build/cmake-build-system.scm            \
+  guix/build/emacs-build-system.scm            \
   guix/build/git.scm                           \
+  guix/build/glib-or-gtk-build-system.scm      \
   guix/build/gnu-build-system.scm              \
   guix/build/gnu-dist.scm                      \
   guix/build/perl-build-system.scm             \
   guix/build/python-build-system.scm           \
+  guix/build/r-build-system.scm                        \
   guix/build/ruby-build-system.scm             \
+  guix/build/waf-build-system.scm              \
+  guix/build/haskell-build-system.scm          \
   guix/build/store-copy.scm                    \
   guix/build/utils.scm                         \
   guix/build/union.scm                         \
+  guix/build/profiles.scm                      \
   guix/build/pull.scm                          \
   guix/build/rpath.scm                         \
+  guix/build/cvs.scm                           \
   guix/build/svn.scm                           \
-  guix/build/syscalls.scm                      \
+  guix/build/gremlin.scm                       \
   guix/build/emacs-utils.scm                   \
+  guix/build/graft.scm                         \
+  guix/search-paths.scm                                \
   guix/packages.scm                            \
   guix/import/utils.scm                                \
+  guix/import/gnu.scm                          \
   guix/import/snix.scm                         \
+  guix/import/cabal.scm                                \
+  guix/import/cran.scm                         \
+  guix/import/hackage.scm                      \
+  guix/import/elpa.scm                         \
+  guix/scripts.scm                             \
   guix/scripts/download.scm                    \
   guix/scripts/build.scm                       \
   guix/scripts/archive.scm                     \
@@ -85,15 +114,34 @@ MODULES =                                  \
   guix/scripts/gc.scm                          \
   guix/scripts/hash.scm                                \
   guix/scripts/pull.scm                                \
-  guix/scripts/substitute-binary.scm           \
+  guix/scripts/substitute.scm                  \
   guix/scripts/authenticate.scm                        \
   guix/scripts/refresh.scm                     \
   guix/scripts/system.scm                      \
   guix/scripts/lint.scm                                \
+  guix/scripts/challenge.scm                   \
+  guix/scripts/import/cran.scm                 \
+  guix/scripts/import/gnu.scm                  \
   guix/scripts/import/nix.scm                  \
+  guix/scripts/import/hackage.scm              \
+  guix/scripts/import/elpa.scm                 \
+  guix/scripts/environment.scm                 \
+  guix/scripts/publish.scm                     \
+  guix/scripts/edit.scm                                \
+  guix/scripts/size.scm                                \
+  guix/scripts/graph.scm                       \
+  guix/scripts/container.scm                   \
+  guix/scripts/container/exec.scm              \
   guix.scm                                     \
   $(GNU_SYSTEM_MODULES)
 
+if BUILD_SYSCALLS_MODULE
+
+MODULES +=                                     \
+  guix/build/syscalls.scm
+
+endif
+
 if BUILD_DAEMON_OFFLOAD
 
 MODULES +=                                     \
@@ -102,7 +150,7 @@ MODULES +=                                  \
 endif BUILD_DAEMON_OFFLOAD
 
 # Internal module with test suite support.
-noinst_DATA = guix/tests.scm
+dist_noinst_DATA = guix/tests.scm
 
 # Because of the autoload hack in (guix build download), we must build it
 # first to avoid errors on systems where (gnutls) is unavailable.
@@ -116,11 +164,14 @@ KCONFIGS =                                        \
 
 # Templates, examples.
 EXAMPLES =                                     \
-  gnu/system/os-config.tmpl
+  gnu/system/examples/bare-bones.tmpl          \
+  gnu/system/examples/desktop.tmpl
 
 GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go guix/tests.go
 
-nobase_dist_guilemodule_DATA = $(MODULES) $(KCONFIGS) $(EXAMPLES)
+nobase_dist_guilemodule_DATA =                  \
+  $(MODULES) $(KCONFIGS) $(EXAMPLES)            \
+  $(MISC_DISTRO_FILES)
 nobase_nodist_guilemodule_DATA = $(GOBJECTS) guix/config.scm
 
 # Do we need to provide our own non-broken (srfi srfi-37) module?
@@ -143,10 +194,13 @@ clean-go:
 SCM_TESTS =                                    \
   tests/base32.scm                             \
   tests/base64.scm                             \
+  tests/cpio.scm                               \
   tests/hash.scm                               \
   tests/pk-crypto.scm                          \
   tests/pki.scm                                        \
-  tests/substitute-binary.scm                  \
+  tests/sets.scm                               \
+  tests/gnu-maintenance.scm                    \
+  tests/substitute.scm                         \
   tests/builders.scm                           \
   tests/derivations.scm                                \
   tests/ui.scm                                 \
@@ -155,6 +209,9 @@ SCM_TESTS =                                 \
   tests/build-utils.scm                                \
   tests/packages.scm                           \
   tests/snix.scm                               \
+  tests/hackage.scm                            \
+  tests/cran.scm                               \
+  tests/elpa.scm                               \
   tests/store.scm                              \
   tests/monads.scm                             \
   tests/gexp.scm                               \
@@ -162,15 +219,32 @@ SCM_TESTS =                                       \
   tests/union.scm                              \
   tests/profiles.scm                           \
   tests/syscalls.scm                           \
-  tests/lint.scm
+  tests/gremlin.scm                            \
+  tests/lint.scm                               \
+  tests/publish.scm                            \
+  tests/scripts.scm                            \
+  tests/size.scm                               \
+  tests/graph.scm                              \
+  tests/challenge.scm                          \
+  tests/cve.scm                                        \
+  tests/file-systems.scm                       \
+  tests/services.scm                           \
+  tests/containers.scm
 
 if HAVE_GUILE_JSON
 
 MODULES +=                                     \
+  guix/import/json.scm                         \
   guix/import/pypi.scm                         \
-  guix/scripts/import/pypi.scm
+  guix/scripts/import/pypi.scm                 \
+  guix/import/cpan.scm                         \
+  guix/scripts/import/gem.scm                  \
+  guix/import/gem.scm
 
-SCM_TESTS += tests/pypi.scm
+SCM_TESTS +=                                   \
+  tests/pypi.scm                               \
+  tests/cpan.scm                               \
+  tests/gem.scm
 
 endif
 
@@ -180,9 +254,14 @@ SH_TESTS =                                 \
   tests/guix-gc.sh                             \
   tests/guix-hash.sh                           \
   tests/guix-package.sh                                \
+  tests/guix-package-net.sh                    \
   tests/guix-system.sh                         \
   tests/guix-archive.sh                                \
-  tests/guix-authenticate.sh
+  tests/guix-authenticate.sh                   \
+  tests/guix-environment.sh                    \
+  tests/guix-environment-container.sh          \
+  tests/guix-graph.sh                          \
+  tests/guix-lint.sh
 
 if BUILD_DAEMON
 
@@ -213,25 +292,31 @@ tests/guix-gc.log:                                                        \
 # Public key used to sign substitutes from hydra.gnu.org.
 dist_pkgdata_DATA = hydra.gnu.org.pub
 
+# Bash completion file.
+dist_bashcompletion_DATA = etc/completion/bash/guix
+
 EXTRA_DIST =                                           \
   HACKING                                              \
   ROADMAP                                              \
   TODO                                                 \
+  CODE-OF-CONDUCT                                      \
   .dir-locals.el                                       \
+  build-aux/build-self.scm                             \
   build-aux/hydra/gnu-system.scm                       \
   build-aux/hydra/demo-os.scm                          \
   build-aux/hydra/guix.scm                             \
   build-aux/check-available-binaries.scm               \
   build-aux/check-final-inputs-self-contained.scm      \
   build-aux/download.scm                               \
-  build-aux/list-packages.scm                          \
-  build-aux/sync-descriptions.scm                      \
+  build-aux/make-binary-tarball.scm                    \
+  build-aux/generate-authors.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                                        \
+  tests/cve-sample.xml                                 \
   build-aux/config.rpath                               \
   bootstrap                                            \
   release.nix                                          \
@@ -244,6 +329,13 @@ EXTRA_DIST +=                                      \
 
 endif !BUILD_DAEMON_OFFLOAD
 
+if !BUILD_SYSCALLS_MODULE
+
+EXTRA_DIST +=                                  \
+  guix/build/syscalls.scm
+
+endif !BUILD_SYSCALLS_MODULE
+
 
 CLEANFILES =                                   \
   $(GOBJECTS)                                  \
@@ -253,15 +345,26 @@ AM_V_GUILEC = $(AM_V_GUILEC_$(V))
 AM_V_GUILEC_ = $(AM_V_GUILEC_$(AM_DEFAULT_VERBOSITY))
 AM_V_GUILEC_0 = @echo "  GUILEC" $@;
 
+# Flags passed to 'guild compile'.
+GUILD_COMPILE_FLAGS =                          \
+  -Wformat -Wunbound-variable -Warity-mismatch
+
+# Unset 'GUILE_LOAD_COMPILED_PATH' altogether while compiling.  Otherwise, if
+# $GUILE_LOAD_COMPILED_PATH contains $(moduledir), we may find .go files in
+# there that are newer than the local .scm files (for instance because the
+# user ran 'make install' recently).  When that happens, we end up loading
+# those previously-installed .go files, which may be stale, thereby breaking
+# the whole thing.
+#
 # XXX: Use the C locale for when Guile lacks
 # <http://git.sv.gnu.org/cgit/guile.git/commit/?h=stable-2.0&id=e2c6bf3866d1186c60bacfbd4fe5037087ee5e3f>.
 .scm.go:
        $(AM_V_GUILEC)$(MKDIR_P) `dirname "$@"` ;                       \
+       unset GUILE_LOAD_COMPILED_PATH ;                                \
        LC_ALL=C                                                        \
        $(top_builddir)/pre-inst-env                                    \
        $(GUILD) compile -L "$(top_builddir)" -L "$(top_srcdir)"        \
-         -Wformat -Wunbound-variable -Warity-mismatch                  \
-         --target="$(host)"                                            \
+         $(GUILD_COMPILE_FLAGS) --target="$(host)"                     \
          -o "$@" "$<"
 
 SUFFIXES = .go
@@ -274,6 +377,13 @@ SUFFIXES = .go
 guix_install_go_files = install-nobase_nodist_guilemoduleDATA
 $(guix_install_go_files): install-nobase_dist_guilemoduleDATA
 
+# The above trick doesn't work for 'config.go' because both 'config.scm' and
+# 'config.go' are listed in $(nobase_nodist_guilemodule_DATA).  Thus, give it
+# special treatment.
+install-data-hook: set-bootstrap-executable-permissions
+       touch "$(DESTDIR)$(guilemoduledir)/guix/config.go"
+
+
 SUBDIRS = po/guix po/packages
 BUILT_SOURCES =
 
@@ -296,12 +406,21 @@ dist_emacsui_DATA = emacs/guix-main.scm
 nodist_emacsui_DATA = emacs/guix-helper.scm
 include emacs.am
 
-dist-hook: sync-descriptions gen-ChangeLog assert-no-store-file-names
+# The self-contained tarball.
+guix-binary.%.tar.xz:
+       -GUIX_PACKAGE_PATH= \
+       $(top_builddir)/pre-inst-env "$(GUILE)"                 \
+         "$(top_srcdir)/build-aux/make-binary-tarball.scm" "$*" "$@"
+
+
+dist-hook: sync-descriptions gen-ChangeLog gen-AUTHORS
+dist-hook: assert-no-store-file-names
+
 distcheck-hook: assert-binaries-available assert-final-inputs-self-contained
 
 sync-descriptions:
-       -$(top_builddir)/pre-inst-env $(GUILE)          \
-          $(top_srcdir)/build-aux/sync-descriptions.scm
+       -GUIX_PACKAGE_PATH= \
+        $(top_builddir)/pre-inst-env guix lint --checkers=gnu-description
 
 gen-ChangeLog:
        if test -d .git; then                           \
@@ -311,6 +430,14 @@ gen-ChangeLog:
          mv $(distdir)/cl-t $(distdir)/ChangeLog;      \
        fi
 
+gen-AUTHORS:
+       if test -d .git; then                                   \
+         rm -f "$(distdir)/AUTHORS";                           \
+         $(top_builddir)/pre-inst-env "$(GUILE)"               \
+           "$(top_srcdir)/build-aux/generate-authors.scm"      \
+           "$(top_srcdir)" "$(distdir)/AUTHORS";               \
+       fi
+
 # 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                            \
@@ -330,6 +457,6 @@ assert-final-inputs-self-contained:
        $(top_builddir)/pre-inst-env "$(GUILE)"                         \
          "$(top_srcdir)/build-aux/check-final-inputs-self-contained.scm"
 
-.PHONY: sync-descriptions gen-ChangeLog clean-go
+.PHONY: sync-descriptions gen-ChangeLog gen-AUTHORS clean-go
 .PHONY: assert-no-store-file-names assert-binaries-available
 .PHONY: assert-final-inputs-self-contained