summary refs log tree commit diff
path: root/pkgs/applications/editors/emacs/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/editors/emacs/default.nix')
-rw-r--r--pkgs/applications/editors/emacs/default.nix23
1 files changed, 19 insertions, 4 deletions
diff --git a/pkgs/applications/editors/emacs/default.nix b/pkgs/applications/editors/emacs/default.nix
index e10be4ab22d6..08223ef82ef0 100644
--- a/pkgs/applications/editors/emacs/default.nix
+++ b/pkgs/applications/editors/emacs/default.nix
@@ -25,15 +25,16 @@ let
     else "lucid";
 in
 stdenv.mkDerivation rec {
-  name = "emacs-25.1";
+  name = "emacs-${version}${versionModifier}";
+  version = "25.1";
+  versionModifier = "";
 
   src = fetchurl {
     url = "mirror://gnu//emacs/${name}.tar.xz";
     sha256 = "0cwgyiyymnx4xdg99dm2drfxcyhy2jmyf0rkr9fwj9mwwf77kwhr";
   };
 
-  patches = lib.optional stdenv.isDarwin ./at-fdcwd.patch
-    ++ lib.optional withCsrc ./install-C-src.patch;
+  patches = lib.optional stdenv.isDarwin ./at-fdcwd.patch;
 
   nativeBuildInputs = [ pkgconfig ]
     ++ lib.optionals srcRepo [ autoconf automake texinfo ];
@@ -73,9 +74,23 @@ stdenv.mkDerivation rec {
     done
   '';
 
+  installTargets = "tags install";
+
   postInstall = ''
-    mkdir -p $out/share/emacs/site-lisp/
+    mkdir -p $out/share/emacs/site-lisp
     cp ${./site-start.el} $out/share/emacs/site-lisp/site-start.el
+    $out/bin/emacs --batch -f batch-byte-compile $out/share/emacs/site-lisp/site-start.el
+
+    rm -rf $out/var
+    rm -rf $out/share/emacs/${version}/site-lisp
+  '' + lib.optionalString withCsrc ''
+    for srcdir in src lisp lwlib ; do
+      dstdir=$out/share/emacs/${version}/$srcdir
+      mkdir -p $dstdir
+      find $srcdir -name "*.[chm]" -exec cp {} $dstdir \;
+      cp $srcdir/TAGS $dstdir
+      echo '((nil . ((tags-file-name . "TAGS"))))' > $dstdir/.dir-locals.el
+    done
   '' + lib.optionalString stdenv.isDarwin ''
     mkdir -p $out/Applications
     mv nextstep/Emacs.app $out/Applications