Mercurial > hg > xemacs-beta
comparison lisp/prim/make-docfile.el @ 163:0132846995bd r20-3b8
Import from CVS: tag r20-3b8
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:43:35 +0200 |
parents | |
children | 5a88923fcbfe |
comparison
equal
deleted
inserted
replaced
162:4de2936b4e77 | 163:0132846995bd |
---|---|
1 ;;; make-docfile.el --- Cache docstrings in external file | |
2 | |
3 ;; Copyright (C) 1985, 1986, 1992-1995, 1997 Free Software Foundation, Inc. | |
4 | |
5 ;; Author: Unknown | |
6 ;; Maintainer: Steven L Baur <steve@altair.xemacs.org> | |
7 ;; Keywords: internal | |
8 | |
9 ;; This file is part of XEmacs. | |
10 | |
11 ;; XEmacs is free software; you can redistribute it and/or modify it | |
12 ;; under the terms of the GNU General Public License as published by | |
13 ;; the Free Software Foundation; either version 2, or (at your option) | |
14 ;; any later version. | |
15 | |
16 ;; XEmacs is distributed in the hope that it will be useful, but | |
17 ;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
19 ;; General Public License for more details. | |
20 | |
21 ;; You should have received a copy of the GNU General Public License | |
22 ;; along with XEmacs; see the file COPYING. If not, write to the Free | |
23 ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | |
24 ;; 02111-1307, USA. | |
25 | |
26 ;;; Synched up with: Not in FSF | |
27 | |
28 ;;; Commentary: | |
29 | |
30 ;; This is a front-end to the make-docfile program that gathers up all the | |
31 ;; lisp files that will be dumped with XEmacs. It would probably be best | |
32 ;; to just move make-docfile.c completely to lisp and be done with it. | |
33 | |
34 ;;; Code: | |
35 | |
36 (defvar options nil) | |
37 (defvar processed nil) | |
38 (defvar docfile nil) | |
39 (defvar docfile-buffer nil) | |
40 (defvar site-file-list nil) | |
41 | |
42 ;; Gobble up the stuff we don't wish to pass on. | |
43 (setq command-line-args (cdr (cdr (cdr (cdr command-line-args))))) | |
44 | |
45 ;; First gather up the command line options. | |
46 (let (done) | |
47 (while (and (null done) command-line-args) | |
48 (let ((arg (car command-line-args))) | |
49 (cond ((or (string-equal arg "-o") ; Specify DOC file name | |
50 (string-equal arg "-a") ; Append to DOC file | |
51 (string-equal arg "-d")) ; Set working directory | |
52 (if (string-equal arg "-o") | |
53 (setq docfile (car (cdr command-line-args)))) | |
54 (setq options (cons arg options)) | |
55 (setq options (cons (car (cdr command-line-args)) options))) | |
56 ((string-equal arg "-i") ; Set site files to scan | |
57 (setq site-file-list (car (cdr command-line-args)))) | |
58 (t (setq done t))) | |
59 (if (null done) | |
60 (setq command-line-args (cdr (cdr command-line-args))))))) | |
61 (setq options (nreverse options)) | |
62 | |
63 ;; (print (concat "Options: " (prin1-to-string options))) | |
64 | |
65 ;; Next process the list of C files. | |
66 (while command-line-args | |
67 (let ((arg (car command-line-args))) | |
68 (if (null (member arg processed)) | |
69 (setq processed (cons arg processed)))) | |
70 (setq command-line-args (cdr command-line-args))) | |
71 | |
72 ;; Then process the list of Lisp files. | |
73 (define-function 'defalias 'define-function) | |
74 (let ((temp-path (expand-file-name ".." (car load-path)))) | |
75 (setq load-path (nconc (directory-files temp-path t "^[^-.]" | |
76 nil 'dirs-only) | |
77 (cons temp-path load-path)))) | |
78 | |
79 ;; Then process the autoloads | |
80 (setq autoload-file-name "auto-autoloads.elc") | |
81 (setq source-directory (concat default-directory "../lisp")) | |
82 ;; (print (concat "Source directory: " source-directory)) | |
83 (require 'packages) | |
84 | |
85 ;; We must have some lisp support at this point | |
86 | |
87 ;(load "backquote") | |
88 ;(load "bytecomp-runtime") | |
89 ;(load "subr") | |
90 ;(load "replace") | |
91 ;(load "version.el") | |
92 ;(load "cl") | |
93 | |
94 ;; (load "featurep") | |
95 | |
96 (let (dumped-lisp-packages) | |
97 (load (concat default-directory "../lisp/prim/dumped-lisp.el")) | |
98 (setq dumped-lisp-packages | |
99 (append dumped-lisp-packages packages-hardcoded-lisp)) | |
100 (while dumped-lisp-packages | |
101 (let ((arg (packages-add-suffix (car dumped-lisp-packages)))) | |
102 (setq arg (locate-library arg)) | |
103 (if (null (member arg processed)) | |
104 (setq processed (cons arg processed))) | |
105 (setq dumped-lisp-packages (cdr dumped-lisp-packages))))) | |
106 | |
107 ;; Finally process the list of site-loaded files. | |
108 (if site-file-list | |
109 (let (site-load-packages) | |
110 (load site-file-list t t) | |
111 (while site-load-packages | |
112 (let ((arg (car site-load-packages))) | |
113 (if (not (member arg processed)) | |
114 (setq processed (cons arg processed)))) | |
115 (setq site-load-packages (cdr site-load-packages))))) | |
116 | |
117 (let ((autoloads (list-autoloads))) | |
118 ;; (print (concat "Autoloads: " (prin1-to-string autoloads))) | |
119 (while autoloads | |
120 (let ((arg (car autoloads))) | |
121 (if (null (member arg processed)) | |
122 (setq processed (cons arg processed))) | |
123 (setq autoloads (cdr autoloads))))) | |
124 | |
125 ;; Now fire up make-docfile and we're done | |
126 | |
127 (setq processed (nreverse processed)) | |
128 | |
129 ;; (print (prin1-to-string (append options processed))) | |
130 | |
131 (print "Spawning make-docfile ...") | |
132 ;; (print (prin1-to-string (append options processed))) | |
133 | |
134 (setq exec-path (list (concat default-directory "../lib-src"))) | |
135 | |
136 ;; (locate-file-clear-hashing nil) | |
137 (apply 'call-process-internal | |
138 ;; (concat default-directory "../lib-src/make-docfile") | |
139 "make-docfile" | |
140 nil | |
141 t | |
142 nil | |
143 (append options processed)) | |
144 | |
145 ;; (write-region-internal (point-min) (point-max) "/tmp/DOC") | |
146 | |
147 (kill-emacs) | |
148 | |
149 ;;; make-docfile.el ends here |