;;; recoed-require.el

;; Copyright (C) 2000,2001 Kenichi OKADA <okada@opaopa.org>

;; Author: Kenichi OKADA <okada@opaopa.org>

;; This program 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.

;; This program 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 this program; see the file COPYING.  If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.

;;; Commentary:

;; 2000/11/17
;;
;; $B$^$:!$$-$l$$$J(BXEmacs$B$r$D$/$k(B
;; cd cvs/xemacs
;; rm site-packages
;; configure $B$O(B $BI,$:(B -pdump $B$r$D$1$k(B
;; make
;; sudo make install
;;
;; $B$-$l$$$J(BXEmacs$B$G!$(Bsite-packages $B$r:n$k(B
;; xemacs -q -l record-require.el ~/cvs/xemacs/site-packages ~/.emacs
;; or
;; xemacs -q -l record-require.el
;;
;; $B5/F08e(B
;; M-x load-file .emacs
;; M-x load-file .emacs-wl
;; (require 'mime-setup)
;; $BEy(B
;; require$B$5$l$?$b$N$r5-O?$9$k(B
;; C-x C-f ~/cvs/xemacs/site-packages
;; M-x make-site-packages
;;
;; apel/poe.elc $BF~$l$k$H(B format-time-string $B$G%(%i!<$,$G$?$j!D(B
;; ftp://ftp.opaopa.org/pub/elisp/poe-pdump.dif
;;
;; xemacs.dmp $B$r:n$jD>$9(B
;; make
;; sudo make install
;;
;; $B<jF0$G$d$k$K$O(B
;; $B$^$:!$(BDOC$B$r:n$k(B (site-packages $B$KJQ99$,$J$1$l$P!$$9$kI,MW$J$7(B)
;; % cd src
;; % rm ../lib-src/DOC
;; % make ../lib-src/DOC
;; # cp ../lib-src/DOC \
;;  /usr/local/xemacs/lib/xemacs-21.5-b3/mipsel-mg2-linux/
;;
;; $B%@%s%W$9$k(B
;; %./xemacs -nd -batch -l ../lisp/loadup.el dump
;; # cp xemacs.dmp ${bindir}/xemacs-${version}-`./xemacs -sd`.dmp
;; (cp xemacs.dmp /usr/local/xemacs/bin/xemacs-21.5-b3-3beb6460.dmp)

(setq site-load-packages nil)
;(condition-case nil (require 'poe) (error nil))
(fset 'ad:require (symbol-function 'require))
(defun require (feature &optional filename noerror)
  (let ((feat
	  (if noerror
	      (condition-case nil
		  (ad:require feature filename)
		(file-error))
	    (ad:require feature filename))))
    (if (and (symbol-name feat)
	     (null (member
		       (concat
			(symbol-name feat)
			".elc")
			   site-load-packages)))
	(setq site-load-packages
	      (append site-load-packages
		      (list
		       (concat
			(symbol-name feat)
			".elc")))))
    feat))

(defun make-site-packages ()
  (interactive)
  (save-excursion
    (let ((lo site-load-packages))
      (insert "(setq site-load-packages '(")
      (while (car lo)
	(insert "\"" (car lo) "\" ")
	(setq lo (cdr lo)))
      (insert "))")
      (insert "
(let ((lo site-load-packages))
  (while (car lo)
    (if (null
	 (condition-case nil
	     (require (intern (car lo)))
	   (error nil)))
	(setq site-load-packages
	      (delete (car lo) site-load-packages)))
    (setq lo (cdr lo))))
")

;;; record-require.el ends here