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