Mercurial > hg > xemacs-beta
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 |