home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / languages / elisp / packages / rpc-hm-1.0 / init.el < prev    next >
Encoding:
Text File  |  1992-07-21  |  2.8 KB  |  105 lines

  1. ;Author: Eyvind Ness (eyvind) 
  2. ;Date:   Wednesday, July 22 1992 13:38 GMT
  3. ;File:   /usr/local/gnu/emacs/elisp/rpc-hm-1.0/init.el
  4.  
  5. ;;;
  6. ;;; See lisp/bytecomp.el
  7. ;;; (require 'byte-compile)
  8. ;;; Ref. batch-byte-compile-file byte-recompile-directory
  9.   
  10. ;;;
  11. ;;; Makes sure the load-path is extend (to be able autoload the extra
  12. ;;; snacks like ilisp while compiling):
  13.  
  14. (defun _init ()
  15.   (setq load-path
  16.     (append
  17.      '(nil)
  18.      (list (expand-file-name
  19.         (concat exec-directory "../../elisp/ilisp-4.11")))
  20.      (list
  21.       (expand-file-name
  22.        (concat exec-directory "../../elisp/site-extensions")))
  23.      load-path)))
  24.  
  25.  
  26. (defun _batch-byte-compile-file (file)
  27.   (condition-case err
  28.       (prog1 t (byte-compile-file file))
  29.     (error
  30.      (message (if (cdr err)
  31.           "===> Error processing %s: %s \"%s\""
  32.           "===> Error processing %s: %s")
  33.           file
  34.           (get (car err) 'error-message)
  35.           (prin1-to-string (cdr err)))
  36.      nil)))
  37.  
  38.  
  39. (defun _makedir (directory)
  40.   "Byte compiles all .el files that needs recompiling in DIRECTORY.
  41. Returns non-nil if one or more compilations failed."
  42.   
  43.   (setq directory (expand-file-name directory))
  44.   (let ((files (directory-files directory nil "\\.el$"))
  45.     (count 0)
  46.     (errorp nil)
  47.     (inputfile nil)
  48.     (outputbuffer (get-buffer-create "*Grep Output*"))
  49.     (displaybufferp nil)
  50.     (missingokp nil)
  51.     (nomessagep nil)
  52.     (nosuffixp t)
  53.     source dest)
  54.     (while files
  55.       (if (and (not (auto-save-file-name-p (car files)))
  56.            (setq source (expand-file-name (car files) directory))
  57.            (setq dest (concat (file-name-sans-versions source) "c"))
  58.            (or (not (file-exists-p dest))
  59.            (file-newer-than-file-p source dest)))
  60.       ;; Source needs recompiling.
  61.       (progn
  62.         (setq count (1+ count))
  63.         (and
  64.          ;; Check if there are macro defs in source.
  65.          (save-excursion
  66.            (set-buffer outputbuffer)
  67.            (erase-buffer)
  68.            (call-process
  69.         "/bin/sh"
  70.         inputfile outputbuffer displaybufferp 
  71.         "-c"
  72.         (concat
  73.          "(grep '^(defmacro ' " source 
  74.          " >/dev/null ) && echo found-some-macros"))
  75.            (or 
  76.         (< (point-max) 2)    ; OK - No defmacros.
  77.         ;; Else, there are macro defs in source. Make sure these
  78.         ;; are loaded before trying to byte-compile it. 
  79.         (condition-case err
  80.             (prog1 t
  81.               (load source missingokp nomessagep nosuffixp))
  82.           (error
  83.            (prog1 nil
  84.              (setq errorp t)
  85.              (message
  86.               (if (cdr err)
  87.               "===> Error processing %s: %s \"%s\""
  88.             "===> Error processing %s: %s")
  89.               source
  90.               (get (car err) 'error-message)
  91.               (prin1-to-string (cdr err))))))))
  92.          ;; We don't want to byte-compile anything that didn't load.
  93.          (or (_batch-byte-compile-file source) (setq errorp t)))))
  94.       (setq files (cdr files)))
  95.     (message "Done (Total of %d file%s compiled)"
  96.          count (if (= count 1) "" "s"))
  97.     errorp))
  98.  
  99.  
  100. (defun _make ()
  101.   (message "%s\n" (emacs-version))
  102.   (kill-emacs (if (_makedir ".") 1 0)))
  103.  
  104. ;;; End of file.
  105.