diff --git a/.gitignore b/.gitignore index 4547557631..a363c074ca 100644 --- a/.gitignore +++ b/.gitignore @@ -120,8 +120,7 @@ GTAGS /emacs/Makefile /emacs/guix-autoloads.el /emacs/guix-helper.scm -/emacs/guix-init.el -/emacs/guix-profiles.el +/emacs/guix-config.el /doc/os-config-bare-bones.texi /doc/os-config-desktop.texi /doc/*.1 diff --git a/configure.ac b/configure.ac index 247a9d5068..cbe5dfb67e 100644 --- a/configure.ac +++ b/configure.ac @@ -205,8 +205,7 @@ AM_CONDITIONAL([HAVE_EMACS], [test "x$EMACS" != "xno"]) emacsuidir="${guilemoduledir}/guix/emacs" AC_SUBST([emacsuidir]) -AC_CONFIG_FILES([emacs/guix-init.el - emacs/guix-profiles.el +AC_CONFIG_FILES([emacs/guix-config.el emacs/guix-helper.scm]) AC_OUTPUT diff --git a/emacs.am b/emacs.am index bf91cca0bb..0f1ac946de 100644 --- a/emacs.am +++ b/emacs.am @@ -26,11 +26,13 @@ ELFILES = \ 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 @@ -41,9 +43,7 @@ dist_lisp_DATA = \ $(ELFILES) \ $(AUTOLOADS) -nodist_lisp_DATA = \ - emacs/guix-init.el \ - emacs/guix-profiles.el +nodist_lisp_DATA = emacs/guix-config.el $(AUTOLOADS): $(ELFILES) $(EMACS) --batch --eval \ diff --git a/emacs/guix-config.el.in b/emacs/guix-config.el.in new file mode 100644 index 0000000000..8804f72357 --- /dev/null +++ b/emacs/guix-config.el.in @@ -0,0 +1,31 @@ +;;; guix-config.el --- Compile-time configuration of Guix. + +;; Copyright © 2015 Mathieu Lirzin + +;; 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 this program. If not, see . + +;;; Code: + +(defconst guix-emacs-interface-directory + (replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@")) + +(defconst guix-state-directory + ;; This must match `NIX_STATE_DIR' as defined in `daemon.am'. + (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix")) + +(provide 'guix-config) + +;;; guix-config.el ends here diff --git a/emacs/guix-init.el.in b/emacs/guix-init.el similarity index 84% rename from emacs/guix-init.el.in rename to emacs/guix-init.el index 728bc375c2..6ea6fcd0b0 100644 --- a/emacs/guix-init.el.in +++ b/emacs/guix-init.el @@ -1,7 +1,7 @@ +(require 'guix-config) (require 'guix-autoloads) -(defvar guix-load-path - (replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@") +(defvar guix-load-path guix-emacs-interface-directory "Directory with scheme files for \"guix.el\" package.") (defcustom guix-package-enable-at-startup t diff --git a/emacs/guix-profiles.el.in b/emacs/guix-profiles.el similarity index 96% rename from emacs/guix-profiles.el.in rename to emacs/guix-profiles.el index 1e43707b68..1a41745512 100644 --- a/emacs/guix-profiles.el.in +++ b/emacs/guix-profiles.el @@ -19,12 +19,14 @@ ;;; Code: +(require 'guix-config) + (defvar guix-user-profile (expand-file-name "~/.guix-profile") "User profile.") (defvar guix-default-profile - (concat (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix") + (concat guix-state-directory "/profiles/per-user/" (getenv "USER") "/guix-profile")