Add a PKG_NOTES file in Riece
[packages] / INSTALL
1                                              -*- Outline -*-
2 This file explains how to build and install XEmacs packages from a
3 CVS workspace.
4
5 IMPORTANT:
6 =========
7         You MUST create a 'Local.rules' file in the toplevel build
8         directory.  (see below for the format of this file)
9
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.
18
19 * Building:
20 -----------
21 ** Getting Started Quickly:
22
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
26             can copy and modify.
27
28         (2) Run `make' (from the top-level directory) to build the
29             packages.
30
31         (3) Run either 'make install' or 'make bindist' (not both).
32
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
37             binary tarballs.
38
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).
42
43 ** Building a Single Package:
44
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
47         package:
48                 - cd ./xemacs-packages/bbdb
49                 - make
50                 - make install or bindist
51
52 ** Building Sumo Packages:
53
54         Get the script 'BuildSumo' that is in the xemacs-builds module
55         at cvs.xemacs.org.
56
57 * Installing:
58 -------------
59 ** Installing after a 'make install'
60
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'.
67
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.
77
78         (1) To copy to the default location:
79
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/* ./
84                 - cd ../mule-packages
85                 - cp -a $MULE_INSTALLED_PACKAGES_ROOT/* ./
86                 - restart XEmacs.
87
88         NOTE: /usr/local is only the default value of <xemacs-root>, as
89         described above.
90
91         (2) To specifically set where the package hierarchies are using
92             `configure', use the `--package-path' parameter, as follows:
93
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:
106
107         configure --package-path=~/.xemacs::/src/xemacs/xemacs-packages:/src/xemacs/mule-packages ...
108        
109
110 ** Installing after a 'make bindist'
111
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
118                 - hit 'x' to install
119         Restart XEmacs.
120
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.
124
125 ** Installing - running "in place"
126
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.)
135
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.
140
141 * Local.rules format:
142 ---------------------
143
144 These are the variables in 'Local.rules' that you will need to
145 address.
146
147         XEMACS = xemacs
148                 If your XEmacs isn't in your path, change this.
149
150         BUILD_WITHOUT_MULE =
151                 Building from CVS defaults to building the Mule
152                 packages.  Set this to 't' if you don't want/have Mule
153
154         XEMACS_NATIVE_NT =
155                 Set this to 't' if you are building on WinNT.
156
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'".
165
166         symlink =
167                 Set this to 't' if you want to do a "run in place".
168                 Setting this doesn't work well with 'make bindist'.
169
170 These are other variables you might possibly need to change, but probably
171 won't.
172
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.
176
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.
181
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 \
186                                       xemacs-packages/bbdb
187                 The default value installs all normal packages.
188
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.
194
195         PACKAGE_INDEX = package-index
196                 If you want the package-index file to have a different
197                 name, change this.
198
199         INSTALL = install -c
200                 The path to your BSD compatible install program.
201
202         TAR = tar
203                 The path to your tar program
204
205         BZIP2 =
206                 If you want tarballs compressed usng bzip2 instead of
207                 gzip, set this to the path to bzip2.
208
209         MAKEINFO = makeinfo
210                 The path to your makeinfo program
211
212 * Notes:
213 --------
214         (1) Be sure to include the line
215                 update -Pd
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.