2 This file explains how to build and install XEmacs packages from a
7 You MUST create a 'Local.rules' file in the toplevel build
8 directory. (see below for the format of this file)
10 Notes for FreeBSD users:
11 ========================
12 If running FreeBSD there are options for TAR and RCOPY that
13 must be used for package building to work.
14 You must use gmake instead of make for building.
15 gmake can be installed via the devel/gmake port.
16 gtar must be used instead of tar.
17 Install it via archivers/gtar in the ports tree.
21 ** Getting Started Quickly:
23 (1) Create a 'Local.rules' file in the toplevel directory and
24 edit it to suit your needs. There is a
25 'Local.rules.template' in the top-level directory which you
28 (2) Run `make' (from the top-level directory) to build the
31 (3) Run either 'make install' or 'make bindist' (not both).
33 'make install' installs them into the
34 $NONMULE_INSTALLED_PACKAGES_ROOT directory
35 ($MULE_INSTALLED_PACKAGES_ROOT for mule-packages),
36 see Local.rules format below. It doesn't create package
39 'make bindist' creates package binary tarballs and a
40 'package-index' file in $NONMULE_INSTALLED_PACKAGES_ROOT
41 (both for mule and non-mule packages).
43 ** Building a Single Package:
45 All you need to do is run the make from the package's
46 directory. Say, for example, you want to build the bbdb
48 - cd ./xemacs-packages/bbdb
50 - make install or bindist
52 ** Building Sumo Packages:
54 Get the script 'BuildSumo' that is in the xemacs-builds module
59 ** Installing after a 'make install'
61 Under normal circumstances, the packages should be installed to
62 <xemacs-root>/lib/xemacs/xemacs-packages and
63 <xemacs-root>/lib/xemacs/mule-packages. <xemacs-root> is the
64 topmost-level directory under which everything is installed --
65 normally /usr/local, and set using the `--prefix'
66 parameter to `configure'.
68 If you installed elsewhere (see Local.rules.template), you will
69 need to either (1) copy, move or symlink to those locations, or (2)
70 tell XEmacs about your particular package locations at configure
71 time. (1) is useful when you want a properly installed XEmacs that
72 you and perhaps others can run (but then why didn't you install
73 directly to <xemacs-root>?). (2) is better, on the other hand, when
74 you're doing development work on XEmacs and possibly the packages,
75 and you'd rather have your own private copy of everything, including
76 the installed packages.
78 (1) To copy to the default location:
80 - mkdir /usr/local/lib/xemacs/xemacs-packages
81 - mkdir /usr/local/lib/xemacs/mule-packages
82 - cd /usr/local/lib/xemacs/xemacs-packages
83 - cp -a $NONMULE_INSTALLED_PACKAGES_ROOT/* ./
85 - cp -a $MULE_INSTALLED_PACKAGES_ROOT/* ./
88 NOTE: /usr/local is only the default value of <xemacs-root>, as
91 (2) To specifically set where the package hierarchies are using
92 `configure', use the `--package-path' parameter, as follows:
94 Assume you're basically following the suggested layout described
95 in the top-level README file of recent XEmacs distributions.
96 Assume you set XEMACS_INSTALLED_PACKAGES_ROOT to
97 ${XEMACS_PACKAGES_BASE}/.., as described in to comments in
98 Local.rules.template -- generally a good idea if you're trying to
99 develop XEmacs, not just install it. Assume you have a /src/xemacs
100 directory, and under it is all your XEmacs build trees, your
101 packages, etc. Specifically, the package source is in
102 /src/xemacs/package-src. By setting XEMACS_INSTALLED_PACKAGES_ROOT
103 as indicated, you will get two package hierarchies installed in
104 /src/xemacs/xemacs-packages and /src/xemacs/mule-packages.
105 Therefore, you'd use a parameter to `configure' like this:
107 configure --package-path=~/.xemacs::/src/xemacs/xemacs-packages:/src/xemacs/mule-packages ...
110 ** Installing after a 'make bindist'
112 M-x pui-add-install-directory
113 - enter the value of $NONMULE_INSTALLED_PACKAGES_ROOT
114 M-x package-get-update-base
115 - enter '$NONMULE_INSTALLED_PACKAGES_ROOT/package-index'
116 M-x pui-list-packages
117 - select the packages you want to install
121 NOTE: Normally NONMULE_INSTALLED_PACKAGES_ROOT is defined to be
122 ${XEMACS_INSTALLED_PACKAGES_ROOT}/xemacs-packages, and this is
123 probably the value it has for you, too.
125 ** Installing - running "in place"
127 You can't run XEmacs packages from the CVS source tree because
128 the hierarchy is not what XEmacs expects. (In particular, the
129 source hierarchy logically puts all parts of a package -- `lisp',
130 `etc', `man', `info', `lib-src', and `pkginfo' -- together under a
131 single directory. The installation, however, follows a much less
132 logical organization by instead combining all `lisp' together into
133 a single directory tree, all `man' together, etc. Under each of
134 these is a directory for each package.)
136 But you can come close to a "running in place" install -- set
137 `symlink = t' in 'Local.rules' and then run 'make install'. This
138 will build the packages and install them via symlinks to
139 the normal XEmacs package directories.
141 * Local.rules format:
142 ---------------------
144 These are the variables in 'Local.rules' that you will need to
148 If your XEmacs isn't in your path, change this.
151 Building from CVS defaults to building the Mule
152 packages. Set this to 't' if you don't want/have Mule
155 Set this to 't' if you are building on WinNT.
157 XEMACS_INSTALLED_PACKAGES_ROOT = /usr/local/lib/xemacs
158 Directory tree under which the directories xemacs-packages/
159 and mule-packages/ are installed. See Local.rules.template
160 for a description of what you might want to set this to, and
161 how it varies depending on whether you're installing a release
162 version or developing XEmacs. Depending on how you set
163 this, you may have to tell configure about it specially.
164 See above, "Installing after a 'make install'".
167 Set this to 't' if you want to do a "run in place".
168 Setting this doesn't work well with 'make bindist'.
170 These are other variables you might possibly need to change, but probably
173 NONMULE_INSTALLED_PACKAGES_ROOT = ${XEMACS_INSTALLED_PACKAGES_ROOT}/xemacs-packages
174 Set this to where you want normal packages to be
175 installed to. Normally you don't set this directly.
177 MULE_INSTALLED_PACKAGES_ROOT = ${XEMACS_INSTALLED_PACKAGES_ROOT}/mule-packages
178 Set this to where you want Mule packages installed
179 to. Normally you don't set this directly.
180 Note: 'make bindist' does not use this variable.
182 NONMULE_PACKAGES = xemacs-packages
183 This is where you list the the normal (i.e. non-Mule)
184 packages that you want to install. eg:
185 NONMULE_PACKAGES = xemacs-packages/xemacs-base \
187 The default value installs all normal packages.
189 MULE_PACKAGES = mule-packages
190 Same as for 'NONMULE_PACKAGES' except you list the Mule
191 packages you want to install here. eg:
192 MULE_PACKAGES = mule-packages/mule-base mule-packages/skk
193 The default value installs all Mule packages.
195 PACKAGE_INDEX = package-index
196 If you want the package-index file to have a different
200 The path to your BSD compatible install program.
203 The path to your tar program
206 If you want tarballs compressed usng bzip2 instead of
207 gzip, set this to the path to bzip2.
210 The path to your makeinfo program
214 (1) Be sure to include the line
216 in your ~/.cvsrc file. There seems to be CVS server bug
217 that results in incomplete checkouts of the
218 xemacs-packages module from CVS. In particular, the files
219 `Local.rules.template' and `Local.rules.mk' might not get
220 checked out. The problem is fixed by doing a `cvs update'
221 with the -Pd flags specified. See http://cvs.xemacs.org/
222 for more details on using the CVS repository.