Mercurial > hg > xemacs-beta
diff man/xemacs/packages.texi @ 367:a4f53d9b3154 r21-1-13
Import from CVS: tag r21-1-13
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:01:07 +0200 |
parents | 182f72e8cd0d |
children | cc15677e0335 |
line wrap: on
line diff
--- a/man/xemacs/packages.texi Mon Aug 13 11:00:13 2007 +0200 +++ b/man/xemacs/packages.texi Mon Aug 13 11:01:07 2007 +0200 @@ -1,4 +1,7 @@ -@node Packages, Abbrevs, Running, Top +@c This is part of the XEmacs manual. +@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc. +@c See file xemacs.texi for copying conditions. +@node Packages, Basic, Startup Paths, Top @comment node-name, next, previous, up @section Packages @@ -16,6 +19,8 @@ * Package Terminology:: Understanding different kinds of packages. * Using Packages:: How to install and use packages. * Building Packages:: Building packages from sources. +* Creating Packages:: The basics. +* Available Packages:: A brief, out-of-date, directory of packaged LISP. @end menu @node Package Terminology, Using Packages, , Packages @@ -326,7 +331,7 @@ @end enumerate -@node Building Packages, , Using Packages, Packages +@node Building Packages, Creating Packages, Using Packages, Packages @comment node-name, next, previous, up Source packages are available from the @file{packages/source-packages} @@ -368,7 +373,7 @@ of TeXinfo documentation if present. @item srckit -Usually aliased to @code{make srckit-std}. This does a @code{make +Usually aliased to @code{srckit-std}. This does a @code{make distclean} and creates a package source tarball in the staging directory. This is generally only of use for package maintainers. @@ -388,3 +393,397 @@ primarily of use by XEmacs maintainers producing files for distribution. @end table + +@node Creating Packages, Available Packages, Building Packages, Packages +@comment node-name, next, previous, up + +Creating a package from an existing Lisp library is not very difficult. + +In addition to the Lisp libraries themselves, you need a +@file{package-info.in} file and a simple @file{Makefile}. The rest is +done by @file{XEmacs.rules}, part of the packaging system +infrastructure. + +@file{package-info.in} contains a single Lisp form like this: + +@example +(name ; your package's name + (standards-version 1.1 + version VERSION + author-version AUTHOR_VERSION + date DATE + build-date BUILD_DATE + maintainer MAINTAINER + distribution xemacs ; change to "mule" if MULE is needed + priority high + category CATEGORY + dump nil + description "description" ; a one-line description string + filename FILENAME + md5sum MD5SUM + size SIZE + provides (feature1 feature2) ; one for every `provides' form + requires (REQUIRES) + type regular +)) +@end example + +You must fill in the four commented lines. The value of @code{name} is +the name of your package as an unquoted symbol. Normally it is the name +of the main Lisp file or principal feature provided. The allowed values +for distribution are @code{xemacs} and @code{mule}. Write them as +unquoted symbols. The @code{description} is a quoted Lisp string; use +the usual conventions. The value for @code{provides} is a list of +feature symbols (written unquoted). All of the features provided by +libraries in your package should be elements of this list. Implementing +an automatic method for generating the @file{provides} line is +desirable, but as yet undone. + +The variables in upper-case are references to variables set in the +@file{Makefile} or automatically generated. Do not change them; they +are automatically filled in by the build process. + +The remaining lines refer to implementation constants +(@code{standards-version}), or features that are unimplemented or have +been removed (@code{priority} and @code{dump}). The @code{type} line is +not normally relevant to external maintainers; the alternate value is +@code{single-file}, which refers to packages consed up out of a number +of single-file libraries that are more or less thematically related. An +example is @code{prog-modes}. Single-file packages are basically for +administrative convenience, and new packages should generally be created +as regular packages. + +The @file{Makefile} is quite stylized. The idea is similar to an +@file{Imakefile} or an @code{automake} file: the complexity is hidden in +generic rules files, in this case the @file{XEmacs.rules} include file +in the top directory of the packages hierarchy. Although a number of +facilities are available for complex libraries, most simple packages' +@file{Makefile}s contain a copyright notice, a few variable definitions, +an include for @file{XEmacs.rules}, and a couple of standard targets. + +The first few @code{make} variables defined are @code{VERSION}, +@code{AUTHOR_VERSION}, @code{MAINTAINER}, @code{PACKAGE}, +@code{PKG_TYPE}, @code{REQUIRES}, and @code{CATEGORY}. All but one were +described in the description of @file{package-info.in}. The last is an +admistrative grouping. Current categories include @code{comm}, +@code{games}, @code{libs}, @code{mule}, @code{oa}, @code{os}, +@code{prog}, and @code{wp}. @ref{Available Packages}, for a list of +categories. + +Next, define the variable @code{ELCS}. This contains the list of the +byte-compiled Lisp files used by the package. These files and their +@file{.el} versions will be included in the binary package. If there +are other files (such as extra Lisp sources or an upstream +@file{Makefile}) that are normally placed in the installed Lisp +directory, but not byte-compiled, they can be listed as the value of +@code{EXTRA_SOURCES}. + +The include is simply +@example +include ../../XEmacs.rules +@end example + +The standard targets follow. These are + +@example +all:: $(ELCS) auto-autoloads.elc + +srckit: srckit-alias + +binkit: binkit-alias +@end example + +Other targets (such as Texinfo sources) may need to be added as +dependencies for the @code{all} target. Dependencies for @code{srckit} +and @code{binkit} (that is, values for @var{srckit-alias} and +@var{binkit-alias}) are defined in @file{XEmacs.rules}. The most useful +of these values are given in the following table. + +@table @var +@item srckit-alias +Usually set to @code{srckit-std}. + +@item binkit-alias +May be set to @code{binkit-sourceonly}, @code{binkit-sourceinfo}, +@code{binkit-sourcedata}, or +@code{binkit-sourcedatainfo}. @code{sourceonly} indicates there is +nothing to install in a data directory or info directory. +@code{sourceinfo} indicates that source and info files are to be +installed. @code{sourcedata} indicates that source and etc (data) files +are to be installed. @code{sourcedatainfo} indicates source, etc +(data), and info files are to be installed. +@end table + +Data files include things like pixmaps for a package-specific toolbar, +and are normally installed in @file{etc/@var{PACKAGE_NAME}}. A few +packages have needs beyond the basic templates. See @file{XEmacs.rules} +or a future revision of this manual for details. + +@node Available Packages, , Creating Packages, Packages +@comment node-name, next, previous, up + +This section is surely out-of-date. If you're sure that XEmacs is +able to do something, but your installed XEmacs won't do it for you, +it's probably in a package. If you can't find it in this section, +that's a bug---please report it. It is very hard to keep this section +up-to-date; your reports, comments, and questions will help a lot. + +This data is up-to-date as of 10 February 1999. (Ouch! I told you!) + +@subsection Library Packages (libs) + +These packages are required to build and support most of the rest of +XEmacs. By design, xemacs-base is a `regular' package. Use restraint +when adding new files there as it is required by almost everything. + +@table @file +@item Sun +Support for Sparcworks. + +@item apel +A Portable Emacs Library. Used by XEmacs MIME support. + +@item edebug +A Lisp debugger. + +@item dired +The DIRectory EDitor is for manipulating, and running commands on +files in a directory. + +@item efs +Treat files on remote systems the same as local files. + +@item mail-lib +Fundamental lisp files for providing email support. + +@item tooltalk +Support for building with Tooltalk. + +@item xemacs-base +Fundamental XEmacs support. Install this unless you wish a totally +naked XEmacs. + +@item xemacs-devel +XEmacs Lisp developer support. This package contains utilities for +supporting Lisp development. It is a single-file package so it may be +tailored. +@end table + +@subsection Communications Packages (comm) + +These packages provide support for various communications, primarily +email and usenet. + +@table @file +@item footnote +Footnoting in mail message editing modes. + +@item gnats +XEmacs bug reports. + +@item gnus +The Gnus Newsreader and Mailreader. + +@item mailcrypt +Support for messaging encryption with PGP. + +@item mh-e +Front end support for MH. + +@item net-utils +Miscellaneous Networking Utilities. This is a single-file package and +files may be deleted at will. + +@item ph +Emacs implementation of the ph client to CCSO/qi directory servers. + +@item rmail +An obsolete Emacs mailer. If you do not already use it, don't start. + +@item supercite +An Emacs citation tool. Useful with all Emacs Mailers and Newsreaders. + +@item tm +Emacs MIME support. + +@item vm +An Emacs mailer. + +@item w3 +A Web browser. +@end table + +@subsection Games and Amusements (games) + +@table @file +@item cookie +Spook and Yow (Zippy quotes). + +@item games +Tetris, Sokoban, and Snake. + +@item mine +Minehunt. + +@item misc-games +Other amusements and diversions. +@end table + +@subsection Mule Support (mule) + +@table @file +@item egg-its +Wnn (4.2 and 6) support. SJ3 support. Must be installed prior to +XEmacs build. + +@item leim +Quail. Used for everything other than English and Japanese. + +@item locale +Used for localized menubars (French and Japanese) and localized splash +screens (Japanese). + +@item mule-base +Basic Mule support. Must be installed prior to building with Mule. + +@item skk +Another Japanese Language Input Method. Can be used without a +separate process running as a dictionary server. +@end table + +@subsection Productivity Packages (oa) + +@table @file +@item calendar +Calendar and diary support. + +@item edit-utils +Single file lisp packages for various XEmacs goodies. Load this and +weed out the junk you don't want. + +@item forms +Forms editing support (obsolete, use the builtin Widget instead). + +@item frame-icon +Provide a WM icon based on major mode. + +@item hm--html-menus +HTML editing. + +@item ispell +Spell-checking with ispell. + +@item pc +PC style interface emulation. + +@item psgml +Validated HTML/SGML editing. + +@item sgml +SGML/Linuxdoc-SGML editing. + +@item slider +User interface tool. + +@item speedbar +??? Document me. + +@item strokes +Mouse enhancement utility. + +@item text-modes +Various single file lisp packages for editing text files. + +@item time +Display time & date on the modeline. +@end table + +@subsection Operating System Utilities (os) + +@table @file +@item eterm +Terminal emulator. + +@item igrep +Enhanced front-end for Grep. + +@item ilisp +Front-end for Inferior Lisp. + +@item os-utils +Miscellaneous single-file O/S utilities, for printing, archiving, +compression, remote shells, etc. + +@item view-process +A Unix process browsing tool. +@end table + +@subsection Program Editing Support (prog) + +@table @file +@item ada +Ada language support. + +@item c-support +Basic single-file add-ons for editing C code. + +@item cc-mode +C, C++ and Java language support. + +@item debug +GUD, gdb, dbx debugging support. + +@item ediff +Interface over patch. + +@item emerge +Another interface over patch. + +@item pcl-cvs +CVS frontend. + +@item prog-modes +Miscellaneous single-file lisp files for various programming languages. + +@item scheme +Front-end support for Inferior Scheme. + +@item sh-script +Support for editing shell scripts. + +@item vc +Version Control for Free systems. + +@item vc-cc +Version Control for ClearCase. This package must be installed prior +to building XEmacs [broken as of XEmacs 20.5-beta19]. + +@item vhdl +Support for VHDL. +@end table + +@subsection Word Processing (wp) + +@table @file +@item auctex +Basic TeX/LaTeX support. + +@item crisp +Crisp/Brief emulation. + +@item edt +DEC EDIT/EDT emulation. + +@item texinfo +XEmacs TeXinfo support. + +@item textools +Single-file TeX support. + +@item tpu +DEC EDIT/TPU support. + +@item viper +VI emulation support. +@end table +