mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-26 04:43:09 +03:00
emacs: add an option to install the C source
Install the source files, and the associated TAGS files. Use .dir-locals.el to select the TAGS file automatically. Turn the option on by default, to get a consistent behavior when using xref-find-definitions (M-.), whether looking for an elisp (e.g. defun) or a C (e.g. defalias) definition.
This commit is contained in:
parent
2c570b4fbe
commit
bb6708b858
@ -6,6 +6,7 @@
|
|||||||
, withGTK2 ? true, gtk2 ? null
|
, withGTK2 ? true, gtk2 ? null
|
||||||
, withGTK3 ? false, gtk3 ? null
|
, withGTK3 ? false, gtk3 ? null
|
||||||
, withXwidgets ? false, webkitgtk24x ? null, wrapGAppsHook ? null, glib_networking ? null
|
, withXwidgets ? false, webkitgtk24x ? null, wrapGAppsHook ? null, glib_networking ? null
|
||||||
|
, withCsrc ? true
|
||||||
, srcRepo ? false, autoconf ? null, automake ? null, texinfo ? null
|
, srcRepo ? false, autoconf ? null, automake ? null, texinfo ? null
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@ -31,7 +32,8 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "0cwgyiyymnx4xdg99dm2drfxcyhy2jmyf0rkr9fwj9mwwf77kwhr";
|
sha256 = "0cwgyiyymnx4xdg99dm2drfxcyhy2jmyf0rkr9fwj9mwwf77kwhr";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = lib.optional stdenv.isDarwin ./at-fdcwd.patch;
|
patches = lib.optional stdenv.isDarwin ./at-fdcwd.patch
|
||||||
|
++ lib.optional withCsrc ./install-C-src.patch;
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ]
|
nativeBuildInputs = [ pkgconfig ]
|
||||||
++ lib.optionals srcRepo [ autoconf automake texinfo ];
|
++ lib.optionals srcRepo [ autoconf automake texinfo ];
|
||||||
|
33
pkgs/applications/editors/emacs/install-C-src.patch
Normal file
33
pkgs/applications/editors/emacs/install-C-src.patch
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
diff --git a/Makefile.in b/Makefile.in
|
||||||
|
index 7aac403..c21a396 100644
|
||||||
|
--- a/Makefile.in
|
||||||
|
+++ b/Makefile.in
|
||||||
|
@@ -563,7 +563,7 @@ set_installuser=
|
||||||
|
## work correctly, and therefore no idea when tar can be replaced.
|
||||||
|
## See also these comments from 2004 about cp -r working fine:
|
||||||
|
## http://lists.gnu.org/archive/html/autoconf-patches/2004-11/msg00005.html
|
||||||
|
-install-arch-indep: lisp install-info install-man ${INSTALL_ARCH_INDEP_EXTRA}
|
||||||
|
+install-arch-indep: lisp install-info install-man ${INSTALL_ARCH_INDEP_EXTRA} tags
|
||||||
|
-set ${COPYDESTS} ; \
|
||||||
|
unset CDPATH; \
|
||||||
|
$(set_installuser); \
|
||||||
|
@@ -617,6 +617,19 @@ install-arch-indep:
|
||||||
|
done; \
|
||||||
|
${GZIP_PROG} -9n "../etc/publicsuffix.txt"; \
|
||||||
|
}
|
||||||
|
+ for d in src lwlib ; do \
|
||||||
|
+ srcdir="$(DESTDIR)${datadir}/emacs/${version}/$$d" ; \
|
||||||
|
+ mkdir -p $$srcdir ; \
|
||||||
|
+ find $$d -name "*.[chm]" -exec cp {} $$srcdir \; ; \
|
||||||
|
+ done
|
||||||
|
+ for d in src lisp lwlib ; do \
|
||||||
|
+ srcdir="$(DESTDIR)${datadir}/emacs/${version}/$$d" ; \
|
||||||
|
+ cp $$d/TAGS $$srcdir ; \
|
||||||
|
+ echo '((nil . ((tags-file-name . "TAGS"))))' > $$srcdir/.dir-locals.el ; \
|
||||||
|
+ done
|
||||||
|
+ mkdir -p "$(DESTDIR)${datadir}/emacs/${version}/site-lisp"
|
||||||
|
+ echo "(setq find-function-C-source-directory \"$(DESTDIR)${datadir}/emacs/${version}/src\")" \
|
||||||
|
+ > "$(DESTDIR)${datadir}/emacs/${version}/site-lisp/site-start.el"
|
||||||
|
-chmod -R a+r "$(DESTDIR)${datadir}/emacs/${version}" ${COPYDESTS}
|
||||||
|
|
||||||
|
## The above chmods are needed because "umask 022; tar ..." is not
|
Loading…
Reference in New Issue
Block a user