-# Guix --- Nix package management from Guile. -*- coding: utf-8 -*-
-# Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org>
+# GNU Guix --- Functional package management for GNU
+# Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
#
-# This file is part of Guix.
+# This file is part of GNU Guix.
#
-# Guix is free software; you can redistribute it and/or modify it
+# GNU 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
+# GNU 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/>.
+# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
#
# Integration of the `guix-daemon' code taken from upstream Nix.
#
-BUILT_SOURCES = nix/libstore/schema.sql.hh
-CLEANFILES += $(BUILT_SOURCES)
+BUILT_SOURCES += nix/libstore/schema.sql.hh
+CLEANFILES += $(BUILT_SOURCES) etc/guix-daemon.service
noinst_LIBRARIES = libformat.a libutil.a libstore.a
+# Use '-std=c++11' for 'std::shared_ptr', 'auto', lambdas, and more.
+AM_CXXFLAGS = -Wall -std=c++11
+
libformat_a_SOURCES = \
nix/boost/format/free_funcs.cc \
nix/boost/format/parsing.cc \
nix/boost/format/format_implementation.cc
libformat_headers = \
- nix/boost/weak_ptr.hpp \
nix/boost/throw_exception.hpp \
- nix/boost/checked_delete.hpp \
- nix/boost/shared_ptr.hpp \
nix/boost/format.hpp \
nix/boost/assert.hpp \
nix/boost/format/macros_default.hpp \
nix/boost/format/group.hpp \
nix/boost/format/feed_args.hpp \
nix/boost/format/internals_fwd.hpp \
- nix/boost/format/internals.hpp \
- nix/boost/detail/workaround.hpp \
- nix/boost/detail/shared_count.hpp \
- nix/boost/enable_shared_from_this.hpp
+ nix/boost/format/internals.hpp
libformat_a_CPPFLAGS = \
-I$(top_srcdir)/nix
libutil_a_SOURCES = \
nix/libutil/archive.cc \
+ nix/libutil/affinity.cc \
nix/libutil/serialise.cc \
- nix/libutil/immutable.cc \
nix/libutil/util.cc \
nix/libutil/xml-writer.cc \
nix/libutil/hash.cc \
nix/libutil/gcrypt-hash.cc
libutil_headers = \
- nix/libutil/immutable.hh \
+ nix/libutil/affinity.hh \
nix/libutil/hash.hh \
nix/libutil/serialise.hh \
nix/libutil/xml-writer.hh \
nix/libstore/references.hh \
nix/libstore/pathlocks.hh \
nix/libstore/globals.hh \
- nix/libstore/schema.sql.hh \
nix/libstore/worker-protocol.hh \
nix/libstore/remote-store.hh \
nix/libstore/derivations.hh \
libstore_a_CPPFLAGS = \
$(libutil_a_CPPFLAGS) \
-I$(top_srcdir)/nix/libstore \
+ -I$(top_builddir)/nix/libstore \
-DNIX_STORE_DIR=\"$(storedir)\" \
-DNIX_DATA_DIR=\"$(datadir)\" \
- -DNIX_STATE_DIR=\"$(localstatedir)/nix\" \
- -DNIX_LOG_DIR=\"$(localstatedir)/log/nix\" \
- -DNIX_CONF_DIR=\"$(sysconfdir)/nix\" \
+ -DNIX_STATE_DIR=\"$(localstatedir)/guix\" \
+ -DNIX_LOG_DIR=\"$(localstatedir)/log/guix\" \
+ -DNIX_CONF_DIR=\"$(sysconfdir)/guix\" \
-DNIX_LIBEXEC_DIR=\"$(libexecdir)\" \
-DNIX_BIN_DIR=\"$(bindir)\" \
- -DOPENSSL_PATH="\"openssl\""
+ -DOPENSSL_PATH="\"guix-authenticate\"" \
+ -DDEFAULT_CHROOT_DIRS="\"\""
-libstore_a_CFLAGS = \
+libstore_a_CXXFLAGS = $(AM_CXXFLAGS) \
$(SQLITE3_CFLAGS) $(LIBGCRYPT_CFLAGS)
bin_PROGRAMS = guix-daemon
+sbin_PROGRAMS = guix-register
guix_daemon_SOURCES = \
nix/nix-daemon/nix-daemon.cc \
nix/nix-daemon/guix-daemon.cc
guix_daemon_CPPFLAGS = \
+ -DLOCALEDIR=\"$(localedir)\" \
$(libutil_a_CPPFLAGS) \
-I$(top_srcdir)/nix/libstore
guix_daemon_headers = \
nix/nix-daemon/shared.hh
-libexec_PROGRAMS = nix-setuid-helper
-nix_setuid_helper_SOURCES = \
- nix/nix-setuid-helper/nix-setuid-helper.cc
-nix_setuid_helper_CPPFLAGS = \
- $(libutil_a_CPPFLAGS)
+guix_register_SOURCES = \
+ nix/guix-register/guix-register.cc
+
+guix_register_CPPFLAGS = \
+ $(libutil_a_CPPFLAGS) \
+ $(libstore_a_CPPFLAGS) \
+ -I$(top_srcdir)/nix/libstore
+
+# XXX: Should we start using shared libs?
+guix_register_LDADD = \
+ libstore.a libutil.a libformat.a -lbz2 \
+ $(SQLITE3_LIBS) $(LIBGCRYPT_LIBS)
-nix_setuid_helper_LDADD = \
- libutil.a libformat.a
noinst_HEADERS = \
$(libformat_headers) $(libutil_headers) $(libstore_headers) \
(write (get-string-all in) out)))))"
nodist_pkglibexec_SCRIPTS = \
- nix/scripts/list-runtime-roots
+ nix/scripts/list-runtime-roots \
+ nix/scripts/substitute
+
+if BUILD_DAEMON_OFFLOAD
+
+nodist_pkglibexec_SCRIPTS += \
+ nix/scripts/offload
+
+endif BUILD_DAEMON_OFFLOAD
+
+
+# XXX: It'd be better to hide it in $(pkglibexecdir).
+nodist_libexec_SCRIPTS = \
+ nix/scripts/guix-authenticate
+
+# The '.service' file for systemd.
+systemdservicedir = $(libdir)/systemd/system
+nodist_systemdservice_DATA = etc/guix-daemon.service
+
+etc/guix-daemon.service: etc/guix-daemon.service.in \
+ $(top_builddir)/config.status
+ $(MKDIR_P) "`dirname "$@"`"
+ $(SED) -e 's|@''bindir''@|$(bindir)|' < \
+ "$(srcdir)/etc/guix-daemon.service.in" > "$@.tmp"
+ mv "$@.tmp" "$@"
EXTRA_DIST += \
- nix/sync-with-upstream \
nix/libstore/schema.sql \
nix/AUTHORS \
- nix/COPYING
+ nix/COPYING \
+ etc/guix-daemon.service.in
AM_TESTS_ENVIRONMENT += \
top_builddir="$(abs_top_builddir)"
tests/guix-daemon.sh
clean-local:
- -find "$(GUIX_TEST_ROOT)" | xargs chmod +w
+ -if test -d "$(GUIX_TEST_ROOT)"; then \
+ find "$(GUIX_TEST_ROOT)" | xargs chmod +w; \
+ fi
-rm -rf "$(GUIX_TEST_ROOT)"