1 SXEmacs Installation Guide
2 Copyright (C) 2005 - 2011 Steve Youngs
5 Building from tarball release:
6 -----------------------------
7 (See "Building from git source" below if you got SXEmacs that way)
11 See ./configure --help for a description of all possible options,
14 $ ./configure [options]
22 Your version of SXEmacs includes a file called `PROBLEMS' in the top
23 directory of the source tarball. Please take a moment now to look
26 GNU make. Solaris make and BSD make just don't cut the mustard, so
27 make sure you use GNU make (sometimes installed as `gmake'). If you
28 don't have it, you can leech it from ftp://ftp.gnu.org/gnu/make
30 To build SXEmacs you need a C compiler that is C99 compliant. We
31 recommend GCC >= 3.1.1. Other compilers _may_ work, such as Intel's
32 ICC, but the SXEmacs project won't explicitly support any compiler
33 other than GCC. If you don't have such a compiler you can get GCC
34 from: http://gcc.gnu.org/.
36 Please note that SXEmacs _CANNOT_ be built with a C++ compiler.
38 Also, some configuration options may need external libraries that are
39 not shipped with SXEmacs. SXEmacs will determine which libraries it
40 needs at configuration time (when you run `./configure').
42 If configure can't find a particular library and you _do_ have it
43 installed, you can usually get configure to find it by adding to the
44 `--with-site-prefixes' option.
46 There are several optional external libraries you may use to extend
47 the feature-range of SXEmacs. See section `Optional Libraries'.
52 Our advice... _DON'T_ do it. Stripping object files doesn't buy you
53 anything other than a little bit of drive space. And in an era where
54 200 Gigabyte hard disks are common, the space saved by stripping is
55 inconsequential at best.
57 But that isn't the only reason why we suggest that you don't strip
58 SXEmacs. If you did, any bug reports you sent us would be useless
59 because the backtrace from any core dump wouldn't contain any useful
62 Another reason for not stripping comes from the complexity of SXEmacs
63 and how it is built. SXEmacs first compiles to a basic binary
64 (sometimes called "temacs"), and then it loads in a pile of lisp code
65 and other goodies, and dumps itself out to become the finished SXEmacs
66 binary. Add into that mix, the portable dumper (where a lot of stuff
67 for sxemacs actually resides _outside_ of the binary in a dump file)
68 and it becomes apparent that stripping may not even be possible. What
69 do you strip? temacs? the portable dump file? sxemacs binary?
71 Err on the side of caution and don't even try it.
74 Compiler Optimisations:
75 ----------------------
76 Considerable care has been taken to ensure that the maximum safe
77 compiler optimisation flags have been turned on by default. If you
78 wish to use your own flags, that's OK, but understand that sometimes
79 over-optimising (especially with something as complex as SXEmacs) can
80 actually have an adverse affect.
85 Like XEmacs, SXEmacs only comes with a minimal set of lisp libraries
86 to cover only basic editing and functions. To get fuller
87 functionality you need to install some extra elisp packages. SXEmacs
88 doesn't actually distribute any elisp packages, but it can and does
91 Unlike XEmacs, SXEmacs does _NOT_ need any packages pre-installed
92 before its packaging tools (PUI) are usable. To install elisp
93 packages into a virgin, packageless, SXEmacs, follow these steps...
97 2) From the menubar, choose:
99 Tools -> Packages -> Set Download Site -> Official Releases
102 3) M-x pui-bootstrap RET
104 After the "bootstrapping" is finished you'll be asked if you want to
105 install anymore packages.
110 As of 22.1.6 SXEmacs installs its files in a LFSH-compliant (Linux
111 FileSystem Hierarchy) way. Here is a small table:
113 now go to... before went to...
114 lisp share/sxemacs-$ver/lisp/ lib/sxemacs-22.1.6/lisp/
115 etc share/sxemacs-$ver/etc/ lib/sxemacs-22.1.6/etc/
116 info share/info/ lib/sxemacs-22.1.6/info/
117 headers include/sxemacs/$ver/ lib/sxemacs-22.1.6/<arch>/include/
119 The only thing that remained are modules which are located at
120 lib/sxemacs-22.1.6/<arch>/modules. Which is already FSH std
125 Optional libraries enhance your SXEmacs with additional features. Since
126 most of the added features are not mandatory for the core SXEmacs, we
127 decided to make them optional. That is, you can - but do not need to -
128 install them and incorporate them into SXEmacs.
130 Failure to detect optional libraries:
131 -------------------------------------
132 If the optional libraries are in a non-standard location, use
133 --with-site-prefixes option of configure. Ex:
135 ./configure --with-site-prefixes=/opt/local
137 You can specify a list of paths with --with-site-prefixes:
139 ./configure --with-site-prefixes=/opt/local:/sw
141 NOTE: Usage of --prefix does NOT imply that it is added to
142 site prefixes, so if you may need to add --with-site-prefixes
145 ./configure --prefix=/opt/local --with-site-prefixes=/opt/local
149 Multimedia Libraries:
151 In order to use MM features you need libraries which are responsible
152 for handling different types of media files, that is parses them,
153 demuxes them and decodes them to a raw form suitable for your audio
154 hardware. We call such libs multimedia libraries.
156 Note: To get multimedia working you also have to install at least one
157 audio output library. See next section.
160 http://www.mega-nerd.com/libsndfile/
163 http://ffmpeg.sourceforge.net/
166 http://www.underbit.com/products/mad/
169 http://sox.sourceforge.net/
171 Note: Some of the media libraries above may in turn have dependencies
172 to even lower level libraries. Consult the documentation of the
175 The configure option to control media libraries is --with-media. It
179 Audio Output Libraries:
180 ----------------------
181 The other type of libraries for SXEmacs multimedia features cares for
182 the actual audio output, that is takes some raw audio data and feeds
183 it to your speakers (or somewhere else). We call those Audio Output
186 - OSS (Open Sound System): native on Linux and BSD. DEPRECATED!
188 - NAS (Network Audio System):
189 http://nas.codebrilliance.com/
191 - ESD (Enlightenment Sound Daemon):
192 ftp://ftp.gnome.org/pub/gnome/sources/esound/0.2/
195 http://pulseaudio.org/
197 - Jack (Jack Audio Connection Kit):
198 http://jackit.sourceforge.net/
200 - ALSA (Advanced Linux Sound Architecture): Linux-only
201 http://www.alsa-project.org/
203 - AO: generic and portable audio output
204 http://www.xiph.org/ao/
206 Note: Some of the audio libraries above may in turn have dependencies
207 to even lower level libraries. Consult the documentation of the
210 The configure option to control media libraries is --with-sound. It
214 Image Decoding Libraries:
215 ------------------------
216 For image media, SXEmacs provides support for various standard formats.
217 We call those Image Format Libraries.
219 - GIF: built-in, i.e. no extra library necessary
221 - XPM (X PixMap format): included in the X distribution, see for one
224 - PNG (Portable Network Graphic):
225 http://www.libpng.org/
231 http://www.remotesensing.org/libtiff/
233 - xface (base64 encoded xbm):
234 http://ftp.xemacs.org/pub/xemacs/aux/compface-1.5.2.tar.gz
236 The configure option to control media libraries is --with-image. It
240 Additional Number Types:
241 -----------------------
242 SXEmacs can extend its arithmetics enormously by using external
243 support. We refer to enhanced number types as ENT.
245 - GMP (GNU MultiPrecision arithmetics library):
249 Available natively on BSD distributions. Also included in the
250 OpenSSL distribution.
252 - MPFR (Multi-Precision Floating point numbers with correct Rounding):
255 - MPC (Multi-Precision Complex numbers):
256 http://www.multiprecision.org/index.php?prog=mpc
258 The configure option to control ENT libraries is --with-ent. It
262 Foreign Function Interface:
263 --------------------------
264 Foreign functions open the world to any library on your system.
265 Download a source tarball from:
267 <ftp://sourceware.org/pub/libffi/>.
269 Or grab the latest CVS sources with:
271 cvs -d :pserver:anoncvs@sources.redhat.com:/cvs/libffi login
272 (password is ``anoncvs'')
273 cvs -d :pserver:anoncvs@sources.redhat.com:/cvs/libffi co libffi
275 FFI is also available as part of GCC. It gets turned on if you
276 build the Java compiler, gcj. Strangely enough, not very many Linux
277 distros do this by default. Building GCC can take literally hours,
278 building libffi from sourceware takes literally seconds... I know
281 There is also a section about FFI in the PROBLEMS file, so check
282 that out if you are having any trouble.
284 The configure option for the FFI support is --with-ffi. It defaults
290 SXEmacs supports cryptographic algorithms and security protocols via
291 the OpenSSL toolkit. To make use of it build and install any version
293 http://www.openssl.org/
295 The configure option for OpenSSL support is --with-openssl which
301 SXEmacs can interact with databases managed by the PostgreSQL DBMS.
302 The functionality roughly corresponds to that of the libpq interface.
303 http://www.postgresql.org/
305 The configure option for PgSQL support is --with-postgresql and
306 defaults to `autodetect'.
312 Don't panic. Take a look at the PROBLEMS file first and see if your
313 issue is listed there.
316 If the build fails at the configure script, try to examine the output
317 and/or the more verbose config.log. If the culprit seems to be a
318 certain test or configure option, try to circumvent it. You can for one
319 disable almost any functionality using --without-<feature>.
322 If the build fails at the make stage somewhere, try to figure out which
323 functionality was attempted to make. If it appears to be at some of the
324 optional features, try configuring again with that option disabled. If
325 it seems to be a compiler or linker problem read advise number 4.
328 If the build fails and you have absolutely no clue why it does, contact
329 the friendly people at SXEmacs. For almost real-time help consider the
331 #sxemacs on freenode irc://irc.freenode.net/#sxemacs
333 If you cannot stand real-time help you can try the
334 SXEmacs developers mailing list sxemacs-devel@sxemacs.org
336 Unfortunately, because of spam issues, the SXEmacs mailing lists are
337 all "member only". This means that if you are not subscribed, it'll
338 go to the moderator. Our moderator is a very busy guy and he has to
339 filter through more spam than you can poke a stick at... occasionally
340 things can slip through the cracks. Your best bet is to subscribe to
341 the lists. We are truly sorry for this inconvenience.
343 Be sure to keep anything that could help to track the problem down, in
348 - core dump files if any
349 - your OS and machine architecture
350 - the steps you have done
352 There is a script under contrib called tar-build-failure.sh that
353 will attempt to gather this information and create a tar file with
356 Before submitting a report at http://issues.sxemacs.org/, please show
357 up either on the mailing list or the IRC channel. The developers can
358 tell you in much greater detail what they need and how you can get the
359 files and information you need.
362 Building from git source:
363 ------------------------
364 This is identical to building from the tarball sources, with the
365 addition of an extra step, and some extra requirements (that are most
366 likely already on your system).
369 $ ./configure [options]
376 The SXEmacs sources in the git repo do not contain _any_ generated
377 files. You will need recent versions of the GNU autotools (automake,
386 Warnings from autogen.sh:
387 ------------------------
388 You may notice several warnings from running the autogen.sh script.
389 They can be safely ignored unless it dies completely or a configure
390 script isn't generated.
392 The two most common warnings seen are...
394 Warnings about underquoting of macros in /usr/share/aclocal/foo.m4
396 These are because recent versions of aclocal have become more strict
397 about quoting and you have some older style macros defined like:
398 AC_DEFUN(NAME, ...) instead of AC_DEFUN([NAME], ...).
400 Warnings about ETAGS variable being redefined
402 These are because automake has a pre-defined ETAGS target that
403 projects can use, unfortunately it doesn't fit in with our needs,
404 and isn't easily customisable. So we wrote our own ETAGS Makefile