aboutsummaryrefslogtreecommitdiff
path: root/emacs.am
blob: a9147ed21c31bf795227474b2a1934ca68ad7f0d (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# GNU Guix --- Functional package management for GNU
# Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
#
# This file is part of GNU Guix.
#
# 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.
#
# 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 GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

AUTOLOADS = emacs/guix-autoloads.el

ELFILES =					\
  emacs/guix-backend.el				\
  emacs/guix-base.el				\
  emacs/guix-build-log.el			\
  emacs/guix-command.el				\
  emacs/guix-emacs.el				\
  emacs/guix-external.el			\
  emacs/guix-help-vars.el			\
  emacs/guix-history.el				\
  emacs/guix-info.el				\
  emacs/guix-init.el				\
  emacs/guix-list.el				\
  emacs/guix-messages.el			\
  emacs/guix-pcomplete.el			\
  emacs/guix-popup.el				\
  emacs/guix-prettify.el			\
  emacs/guix-profiles.el			\
  emacs/guix-read.el				\
  emacs/guix-utils.el				\
  emacs/guix.el

if HAVE_EMACS

dist_lisp_DATA =				\
  $(ELFILES)					\
  $(AUTOLOADS)

nodist_lisp_DATA = emacs/guix-config.el

$(AUTOLOADS): $(ELFILES)
	$(EMACS) --batch --eval						\
	  "(let ((backup-inhibited t)					\
	         (generated-autoload-file				\
	          (expand-file-name \"$(AUTOLOADS)\" \"$(srcdir)\")))	\
	     (update-directory-autoloads				\
	      (expand-file-name \"emacs\" \"$(srcdir)\")))"

endif HAVE_EMACS
raverse NAT, like ‘filegive’ does. * user interface ** add guile-ncurses interface * extend <package> ** add ‘recommends’ field For instance, glibc, binutils, gcc, and ld-wrapper would recommend each other. ‘guix package -i’ could ask interactively (?), or allow users to follow all or none of the recommendations. ** add a ‘user-environment-hook’ This should specify builder code to be run when building a user environment with ‘guix-package’. For instance, Texinfo’s hook would create a new ‘dir’. ** extend ‘propagated-build-inputs’ with support for multiple outputs #+BEGIN_SRC scheme (outputs '("out" "include")) (propagated-build-inputs `(((("i1" ,p1 "o1") ("i2" ,p2)) => "include") ("i3" ,p3))) #+END_SRC * synchronize non-GNU package descriptions with the [[http://directory.fsf.org][FSD]] Meta-data for GNU packages, including descriptions and synopses, can be dumped from the FSD: http://directory.fsf.org/wiki?title=GNU/Export&action=purge . We could periodically synchronize with that. * add a guildhall build system The Guildhall is Guile’s packaging system. It should be easy to add a ‘guildhall-build-system’ that does the right thing based on guildhall recipes. * union Support sophisticated collision handling when building a union: honor per-package priorities, etc. * add GUIX_ALLOW_EXPENSIVE_TESTS Tests that need to download stuff or otherwise take a long time would only be run when that is defined. * add "guix challenge" Would download a substitute, and compare its contents against a (hopefully locally-built) copy. * guix build utils ** MAYBE Change ‘ld-wrapper’ to add RPATH for libs passed by file name ** MAYBE Add equivalent to chrpath that uses [[https://gitorious.org/guile-dlhacks/guile-dlhacks/][guile-dlhacks]] ** MAYBE Add a hash-rewriting thing for deep dependency replacement without rebuild See [[https://github.com/NixOS/nixpkgs/commit/d1662d715514e6ef9d3dc29f132f1b3d8e608a18][Shea Levy's `replace-dependency' in Nixpkgs]]. * distro ** port to GNU/Hurd, aka. ‘i686-gnu’ Problems include that current glibc releases do not build on GNU/Hurd. In addition, there haven’t been stable releases of GNU Mach, MiG, and Hurd, which would be a pre-condition.