comparison man/lispref/packaging.texi @ 1738:f43f9ca6c7d9

[xemacs-hg @ 2003-10-10 12:39:27 by stephent] @var -> @code <87ad89mfs3.fsf_-_@tleepslib.sk.tsukuba.ac.jp>
author stephent
date Fri, 10 Oct 2003 12:39:45 +0000
parents 712931b4b71d
children 4d269e525e21
comparison
equal deleted inserted replaced
1737:68ed93de81b7 1738:f43f9ca6c7d9
647 actually build the packages. 647 actually build the packages.
648 648
649 @item XEMACS_INSTALLED_PACKAGES_ROOT 649 @item XEMACS_INSTALLED_PACKAGES_ROOT
650 Set this to the root of where you want the packages to be installed. 650 Set this to the root of where you want the packages to be installed.
651 Under this directory will hang @file{xemacs-packages} and 651 Under this directory will hang @file{xemacs-packages} and
652 @file{mule-packages}. See @var{NONMULE_INSTALLED_PACKAGES_ROOT} and 652 @file{mule-packages}. See @code{NONMULE_INSTALLED_PACKAGES_ROOT} and
653 @var{MULE_INSTALLED_PACKAGES_ROOT}. The default for this is 653 @code{MULE_INSTALLED_PACKAGES_ROOT}. The default for this is
654 @file{/usr/local/lib/xemacs}. Which may not be what you want if you are 654 @file{/usr/local/lib/xemacs}. Which may not be what you want if you are
655 developing XEmacs. To quote the comments in 655 developing XEmacs. To quote the comments in
656 @file{Local.rules.template}: 656 @file{Local.rules.template}:
657 657
658 @quotation 658 @quotation
659 If you are developing XEmacs, you probably don't want to install the 659 If you are developing XEmacs, you probably don't want to install the
660 packages under /usr/local, which is where the stable, released version 660 packages under /usr/local, which is where the stable, released version
661 of XEmacs goes. Instead, we suggest a layout as described in the base 661 of XEmacs goes. Instead, we suggest a layout as described in the base
675 @end quotation 675 @end quotation
676 676
677 @item symlink 677 @item symlink
678 The default is unset (blank). If you set this to @samp{t} then 678 The default is unset (blank). If you set this to @samp{t} then
679 @code{make install} will create a @dfn{symlink farm} of the installed 679 @code{make install} will create a @dfn{symlink farm} of the installed
680 packages under @var{XEMACS_INSTALLED_PACKAGES_ROOT}. Obviously, for 680 packages under @code{XEMACS_INSTALLED_PACKAGES_ROOT}. Obviously, for
681 this to work, your system has to support symbolic links. This is as 681 this to work, your system has to support symbolic links. This is as
682 close as you can get to @dfn{running in place} for the packages. 682 close as you can get to @dfn{running in place} for the packages.
683 683
684 @item NONMULE_INSTALLED_PACKAGES_ROOT 684 @item NONMULE_INSTALLED_PACKAGES_ROOT
685 This is where the non-Mule packages get installed to. The default is 685 This is where the non-Mule packages get installed to. The default is
792 792
793 @item RCOPY 793 @item RCOPY
794 The path to your copy command (GNU cp). The default is dependent on 794 The path to your copy command (GNU cp). The default is dependent on
795 whether or not @var{symlink} is set (@samp{t}). 795 whether or not @var{symlink} is set (@samp{t}).
796 796
797 If @var{symlink} is unset (blank), @var{RCOPY}'s default is 797 If @var{symlink} is unset (blank), @code{RCOPY}'s default is
798 @code{cp -af}. If @var{symlink} is set (@samp{t}), @var{RCOPY}'s 798 @code{cp -af}. If @var{symlink} is set (@samp{t}), @code{RCOPY}'s
799 default is @code{cp --force --recursive --symbolic-link}. 799 default is @code{cp --force --recursive --symbolic-link}.
800 @end table 800 @end table
801 801
802 It should be noted that in most cases the defaults should be fine. Most 802 It should be noted that in most cases the defaults should be fine. Most
803 people will probably only need to alter: 803 people will probably only need to alter:
804 804
805 @itemize @bullet 805 @itemize @bullet
806 @item @var{XEMACS_INSTALLED_PACKAGES_ROOT} 806 @item @code{XEMACS_INSTALLED_PACKAGES_ROOT}
807 @item @var{NONMULE_INSTALLED_PACKAGES_ROOT} 807 @item @code{NONMULE_INSTALLED_PACKAGES_ROOT}
808 @item @var{MULE_INSTALLED_PACKAGES_ROOT} 808 @item @code{MULE_INSTALLED_PACKAGES_ROOT}
809 @item @var{NONMULE_PACKAGES} 809 @item @code{NONMULE_PACKAGES}
810 @item @var{MULE_PACKAGES} 810 @item @code{MULE_PACKAGES}
811 @end itemize 811 @end itemize
812 812
813 @node Creating Packages, Documenting Packages, Local.rules File, Packaging 813 @node Creating Packages, Documenting Packages, Local.rules File, Packaging
814 @comment node-name, next, previous, up 814 @comment node-name, next, previous, up
815 @cindex creating packages 815 @cindex creating packages
867 Part of the internal package infrastructure, its value should always be 867 Part of the internal package infrastructure, its value should always be
868 @samp{1.1}. Do not change this. 868 @samp{1.1}. Do not change this.
869 869
870 @item version 870 @item version
871 This is the XEmacs package version number of the package. It is set 871 This is the XEmacs package version number of the package. It is set
872 from the @file{Makefile} variable @var{VERSION}. This is something that 872 from the @file{Makefile} variable @code{VERSION}. This is something
873 the XEmacs Package Release Engineer deals with so there is no need for a 873 that the XEmacs Package Release Engineer deals with so there is no need
874 package maintainer to touch it. In @file{package-info.in} just put the 874 for a package maintainer to touch it. In @file{package-info.in} just
875 place-marker, @samp{VERSION} here. 875 put the place-marker, @samp{VERSION} here.
876 876
877 @item author-version 877 @item author-version
878 This is the package's internal, or @samp{upstream} version number if it 878 This is the package's internal, or @samp{upstream} version number if it
879 has one. It is set from the @file{Makefile} variable 879 has one. It is set from the @file{Makefile} variable
880 @var{AUTHOR_VERSION}. 880 @code{AUTHOR_VERSION}.
881 881
882 @item date 882 @item date
883 This is the date of the last change made to the package. It is 883 This is the date of the last change made to the package. It is
884 auto-generated at build time, taken from the package's toplevel 884 auto-generated at build time, taken from the package's toplevel
885 @file{ChangeLog}. 885 @file{ChangeLog}.
887 @item build-date 887 @item build-date
888 The date the package was built. It is auto-generated. 888 The date the package was built. It is auto-generated.
889 889
890 @item maintainer 890 @item maintainer
891 This is the name and email address of the package's maintainer. It is 891 This is the name and email address of the package's maintainer. It is
892 taken from the @file{Makefile} variable @var{MAINTAINER}. 892 taken from the @file{Makefile} variable @code{MAINTAINER}.
893 893
894 @item distribution 894 @item distribution
895 An unused field, leave as @samp{xemacs} 895 An unused field, leave as @samp{xemacs}
896 896
897 @item priority 897 @item priority
898 An unused field, can be any of @samp{high}, @samp{medium}, or 898 An unused field, can be any of @samp{high}, @samp{medium}, or
899 @samp{low}. 899 @samp{low}.
900 900
901 @item category 901 @item category
902 The @samp{category} of the package. It is taken from the 902 The @samp{category} of the package. It is taken from the
903 @file{Makefile} variable @var{CATEGORY} and can be either 903 @file{Makefile} variable @code{CATEGORY} and can be either
904 @samp{standard} for non-Mule packages, or @samp{mule} for Mule 904 @samp{standard} for non-Mule packages, or @samp{mule} for Mule
905 packages. The is also provision for @samp{unsupported} in this field 905 packages. The is also provision for @samp{unsupported} in this field
906 which would be for packages that XEmacs.org do not distribute. 906 which would be for packages that XEmacs.org do not distribute.
907 907
908 @strong{N.B.} As yet, the @xpms{} does @emph{not} support this type of 908 @strong{N.B.} As yet, the @xpms{} does @emph{not} support this type of
929 @item provides 929 @item provides
930 A whitespace separated list of @emph{all} the features the package 930 A whitespace separated list of @emph{all} the features the package
931 provides. Surround the list with parens. 931 provides. Surround the list with parens.
932 932
933 @item requires 933 @item requires
934 Taken from the @file{Makefile} variable @var{REQUIRES}. It is a list of 934 Taken from the @file{Makefile} variable @code{REQUIRES}. It is a list
935 all the package's dependencies, including any macros and defstructs that 935 of all the package's dependencies, including any macros and defstructs
936 need to be inlined. 936 that need to be inlined.
937 937
938 @samp{REQUIRES} cannot be correctly computed from the calls to 938 @samp{REQUIRES} cannot be correctly computed from the calls to
939 @code{require} in the package's library sources. @samp{REQUIRES} is 939 @code{require} in the package's library sources. @samp{REQUIRES} is
940 used to ensure that all macro and defstruct definitions used by the 940 used to ensure that all macro and defstruct definitions used by the
941 package are available at build time. This is not merely a matter of 941 package are available at build time. This is not merely a matter of
1131 1131
1132 @table @samp 1132 @table @samp
1133 @item ELCS_1 1133 @item ELCS_1
1134 A list of extra byte-compiled Lisp files used by the package to be 1134 A list of extra byte-compiled Lisp files used by the package to be
1135 installed in a subdirectory of the package's lisp directory. The same 1135 installed in a subdirectory of the package's lisp directory. The same
1136 care should be taken with this as with @var{ELCS} in regard to 1136 care should be taken with this as with @code{ELCS} in regard to
1137 @code{make clean}. 1137 @code{make clean}.
1138 1138
1139 @item ELCS_1_DEST 1139 @item ELCS_1_DEST
1140 The name of the subdirectory for the @var{ELCS_1} files to be installed 1140 The name of the subdirectory for the @code{ELCS_1} files to be installed
1141 to. Be sure to include @samp{$(PACKAGE)/} as part of the name. 1141 to. Be sure to include @samp{$(PACKAGE)/} as part of the name.
1142 1142
1143 @example 1143 @example
1144 ELCS_1_DEST = $(PACKAGE)/extra 1144 ELCS_1_DEST = $(PACKAGE)/extra
1145 @end example 1145 @end example
1146 1146
1147 Would put the @var{ELCS_1} files for the package, @samp{foo} into 1147 Would put the @code{ELCS_1} files for the package, @samp{foo} into
1148 @file{xemacs-packages/lisp/foo/extra/}. 1148 @file{xemacs-packages/lisp/foo/extra/}.
1149 1149
1150 @item EARLY_GENERATED_LISP 1150 @item EARLY_GENERATED_LISP
1151 For additional @file{.el} files that will be generated before any 1151 For additional @file{.el} files that will be generated before any
1152 byte-compiling happens. Use this for @samp{autoload-type} files. You 1152 byte-compiling happens. Use this for @samp{autoload-type} files. You
1153 must write @file{Makefile} rules to build these files. 1153 must write @file{Makefile} rules to build these files.
1167 @example 1167 @example
1168 PRELOADS=-l ./apackage-macros.el -l ../bpackage/lisp/bpackage-macros.el 1168 PRELOADS=-l ./apackage-macros.el -l ../bpackage/lisp/bpackage-macros.el
1169 @end example 1169 @end example
1170 1170
1171 Preloads are loaded before @file{package-compile.el}, so the 1171 Preloads are loaded before @file{package-compile.el}, so the
1172 @var{load-path} is minimal. Therefore @samp{PRELOADS} must specify a 1172 @code{load-path} is minimal. Therefore @samp{PRELOADS} must specify a
1173 full path to packaged Lisp. The base @var{load-path} does include the 1173 full path to packaged Lisp. The base @code{load-path} does include the
1174 core Lisp directory, so core libraries are found. 1174 core Lisp directory, so core libraries are found.
1175 1175
1176 @item AUTOLOAD_PATH 1176 @item AUTOLOAD_PATH
1177 The subdirectory in the package's source tree where the @file{.el} files 1177 The subdirectory in the package's source tree where the @file{.el} files
1178 reside. This is where the @file{auto-autoloads.el} file will be placed. 1178 reside. This is where the @file{auto-autoloads.el} file will be placed.
1179 1179
1180 @strong{N.B.} There is no need to use this variable if the @file{.el} 1180 @strong{N.B.} There is no need to use this variable if the @file{.el}
1181 files are in the package's toplevel directory. @var{AUTOLOAD_PATH} 1181 files are in the package's toplevel directory. @code{AUTOLOAD_PATH}
1182 defaults to @samp{.}. 1182 defaults to @samp{.}.
1183 1183
1184 @item PACKAGE_SUPPRESS 1184 @item PACKAGE_SUPPRESS
1185 Place calls to @code{package-suppress} here to indicate Lisp libraries 1185 Place calls to @code{package-suppress} here to indicate Lisp libraries
1186 that should only be available to particular versions of XEmacs. For 1186 that should only be available to particular versions of XEmacs. For
1208 1208
1209 @example 1209 @example
1210 EXPLICIT_DOCS = texi/$(PACKAGE).texi 1210 EXPLICIT_DOCS = texi/$(PACKAGE).texi
1211 @end example 1211 @end example
1212 1212
1213 See @var{DOCS_TXI_EXTENSION} and @var{DOCS_TEXINFO_EXTENSION} if you 1213 See @code{DOCS_TXI_EXTENSION} and @code{DOCS_TEXINFO_EXTENSION} if you
1214 don't use the @file{.texi} file extension on your Texinfo sources. 1214 don't use the @file{.texi} file extension on your Texinfo sources.
1215 1215
1216 @item EXTRA_TEXI_FILES 1216 @item EXTRA_TEXI_FILES
1217 List here extra Texinfo source files needed to build your 1217 List here extra Texinfo source files needed to build your
1218 documentation. Whatever is listed here is passed on to @code{makeinfo} 1218 documentation. Whatever is listed here is passed on to @code{makeinfo}
1250 will be copied to @samp{$(DATA_DEST)} for installation. Any directory 1250 will be copied to @samp{$(DATA_DEST)} for installation. Any directory
1251 component of the path for a file will be stripped, so that the 1251 component of the path for a file will be stripped, so that the
1252 file ends up in @samp{$(DATA_DEST)}, not in a subdiredtory. 1252 file ends up in @samp{$(DATA_DEST)}, not in a subdiredtory.
1253 1253
1254 @item DATA_DEST 1254 @item DATA_DEST
1255 The directory where the files in @var{DATA_FILES} are installed to. It 1255 The directory where the files in @code{DATA_FILES} are installed to. It
1256 is a subdirectory of the installed @file{etc/} directory. Be sure to 1256 is a subdirectory of the installed @file{etc/} directory. Be sure to
1257 prefix this value with @samp{$(PACKAGE)}, for example: 1257 prefix this value with @samp{$(PACKAGE)}, for example:
1258 1258
1259 @example 1259 @example
1260 DATA_DEST = $(PACKAGE)/foo 1260 DATA_DEST = $(PACKAGE)/foo
1262 1262
1263 Would put files into @file{.../etc/$(PACKAGE)/foo/}. 1263 Would put files into @file{.../etc/$(PACKAGE)/foo/}.
1264 1264
1265 @item DATA_1_FILES ... DATA_35_FILES 1265 @item DATA_1_FILES ... DATA_35_FILES
1266 For data files that need to go into a different directory from 1266 For data files that need to go into a different directory from
1267 @var{DATA_DEST}. 1267 @code{DATA_DEST}.
1268 1268
1269 @item DATA_1_DEST ... DATA_35_DEST 1269 @item DATA_1_DEST ... DATA_35_DEST
1270 The name of the subdirectory for files specified in @var{DATA_n_FILES}. 1270 The name of the subdirectory for files specified in
1271 And like @var{DATA_DEST}, be sure to prefix @samp{$(PACKAGE)} to the 1271 @code{DATA_@var{n}_FILES}. And like @code{DATA_DEST}, be sure to prefix
1272 value of these variables. 1272 @samp{$(PACKAGE)} to the value of these variables.
1273 1273
1274 @item EXTRA_DEPENDENCIES 1274 @item EXTRA_DEPENDENCIES
1275 For additional files to build that aren't appropriate to place in any 1275 For additional files to build that aren't appropriate to place in any
1276 other @file{Makefile} variable. You will need to write @file{Makefile} 1276 other @file{Makefile} variable. You will need to write @file{Makefile}
1277 rules to build these files. 1277 rules to build these files.
1294 same as the package's. 1294 same as the package's.
1295 1295
1296 @item an entry in the @code{cond} in @code{package-name-to-directory} 1296 @item an entry in the @code{cond} in @code{package-name-to-directory}
1297 This is optional; it is necessary only if you keep your Lisp code 1297 This is optional; it is necessary only if you keep your Lisp code
1298 somewhere other than the top-level directory of the package's source 1298 somewhere other than the top-level directory of the package's source
1299 tree, eg, in @file{packages/xemacs-packages/@var{PACKAGE}/lisp}. 1299 tree, eg, in @file{packages/xemacs-packages/$(PACKAGE)/lisp}.
1300 @end table 1300 @end table
1301 1301
1302 This only needs to be done once, when the package is first added to the 1302 This only needs to be done once, when the package is first added to the
1303 @xpms{}. (Well, when you randomly change the subdirectory layout, too.) 1303 @xpms{}. (Well, when you randomly change the subdirectory layout, too.)
1304 Your changes to @file{package-compile.el} must be cleared and checked in 1304 Your changes to @file{package-compile.el} must be cleared and checked in