Mercurial > hg > xemacs-beta
comparison man/xemacs/startup.texi @ 428:3ecd8885ac67 r21-2-22
Import from CVS: tag r21-2-22
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:28:15 +0200 |
parents | |
children | 3a7e78e1142d |
comparison
equal
deleted
inserted
replaced
427:0a0253eac470 | 428:3ecd8885ac67 |
---|---|
1 @node Startup Paths, Basic, Command Switches, Top | |
2 @comment node-name, next, previous, up | |
3 @section How XEmacs finds Directories and Files | |
4 | |
5 @cindex startup paths | |
6 @cindex directories | |
7 | |
8 XEmacs deals with a multitude of files during operation. These files | |
9 are spread over many directories, and XEmacs determines the location of | |
10 most of these directories at startup and organizes them into various | |
11 paths. (A @dfn{path}, | |
12 @cindex path | |
13 for the purposes of this section, is simply a list of directories which | |
14 XEmacs searches successively in order to locate a file.) | |
15 | |
16 @subsection XEmacs Directory Hierarchies | |
17 @cindex hierarchies | |
18 @cindex directory hierarchies | |
19 | |
20 Many of the files XEmacs looks for are located within the XEmacs | |
21 installation itself. However, there are several views of what actually | |
22 constitutes the "XEmacs installation": XEmacs may be run from the | |
23 compilation directory, it may be installed into arbitrary directories, | |
24 spread over several directories unrelated to each other. Moreover, it | |
25 may subsequently be moved to a different place. (This last case is not | |
26 as uncommon as it sounds. Binary kits work this way.) Consequently, | |
27 XEmacs has quite complex procedures in place to find directories, no | |
28 matter where they may be hidden. | |
29 | |
30 XEmacs will always respect directory options passed to @code{configure}. | |
31 However, if it cannot locate a directory at the configured place, it | |
32 will initiate a search for the directory in any of a number of | |
33 @dfn{hierarchies} rooted under a directory which XEmacs assumes contain | |
34 parts of the XEmacs installation; it may locate several such hierarchies | |
35 and search across them. (Typically, there are just one or two | |
36 hierarchies: the hierarchy where XEmacs was or will be installed, and | |
37 the one where it is being built.) Such a directory containing a | |
38 hierarchy is called a @dfn{root}. | |
39 @cindex root of a hierarchy | |
40 Whenever this section refers to a directory using the shorthand | |
41 @code{<root>}, it means that XEmacs searches for it under all | |
42 hierarchies under all hierarchies XEmacs was able to scrounge up. In a | |
43 running XEmacs, the hierarchy roots are stored in the variable | |
44 @code{emacs-roots}. | |
45 @vindex emacs-roots | |
46 | |
47 @subsection Package Hierarchies | |
48 @cindex package hierarchies | |
49 | |
50 Many relevant directories and files XEmacs uses are actually not part of | |
51 the core installation. They are part of any of the many packages | |
52 usually installed on top of an XEmacs installation. (@xref{Packages}.) | |
53 Hence, they play a prominent role in the various paths XEmacs sets up. | |
54 | |
55 XEmacs locates packages in any of a number of package hierarchies. | |
56 Package hierarchies fall into three groups: @dfn{early}, @dfn{late}, | |
57 and @dfn{last}, | |
58 @cindex early package hierarchies | |
59 @cindex late package hierarchies | |
60 @cindex last package hierarchies | |
61 according to the relative location at which they show | |
62 up in the various XEmacs paths. Early package hierarchies are at the | |
63 very front, late ones somewhere in the middle, and last hierarchies are | |
64 (you guessed it) last. | |
65 | |
66 By default, XEmacs expects an early package hierarchy in the a | |
67 subdirectory @file{.xemacs} of the user's home directory. | |
68 | |
69 Moreover, XEmacs expects late hierarchies in the subdirectories | |
70 @file{site-packages}, @file{mule-packages}, and @file{xemacs-packages} | |
71 (in that order) of the @file{<root>/lib/xemacs} subdirectory of one of | |
72 the installation hierarchies. (If you run in-place, these are direct | |
73 subdirectories of the build directory.) Furthermore, XEmacs will also | |
74 search these subdirectories in the @file{<root>/lib/xemacs-<VERSION>} | |
75 subdirectory and prefer directories found there. | |
76 | |
77 By default, XEmacs does not have a pre-configured last package | |
78 hierarchy. Last hierarchies are primarily for using package hierarchies | |
79 of outdated versions of XEmacs as a fallback option. For example, it is | |
80 possible to run XEmacs 21.0 with the 20.4 package hierarchy as a last | |
81 hierarchy. | |
82 | |
83 It is possible to specify at configure-time the location of the various | |
84 package hierarchies with the @code{--package-path} option to configure. | |
85 @cindex package path | |
86 The early, late, and last components of the package path are separated | |
87 by double instead of single colons. If three components are present, | |
88 they are locate the early, late, and last package hierarchies | |
89 respectively. If two components are present, they locate the early and | |
90 late hierarchies. If only one component is present, it locates the late | |
91 hierarchy. At run time, the package path may also be specified via the | |
92 @code{PACKAGEPATH} environment variable. | |
93 | |
94 An XEmacs package is laid out just like a normal installed XEmacs lisp | |
95 directory. It may have @file{lisp}, @file{etc}, @file{info}, and | |
96 @file{lib-src} subdirectories. XEmacs adds these at appropriate places | |
97 within the various system-wide paths. | |
98 | |
99 There may be any number of package hierarchy directories. | |
100 | |
101 @subsection Directories and Paths | |
102 @cindex paths | |
103 | |
104 Here is a list of the various directories and paths XEmacs tries to | |
105 locate during startup. XEmacs distinguishes between directories and | |
106 paths specific to @dfn{version}, @dfn{site}, and @dfn{architecture} | |
107 when looking for them. | |
108 | |
109 @table @code | |
110 @item version-specific | |
111 @cindex version-specific directories | |
112 directories are specific to the version of XEmacs they belong to and | |
113 typically reside under @file{<root>/lib/xemacs-<VERSION>}. | |
114 @item site-specific | |
115 @cindex site-specific directories | |
116 directories are independent of the version of XEmacs they belong to and | |
117 typically reside under @file{<root>/lib/xemacs} | |
118 @item architecture-specific | |
119 @cindex architecture-specific directories | |
120 directories are specific both to the version of XEmacs and the | |
121 architecture it runs on and typically reside under | |
122 @file{<root>/lib/xemacs-<VERSION>/<ARCHITECTURE>}. | |
123 @end table | |
124 | |
125 During installation, all of these directories may also reside directly | |
126 under @file{<root>}, because that is where they are in the XEmacs tarball. | |
127 | |
128 If XEmacs runs with the @code{-debug-paths} option (@pxref{Command | |
129 Switches}), it will print the values of these variables, hopefully | |
130 aiding in debugging any problems which come up. | |
131 | |
132 @table @code | |
133 | |
134 @item lisp-directory | |
135 @vindex lisp-directory | |
136 Contains the version-specific location of the Lisp files that come with | |
137 the core distribution of XEmacs. XEmacs will search it recursively to a | |
138 depth of 1 when setting up @code{load-path}. | |
139 | |
140 @item load-path | |
141 @vindex load-path | |
142 Is where XEmacs searches for XEmacs Lisp files with commands like | |
143 @code{load-library}. | |
144 @findex load-library | |
145 It contains the package lisp directories (see further down) and the | |
146 version-specific core Lisp directories. If the environment variable | |
147 @code{EMACSLOADPATH} is set at startup, its directories are prepended to | |
148 @code{load-path}. | |
149 @vindex EMACSLOADPATH | |
150 | |
151 @item Info-directory-list | |
152 @vindex Info-directory-list | |
153 Contains the location of info files. (See @ref{(info)}.) It contains | |
154 the package info directories and the version-specific core | |
155 documentation. Moreover, XEmacs will add @file{/usr/info}, | |
156 @file{/usr/local/info} as well as the directories of the environment | |
157 variable @code{INFOPATH} | |
158 @vindex INFOPATH | |
159 to @code{Info-directory-list}. | |
160 | |
161 @item lock-directory | |
162 @itemx superlock-file | |
163 @vindex lock-directory | |
164 @vindex superlock-file | |
165 Are the site-specific locations of the lock directory and the superlock | |
166 file, respectively. The @code{lock-directory} variable may also be | |
167 initialized from the @code{EMACSLOCKDIR} | |
168 @vindex EMACSLOCKDIR | |
169 environment variable. | |
170 | |
171 @item exec-directory | |
172 @vindex exec-directory | |
173 Is the directory of architecture-dependent files that come with XEmacs, | |
174 especially executable programs intended for XEmacs to invoke. | |
175 | |
176 @item exec-path | |
177 @vindex exec-path | |
178 Is the path for executables which XEmacs may want to start. It contains | |
179 the package executable paths as well as @code{exec-directory}, and the | |
180 directories of the environment variables @code{PATH} | |
181 @vindex PATH | |
182 and @code{EMACSPATH}. | |
183 @vindex EMACSPATH | |
184 | |
185 @item doc-directory | |
186 @vindex doc-directory | |
187 Is the directory containing the architecture-specific @file{DOC} file | |
188 that contains documentation for XEmacs' commands. | |
189 | |
190 @item data-directory | |
191 @vindex data-directory | |
192 Is the version-specific directory that contains core data files XEmacs uses. | |
193 It may be initialized from the @code{EMACSDATA} | |
194 @vindex EMACSDATA | |
195 environment variable. | |
196 | |
197 @item data-directory-list | |
198 @vindex data-directory-list | |
199 Is the path where XEmacs looks for data files. It contains package data | |
200 directories as well as @code{data-directory}. | |
201 | |
202 @end table | |
203 | |
204 |