3
5
Fork 0
mirror of git://git.savannah.gnu.org/guix.git synced 2023-12-14 03:33:07 +01:00
guix/Makefile.am
Ludovic Courtès 9d9e645081 distro: Go for one module per package.
The alternative, which was to use one module per category, would
probably not scale well.  First, because many packages could fall into
several categories (does GnuTLS go into "networking", "security", or
"libraries"?).  Second, because that could easily lead to circular
dependencies among modules ("security" and "networking" depend on each
other, etc.)

* distro/packages/databases.scm: Rename to...
* distro/packages/recutils.scm: ... this.
* distro/packages/typesetting.scm: Rename to...
* distro/packages/lout.scm: ... this.
* Makefile.am (MODULES): Adjust accordingly.
* po/POTFILES.in: Likewise.
2012-11-04 21:46:14 +01:00

179 lines
5.8 KiB
Makefile

# 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/>.
bin_SCRIPTS = \
guix-build \
guix-download \
guix-import \
guix-package
MODULES = \
guix/utils.scm \
guix/derivations.scm \
guix/build-system.scm \
guix/build-system/gnu.scm \
guix/build-system/trivial.scm \
guix/ftp.scm \
guix/ftp-client.scm \
guix/http.scm \
guix/store.scm \
guix/ui.scm \
guix/build/gnu-build-system.scm \
guix/build/ftp.scm \
guix/build/http.scm \
guix/build/utils.scm \
guix/build/union.scm \
guix/packages.scm \
guix/snix.scm \
guix.scm \
distro.scm \
distro/packages/base.scm \
distro/packages/guile.scm \
distro/packages/ld-wrapper.scm \
distro/packages/lout.scm \
distro/packages/recutils.scm
GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go
nobase_dist_guilemodule_DATA = $(MODULES)
patchdir = $(pkgdatadir)/patches
dist_patch_DATA = \
distro/packages/patches/binutils-ld-new-dtags.patch \
distro/packages/patches/diffutils-gets-undeclared.patch \
distro/packages/patches/guile-1.8-cpp-4.5.patch \
distro/packages/patches/guile-default-utf8.patch \
distro/packages/patches/guile-relocatable.patch \
distro/packages/patches/libtool-skip-tests.patch \
distro/packages/patches/m4-gets-undeclared.patch \
distro/packages/patches/m4-readlink-EINVAL.patch \
distro/packages/patches/m4-s_isdir.patch \
distro/packages/patches/make-impure-dirs.patch \
distro/packages/patches/findutils-absolute-paths.patch \
distro/packages/patches/perl-no-sys-dirs.patch \
distro/packages/patches/readline-link-ncurses.patch \
distro/packages/patches/tar-gets-undeclared.patch
bootstrapdir = $(pkgdatadir)/bootstrap
bootstrap_x86_64_linuxdir = $(bootstrapdir)/x86_64-linux
bootstrap_i686_linuxdir = $(bootstrapdir)/i686-linux
dist_bootstrap_x86_64_linux_DATA = \
distro/packages/bootstrap/x86_64-linux/bash \
distro/packages/bootstrap/x86_64-linux/mkdir \
distro/packages/bootstrap/x86_64-linux/tar \
distro/packages/bootstrap/x86_64-linux/xz
dist_bootstrap_i686_linux_DATA = \
distro/packages/bootstrap/i686-linux/bash \
distro/packages/bootstrap/i686-linux/mkdir \
distro/packages/bootstrap/i686-linux/tar \
distro/packages/bootstrap/i686-linux/xz
# Big bootstrap binaries are not included in the tarball. Instead, they
# are downloaded.
nodist_bootstrap_x86_64_linux_DATA = \
distro/packages/bootstrap/x86_64-linux/guile-bootstrap-2.0.6.tar.xz
nodist_bootstrap_i686_linux_DATA = \
distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz
# Those files must remain executable, so they remain executable once
# imported into the store.
install-data-hook:
chmod +x $(DESTDIR)$(bootstrapdir)/*/{bash,mkdir,tar,xz}
DISTCLEANFILES = \
$(nodist_bootstrap_x86_64_linux_DATA) \
$(nodist_bootstrap_i686_linux_DATA)
# Method to download a file from an external source.
DOWNLOAD_FILE = \
GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH" \
$(GUILE) --no-auto-compile -L "$(top_srcdir)" \
"$(top_srcdir)/build-aux/download.scm"
distro/packages/bootstrap/x86_64-linux/guile-bootstrap-2.0.6.tar.xz: guix/utils.go
$(MKDIR_P) `dirname "$@"`
$(DOWNLOAD_FILE) "$@" "0467a82cbe4136f60a79eb4176011bf88cf28ea19c9ad9defa365811ff8e11cf"
distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz: guix/utils.go
$(MKDIR_P) `dirname "$@"`
$(DOWNLOAD_FILE) "$@" "93b537766dfab3ad287143523751e3ec02dd32d3ccaf88ad2d31c63158f342ee"
nobase_nodist_guilemodule_DATA = $(GOBJECTS) guix/config.scm
TESTS = \
tests/builders.scm \
tests/derivations.scm \
tests/utils.scm \
tests/build-utils.scm \
tests/packages.scm \
tests/snix.scm \
tests/union.scm \
tests/guix-build.sh \
tests/guix-package.sh
TEST_EXTENSIONS = .scm .sh
SCM_LOG_COMPILER = $(top_builddir)/pre-inst-env $(GUILE)
AM_SCM_LOG_FLAGS = --no-auto-compile -L "$(top_srcdir)"
SH_LOG_COMPILER = $(top_builddir)/pre-inst-env $(SHELL)
AM_SH_LOG_FLAGS = -x -e
EXTRA_DIST = \
HACKING \
.dir-locals.el \
build-aux/download.scm \
srfi/srfi-64.scm \
srfi/srfi-64.upstream.scm \
tests/test.drv \
build-aux/config.rpath \
release.nix \
$(TESTS)
CLEANFILES = $(GOBJECTS) *.log
.scm.go:
$(MKDIR_P) `dirname "$@"`
DISTRO_INSTALLED_PATCH_DIRECTORY="$(patchdir)" \
DISTRO_INSTALLED_BOOTSTRAP_DIRECTORY="$(bootstrapdir)" \
$(top_builddir)/pre-inst-env \
$(GUILD) compile -L "$(top_srcdir)" \
-Wformat -Wunbound-variable -Warity-mismatch \
--target="$(host)" \
-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
SUBDIRS = po
info_TEXINFOS = doc/guix.texi
EXTRA_DIST += doc/fdl-1.3.texi
ACLOCAL_AMFLAGS = -I m4
AM_DISTCHECK_CONFIGURE_FLAGS = \
--with-libgcrypt-prefix="$(LIBGCRYPT_PREFIX)" \
--with-nix-prefix="$(NIX_PREFIX)"