1 \input texinfo @c -*-texinfo-*-
3 @setfilename build.info
4 @settitle XEmacs Build Reference Manual
7 * Build: (build). Build XEmacs from within (UNIX, Windows).
9 @c footnotestyle separate
12 @setchapternewpage odd
14 This document describes the XEmacs package called build.
15 Copyright @copyright{} 2000-2002 Adrian Aichner.
18 @c @c Combine indices.
20 @c @syncodeindex vr fn
21 @c @syncodeindex ky fn
22 @c @syncodeindex pg fn
23 @c @syncodeindex tp fn
27 @c @comment The title is printed in a large font.
28 @c @center @titlefont{Build}
29 @c @c The following two commands start the copyright page.
31 @c @vskip 0pt plus 1filll
32 @c Copyright @copyright{} 2000-2002 Adrian Aichner.
33 @title XEmacs Build Reference Manual
34 @subtitle Version 2.00 (for XEmacs 21.1, 21.4, 21.5), dated 2002-03-07
36 @author by Adrian Aichner
38 @vskip 0pt plus 1filll
41 @c Revised for XEmacs Versions 21.0,@*
44 Permission is granted to make and distribute verbatim copies of this
45 manual provided the copyright notice and this permission notice are
46 preserved on all copies.
48 Permission is granted to copy and distribute modified versions of this
49 manual under the conditions for verbatim copying, provided also that the
50 section entitled ``GNU General Public License'' is included
51 exactly as in the original, and provided that the entire resulting
52 derived work is distributed under the terms of a permission notice
53 identical to this one.
55 Permission is granted to copy and distribute translations of this manual
56 into another language, under the above conditions for modified versions,
57 except that the section entitled ``GNU General Public License'' may be
58 included in a translation approved by the Free Software Foundation
59 instead of in the original English.
61 @node Top, Build Overview, , (dir)
62 @comment node-name, next, previous, up
63 @chapter Build Package
65 This is the XEmacs Build Reference Manual, Version 2.00 (for XEmacs
66 21.1, 21.4, 21.5), dated 2002-03-07, by @email{adrian@@xemacs.org,
70 * Build Overview:: Overview of build package
71 * Build Installation:: Installation of the build package
72 * Build XEmacs:: Choosing source and tools
73 * Build XEmacs From CVS:: Fetching sources with CVS
74 * Build XEmacs From Tarballs:: Fetching source tarballs with EFS
75 * Build XEmacs With GNU Tools:: UNIX-style build using configure, make
76 * Build XEmacs With Microsoft Tools:: Microsoft build using MS VC++ >= 4.0
77 * Generate XEmacs Build Report:: Reporting Success or Failure
78 * Known Problems of Build:: Problems, Workarounds, and Fixes
79 * Concept Index:: An item for each concept
82 @node Build Overview, Build Installation, Top, (dir)
83 @comment node-name, next, previous, up
84 @chapter Build Overview
87 @code{build} supports the building process of the XEmacs editor from its
90 @cindex XEmacs build process
92 The build process consists of following steps:
97 Download source code from FTP server or CVS repository.
100 Configure any attributes of the build process, of the resulting XEmacs
101 executable, and of the XEmacs environment.
104 Start the make process to build XEmacs, install it, and run the
108 Report on the success or failure of the build, using build-report.
112 The @code{build} command generates a widget-based interface to configure
113 and build XEmacs either using GNU Tools (@code{configure}, @code{make})
114 or Microsoft Tools (@code{nmake} with command-line options (<= 21.2-b32)
115 or @file{config.inc} configuration file (> 21.2-b32)).
117 @node Build Installation, Build XEmacs, Build Overview, (dir)
118 @comment node-name, next, previous, up
119 @chapter Build Installation
120 @cindex How to install build
122 You have following three choices to install build (@pxref{Installing
123 Packages, Installing Packages, , xemacs}):
133 In XEmacs Release 21.1:
135 Select a download site under
138 Options->Manage Packages->Add Download Site
141 and after listing available packages with
144 Options->Manage Packages->List & Install
147 install @code{build} with
150 Packages->Toggle install `build'
151 Packages->Install/Remove Selected
154 followed by starting a fresh XEmacs.
157 In XEmacs Beta Release 21.2-bXX:
159 Menus have been re-arranged in XEmacs 21.2.
161 Select a download site under
164 Tools->Packages->Add Download Site
167 and after listing available packages with
170 Tools->Packages->List and Install
173 install @code{build} with
176 Packages->Toggle install `build'
177 Packages->Install/Remove Selected
180 followed by starting a fresh XEmacs.
188 @kbd{M-x package-admin-add-binary-package @key{RET} @var{build-package-tarball-path} @key{RET}}
191 after tarball download with EFS or ftp.
195 Extract the build tarball(s) into the xemacs-packages hierarchy from
198 @code{bash}, @code{csh}, @code{ksh}, @code{zsh} come to mind on UNIX
199 systems; Cygwin's @code{bash}, @code{cmd.exe}, and @code{command.exe}
200 for Windows 95/98/NT/2000.
203 @kbd{cd @var{installation-directory}/xemacs-packages;
204 gzip -dc @var{build-package-tarball-path} | tar -xvf -}
209 @node Build XEmacs, Build XEmacs From CVS, Build Installation, Top
210 @comment node-name, next, previous, up
211 @chapter Build XEmacs
213 @cindex Accessing Documentation
214 @section Accessing Documentation for the Build package
216 You may want to read through the build package info documentation first.
217 It is accessible via links to Info- and HTML-documentation from the
218 initial *Build XEmacs* buffer, which has this:
221 Visit info documentation for the XEmacs build package in [XEmacs]
222 or on the XEmacs website at
223 [http://www.xemacs.org/Documentation/packages/html/build.html]
226 @cindex build-settings
227 @cindex build settings
228 @section Saving Multiple Build Settings
230 Build settings, introduced in build 2.00, allow you to save all variable
231 settings relevant to building XEmacs under a single name. This saves
232 time and simplifies the process of building multiple XEmacs versions or
236 Current Build Settings: unknown
238 [Load] [Delete] build settings: [Value Menu] default
239 [Save] current build settings as: [Value Menu] String: default
242 @cindex Browsing Build Options
243 @section Browsing Build Options
245 Global build options can be browsed next.
248 [Browse Build Options ...]
252 @section What to Build From and Build With
254 You have to decide what to @emph{build from}:
259 CVS sources in the XEmacs CVS repository at
260 @uref{http://cvs.xemacs.org/}.
263 Tarballs (tar.gz files) on the XEmacs FTP Site
264 @uref{http://ftp.xemacs.org/pub/xemacs/} or one of its mirror sites.
269 and what to @emph{build with}:
274 GNU@footnote{Alert readers will note: GNU's Not UNIX!}/UNIX tools using
275 @code{configure}, @code{make}, and @code{cc}.
279 Microsoft tools using @code{nmake} and @code{cl}, supported by
280 @file{nt/xemacs.mak} and, beginning with XEmacs 21.2-b33,
281 @file{nt/config.inc}.
285 These two choices determine which of the following steps will be taken.
288 [Build XEmacs From CVS Now]
292 [Build XEmacs From Tarballs Now]
295 As of build version 2.00 a check is performed whether CVS is available.
297 The user interface to *Build XEmacs from CVS* will only be available if
298 this test (cvs -v) passes.
300 The cvs client version installed on your system will be displayed below
304 [Build XEmacs From CVS Now]
307 Finally either press the button labeled @ref{Build XEmacs From CVS}
308 or @ref{Build XEmacs From Tarballs}. Only the button labeled according
309 to your choice under the @emph{build from:} menu will be active.
310 See @ref{Build XEmacs} and @ref{Known Problems of Build}.
312 Each of the following steps allow to return to a previous one with the
319 button to review your choices.
321 Whether to build from tarballs or CVS sources depends on what the user
322 wants to do with the sources.
327 Tarballs are convenient for building a well-defined release of XEmacs.
328 These tarballs are big and users with slow or expensive network
329 connections should avoid them.
331 @code{gzip} and @code{tar} are required for this method.
334 For users who want to stay in close sync with the development of XEmacs,
335 especially the Beta releases, create patches against files or whole
336 directories, CVS is the way to go.
338 You will obviously need to install @code{cvs} first.
342 The choice is yours@footnote{unless your access to the Internet is
343 limited by firewalls or disabled IP ports, you don't have gzip/tar, or
346 @node Build XEmacs From CVS, Build XEmacs From Tarballs, Build XEmacs, Top
347 @comment node-name, next, previous, up
348 @chapter Build XEmacs From CVS
349 @cindex Obtaining sources with CVS
351 The CVS commands to fetch XEmacs source code are run through the XEmacs
352 @code{compile} command (@pxref{Compilation, , , xemacs}).
354 The buffers are named uniquely with the current working directory
355 appropriately set to save the buffers with @kbd{C-x C-w} (@kbd{M-x
356 write-file}) under the XEmacs source directory.
358 First you have to login to the XEmacs CVS server.
360 Please do so by pressing following button.
366 If that fails, please send the message generated in the *Warnings*
367 buffer to @email{cvs-admin@@xemacs.org, XEmacs CVS Administrator}.
372 [CVS Checkout XEmacs]
375 button (unless you have
376 checked out before) and either one of
379 [CVS Update XEmacs To Release]
385 [Browse Build CVS Options ...]
391 [CVS Update XEmacs To Latest]
394 (resetting all @pxref{Sticky tags, , , cvs}) you are ready to proceed
398 [Build XEmacs Now ...]
401 @node Build XEmacs From Tarballs, Build XEmacs With GNU Tools, Build XEmacs From CVS, Top
402 @comment node-name, next, previous, up
403 @chapter Build XEmacs From Tarballs
404 @cindex Obtaining sources with EFS
406 The tarballs chosen with
409 [Browse Build Tarball Options ...]
415 [Download Build Tarball Set]
418 to fetch tarballs with EFS, which needs to be installed @footnote{If EFS
419 is not installed you may obtain these tarballs by other means and
420 extract them to the configured directory.}, followed by
423 [Install Downloaded Build Tarball Set]
426 to extract tarballs using @code{gzip} and @code{tar} in a
427 @code{compilation-mode} buffer named accordingly (e.g. ???).
429 Finally press the button either labeled @ref{Build XEmacs With GNU
430 Tools} or @ref{Build XEmacs With Microsoft Tools} according to your
431 choice under the @emph{build with:} menu. See @ref{Build XEmacs}.
433 @node Build XEmacs With GNU Tools, Build XEmacs With Microsoft Tools, Build XEmacs From Tarballs, Top
434 @comment node-name, next, previous, up
435 @chapter Build XEmacs With GNU Tools
436 @cindex Build on UNIX
437 @cindex Build with Cygnus (now Cygwin)
438 @cindex Build with Cygwin
440 @cindex configure.usage
444 Besides GNU make (@code{make}) and GNU cc (@code{gcc}) XEmacs can be
445 built with the equivalent programs from many UNIX vendors.
447 The @dfn{configure}@footnote{This shell script is on the top-level of
448 the XEmacs source tree, see also configure.usage there.} script, which
449 is run before @code{make}, determines the configuration of your system
450 and warns about any problems it finds.
452 @node Build XEmacs With Microsoft Tools, Generate XEmacs Build Report, Build XEmacs With GNU Tools, Top
453 @comment node-name, next, previous, up
454 @chapter Build XEmacs With Microsoft Tools
455 @cindex Build on Windows 95/98/NT/2000
456 @cindex Build with MS Visual Studio C++
461 XEmacs is built using Microsoft's version of @code{make}, @dfn{nmake},
462 and Microsoft's C++ compiler, @dfn{cl}, which are both part of Microsoft
463 Visual Studio @footnote{Version 4.0 or greater is required.}.
465 Up to XEmacs 21.2-b32 all configuration choices are passed on to
466 @code{nmake} as command-line options.
468 XEmacs versions > 21.2-b32
469 support @file{nt/config.inc} which is generated according to user
473 [Browse Build Make ...]
479 [Generate config.inc]
482 which you have to save after reviewing it shortly.
484 @node Generate XEmacs Build Report, Known Problems of Build, Build XEmacs With Microsoft Tools, Top
485 @comment node-name, next, previous, up
486 @chapter Generate XEmacs Build Report
488 This is a GUI making use of the @code{build-report} feature provided
491 When used standalone, you have to first
494 [Browse Build Report ...]
497 to pick up the information for the XEmacs build you would like to
498 generate the report for.
500 @c #### If you use @code{build-report} as part of the @code{build} package, you should not save any customized @code{build-report} variables, so that @code{build} can ???
502 @node Known Problems of Build, Concept Index, Generate XEmacs Build Report, Top
503 @chapter Known Problems of Build
510 Activated buttons appear to be inactive.
519 [Build XEmacs From CVS Now]
523 [Build XEmacs From Tarballs Now]
525 don't show as active after being re-activated due to a bug in
526 wid-edit.el in XEmacs 21.1.12 and below.
531 You can easily find which button is active by using
532 @kbd{TAB} runs `widget-forward'
534 @kbd{Sh-TAB} runs `widget-backward'.
539 @uref{http://www.xemacs.org/list-archives/xemacs-patches/200010/msg00031.html}
540 should fix this problem for later versions of XEmacs.
545 Inactive buttons appear to be active.
552 XEmacs 21.2-b36 and below have another bug which will not render the
553 de-activated button as such.
558 You can easily find which button is active by using
559 @kbd{TAB} runs `widget-forward'
561 @kbd{Sh-TAB} runs `widget-backward'.
566 None as of 2000-10-21. See
567 @uref{http://www.xemacs.org/list-archives/xemacs-beta/200010/msg00194.html}.
573 @node Concept Index, , Known Problems of Build, Top
574 @comment node-name, next, previous, up
575 @unnumbered Concept Index