pkgsrc-ng/editors/xemacs-packages/files/compile-el-file.el
2016-11-18 22:39:22 +01:00

31 lines
964 B
EmacsLisp

;; $NetBSD: compile-el-file.el,v 1.1 2015/09/30 10:11:45 hauke Exp $
;; When bootstrapping the xemacs packages, set up load-path to include
;; the package elisp files, wherever pkgsrc has extracted them.
;;
;; Here There Be Dragons:
;; As upstream has pointed out, large scale byte-compiling would require
;; proper dependency management. What we do here should be safe enough
;; for minor patches, but be aware of the problem.
(defun add-subdirs-to-load-path (basedir)
"Add all first level dirs below basedir to load-path."
(dolist (f (directory-files basedir))
(let ((name (concat basedir "/" f)))
(when (and (file-directory-p name)
(not (member f '("." "..")))
(add-to-list 'load-path name))))
(add-to-list 'load-path basedir)))
(defun compile-el-file (basedir el-file)
"With a given base path, set up load-path, and byte compile an elisp
source file."
(add-subdirs-to-load-path basedir)
(byte-compile-file el-file))