Mercurial > hg > xemacs-beta
comparison man/lispref/packaging.texi @ 749:9cea8fcd2e61
[xemacs-hg @ 2002-02-12 14:30:51 by stephent]
packaging docs lispref <87u1sm93v2.fsf@tleeps18.sk.tsukuba.ac.jp>
author | stephent |
---|---|
date | Tue, 12 Feb 2002 14:30:54 +0000 |
parents | 561ad704dc70 |
children | 5d60b99c1ded |
comparison
equal
deleted
inserted
replaced
748:ca2d04c5710a | 749:9cea8fcd2e61 |
---|---|
769 | 769 |
770 The @samp{provides} can be done automatically, but currently aren't. It | 770 The @samp{provides} can be done automatically, but currently aren't. It |
771 would probably be a good idea to set them in the @file{Makefile} (they | 771 would probably be a good idea to set them in the @file{Makefile} (they |
772 do change, fairly often, but at present they aren't. | 772 do change, fairly often, but at present they aren't. |
773 | 773 |
774 @c #### This organization sucks. Should break up by component, with | |
775 @c theory of operations, example, and reference subsections. | |
774 The @file{Makefile} is quite stylized. The idea is similar to an | 776 The @file{Makefile} is quite stylized. The idea is similar to an |
775 @file{Imakefile} or an @code{automake} file: the complexity is hidden in | 777 @file{Imakefile} or an @code{automake} file: the complexity is hidden in |
776 generic rules files, in this case the @file{XEmacs.rules} include file | 778 generic rules files, in this case the @file{XEmacs.rules} include file |
777 in the top directory of the packages hierarchy. | 779 in the top directory of the packages hierarchy. |
780 | |
781 It is important to note that the XEmacs used to compile packages is the | |
782 bare minimum: it is called with the @samp{-no-user-file -no-site-file | |
783 -no-autoloads}. This means that anything not dumped into XEmacs by | |
784 default needs to be specified in the @samp{REQUIRES} variable (for | |
785 packaged Lisp) or in some cases the @samp{PRELOADS} (autoloads used in | |
786 libraries mentioned in @samp{PRELOADS}). | |
778 | 787 |
779 An @xpms{} @file{Makefile} has three components. First, there is a | 788 An @xpms{} @file{Makefile} has three components. First, there is a |
780 variable definition section. The standard @xpms{} @file{make} variables | 789 variable definition section. The standard @xpms{} @file{make} variables |
781 must be defined here for use by the @file{XEmacs.rules} include file. | 790 must be defined here for use by the @file{XEmacs.rules} include file. |
782 Second, the file @file{../../XEmacs.rules} is included. Finally, the | 791 Second, the file @file{../../XEmacs.rules} is included. Finally, the |
1043 | 1052 |
1044 The required variables are described in the table below. | 1053 The required variables are described in the table below. |
1045 The corresponding field names for @file{package-info.in}, where | 1054 The corresponding field names for @file{package-info.in}, where |
1046 relevant, are given in parentheses. | 1055 relevant, are given in parentheses. |
1047 | 1056 |
1048 @c #### This is the canonical place for this information. If there is | 1057 @c This is the canonical place for this information. If there is |
1049 @c unnecessary duplication with package-info.in documentation, shorten | 1058 @c unnecessary duplication with package-info.in documentation, shorten |
1050 @c that and leave this full-length. | 1059 @c that and leave this full-length. |
1051 @table @code | 1060 @table @code |
1052 @item VERSION | 1061 @item VERSION |
1053 (version) | 1062 (version) |
1116 | 1125 |
1117 We don't consider this a feature, of course. Please do submit code to | 1126 We don't consider this a feature, of course. Please do submit code to |
1118 do sanity checking to @email{xemacs-patches@@xemacs.org}. | 1127 do sanity checking to @email{xemacs-patches@@xemacs.org}. |
1119 @end table | 1128 @end table |
1120 | 1129 |
1121 Optional, but very commonly used variables include: | 1130 Optional, but very commonly used variables are explained below. |
1122 | 1131 |
1123 @table @code | 1132 @table @code |
1124 item EXTRA_SOURCES | 1133 item EXTRA_SOURCES |
1125 Other files (such as extra Lisp sources or an upstream @file{Makefile}) | 1134 Other files (such as extra Lisp sources or an upstream @file{Makefile}) |
1126 that are normally placed in the installed Lisp directory, but not | 1135 that are normally placed in the installed Lisp directory, but not |
1143 | 1152 |
1144 @example | 1153 @example |
1145 PRELOADS=-l ./apackage-macros.el -l ../bpackage/lisp/bpackage-macros.el | 1154 PRELOADS=-l ./apackage-macros.el -l ../bpackage/lisp/bpackage-macros.el |
1146 @end example | 1155 @end example |
1147 | 1156 |
1157 Preloads are loaded before @file{package-compile.el}, so the | |
1158 @var{load-path} is minimal. Therefore @samp{PRELOADS} must specify a | |
1159 full path to packaged Lisp. The base @var{load-path} does include the | |
1160 core Lisp directory, so core libraries are found. | |
1161 | |
1148 @item INFO_FILES | 1162 @item INFO_FILES |
1149 Any Info file(s) generated by the package. These must be paths relative | 1163 Any Info file(s) generated by the package. These must be paths relative |
1150 to the root of the package's source tree. | 1164 to the root of the package's source tree. |
1151 | 1165 |
1152 @item TEXI_FILES | 1166 @item TEXI_FILES |
1156 @item MANUAL | 1170 @item MANUAL |
1157 The name to be used for Info files and man pages. | 1171 The name to be used for Info files and man pages. |
1158 | 1172 |
1159 @item DATA_FILES | 1173 @item DATA_FILES |
1160 Any data files, such as pixmaps, READMEs, and ChangeLogs. These must be | 1174 Any data files, such as pixmaps, READMEs, and ChangeLogs. These must be |
1161 paths relative to the root of the package's source tree. | 1175 paths relative to the root of the package's source tree. These files |
1176 will be copied to @samp{$(DATA_DEST)} for installation. Any directory | |
1177 component component of the path for a file will be stripped, so that the | |
1178 file ends up in @samp{$(DATA_DEST)}, not in a subdiredtory. If there are | |
1179 several destination directories, the forms @samp{$(DATA_FILES_@var{n})} | |
1180 and @samp{$(DATA_DEST_@var{n})} (@var{n} may take values in 1-40) must | |
1181 be used. The @xpms{} doesn't make provision for copying trees at this | |
1182 time. | |
1162 | 1183 |
1163 @item DATA_DEST | 1184 @item DATA_DEST |
1164 The installation location for data files, relative to the @file{etc/} | 1185 The installation location for data files, relative to the @file{etc/} |
1165 directory of the package hierarchy. The normal value is simply | 1186 directory of the package hierarchy. The default is currently empty, but |
1166 $(PACKAGE). Leaving it empty (@emph{i.e.}, put it directly under | 1187 the normal value is simply $(PACKAGE). Leaving it empty (@emph{i.e.}, |
1167 @file{etc/}) will probably work, but is subject to name conflicts with | 1188 put it directly under @file{etc/}) will probably work, but is subject to |
1168 other packages. | 1189 name conflicts with other packages. If there are several destination |
1190 directories, the form @samp{$(DATA_DEST_@var{n})} must be used. The | |
1191 @xpms{} doesn't make provision for copying trees at this time. | |
1192 @end table | |
1193 | |
1194 The following variables are defaulted by @file{Local.rules} or | |
1195 @file{XEmacs.rules}. These variables often should be added to using | |
1196 @samp{+=} rather than set by @samp{=} or @samp{:=}. | |
1197 | |
1198 @table @code | |
1199 @item GENERATED | |
1200 @c #### Is this correct? | |
1201 A list of @file{.elc} files compiled from @file{.el} files generated by | |
1202 the package build process. These files and the corresponding @file{.el} | |
1203 files are copied to the installed @file{lisp} directory. Defaults to | |
1204 @samp{$@{AUTOLOAD_PATH@}/auto-autoloads.elc}. Typical usage is | |
1205 @example | |
1206 GENERATED += $@{AUTOLOAD_PATH@}/custom-load.elc | |
1207 @end example | |
1169 @end table | 1208 @end table |
1170 | 1209 |
1171 Rarely used variables. | 1210 Rarely used variables. |
1172 | 1211 |
1173 @c @table @code | 1212 @c @table @code |