Mercurial > hg > xemacs-beta
diff lisp/prim/update-elc.el @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children | bcdc7deadc19 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/prim/update-elc.el Mon Aug 13 08:45:50 2007 +0200 @@ -0,0 +1,56 @@ +;; This file is part of XEmacs. + +;; XEmacs 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 2, or (at your option) +;; any later version. + +;; XEmacs 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 XEmacs; see the file COPYING. If not, write to the Free +;; Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + +;;; Synched up with: Not in FSF. + +;; Byte compile the .EL files necessary to dump out xemacs. +;; Use this file like this: +;; +;; temacs -batch -l ../lisp/prim/update-elc.el $lisp +;; +;; where $lisp comes from the Makefile. .elc files listed in $lisp will +;; cause the corresponding .el file to be compiled. .el files listed in +;; $lisp will be ignored. +;; +;; (the idea here is that you can bootstrap if your .ELC files +;; are missing or badly out-of-date) + +(setq update-elc-files-to-compile + (delq nil + (mapcar (function + (lambda (x) + (if (string-match "\.elc$" x) + (let ((src (substring x 0 -1))) + (if (file-newer-than-file-p src x) + (progn + (and (file-exists-p x) + (null (file-writable-p x)) + (set-file-modes x (logior (file-modes x) 128))) + src)))))) + ;; -batch gets filtered out. + (nthcdr 3 command-line-args)))) + +(if update-elc-files-to-compile + (progn + (setq command-line-args + (cons (car command-line-args) + (append '("-l" "loadup-el.el" "run-temacs" + "-batch" "-q" "-no-site-file" "-f" + "batch-byte-compile") + update-elc-files-to-compile))) + (load "loadup-el.el"))) + +(kill-emacs)