Remove incompatible build pkg
authorSteve Youngs <steve@sxemacs.org>
Sun, 12 Jun 2016 09:36:15 +0000 (19:36 +1000)
committerSteve Youngs <steve@sxemacs.org>
Sun, 12 Jun 2016 09:36:15 +0000 (19:36 +1000)
Signed-off-by: Steve Youngs <steve@sxemacs.org>
package-compile.el
xemacs-packages/Makefile
xemacs-packages/build/ChangeLog [deleted file]
xemacs-packages/build/Makefile [deleted file]
xemacs-packages/build/README [deleted file]
xemacs-packages/build/TODO [deleted file]
xemacs-packages/build/build-report.el [deleted file]
xemacs-packages/build/build.el [deleted file]
xemacs-packages/build/build.texi [deleted file]
xemacs-packages/build/package-info.in [deleted file]

index 74a8dcb..16d05bb 100644 (file)
@@ -98,7 +98,6 @@
     ("apel" . "xemacs-packages")
     ("auctex" . "xemacs-packages")
     ("bbdb" . "xemacs-packages")
-    ("build" . "xemacs-packages")
     ("c-support" . "xemacs-packages")
     ("calc" . "xemacs-packages")
     ("calendar" . "xemacs-packages")
index 6caf47c..17d57b1 100644 (file)
@@ -45,7 +45,7 @@ PACKAGES := xemacs-base fsf-compat mail-lib \
        \
        cedet-common speedbar eieio ede semantic cogre \
        \
-       Sun ada auctex bbdb build c-support calc calendar clearcase \
+       Sun ada auctex bbdb c-support calc calendar clearcase \
        cookie crisp dictionary docbookide easypg ecb ediff edt emerge \
        erc escreen eshell eudc footnote forms fortran-modes \
        frame-icon games general-docs gnats gnus guided-tour haskell-mode \
diff --git a/xemacs-packages/build/ChangeLog b/xemacs-packages/build/ChangeLog
deleted file mode 100644 (file)
index 8051560..0000000
+++ /dev/null
@@ -1,646 +0,0 @@
-2016-01-11  Norbert Koch  <viteno@xemacs.org>
-
-       * Makefile (VERSION): XEmacs package 1.18 released.
-
-2015-07-11  Steve Youngs  <steve@sxemacs.org>
-
-       * build.el: Require 'build-rpt' instead of 'build-report' when
-       using SXEmacs.
-       Note that it is not recommended for SXEmacs users to install or
-       use this package, this change is purely to allow building the
-       package with SXEmacs.
-
-2014-05-15  Norbert Koch  <viteno@xemacs.org>
-
-       * Makefile (VERSION): XEmacs package 1.17 released.
-
-2014-05-15  Norbert Koch  <viteno@xemacs.org>
-
-       * Makefile (VERSION): XEmacs package 1.16 released.
-
-2014-05-13  Jerry James  <james@xemacs.org>
-
-       * .cvsignore: Remove.
-       * .hgignore: New file.
-       * README: Restore CVS keyword expansions.
-       * build-report.el: Ditto.
-       * build.el: Ditto.
-
-2009-10-02  Norbert Koch  <viteno@xemacs.org>
-
-       * Makefile (VERSION): XEmacs package 1.15 released.
-
-2009-10-01  Aidan Kehoe  <kehoea@parhasard.net>
-
-       * build-report.el: 
-       Have compiled 21.4 code also work on XEmacs binaries with real
-       support for multiple values, by avoiding runtime calls to
-       #'values.
-       Not waiting for approval from Adrian, as he hasn't been around
-       recently, and the code worked fine in the other packages it has
-       been applied to.
-
-2003-10-31  Norbert Koch  <viteno@xemacs.org>
-
-       * Makefile (VERSION): XEmacs package 1.14 released.
-
-2003-10-19  Norbert Koch  <viteno@xemacs.org>
-
-       * Makefile (VERSION): XEmacs package 1.13 released.
-
-2003-10-18  Adrian Aichner  <adrian@xemacs.org>
-
-       * build-report.el: Update copyright years.
-       * build-report.el (build-report-keep-regexp): Update
-       build-report.el for test harness output.
-       * build-report.el (build-report-delete-regexp): Ditto.
-       * build-report.el (build-report-installation-data): Handle
-       builds of non-beta versions.
-       * build-report.el (build-report-version-file-data): Ditto.
-
-2003-10-13  Norbert Koch  <viteno@xemacs.org>
-
-       * Makefile (VERSION): XEmacs package 1.12 released.
-
-2003-09-30  Jerry James  <james@xemacs.org>
-
-       * build.el (build): Minor typo correction.
-
-2003-10-13  Norbert Koch  <viteno@xemacs.org>
-
-       * Makefile (VERSION): XEmacs package 1.11 released.
-
-2003-10-12  Adrian Aichner  <adrian@xemacs.org>
-
-       * build.texi: Add dircategory Emacs.
-       * build.texi (Top): Move from incorrect use of @var to correct use
-       of @code.
-       * build.texi (Build Overview): Ditto.
-       * build.texi (Build Installation): Ditto.
-       * build.texi (Build XEmacs From CVS): Ditto.
-       * build.texi (Build XEmacs From Tarballs): Ditto.
-       * build.texi (Build XEmacs With GNU Tools): Ditto.
-
-2003-03-09  Ben Wing  <ben@xemacs.org>
-
-       * Makefile (MULE_ELCS): Removed.
-       Delete explicit compile:: and binkit: rules.
-       Don't add custom-load.elc to the list of generated elc's.
-       Use STANDARD_DOCS instead of explicitly giving the targets
-       and dependencies.
-       Delete unused MULE_ELCS.
-
-2003-01-13  Rendhalver [Peter Brown]  <rendhalver@xemacs.org>
-
-       * Makefile (VERSION): XEmacs package 1.10 released.
-
-2003-01-11  Adrian Aichner  <adrian@xemacs.org>
-
-       * Makefile (AUTHOR_VERSION): Increment.
-       * build.el: Remove commented code.
-       * build.el (build): Provide package before requiring others.
-       * build.el (build-cvs-get-branch-and-release-tags): Use temp
-       buffer to avoid changing directory of current buffer.
-       * build.el (build-cvs-xemacs-release): Improve docstring.
-       * build.el (build-from-CVS): Improve "Go Back" button notify function.
-       * build.el (build-from-tarballs): Ditto.
-       * build.el (build-with-GNU): Ditto.
-       * build.el (build-with-MS): Ditto.
-       * build.el (build-build-report): Ditto.
-
-2003-01-03  Rendhalver [Peter Brown]  <rendhalver@xemacs.org>
-
-       * Makefile (VERSION): XEmacs package 1.09 released.
-
-2002-12-17  Adrian Aichner  <adrian@xemacs.org>
-
-       * Makefile (INFO_FILES): build.texi is still on top-level.
-       * Makefile (html): Ditto.
-
-2002-12-17  Adrian Aichner  <adrian@xemacs.org>
-
-       * Makefile (compile): Use $(INFO_DEP) dependency to make info
-       documentaion.
-
-2002-12-14  Adrian Aichner  <adrian@xemacs.org>
-
-       * Makefile (AUTHOR_VERSION): Increment.
-       * Makefile (ELCS): Include build-report.el
-       * Makefile (HTML_FILES): Removed.
-       * Makefile (HTML_DEP): Removed.
-       * Makefile (INFO_DEP): New.
-       * Makefile (all): Removed.
-       * Makefile (compile): Use info target instead of INFO_FILES.
-       * Makefile (html): New.
-       * build.el: Move defuns and defcustoms to make package work in
-       vanilla XEmacs.  Update CVS release tags in `build-from-CVS',
-       istead of defcustom.
-
-2002-11-29  Ben Wing  <ben@xemacs.org>
-
-       * .cvsignore: Remove files now handled automatically by CVS.
-       * Makefile: Use `compile' instead of hard-coded `all'.
-       * README (build.texi):
-       * README (PACKAGE_INDEX):
-       * README (XEMACS_STAGING): Removed.
-       Correct for new Local.rules format.
-
-2002-12-06  Rendhalver [Peter Brown]  <rendhalver@xemacs.org>
-
-       * Makefile (VERSION): XEmacs package 1.08 released.
-
-2002-11-26  Adrian Aichner  <adrian@xemacs.org>
-
-       * build-report.el: Sync with XEmacs core improvements.
-       * build-report.el (build-report-installation-version-regexp):
-       Support xemacs_extra_name.
-       * build-report.el (build-report-version-file-regexp): Ditto.
-       * build-report.el (build-report-keep-regexp): Add useful stuff.
-       * build-report.el (build-report-delete-regexp): Don't delete
-       successful tests.
-       * build-report.el (build-report-make-output-files): Typo fix.
-       * build-report.el (build-report): Sync docstring from core.
-       * build-report.el (build-report-installation-data): Support
-       xemacs_extra_name.  Default missing version information components
-       by defaulting to "".
-       * build-report.el (build-report-version-file-data): Ditto.
-       * build.el:
-       * build.el (build-call-process): Moved.
-       * build.el (build-compilation-mode-hook): Include time zone
-       information.
-       * build.el (build-cvs-get-branch-and-release-tags): New.  Retrieve
-       release tags from version.sh via CVS.
-       * build.el (build-cvs-xemacs-release): Remove static definition
-       in favor of `build-cvs-get-branch-and-release-tags'.
-       * build.el (build-cvs-login): Fix bug in build-cvs-available-p
-       house-keeping.
-       * build.el (build-tarball-site): Generate list dynamically from
-       `package-get-download-sites'.  Unification!
-       * build.el (build-with-MS-make-options): Fix default value.
-       * build.el (build-with-GNU): Set `build-report-installation-file'
-       and `build-report-version-file'.
-       * build.el (build-with-MS): Set `build-report-installation-file'
-       in addtion to `build-report-version-file'.  Tell user not to
-       forget saving config.inc.
-
-2002-10-15  Ville Skyttä  <scop@xemacs.org>
-
-       * Makefile (srckit): Remove.
-
-2002-08-12  Rendhalver [Peter Brown]  <rendhalver@xemacs.org>
-
-       * Makefile (VERSION): XEmacs package 1.07 released.
-
-2002-08-10  Adrian Aichner  <adrian@xemacs.org>
-
-       * build.el (build): Save build-settings to custom-file.
-
-2002-08-10  Adrian Aichner  <adrian@xemacs.org>
-
-       * build.texi: Add some index and section entries.  Change button
-       documentation from [Back] and [Go Back].
-       * build.texi (Saving Multiple Build Settings): New.
-
-2002-07-20  Steve Youngs  <youngs@xemacs.org>
-
-       * Makefile (VERSION): XEmacs package 1.06 released.
-
-2002-07-19  Adrian Aichner  <adrian@xemacs.org>
-
-       * Makefile (AUTHOR_VERSION): Sync with `build-version-number' in
-       build.el.
-       * build.el: Use `message-or-box' instead of `message'.  Rename
-       "Back" button to "Go Back".  Set `custom-mode' after
-       `widget-setup'.  Use `build-call-process'.
-       * build.el (build-version): Use `message-or-box' instead of `message'.
-       * build.el (build-cvs-available-p): New.
-       * build.el (build-cvs-xemacs-repository): Update to user `cvs'.
-       * build.el (build-cvs-working-dir-naming):
-       * build.el (build-cvs-login): Use `build-call-process'.
-       * build.el (build-from-what): Change from `defvar' to `defcustom'.
-       * build.el (build-from-CVS): Check for existence of
-       `build-cvs-checkout-dir'.
-       * build.el (build): Add support for build-settings via "Load",
-       "Delete", and "Save" buttons.  Use `build-call-process'.
-       * build.el (build-call-process): New.
-       * build.el (build-with-what): Change from `defvar' to `defcustom'.
-       * build.el (build-with-GNU): Fix "Go Back" button action.
-       * build.el (build-settings-save-custom-group): New.
-       * build.el (build-settings-load): New.
-
-2002-07-16  Adrian Aichner  <adrian@xemacs.org>
-
-       * .cvsignore: Add generated .info* and .html files.
-
-2002-07-04  Adrian Aichner  <adrian@xemacs.org>
-
-       * build.el (build-make-target-doc-paragraph): Update docstring.
-       * build.el (build-make-target-paragraph): Ditto.
-       * build.el (build-settings): Ditto.
-       * build.el (build-make-macro-paragraph): Match ..._DIR variable
-       definitions inside comments in xemacs.mak to handle them
-       generically.
-       * build.el (build-make-customize): Remove special ..._DIR variable
-       handling cruft.
-
-2002-07-03  Adrian Aichner  <adrian@xemacs.org>
-
-       * build.el (build-with-MS-has-config-inc): New.
-       * build.el (build-from-CVS): Replace all NL and TAB in
-       `widget-insert' arguments to \n and \t to avoid inadvertent
-       reformatting.
-       * build.el (build-from-tarballs): Ditto.
-       * build.el (build): Ditto.
-       * build.el (build-with-GNU): Ditto.
-       * build.el (build-build-report): Ditto.
-       * build.el (build-with-MS): Ditto.  Set
-       `build-with-MS-has-config-inc' according to
-       `build-report-version-file'.  Pass `build-make-get-option-string'
-       to `build-make' only when build-with-MS-has-config-inc is nil.
-       * build.el (build-make-sym-to-opt): Add #### comment.
-       * build.el (build-make-set-value): Improve updating of
-       `build-make-options' from customized variables.
-
-2002-06-24  Adrian Aichner  <adrian@xemacs.org>
-
-       * build.el: Update of Id CVS keyword.
-       * build.el (build-version-number): Doc fix.
-       * build.el (build-cvs-checkout-dir): Default to nil.
-       * build.el (build-tarball-dir): Actualize default.
-       * build.el (build-tarball-prefix): Ditto.
-       * build.el (build-tarball-set): Provide custom tags for constants.
-       * build.el (build-tarball-expand): Use `expand-file-name' instead
-       of `concat'.
-       * build.el (build-tarball-get-all): Doc fix.
-       * build.el (build-tarball-expand-all): Ditto.
-       * build.el (build-with-MS-make-options): Provide working default.
-
-2002-06-03  Adrian Aichner  <adrian@xemacs.org>
-
-       * build.texi (Build Installation): Update pxref according to
-       change in XEmacs manual.
-
-2002-05-26  Adrian Aichner  <adrian@xemacs.org>
-
-       * build.el: Update copyright years.
-       * build.el (build-version-number): Update to 2.00.
-       * build.el (build-version-date): Update to 2002-05-26.
-       * build.el (build-cvs-set-var-and-update-buffer): New.
-       * build.el (build-cvs-checkout-options-validate): Use new
-       build-cvs-set-var-and-update-buffer.
-       * build.el (build-cvs-options): Ditto.
-       * build.el (build-cvs-update-options): Ditto.
-       * build.el (build-cvs-checkout-parent-dir): Default to
-       (temp-directory). Use new build-cvs-set-var-and-update-buffer.
-       * build.el (build-cvs-xemacs-module): Change from defcustom to
-       defconst.
-       * build.el (build-cvs-checkout-dir): Change from defcustom to
-       defvar.
-       * build.el (build-cvs-use-pcl-cvs): Use new
-       build-cvs-set-var-and-update-buffer.
-       * build.el (build-cvs-xemacs-release): Ditto.  Add choices for
-       known releases.
-       * build.el (build-cvs-xemacs-repository): Update to repository at
-       SunSITE.dk.
-       * build.el (build-cvs-login): This works now.
-       * build.el (build-cvs-working-dir-naming): New. Use new
-       build-cvs-set-var-and-update-buffer.
-       * build.el (build-cvs-update): Add -A switch for update to latest
-       sources.
-       * build.el (build-from-CVS): Set `build-cvs-checkout-dir' from
-       `build-cvs-working-dir-naming'.  Display build-cvs settings and
-       general explanations in widget interface.
-       * build.el (build-tarball-dest): Use (temp-directory).
-       * build.el (build-tarball-site): Updated from
-       http://www.xemacs.org/Download/ as of 2002-03-07.
-       * build.el (build): Add documentation links to defgroup.  Test
-       availability of cvs and initialize GUI accordingly.  Add more user
-       information to widget interface.
-       * build.el (build-with-GNU): Back button to take build-from-what
-       into account.  Rename "Customize ..." to "Browse ..." in buttons.
-       * build.el (build-with-MS): Ditto.
-       * build.el (build-build-report): Back button to take
-       build-with-what into account.  Rename "Customize ..." to "Browse ..."
-       in buttons.
-       * build.el (build-with-MS): Ditto.
-       * build.el (build-make-alist): Fix typo.
-       * build.el (build-settings): New.  Reserved for future use.
-       * build.texi: Update copyright years.
-       * build.texi (Top): Update release version and date information.
-       * build.texi (Build Installation): Add Windows 2000.
-       * build.texi (Build XEmacs): Add information about Info and HTML
-       documentation.  Document cvs availability check.
-       * build.texi (Build XEmacs From CVS): Document CVS login, which
-       works now.
-       * build.texi (Build XEmacs With GNU Tools): Add some cindex
-       entries.
-       * build.texi (Build XEmacs With Microsoft Tools): Ditto.  Document
-       change of "Customize ..." to "Browse ..." in buttons.
-       * build.texi (Generate XEmacs Build Report): Document change of
-       "Customize ..." to "Browse ..." in buttons.
-
-2002-01-07  Adrian Aichner  <adrian@xemacs.org>
-
-       * Makefile (HTML_FILES): New.
-       * Makefile (HTML_DEP): New.
-       * Makefile (all): Move $(INFO_FILES) dependency to end.
-
-2001-12-30  Adrian Aichner  <adrian@xemacs.org>
-
-       * build.texi: Add missing direntry.
-
-2001-12-02  Adrian Aichner  <adrian@xemacs.org>
-
-       * build.el:
-       * build.el (build-cvs-use-pcl-cvs): New.
-       * build.el (build-cvs-update): Obey build-cvs-use-pcl-cvs.  If
-       nil, run cvs update via (compile ...).
-       * build.el (build-from-CVS): Reword widget UI to use "CVS tag".
-       * build.el (build-with-MS): Overwrite build-report-version-file
-       according to build settings for build-report to find correct
-       information.
-
-2001-05-19  Adrian Aichner  <adrian@xemacs.org>
-
-       * build.el (build-with-MS): Use build-report-version-file after
-       setting is.
-
-2001-05-13  Adrian Aichner  <adrian@xemacs.org>
-
-       * build.el (build-from-CVS): Name buffer correctly.
-       * build.el (build-tarball-site): Update download sites from
-       XEmacs-21.4.2/etc/FTP.
-       * build.el (build-with-MS): Use version.sh of directory we build
-       in and customize build-report-version-file accordingly (without
-       saving in order to stay out of build-report's way).
-       * build.el (build-with-MS-make-commandline): Removed.
-
-2001-04-30  Adrian Aichner  <adrian@xemacs.org>
-
-       * build.el (build-version-number): Don't skip over first
-       character, which used to be r (for release).
-
-2001-04-30  Adrian Aichner  <adrian@xemacs.org>
-
-       * Makefile (VERSION): Start at 1.01 for now.
-       * README: Document discontinuation of CVS keywords Name and Date
-       and their use via cvs update -r rMAJOR-MINOR -kv.
-       * build.el (build-version-number): Substitute version manually.
-       * build.el (build-version-date): Substitute date manually.
-       * build.texi: Substitute version and date manually.
-
-2001-04-29  Steve Youngs  <youngs@xemacs.org>
-
-       * Makefile (AUTHOR_VERSION): Changed to '1.78'.
-       (ELCS): Removed 'build-report.elc'.
-       (REQUIRES): Add xemacs-base, pcl-cvs, dired, w3 & prog-modes.
-
-2001-04-28  Adrian Aichner  <adrian@xemacs.org>
-
-       * Makefile (VERSION): r1-78 is released.
-       * .cvsignore: Ignore the usual autogenerated files.
-
-2001-04-26  Steve Youngs  <youngs@xemacs.org>
-
-       * build.el: Autoload 'ring-insert-at-beginning, efs-copy-file'.
-
-2001-04-25  Adrian Aichner  <adrian@xemacs.org>
-
-       * Makefile (VERSION): r1-77 is released.
-       * Makefile (CATEGORY): Change from comm to libs.
-       * build.el (build-with-MS): Generate config.inc for XEmacs 21
-       minor versions > 2.
-
-2001-04-19  Adrian Aichner  <adrian@xemacs.org>
-
-       * Makefile (VERSION): r1-76 is released.
-       * README: Update documentation.
-
-2001-04-08  Adrian Aichner  <adrian@xemacs.org>
-
-       * Makefile (VERSION): r1-75 is released.
-       * build.el: Require compile.
-       * build.el (build-configure-sym-to-opt): Retain both dashes in
-       build-configure options.
-
-2001-04-08  Adrian Aichner  <adrian@xemacs.org>
-
-       * Makefile (VERSION): r1-74 is released.
-       * build.el (build-configure): Fix configure argument processing.
-       * build.el (build-configure-generate): Find "configure.usage"
-       according to `build-from-what', not (config-value-hash-table) of
-       running XEmacs.
-       * build.el (build-make-generate): Ditto for "Makefile.in".
-
-2001-04-07  Adrian Aichner  <adrian@xemacs.org>
-
-       * Makefile (VERSION): r1-73 is released.
-       * build.el (build-configure-string): Use
-       `build-configure-set-value' instead of `build-make-set-value'.
-       * build.el (build-configure-file): Ditto.
-       * build.el (build-configure-dir): Ditto.
-       * build.el (build-configure-type): Ditto.
-
-2001-04-07  Adrian Aichner  <adrian@xemacs.org>
-
-       * Makefile (VERSION): r1-72 is released.
-       * build.el (build-make-sym-to-opt): Removed from
-       `build-configure-prolog'.
-       * build.el (build-configure-sym-to-opt): New in
-       `build-configure-prolog'.  Fix substring FROM value.
-       * build.el (build-make-set-value): Removed from
-       `build-configure-prolog'.
-       * build.el (build-configure-set-value): New in
-       `build-configure-prolog'.
-
-2001-03-28  Adrian Aichner  <adrian@xemacs.org>
-
-       * Makefile (VERSION): r1-68 is released.
-       * build.el: Try requiring pcl-cvs.
-       * build.el (build-cvs-update): Use feature pcl-cvs, if available.
-
-2001-03-20  Adrian Aichner  <adrian@xemacs.org>
-
-       * Makefile (VERSION): r1-67 is released.
-       * build.el (build-configure-option-category): Adjust for
-       configure.usage option line proliferation.
-       * build.el (build-configure-generate): Avoid setting and switching
-       to buffer.
-       * build.el (build-with-GNU): Add whitespace between widgets.
-       * build.texi: Fix CVS keyword in subtitle.
-
-2001-03-17  Adrian Aichner  <adrian@xemacs.org>
-
-       * Makefile (VERSION): r1-66 is released.
-       * build-report.el: Update Copyright section.
-       * build.el: Add Legalese.
-       * build.el (build-make-customize): Add support for GTK_DIR and
-       sort list lexically.
-       * build.texi: Update Copyright information.  Update release Date.
-       * build.texi (Top): Add version and author information.
-
-2001-03-17  Adrian Aichner  <adrian@xemacs.org>
-
-       * build.el (build-cvs-checkout-options-validate): Improve
-       documentation.
-       * build.el (build-cvs-checkout-dir): Change custom type from
-       directory to string.
-
-2001-03-12  Adrian Aichner  <adrian@xemacs.org>
-
-       * build.el (build-configure):
-       * build.el (build-cvs-checkout-options-validate):
-       * build.el (build-cvs-options):
-       * build.el (build-cvs-checkout-dir):
-       * build.el (build-cvs-checkout-parent-dir): New.
-       * build.el (build-cvs-xemacs-module):
-       * build.el (build-cvs-xemacs-release):
-       * build.el (build-cvs-login):
-       * build.el (build-cvs-checkout):
-       * build.el (build-cvs-update):
-       * build.el (build-from-CVS):
-       * build.el (build-tarball-extract):
-       * build.el (build-make):
-
-2001-02-18  Adrian Aichner  <adrian@xemacs.org>
-
-       * build-report.el (build-report-destination): xemacs-build-reports
-       has moved to SourceForge, where mailing list name length is
-       restricted, hence the name change to
-       xemacs-buildreports@xemacs.org.
-       * build.el: Fix comment structure for folding-mode.
-       * build.el (build-cvs-checkout-options-validate): New.
-       * build.el (build-cvs-working-dir): Commented out.
-       * build.el (build-cvs-checkout-dir): New.
-       * build.el (build-config-inc-generate): Moved to Build Make
-       section.
-
-2000-12-30  Adrian Aichner  <adrian@xemacs.org>
-
-       * README: New.
-
-2000-12-29  Adrian Aichner  <adrian@xemacs.org>
-
-       * build 1.58 is released.
-       
-       * TODO: Correct my E-mail address.
-       * build.el: Order all "^\s-*(def" blocks by name in preparation
-       for split into multiple files.
-       * build.texi (Build Overview): Improve some wording.
-       * package-info.in: Shorten description for build package.
-
-2000-10-21  Adrian Aichner  <adrian@xemacs.org>
-
-       * build 1.57 is released.
-       
-       * Makefile (VERSION): Increment to 1.01
-       * build.el (build): Rename buttons.
-       * build.texi (Build XEmacs): Document more buttons.
-       * build.texi (Known Problems of Build): Enumerate Problems,
-       itemize into Problem, Workaround, and Fix.
-
-2000-10-09  Adrian Aichner  <adrian@xemacs.org>
-
-       * build.el (build-version-number): Use CVS keyword Name for
-       AUTHOR_VERSION handling.
-       * build.texi: Ditto.
-       * Makefile (AUTHOR_VERSION): Ditto.
-       * build 1.56 is released.
-
-2000-09-23  Adrian Aichner  <aichner@ecf.teradyne.com>
-
-       * build-report.el: Update copyright year range.
-       build-report-version is determined by XEmacs version -- remove
-       build-report-version*.
-       * build-report.el (build-report-keep-regexp): Match test results.
-       * build-report.el (build-report-delete-regexp): Ignore
-       auto-linlining conflicts and texinfmt "Formatting" output.
-       * build-report.el (build-report-insert-header): Report
-       emacs-version and system-configuration instead of
-       build-report-version.
-       * build.el: Require build-report on top-level.  Add package
-       version support.  Improve UI.
-       * build.el (build): Add informative text to UI.  Fix config.inc
-       support check (> 21.2-b32) for building with Microsoft Tools.
-       * build.el (build-version-number): New.
-       * build.el (build-version-date): New.
-       * build.el (build-version): New.
-       * build.el (build-config-inc-generate): Report version number of
-       build.
-
-2000-07-05  Adrian Aichner  <aichner@ecf.teradyne.com>
-
-       * Makefile (VERSION): build 1.51 is released.
-
-2000-07-05  AichnerAd  <aichner@ecf.teradyne.com>
-
-       * build-report.el: Minor doc changes.  Sync with XEmacs 21.2
-       lisp/build-report.el 1.5.2.4.
-       * build-report.el (build-report-version-number): New.
-       * build-report.el (build-report-version-date): New.
-       * build-report.el (build-report-version): New.
-
-2000-06-22  Adrian Aichner  <aichner@ecf.teradyne.com>
-
-       * build.texi (Overview): Fix trivial typo.
-
-2000-06-12  Adrian Aichner  <aichner@ecf.teradyne.com>
-
-       * Makefile (VERSION): build 1.49 is released.
-
-       * build.el (build-config-option-category): Rename all
-       build-config- symbols to build-configure-, build-config- is now
-       reserved for config.inc support under native Windows builds.
-       (build): Re-indent whole file.
-       (build-with-MS): Generate config.inc file from 'build-make
-       options.
-       (build-with-MS-make-commandline): New function building long or
-       short build-make commandline depending on config.inc support in
-       xemacs.mak.
-
-2000-05-06  Adrian Aichner  <aichner@ecf.teradyne.com>
-
-       * build.el (build-make-customize): Bring back *_DIR interface for
-       MS builds (can't be deduced from xemacs.mak).
-
-       * Makefile (VERSION): build 1.48 is released.
-       
-2000-04-09  Adrian Aichner  <aichner@ecf.teradyne.com>
-
-       * Makefile (VERSION): build 1.47 is released with minimal
-       documentation.
-
-       * build.el: Add ellipsis for push-buttons requiring further
-       interaction.
-
-       * Makefile (ELCS): Remove obsolete build-info.elc
-       (VERSION): build 1.46 is released.
-
-       * build.el (build-make-customize): Remove MS-specific stuff.
-       (build-from-tarballs): Add "Back" button.
-       (build-from-CVS): ditto.
-       (build-with-GNU): ditto.
-       (build-with-MS): ditto.
-       (build-build-report): ditto.
-       (build-with-MS): Add buttons to "Check temacs (XEmacs before
-       dumping)" and "Check XEmacs".
-
-1999-07-15  Adrian Aichner  <aichner@ecf.teradyne.com>
-
-       * Makefile (AUTHOR_VERSION): Increment to 1.43.
-
-       * build-report.el (build-report-installation-file): Installation
-       file is now in top-level directory for Windows NT as well.
-
-       * build.el (build-build-report): Ditto.
-
-       * Makefile (AUTHOR_VERSION): Increment to 1.42.
-
-       * build.el (build-cvs-update-options): Remove -A switch.
-
-       * build-report.el (build-report-installation-version-regexp):
-       Handle releases in addition to betas.
-
-1999-03-16  Adrian Aichner  <aichner@ecf.teradyne.com>
-
-       * Create package.
diff --git a/xemacs-packages/build/Makefile b/xemacs-packages/build/Makefile
deleted file mode 100644 (file)
index bd06df4..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-# Makefile for build lisp code
-
-# This file is part of XEmacs.
-
-# XEmacs is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any
-# later version.
-
-# XEmacs is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with XEmacs; see the file COPYING.  If not, write to
-# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# For the time being, remove MULE_ELCS from the all dependencies if
-# building without Mule.
-
-VERSION = 1.18
-AUTHOR_VERSION = 2.02
-MAINTAINER = Adrian Aichner <adrian@xemacs.org>
-PACKAGE = build
-PKG_TYPE = regular
-# Specify any required libraries which are not part of core lisp.
-REQUIRES = xemacs-base pcl-cvs dired w3 prog-modes
-CATEGORY = standard
-
-ELCS = build.elc build-report.elc
-
-STANDARD_DOCS = t
-
-include ../../XEmacs.rules
diff --git a/xemacs-packages/build/README b/xemacs-packages/build/README
deleted file mode 100644 (file)
index 9b37be0..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-Below instructions regarding "Making a release" are incorrect as per
-2001-04-30.
-
-Instead, make sure to manually update following approximate locations
-before making a new release of build, checkin the changes and roll a
-new release.
-
-Substitute the package VERSION number (see Makefile) for $Name[^$]+$
-below.
-Substitute an ISO8601 date (YYYY-MM-DD) for $Date[^$]+$.
-
-cd c:\Hacking\XEmacs\xemacs-packages\libs\build\
-egrep -ni "\$[A-Z][a-z]+" * NUL
-Compilation started at Sun Apr 29 23:59:06 2001 +0200 (W. Europe Daylight Time)
-egrep: CVS: Invalid request code
-build.el:8:;; Date: $Date: 2002-12-08 21:26:36 $
-build.el:9:;; Version: $Name:  $
-build.el:71:  (let ((x "$Name:  $"))
-build.el:80:  (let ((x "$Date: 2002-12-08 21:26:36 $"))
-build.texi:28:@subtitle Version $Name:  $ (for XEmacs 21.1, 21.2), dated $Date: 2002-12-08 21:26:36 $
-build.texi:59:This is the XEmacs Build Reference Manual, Version $Name:  $ (for XEmacs
-build.texi:60:21.1, 21.2), released $Date: 2002-12-08 21:26:36 $, by @email{adrian@@xemacs.org, Adrian
-
-grep exited abnormally with code 2 at Sun Apr 29 23:59:07
-
-============================================================================
-
-Making a release (2001-04-19):
-
-1.
-Tag the sources (using cvs tag rJMAJOR-MINOR).
-rtag will probably not work because build-report.el is in the Attic.
-
-2.
-Update from cvs using:
-cvs update -r rMAJOR-MINOR -kv
-
-3.
-make distclean
-make bindist
-
-4.
-Update again to remove sticky tag and expanded keywords:
-cvs update -PdA
-
-5.
-Hand-edit
-
-PACKAGE_INDEX = package-index.LATEST.pgp
-
-in NONMULE_INSTALLED_PACKAGES_ROOT (see ..\..\Local.rules) to remove any
-old entries for the build package.
-
-6.
-Options -> Manage Packages -> Add Download Site
-        Adrian's Packages local to ZJ75T
-Options -> Manage Packages -> Update Package Index
-Options -> Manage Packages -> List & Install
-        Uninstall the old build package.
-        Install the new build package version.
diff --git a/xemacs-packages/build/TODO b/xemacs-packages/build/TODO
deleted file mode 100644 (file)
index fc9fbf7..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-2001-03-17  Adrian Aichner  <adrian@xemacs.org>
-
-Need to remove trailing \ from build-make variables containing pathnames.
-
-2000-09-30  Adrian Aichner  <adrian@xemacs.org>
-
-Avoid GUI elements to appear and disappear depending on user choices.
-Present all and activate or deactivate them as appropriate.
-
-    (setq
-     build-from-button-widget     
-     (widget-create 'push-button
-                    :notify (lambda (&rest ignore)
-                              (cond
-                               ((string-equal build-from-what "Tarballs")
-                                (build-from-tarballs))
-                               ((string-equal build-from-what "CVS")
-                                (build-from-CVS))))
-                    (format "Build XEmacs From %s Now ..." build-from-what)))
-
-is an example that needs to be fixed.
-
diff --git a/xemacs-packages/build/build-report.el b/xemacs-packages/build/build-report.el
deleted file mode 100644 (file)
index 1ddfa2f..0000000
+++ /dev/null
@@ -1,564 +0,0 @@
-;;; build-report.el --- Automatically formatted build reports for XEmacs
-
-;; Copyright (C) 1997-2003 Adrian Aichner
-
-;; Author: Adrian Aichner <adrian@xemacs.org>
-;; Date: $Date: 2009-10-01 18:39:57 $
-;; Version: $Revision: 1.50 $
-;; Keywords: internal
-
-;; This file is part of XEmacs.
-
-;; XEmacs is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; XEmacs is distributed in the hope that it will be useful, but
-;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with XEmacs; see the file COPYING.  If not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; Synched up with: Not synched.
-
-;;; Commentary:
-
-;; The Idea:
-;; Let XEmacs report interesting aspects of how it was built.
-
-;; The Concept:
-;; User creates an XEmacs Build Report by just calling
-;; M-x build-report
-;; which will initialize a mail buffer with relevant information
-;; derived from the XEmacs build process. Point is left at the
-;; beginning of the report for user to input some personal notes and
-;; send the report.
-
-;; The Status:
-;; This is the first `Proof of Concept'.
-
-;; The Author:
-;; Adrian Aichner, Teradyne GmbH Munich, Sun., Apr. 20, 1997.
-
-;;; Code:
-
-(require 'config)
-(require 'custom)
-(require 'cl)
-(provide 'build-report)
-
-(eval-when-compile (when (eq 'list (symbol-function 'values))
-                     (define-compiler-macro values (&rest args)
-                       `(list ,@args))))
-
-;;; Constant definitions used internally by `build-report'.  These are not
-;;; anticipated to be changed by users of `build-report'.
-;;; If users do need to change the value of any of these, they need to do
-;;; it after `build-report' has been loaded (not just required).  Please
-;;; report it to the maintainers of `build-report' when you think you
-;;; need to do this.
-(defconst build-report-installation-version-regexp
-  "XEmacs\\s-+\\([0-9]+\\)\\.\\([0-9]+\\)\\(\\(-b\\|\\.\\)\\([0-9]+\\)\\)?\\s-+\\\\?\"\\([^\\\"]+\\)\\\\?\"\\s-+\\(.*\\)?configured\\s-+for\\s-+`\\(.+\\)'\\."
-  "*REGEXP matching XEmacs Beta Version string in
-`build-report-installation-file' file.  This variable is used by
-`build-report-installation-data'.")
-
-(defconst build-report-version-file-regexp
-  "emacs_major_version\\s-*=\\s-*\\([0-9]+\\)
-emacs_minor_version\\s-*=\\s-*\\([0-9]+\\)
-emacs_beta_version\\s-*=\\s-*\\([0-9]+\\)?
-xemacs_codename\\s-*=\\s-*\"\\([^\"]+\\)\"\\(
-xemacs_extra_name\\s-*=\\s-*\"\\([^\"]+\\)\"\\)?"
-  "*REGEXP matching XEmacs Beta Version variable assignments in
-`build-report-version-file' file.  This variable is used by
-`build-report-version-file-data'.")
-
-(defconst build-report-installation-srcdir-regexp
-  "\\s-*Where should the build process find the source code\\?\\s-*\\(.*\\)$"
-  "REGEXP matching XEmacs Beta srcdir as the first substring match in
-`build-report-installation-file' file.  This variable is used by
-`build-report-installation-data'.")
-
-;;; Customization support for build-report starts here.
-
-(defgroup build-report nil
-  "Standardizes the Creation of XEmacs Build Reports."
-  :load 'build-report
-  :group 'build)
-
-(defcustom build-report-destination
-  (list
-   "XEmacs Build Reports List <xemacs-buildreports@xemacs.org>"
-   "XEmacs Beta List <xemacs-beta@xemacs.org>")
-  "*The list of mail addresses XEmacs Build Reports should most likely
-go to."
-  :type '(repeat
-          :custom-show t
-          :documentation-shown t
-          string)
-  :group 'build-report)
-
-(defcustom build-report-keep-regexp
-  (list
-   "^\\(cd\\|n?make\\)\\s-"
-   "errors?"
-   "warnings?"
-   "pure.*\\(space\\|size\\)"
-   "hides\\b"
-   "strange"
-   "shadowings"
-   "^Compil\\(ing\\s-+in\\|ation\\)"
-   "^Using"
-   "not\\s-+found"
-   "^While\\s-+compiling.*\\(\n\\s-+.+\\)*"
-   "^Note:"
-   "Installing"
-   "[Ff]ile(s) copied"
-   "\\s-+tests\\s-+"
-   "^[A-Z] [^ ]+$"
-   "^Wrong number of arguments:"
-   "^  \\*\\* "
-   "^\\(FAIL\\|SKIP\\):")
-  "*Regexp of make process output lines to keep in the report."
-  :type '(repeat
-          :custom-show t
-          :documentation-shown t
-          regexp)
-  :group 'build-report)
-
-(defcustom build-report-delete-regexp
-  (list
-   "confl.*with.*auto-inlining"
-   "^Formatting:"
-   "^\\s-*0 .*\\(failure\\|error\\)s?"
-   "^PASS:"
-   "(100%) tests successful")
-  "*Regexp of make process output lines to delete from the report."
-  :type '(repeat
-          :custom-show t
-          :documentation-shown t
-          regexp)
-  :group 'build-report)
-
-(defcustom build-report-make-output-dir
-  (cond 
-   ((equal system-type 'windows-nt)
-    (expand-file-name "nt"
-                      (gethash 'blddir (config-value-hash-table))))
-   (t
-    (gethash 'blddir (config-value-hash-table))))
-  "*Directory where the build report file is found.
-  If this is empty or nil, the default, it is replaced by the value of
-  the XEmacs build directory."
-  :type '(directory
-          :custom-show t
-          :documentation-shown t)
-  :group 'build-report)
-
-(defcustom build-report-make-output-files
-  (list
-   "beta.err"
-   "xemacs-make-all.err" 
-   "xemacs-make-check-temacs.err"
-   "xemacs-make-check.err"
-   "xemacs-make-install.err")
-  "*List of Filenames where stdout and stderr of XEmacs make process
-have been stored.  These are relative to
-`build-report-make-output-dir`.  You'll have to run make with output
-redirection or use the `build' XEmacs package to save this output. You
-may use following alias
-
-alias mk 'make \!* >>&\! \!$.err &'
-
-under csh, so that you get beta.err when you run `mk beta'."
-  :type '(repeat
-          :custom-show t
-          :documentation-shown t
-          file)
-  :group 'build-report)
-
-(defcustom build-report-installation-file
-  (expand-file-name "Installation"
-                    (gethash 'blddir (config-value-hash-table)))
-  "*Installation file produced by XEmacs configure process."
-  :type '(file
-          :custom-show t
-          :documentation-shown t)
-  :group 'build-report)
-
-(defcustom build-report-version-file
-  (expand-file-name
-   "version.sh"
-   (gethash 'blddir (config-value-hash-table)))
-  "*version.sh file identifying XEmacs (Beta) Distribution."
-  :type '(file
-          :custom-show t
-          :documentation-shown t)
-  :group 'build-report)
-
-(defcustom build-report-installation-insert-all
-  nil
-  "*Tell build-report to insert the whole Installation file
-  instead of just the last report."
-  :type 'boolean
-  :group 'build-report)
-
-(defcustom build-report-subject
-  (concat "[%s] " emacs-version " on " system-configuration)
-  "*XEmacs Build Report Subject Line. %s-sequences will be substituted
-  with user input through `build-report' according to
-  `build-report-prompts' using `format'."
-  :type '(string
-          :custom-show t
-          :documentation-shown t)
-  :group 'build-report)
-
-(defcustom build-report-prompts
-  (quote (("Status?: "  ("Success" "Failure"))))
-  "*XEmacs Build Report Prompt(s). This is a list of prompt-string
-  lists used by `build-report' in conjunction with
-  `build-report-subject'. Each list consists of a prompt string
-  followed by any number of strings which can be chosen via the history
-  mechanism."
-  :type '(repeat
-          :custom-show t
-          :documentation-shown t
-          (list
-           :tag "Prompt"
-           string
-           (repeat
-            :tag "Values"
-            string)))
-  :group 'build-report)
-
-(defcustom build-report-file-encoding
-  "7bit"
-  "*XEmacs Build Report File Encoding to be used when MIME support is
-  available."
-  :group 'build-report)
-
-;; Symbol Name mappings from TM to SEMI serving as Compatibility
-;; Bandaid
-(when (featurep 'mime-setup)
-  ;; No (defvaralias ...) so far. Thanks to "Didier Verna"
-  ;; <didier@xemacs.org> for reporting my incorrect defvaraliasing of
-  ;; `mime-editor/insert-tag'.
-  ;; Thanks to Jens-Ulrik Holger Petersen
-  ;; <petersen@kurims.kyoto-u.ac.jp> for suggesting the conditional
-  ;; aliasing of SEMI functions.
-  (unless (fboundp 'mime-edit-content-beginning)
-    (defalias 'mime-edit-content-beginning 'mime-editor/content-beginning))
-  (unless (fboundp 'mime-edit-insert-tag)
-    (defalias 'mime-edit-insert-tag 'mime-editor/insert-tag))
-  (unless (fboundp 'mime-edit-insert-binary-file)
-    (defalias 'mime-edit-insert-binary-file
-      'mime-editor/insert-binary-file)))
-
-(defun build-report-make-output-get ()
-  "Return the filename the XEmacs make output is saved in."
-  (interactive)
-  (if (or (string-equal build-report-make-output-dir "")
-          (null build-report-make-output-dir))
-      (mapcar
-       (function
-        (lambda (f)
-          (expand-file-name
-           f
-           (file-name-as-directory
-            (gethash 'blddir (config-value-hash-table))))))
-       build-report-make-output-files)
-    (mapcar
-     (function
-      (lambda (f)
-        (expand-file-name
-         f
-         (file-name-as-directory build-report-make-output-dir))))
-     build-report-make-output-files)))
-
-;;;###autoload
-(defun build-report (&rest args)
-  "Report build information including Installation and make output.
-
-Prompts for status (usually \"Success\" or \"Failure\").  Then uses
-`compose-mail' to create a mail message.  The Subject header contains
-status and version information.  Point is left at the beginning of the
-mail text.  Add some notes if you like, and send the report.
-
-Looks for Installation and the make output file (`beta.err' by
-default, customizable via `build-report-make-output-files') in the
-build directory of the running XEmacs by default (customizable via
-`build-report-make-output-dir').  The output from make is filtered
-through `build-report-keep-regexp' and `build-report-delete-regexp'
-before including in the message.
-
-See also `mail-user-agent', `build-report-destination', and
-`build-report-installation-file'."
-  ;; `interactive' form returns value for formal parameter `args'.
-  (interactive
-   (let (prompt
-         hist
-         arg
-         (prompts build-report-prompts))
-     (progn
-       (while prompts
-         (defvar hist)
-         (setq prompt (caar prompts))
-         (setq hist (cdar prompts))
-         ;; `build-report-prompts' used to be a list of lists, the
-         ;; first element of each list being the prompt, the rest being
-         ;; the history.  The history is now in a separate list.  We
-         ;; better check for that.
-         (if (listp (car hist))
-             (setq hist (car hist)))
-         (setq prompts (cdr prompts))
-         (setq arg (cons (read-string prompt "" 'hist) arg)))
-       arg)))
-  (save-excursion
-    (if (file-exists-p build-report-installation-file)
-        (multiple-value-bind
-            (major minor beta codename extraname configuration)
-            (build-report-installation-data build-report-installation-file)
-          (setq build-report-subject
-                (format "[%%s] XEmacs %s.%s%s \"%s\" %s%s"
-                        major minor beta codename extraname configuration)))
-      (multiple-value-bind
-          (major minor beta codename extraname)
-          (build-report-version-file-data build-report-version-file)
-        (setq build-report-subject
-              (format "[%%s] XEmacs %s.%s%s \"%s\" %s%s"
-                      major minor beta codename extraname system-configuration))))
-    (compose-mail
-     ;; `build-report-destination' used to be a single string, so
-     ;; let's test if we really get a list of destinations.
-     (if (listp build-report-destination)
-         (read-string
-          "Build Report Destination: "
-          (car build-report-destination)
-          'build-report-destination)
-       (read-string
-        "Build Report Destination: "
-        build-report-destination)
-       )
-     (apply 'format build-report-subject args)
-     nil
-     nil
-     nil
-     nil
-     nil)
-    (let* ((report-begin (point))
-           (files (reverse (build-report-make-output-get)))
-           (file (car files)))
-      (while file
-        (if (file-exists-p file)
-            (insert (build-report-insert-make-output report-begin file))
-          (insert (format "%s not found!\n" file)))
-        (insert "\n")
-        (setq files (cdr files))
-        (setq file (car files)))
-      (if (file-exists-p build-report-installation-file)
-          (insert (build-report-insert-installation-file
-                   report-begin
-                   build-report-installation-insert-all))
-        (insert (format "%s not found!\n" build-report-installation-file)))
-;;;       (when (and (>= major 21) (>= minor 2) (or (null beta) (>= beta 32)))
-;;;         (insert "\n")
-;;;         (insert (build-report-insert-config-inc report-begin)))
-      (insert "\n")
-      (insert (build-report-insert-header report-begin))
-      (goto-char report-begin))))
-
-(defun build-report-insert-header (where)
-  "Inserts the build-report-header at the point specified by `where'."
-  (goto-char where)
-  (with-temp-buffer
-    (insert
-     (format "
-> XEmacs Build Report generated by emacs-version
-> %s
-> with system-configuration
-> %s
-> follows:\n\n" emacs-version system-configuration))
-    (buffer-string)))
-
-(defun build-report-insert-make-output (where file)
-  "Inserts the output of the XEmacs Beta make run in the
-current buffer at position WHERE.
-The make process output must have been saved in
-`build-report-make-output-files' during the XEmacs Beta building."
-  (goto-char where)
-  (with-temp-buffer
-    (if (file-exists-p file)
-        (progn
-          (if (featurep 'mime-setup)
-              (progn
-                (mime-edit-insert-tag
-                 "text"
-                 "plain"
-                 (concat
-                  "\nContent-Disposition: attachment;"
-                  " filename=\""
-                  (file-name-nondirectory
-                   file)
-                  "\""))
-                (mime-edit-insert-binary-file
-                 file
-                 build-report-file-encoding))
-            (insert-file-contents file))
-          (when build-report-keep-regexp
-            (goto-char (point-min))
-            (delete-non-matching-lines (build-report-keep)))
-          (when build-report-delete-regexp
-            (goto-char (point-min))
-            (delete-matching-lines (build-report-delete)))
-          (goto-char (point-min))
-          (if build-report-keep-regexp
-              (insert
-               (format
-                "> keeping lines matching
-> \"%s\"
-"
-                (build-report-keep))))
-          (if build-report-delete-regexp
-              (insert
-               (format
-                "> %sdeleting lines matching
-> \"%s\"
-"
-                (if build-report-keep-regexp
-                    "and then "
-                  "")
-                (build-report-delete))))
-          (insert "\n")
-          (goto-char (point-min))
-          (insert
-           (format "> Contents of %s\n" file)))
-      (insert "> " file
-              " does not exist!\n\n"))
-    (buffer-string)))
-
-(defun build-report-insert-installation-file (where all)
-  "Inserts the contents of the `build-report-installation-file'
-created by the XEmacs Beta configure process."
-  (goto-char where)
-  (with-temp-buffer
-    (if (file-exists-p build-report-installation-file)
-        (let (file-begin last-configure)
-          (insert "> Contents of "
-                  build-report-installation-file
-                  ":\n")
-          (insert
-           (format
-            "> (Output from %s of ./configure)\n\n"
-            (if all "all runs" "most recent run")))
-          (if (featurep 'mime-setup)
-              (progn
-                (mime-edit-insert-tag
-                 "text"
-                 "plain"
-                 (concat
-                  "\nContent-Disposition: attachment;"
-                  " filename=\""
-                  (file-name-nondirectory
-                   build-report-installation-file)
-                  "\""))
-                (mime-edit-insert-binary-file
-                 build-report-installation-file
-                 build-report-file-encoding)
-                (setq file-begin (mime-edit-content-beginning)))
-            (setq file-begin (point))
-            (insert-file-contents
-             build-report-installation-file))
-          (unless all
-            (setq last-configure
-                  (search-backward-regexp
-                   "^\\(uname.*\\|osversion\\|OS\\):\\s-+" file-begin t))
-            (if (and file-begin last-configure)
-                (delete-region file-begin last-configure))))
-      (insert "> " build-report-installation-file
-              " does not exist!\n\n"))
-    (buffer-string)))
-
-(defun build-report-keep ()
-  "Concatenate elements of `build-report-keep-regexp' and a general
-MIME tag REGEXP.  The result is a REGEXP string matching either of the
-REGEXPs in `build-report-keep-regexp' or a general MIME tag REGEXP."
-  (mapconcat #'identity
-             (cons "^--\\[\\[\\|\\]\\]$" build-report-keep-regexp) "\\|"))
-
-(defun build-report-delete ()
-  "Concatenate elements of `build-report-delete-regexp' and a general
-MIME tag REGEXP.  The result is a REGEXP string matching either of the
-REGEXPs in `build-report-delete-regexp' or a general MIME tag REGEXP."
-  (mapconcat '(lambda (item) item)
-             build-report-delete-regexp "\\|"))
-
-(defun build-report-installation-data (&optional file)
-  "Return a list of XEmacs installation data containing MAJOR_NUMBER
-MINOR_NUMBER BETA_STRING CODENAME CONFIGURATION SRCDIR from FILE,
-which defaults to `build-report-installation-file'."
-  (interactive "fInstallation file: ")
-  (unless file
-    (setq file build-report-installation-file))
-  (let
-      (major minor beta codename extraname configuration srcdir)
-    (save-window-excursion
-      (find-file-read-only file)
-      (goto-char (point-min))
-      (while (< (point) (point-max))
-        (cond
-         ((looking-at build-report-installation-version-regexp)
-          (goto-char (match-end 0))
-          (setq major (or (match-string 1) ""))
-          (setq minor (or (match-string 2) ""))
-          (setq beta (or (match-string 3) ""))
-          (setq codename (or (match-string 6) ""))
-         (setq extraname (or (match-string 7) ""))
-          (setq configuration (or (match-string 8) "")))
-         ((looking-at build-report-installation-srcdir-regexp)
-          (goto-char (match-end 0))
-          (setq srcdir (or (match-string 1) "")))
-         ;; We avoid matching a potentially zero-length string to avoid
-         ;; infinite looping.
-         ((looking-at
-           "^.+$")
-          (goto-char (match-end 0)))
-         ((looking-at "\n")
-          (goto-char (match-end 0)))))
-      (values major minor (or beta "") codename extraname configuration srcdir))))
-
-(defun build-report-version-file-data (&optional file)
-  "Return a list of XEmacs version information containing
-MAJOR_NUMBER MINOR_NUMBER BETA_STRING CODENAME from FILE, which
-defaults to `build-report-version-file'." 
-  (interactive "fversion.sh file: ")
-  (unless file
-    (setq file build-report-version-file))
-  (let
-      (major minor beta codename extraname)
-    (save-window-excursion
-      (find-file-read-only file)
-      (goto-char (point-min))
-      (while (< (point) (point-max))
-        (cond
-         ((looking-at build-report-version-file-regexp)
-          (goto-char (match-end 0))
-          (setq major (or (match-string 1) ""))
-          (setq minor (or (match-string 2) ""))
-          (setq beta (or (match-string 3) ""))
-          (setq codename (or (match-string 4) ""))
-         (setq extraname (or (match-string 6) "")))
-         ;; We avoid matching a potentially zero-length string to avoid
-         ;; infinite looping.
-         ((looking-at
-           "^.+$")
-          (goto-char (match-end 0)))
-         ((looking-at "\n")
-          (goto-char (match-end 0)))))
-      (values major minor (or beta "") codename extraname))))
-
-;;; build-report.el ends here
diff --git a/xemacs-packages/build/build.el b/xemacs-packages/build/build.el
deleted file mode 100644 (file)
index 53d81f5..0000000
+++ /dev/null
@@ -1,2126 +0,0 @@
-;;;    $Id: build.el,v 1.52 2003-10-13 15:52:13 james Exp $
-
-;;{{{ Legalese
-
-;; Copyright (C) 1997-2002 Adrian Aichner
-
-;; Author: Adrian Aichner <adrian@xemacs.org>
-;; Date: $Date: 2003-10-13 15:52:13 $
-;; Version: $Revision: 1.52 $
-;; Keywords: internal
-
-;; This file is part of XEmacs.
-
-;; XEmacs is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; XEmacs is distributed in the hope that it will be useful, but
-;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with XEmacs; see the file COPYING.  If not, write to the Free
-;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-;; 02111-1307, USA.
-
-;;; Synched up with: Not synched.
-
-;;}}}
-
-;;{{{ provide/require
-
-(provide 'build)
-
-(require 'custom)
-(require 'cus-edit)
-(require 'widget)
-(if (featurep 'sxemacs)
-    (require 'build-rpt)
-  (require 'build-report))
-
-(autoload 'ring-insert-at-beginning "ring")
-(autoload 'efs-copy-file "efs")
-
-;; `url-copy-file' (buffer: build.el, mode: Lisp)
-
-(eval-when-compile
-  (require 'cl))
-
-;; Pull in compile, if it is available.
-(condition-case nil
-    (require 'compile)
-  (error nil))
-
-(eval-when-compile
-  (require 'wid-edit))
-
-;; Pull in pcl-cvs, if it is available.
-(condition-case nil
-    (require 'pcl-cvs)
-  (error nil))
-
-;;}}}
-
-(defcustom build-from-what
-  "Tarballs"
-  "The Source Code units XEmacs is to be built from (\"Tarballs\" or
-\"CVS\")."
-  :type '(choice
-          :custom-state t
-          (const "Tarballs")
-          (const "CVS"))
-  :group 'build)
-
-(defcustom build-with-what
-  "GNU Tools"
-  "The Toolset XEmacs is to be built with (\"GNU Tools\" or
-\"Microsoft Tools\")."
-  :type '(choice
-          :custom-state t
-          (const "GNU Tools")
-          (const "Microsoft Tools"))
-  :group 'build)
-
-;;{{{ Version info
-
-;;;
-;;; Version-handling, based on ideas from w3.
-;;;
-(defconst build-version-number
-  (let ((x "2.00"))
-    (if (string-match "Name:[ \t\n]+\\([^\n]+\\) \\$" x)
-       (setq x (match-string 1 x))
-      (setq x (substring x 0)))
-    (mapconcat
-     (function (lambda (x) (if (= x ?-) "." (char-to-string x)))) x ""))
-  "Version number of build package.")
-
-(defconst build-version-date
-  (let ((x "2002-03-07"))
-    (if (string-match "Date:[ \t\n]+\\([^\n]+\\) \\$" x)
-       (match-string 1 x)
-      x))
-  "Date this version of build was released.")
-
-(defconst build-version
-  (format "build %s %s" build-version-number build-version-date)
-  "More descriptive version of build-version-number.")
-
-;;;###autoload
-(defun build-version (&optional here)
-  "Show the version number of `build' in the minibuffer.
-If optional argument HERE is non-nil, insert info at point."
-  (interactive "P")
-  (if here
-      (insert build-version)
-    (if (interactive-p)
-        (message-or-box "%s" build-version)
-      build-version)))
-;;}}}
-
-;;{{{ Build
-
-(defgroup build nil
-  "Simplifies Building XEmacs; i.e. Fetching, Configuring, Making, and
-Reporting."
-  :link '(url-link :tag "XEmacs Build Reference Manual"
-                   "http://www.xemacs.org/Documentation/packages/html/build.html")
-  :link '(url-link :tag "XEmacs Beta README"
-                   "ftp://ftp@ftp.xemacs.org/pub/xemacs/beta/README")
-  :link '(url-link :tag "XEmacs Gamma README"
-                   "ftp://ftp@ftp.xemacs.org/pub/xemacs/gamma/README")
-  :link '(url-link :tag "XEmacs Stable README"
-                   "ftp://ftp@ftp.xemacs.org/pub/xemacs/stable/README")
-  :group 'emacs)
-
-
-(defun build-call-process (command infile buffer displayp)
-  (let (exit-status result)
-    (with-temp-buffer
-      (condition-case signal
-          (setq exit-status
-                (apply 'call-process
-                       (append
-                        (list (car command) infile buffer displayp)
-                        (cdr command))))
-        (error
-         (warn "\n%s\ncannot be executed: %S %S\n"
-               (mapconcat 'identity command " ")
-               (car signal) (cdr signal))))
-      ;; return value of result
-      (setq result (cons exit-status (buffer-string))))))
-
-;;;###autoload
-(defun build ()
-  "Creates a widget-based interface to build a beta/release version of
-XEmacs.  All aspects of fetching tarballs, configuring, making and
-reporting can be customized and executed from the newly created buffer
-*Build*."
-  (interactive)
-  (let
-      (exit-status
-       (command
-        (list
-         "cvs" "-v"))
-       infile
-       (buffer (list t t))
-       displayp
-       result
-;        build-from-cvs-button-widget
-;        build-from-tarballs-button-widget
-       (name "*Build XEmacs*"))
-    (kill-buffer (get-buffer-create name))
-    (switch-to-buffer (get-buffer-create name))
-    (kill-all-local-variables)
-    ;; Determine availability of CVS client.
-    (message-or-box
-     "build: checking whether you have cvs, please wait")
-    (setq result
-          (build-call-process command infile buffer displayp))
-    (cond
-     ((null (car result))
-      (setq build-cvs-available-p nil)
-      (warn "\nprogram %s cannot be found or executed\n"
-            (car command))
-      (setq build-from-what "Tarballs"))
-     ((/= (car result) 0)
-      (setq build-cvs-available-p nil)
-      (warn "\n%s\nfailed with following output:\n%s\n"
-            (mapconcat 'identity command " ")
-            (cdr result))
-      (setq build-from-what "Tarballs")
-      (widget-insert
-       "\n\nPlease install cvs, unless you want to build from our tarballs.\n"))
-     (t
-      (setq build-cvs-available-p t)
-      (setq build-from-what "CVS")
-      (message-or-box
-       "build: cvs is available")))
-    ;; Create widget-based interface.
-    (widget-insert
-     "Visit info documentation for the XEmacs build package inside ")
-    (widget-create
-     'info-link
-     :tag "XEmacs"
-     :value "(build)")
-    (widget-insert "\nor on the XEmacs website at\n")
-    (widget-create
-     'url-link
-     :value
-     "http://www.xemacs.org/Documentation/packages/html/build.html")
-    (widget-insert "\n\n")
-    (let
-       ((inhibit-read-only t))
-      (setq build-current-build-settings-widget
-           (widget-create
-            'string
-            :tag "Current Build Settings"
-            :value
-            "unknown")))
-    (widget-apply
-     build-current-build-settings-widget
-     :deactivate)
-    (widget-insert "\n")
-    (widget-create 'push-button
-                  :notify (lambda (&rest ignore)
-                             (let
-                                 ((name (widget-value build-settings-widget)))
-                               (widget-apply
-                                build-current-build-settings-widget
-                                :activate)
-                               (widget-value-set
-                                build-current-build-settings-widget
-                                name)
-                               (widget-apply
-                                build-current-build-settings-widget
-                                :deactivate)
-                               (widget-setup)
-                               (build-settings-load name build-settings)
-                               (message-or-box
-                                "loaded \"%s\" build-settings"
-                                name)))
-                   "Load")
-    (widget-insert " ")
-    (widget-create 'push-button
-                  :notify (lambda (&rest ignore)
-                             (let*
-                                 ((args
-                                   (widget-get build-settings-widget :args))
-                                  (value (widget-value build-settings-widget))
-                                  new-args)
-                               (if (string= value "default")
-                                   (message-or-box
-                                    "cannot delete \"%s\" build-settings"
-                                    value)
-                                 (when
-                                     (yes-or-no-p
-                                      (format "delete \"%s\" build-settings? " value))
-                                   (setq
-                                    new-args
-                                    (remrassoc
-                                     (list
-                                      :value
-                                      value)
-                                     args))
-                                   (widget-put
-                                    build-settings-widget
-                                    :args new-args)
-                                   (widget-put
-                                    build-settings-name-widget
-                                    :args
-                                    (cons (list 'string :value "default")
-                                          new-args))
-                                   (widget-value-set
-                                    build-settings-widget
-                                    (widget-get
-                                     (first (widget-get build-settings-widget :args))
-                                     :value))
-                                   (widget-setup)
-                                   (setq
-                                    build-settings
-                                    (remassoc
-                                     value
-                                     build-settings))
-                                   (message-or-box
-                                    "deleted \"%s\" build-settings"
-                                    value)))))
-                  "Delete")
-    (widget-insert " ")
-    (setq build-settings-widget
-         (widget-create 'choice
-                        :tag "build settings"
-                         :value "default"
-                         :args
-                         (cons
-                          (list 'item :value "default")
-                          (mapcar
-                           (function
-                            (lambda (setting)
-                              (let ((name setting))
-                                (list 'item :value (car setting))))) 
-                           build-settings))
-;                       :notify (lambda (widget &rest ignore)
-;                                 (setq build-settings (widget-value widget)))
-                        '(item :value "default")))
-    (widget-value-set
-     build-settings-widget
-     (widget-get
-      (first (widget-get build-settings-widget :args))
-      :value))
-    (widget-create 'push-button
-                  :notify (lambda (&rest ignore)
-                             (let
-                                 ((name
-                                   (widget-value build-settings-name-widget)))
-                               (unless
-                                   (and
-                                    (assoc name build-settings)
-                                    (not
-                                     (yes-or-no-p
-                                      (format "overwrite current \"%s\" build-settings? " name))))
-                                 (setq
-                                  build-settings
-                                  (build-settings-save-custom-group
-                                   'build
-                                   name
-                                   build-settings))
-                                 (unless
-                                     (rassoc
-                                      (cdr (list 'item :value name))
-                                      (widget-get build-settings-widget :args))
-                                   (widget-put
-                                    build-settings-widget
-                                    :args
-                                    (cons (list 'item :value name)
-                                          (widget-get build-settings-widget :args)))
-                                   (widget-put
-                                    build-settings-name-widget
-                                    :args
-                                    (cons (list 'item :value name)
-                                          (widget-get build-settings-name-widget :args))))
-                                 (customize-save-variable 'build-settings build-settings)
-                                 (message-or-box
-                                  "saved \"%s\" build-settings"
-                                  name))))
-                  "Save")
-    (widget-insert " ")
-    (setq build-settings-name-widget
-         (widget-create 'choice
-                        :tag "current build settings as"
-                        :value "default"
-                         :args
-                         (cons
-                          (list 'string :value "default")
-                          (mapcar
-                           (function
-                            (lambda (setting)
-                              (let ((name setting))
-                                (list 'item :value (car setting))))) 
-                           build-settings))
-;                       :notify (lambda (widget &rest ignore)
-;                                 (setq build-settings (widget-value widget)))
-                         ))
-    (widget-insert "Build settings are named build configurations allowing you to switch\nbetween them quickly, once you have set them up and saved them.  Please\nmake sure you have gone through all required customizations of the\nbuild process before you save them.  You may change existing settings\nat a later time, though.\n\n")
-    (widget-create 'push-button
-                  :notify (lambda (&rest ignore)
-                            (customize-browse 'build))
-                  "Browse Build Options ...")
-    (widget-insert "\nBrowse and customize any options of the build process according to\nyour current choices for the sources to build from and the tools to\nbuild with.\n")
-    (setq build-from-what-choice-widget
-         (widget-create 'choice
-                        :tag "Build from"
-                        :value build-from-what
-                        :notify (lambda (widget &rest ignore)
-                                  (setq build-from-what (widget-value widget))
-                                  (cond
-                                   ((string-equal build-from-what "CVS")
-                                    (widget-apply
-                                     build-from-cvs-button-widget
-                                     :activate)
-                                    (widget-apply
-                                     build-from-tarballs-button-widget
-                                     :deactivate))
-                                   ((string-equal build-from-what "Tarballs")
-                                    (widget-apply
-                                     build-from-cvs-button-widget
-                                     :deactivate)
-                                    (widget-apply
-                                     build-from-tarballs-button-widget
-                                     :activate))))
-                        '(item :value "CVS")
-                        '(item :value "Tarballs")))
-    (widget-insert
-     "Please decide now whether to build XEmacs from tarballs in .tar.gz\nformat or from CVS sources.  Using CVS is highly recommended.")
-    (widget-insert "\n\n")
-    (setq build-with-what-choice-widget
-         (widget-create 'choice
-                        :tag "Build with"
-                        :value build-with-what
-                        :notify (lambda (widget &rest ignore)
-                                  (setq build-with-what (widget-value widget)))
-                        '(item :value "GNU Tools")
-                        '(item :value "Microsoft Tools")
-                        ))
-    (widget-insert
-     "Furthermore, please specify whether you will build with GNU tools\nusing configure and make or Microsoft Tools using nt\\xemacs.mak and\nVC++ 4.0 or higher.")
-    (widget-insert "\n\n")
-    (setq
-     build-from-cvs-button-widget
-     (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (build-from-CVS))
-                   "Build XEmacs From CVS Now"))
-    (widget-insert "\n")
-    ;; Recommend installation of CVS or provide cvs version
-    ;; information.
-    (if build-cvs-available-p
-        (widget-insert (format "cvs -v returns this:\n%s\n" (cdr result)))
-      (widget-insert
-       "\n\nPlease install cvs, unless you want to build from our tarballs.\n"))
-    ;; Building XEmacs from tarballs.
-    (setq
-     build-from-tarballs-button-widget
-     (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (build-from-tarballs))
-                   "Build XEmacs From Tarballs Now"))
-    ;; Initialize these buttons according to `build-from-what'.
-    (cond
-     ((string-equal build-from-what "CVS")
-      (widget-apply
-       build-from-cvs-button-widget
-       :activate)
-      (widget-apply
-       build-from-tarballs-button-widget
-       :deactivate))
-     ((string-equal build-from-what "Tarballs")
-      (widget-apply
-       build-from-cvs-button-widget
-       :deactivate)
-      (widget-apply
-       build-from-tarballs-button-widget
-       :activate)))
-    (widget-insert
-     "\nProceed after you have chosen what sources to build from and what\ntools to build with.\n")
-;    (widget-browse-other-window build-settings-widget)
-    (use-local-map widget-keymap)
-    (widget-setup)
-    (custom-mode)
-    (goto-char (point-min))))
-
-;;}}}
-
-;;{{{ Build Compilation
-
-;;{{{ Compilation
-(make-variable-buffer-local
- 'compilation-finish-function)
-(make-variable-buffer-local
- 'compilation-exit-message-function)
-
-(setq
- compilation-finish-function
- 'build-compilation-finish-function
- compilation-exit-message-function
- (function build-compilation-exit-message-function))
-
-;;}}}
-
-(defun build-compilation-mode-hook ()
-  (set (make-local-variable 'auto-save-hook)
-       '(lambda ()
-          (message "Auto-saved %s\n" (buffer-name))))
-  (auto-save-mode 1)
-  (insert
-   (format
-    "Compilation started at %s %+.4d (%s)\n"
-    (current-time-string)
-    (/ (nth 0 (current-time-zone)) 36)
-    (nth 1 (current-time-zone)))))
-
-(defun build-compilation-finish-function (comp-buffer finish-string)
-  (message "Build Make finished in %s with status \"%s\"."
-           (buffer-name comp-buffer) finish-string))
-
-(defun build-compilation-exit-message-function (proc exit-msg)
-  (message "Build Make exited with proc status \"%s\", exit status \"%s\", exit message \"%s\"."
-           (process-status proc) (process-exit-status proc) exit-msg)
-  (cons exit-msg (process-exit-status proc)))
-
-;;}}}
-
-;;{{{ Build Configure
-
-(defconst build-configure-option-category
-  "^\\(\\S-+\\).+\\(options\\|features\\):$"
-  "REGEXP matching an XEmacs configuration option category in
-configure.usage")
-
-(defconst build-configure-option-paragraph
-  "^\\(--[a-zA-Z][-a-zA-Z0-9]+\\)\\(=\\(\\S-+\\)\\)?\\(\\s-+(\\*)\\)?\\s-+\\(\\(.+\\)\\(\n[ \t]+.+\\)*\\)$"
-  "REGEXP matching one XEmacs configuration option in
-configure.usage")
-
-(defun build-configure (&optional dir)
-  "Configure XEmacs according to the settings in customized group
-`build' and its members."
-  (interactive)
-  (if dir
-      (cd dir))
-  (let ((cmd
-         (format "sh configure%s"
-                 (mapconcat
-                  (function (lambda (e)
-                              (cond
-                               ((or (string= "" (rest e))
-                                    (string= "autodetected" (rest e))
-                                    (string= "defaulted" (rest e)))
-                                "")
-                               ((string= "yes" (rest e))
-                                (format " '%s'" (first e)))
-                               ((and
-                                 (string-match "\\`--without-\\(.+\\)\\'" (first e))
-                                 (string= "no" (rest e)))
-                                (format " '-with-%s'" (match-string 1 (first e))))
-                               (t
-                                (format " '%s=%s'" (first e) (rest e))))))
-                  (delete-duplicates
-                   build-configure-options :from-end t
-                   :test (lambda (a b)
-                           (string=
-                            (first a) (first b))))
-                  "")))
-        (compilation-mode-hook
-         'build-compilation-mode-hook)
-        (compilation-buffer-name-function
-         '(lambda (mode)
-            (generate-new-buffer-name
-             (cond
-              ((string-equal build-from-what "Tarballs")
-               (concat build-tarball-prefix "-configure.err"))
-              ((string-equal build-from-what "CVS")
-               (concat build-cvs-checkout-dir "-configure.err")))
-             ))))
-    (compile cmd)))
-
-;;; Functionality which was prototyped in co2cu.el:
-
-(defun build-configure-customize (a-list)
-  (mapcar
-   (lambda (cat)
-     (princ (format "(defgroup build-configure-%s nil\n" (first cat)))
-     (princ (format "  \"%s options.\"\n" (first cat)))
-     (princ "  :group 'build-configure)\n\n")
-     (list (first cat)
-           (mapcar
-            (lambda (opt)
-              (cond
-               ((or (member "TYPE[,TYPE]..." (second opt))
-                    (and (member "TYPE" (second opt))
-                         (string-match
-                          "list\\s-+of"
-                          (apply 'concat (fourth opt)))))
-                (build-configure-types cat opt)
-                )
-               ((member "TYPE" (second opt))
-                (build-configure-type cat opt)
-                )
-               ((member "FLAGS" (second opt))
-                (build-configure-string cat opt)
-                )
-               ;; compiler=XXXX prior to r21.0-b34
-               ((member "XXXX" (second opt))
-                (build-configure-file cat opt)
-                )
-               ;; compiler=prog after Martin Buchholz's configure
-               ;; mega-patch to r21.0-b34-pre2
-               ((member "prog" (second opt))
-                (build-configure-file cat opt)
-                )
-               ((member "VALUE" (second opt))
-                (build-configure-string cat opt)
-                )
-               ((member "DIR" (second opt))
-                (build-configure-dir cat opt)
-                )
-               ((member "LIB" (second opt))
-                (build-configure-file cat opt)
-                )
-               ((member "PATH" (second opt))
-                (build-configure-path cat opt)
-                )
-               ((or (null (second opt))
-                    (subsetp (second opt)
-                             '("no" "yes") :test 'string-equal))
-                (build-configure-type cat opt)
-                )
-               (t
-                (build-configure-type cat opt)
-                )
-               ))
-            (delete-duplicates
-             (cdr cat) :from-end t
-             :test (lambda (a b)
-                     (string=
-                      (first a) (first b)))))))
-   a-list))
-
-(defun build-configure-process-option (option value detected doc category a-list)
-  (let (prev-val prev-doc pos doc-vals)
-    (unless (null value)
-      (setq prev-val
-            (first (cdr (assoc option (assoc category a-list)))))
-      (setq prev-val
-            (append prev-val (list value))))
-    (setq detected
-          (or
-           (second (cdr (assoc option (assoc category a-list))))
-           (null (null detected))))
-    (setq prev-doc
-          (third (cdr (assoc option (assoc category a-list)))))
-    (unless (null doc)
-      (setq prev-doc (append prev-doc (list doc)))
-      (setq pos 0)
-      (setq doc-vals (concat (first prev-doc)))
-      (while (string-match "`\\(\\w+\\)'" doc pos)
-        (setq prev-val
-              (append prev-val (list (match-string 1 doc))))
-        (setq pos (match-end 0)))
-      (unless
-          (null
-           (string-match "\\([Vv]alid\\s-+types\\s-+are\\s-+\\|(\\)\\(\\(\\w+\\)\\(,\\s-*\\(\\(and\\|or\\)\\s-+\\)?\\(\\w+\\)\\)+\\)\\()\\|\\.\\)" doc 0))
-        (setq doc-vals (match-string 2 doc))
-        (setq pos 0)
-        (while
-            (string-match "\\(\\(,\\s-*\\(\\(and\\|or\\)\\s-+\\)?\\)?\\(\\w+\\)\\)" doc-vals pos)
-          (setq prev-val
-                (append prev-val (list (match-string 5 doc-vals))))
-          (setq pos (match-end 0)))))
-    (setcdr
-     (assoc category a-list)
-     (acons
-      option
-      (list prev-val detected prev-doc)
-      (cdr (assoc category a-list))))))
-
-(defun build-configure-generate (&optional file)
-  (interactive "fconfigure.usage file: ")
-  (unless file
-    (setq file
-          (expand-file-name
-           "configure.usage"
-           (cond
-            ((string-equal build-from-what "Tarballs")
-             (expand-file-name
-              build-tarball-prefix
-              build-tarball-dest))
-            ((string-equal build-from-what "CVS")
-             (expand-file-name
-              build-cvs-checkout-dir
-              build-cvs-checkout-parent-dir))))))
-  (let
-      (category categories option value detected doc build-configure-alist
-                (buffer "build-configure.el"))
-    (kill-buffer (get-buffer-create buffer))
-    (with-output-to-temp-buffer buffer
-      (save-window-excursion
-        (find-file-read-only file)
-        (build-configure-prolog file)
-        (goto-char (point-min))
-        (while (< (point) (point-max))
-          (cond
-           ((looking-at build-configure-option-paragraph)
-            (goto-char (match-end 0))
-            (build-configure-process-option
-             (match-string 1)
-             (match-string 3)
-             (match-string 4)
-             (match-string 5)
-             category
-             build-configure-alist))
-           ((looking-at build-configure-option-category)
-            (goto-char (match-end 0))
-            (setq category (match-string 1))
-            (setq build-configure-alist
-                  (append build-configure-alist (list (list category)))))
-           ;; We avoid matching a potentially zero-length string to
-           ;; avoid infinite looping.
-           ((looking-at
-             "^.+$")
-            (goto-char (match-end 0)))
-           ((looking-at "\n")
-            (goto-char (match-end 0)))))
-        (build-configure-customize build-configure-alist)
-;        (print build-configure-alist)
-        ))
-;    (set-buffer buffer)
-;    (switch-to-buffer (get-buffer-create name))
-    (kill-all-local-variables)
-    (lisp-mode)
-    (font-lock-mode 1)
-    (toggle-read-only 1)))
-
-(defun build-configure-string (cat opt)
-  (princ (format "(defcustom build-configure%s\n" (first opt)))
-  (princ "  \"\"\n")
-  (princ (format "  %S\n" (build-configure-fill-doc (fourth opt))))
-  (princ (format "  :group \'build-configure-%s\n" (first cat)))
-  (princ "  :type '(string)\n")
-  (princ "  :set 'build-configure-set-value)\n")
-  (princ "\n"))
-
-(defun build-configure-file (cat opt)
-  (princ (format "(defcustom build-configure%s\n" (first opt)))
-  (princ "  \"\"\n")
-  (princ (format "  %S\n" (build-configure-fill-doc (fourth opt))))
-  (princ (format "  :group \'build-configure-%s\n" (first cat)))
-  (princ "  :type '(file)\n")
-  (princ "  :set 'build-configure-set-value)\n")
-  (princ "\n"))
-
-(defun build-configure-dir (cat opt)
-  (princ (format "(defcustom build-configure%s\n" (first opt)))
-  (princ "  \"\"\n")
-  (princ (format "  %S\n" (build-configure-fill-doc (fourth opt))))
-  (princ (format "  :group \'build-configure-%s\n" (first cat)))
-  (princ "  :type '(directory)\n")
-  (princ "  :set 'build-configure-set-value)\n")
-  (princ "\n"))
-
-(defun build-configure-path (cat opt)
-  (princ (format "(defcustom build-configure%s\n" (first opt)))
-  (princ "  '()\n")
-  (princ (format "  %S\n" (build-configure-fill-doc (fourth opt))))
-  (princ (format "  :group \'build-configure-%s\n" (first cat)))
-  (princ "  :type '(repeat\n")
-  (princ "          :custom-show t\n")
-  (princ "          :documentation-shown t\n")
-  (princ "          (directory))\n")
-  (princ "  :set 'build-set-path)\n")
-  (princ "\n"))
-
-(defun build-configure-types (cat opt)
-  (princ (format "(defcustom build-configure%s\n" (first opt)))
-  (princ (format "  '(%S)\n"
-                 (if (third opt) "autodetected" "defaulted")))
-  (princ (format "  %S\n" (build-configure-fill-doc (fourth opt))))
-  (princ (format "  :group \'build-configure-%s\n" (first cat)))
-  (princ "  :type '(choice\n")
-  (if (third opt)
-      (princ "          (const (\"autodetected\"))\n")
-    (princ "          (const (\"defaulted\"))\n"))
-  (princ "          (const (\"no\"))\n")
-  (princ "          (set")
-  (mapc (lambda (e)
-          (princ (format "\n           (const %S)" e)))
-        (set-difference
-         (second opt)
-         '("no" "TYPE[,TYPE]..." "TYPE")
-         :test 'string=))
-  (princ "))\n")
-  (princ "  :set 'build-set-types)\n")
-  (princ "\n"))
-
-(defun build-configure-type (cat opt)
-  (princ (format "(defcustom build-configure%s\n" (first opt)))
-  (princ (format "  %S\n"
-                 (if (third opt) "autodetected" "defaulted")))
-  (princ (format "  %S\n" (build-configure-fill-doc (fourth opt))))
-  (princ (format "  :group \'build-configure-%s\n" (first cat)))
-  (princ "  :type '(choice\n")
-  (if (third opt)
-      (princ "          (const \"autodetected\")\n")
-    (princ "          (const \"defaulted\")\n"))
-  (princ "          (const \"no\")")
-  (if (subsetp (second opt) '("no" "yes") :test 'string-equal)
-      (princ "\n          (const \"yes\")")
-    (mapc (lambda (e)
-            (princ (format "\n          (const %S)" e)))
-          (set-difference
-           (second opt)
-           '("no" "TYPE[,TYPE]..." "TYPE")
-           :test 'string=)))
-  (princ ")\n")
-  (princ "  :set 'build-configure-set-value)\n")
-  (princ "\n"))
-
-(defun build-configure-fill-doc (doc)
-  (with-temp-buffer
-    (let ((sentence-end-double-space t)
-          (use-hard-newlines t)
-          (colon-double-space t))
-      (insert (mapconcat 'eval doc "  "))
-      (canonically-space-region (point-min) (point-max))
-      (fill-region (point-min) (point-max))
-      (goto-char (point-min))
-      (while (re-search-forward "\\s-+\\'" nil t)
-        (replace-match "" nil nil))
-      (buffer-string))))
-
-(defun build-configure-prolog (file)
-  (princ ";;; Produced from
-;;; ")
-  (princ file)
-  (princ "
-;;; by ")
-  (princ
-   ;; Make sure the RCS keyword Id does not end up in the output file,
-   ;; in case build.el is not `co -kv ...' or during development.
-   (with-temp-buffer
-     (insert build-version)
-     (while (re-search-backward "\\$" nil t)
-       (replace-match "" nil nil))
-     (buffer-string)))
-  (princ "\n;;; at\n;;; ")
-  (princ (format-time-string "%a %b %d %T %Z %Y"))
-  (princ "
-(provide 'build-configure)\n
-(setq build-configure-options nil)\n
-(defun build-configure-sym-to-opt (sym)
-  (substring (symbol-name sym) 15))\n
-(defun build-set-path (sym val)
-  (setq  build-configure-options
-        (acons (build-configure-sym-to-opt sym)
-               (mapconcat '(lambda (item) item) val \":\")
-               build-configure-options))
-  (set-default sym val))\n
-(defun build-set-types (sym val)
-  (setq build-configure-options
-       (acons (build-configure-sym-to-opt sym)
-              (mapconcat '(lambda (item) item) val \",\")
-              build-configure-options))
-  (set-default sym val))\n
-(defun build-configure-set-value (sym val)
-  (setq build-configure-options
-       (acons (build-configure-sym-to-opt sym) val
-              build-configure-options))
-  (set-default sym val))\n
-(defgroup build-configure nil
-  \"XEmacs Build Configuration.\"
-  :group 'build)\n
-"))
-
-;;}}}
-
-;;{{{ Build CVS
-
-(defvar build-cvs-available-p nil
-  "Internal variable keeping track whether CVS is available.")
-
-(defgroup build-cvs nil
-  "Standardizes the fetching of XEmacs from the CVS repository."
-  :group 'build)
-
-(defun build-cvs-get-branch-and-release-tags ()
-  "Retrieve all symbolic names (CVS tags) for XEmacs from version.sh."
-  (interactive)
-  (let*
-      (exit-status
-       (file "XEmacs/xemacs/version.sh")
-       (co-command
-        (list
-         "cvs" "-d" build-cvs-xemacs-repository "checkout" file))
-       (status-command
-        (list
-         "cvs" "-d" build-cvs-xemacs-repository "status" "-v" file))
-       infile
-       (buffer (list t t))
-       displayp
-       result
-       last-match-end
-       this-match-beginning
-       tags)
-    (with-temp-buffer
-      (cd (temp-directory))
-      (unless
-         (file-exists-p file)
-       (message-or-box
-        "build: checking out %s to determine cvs tags" file)
-       (setq result
-             (build-call-process co-command infile buffer displayp))
-       (cond
-        ((null (car result))
-         (warn "\nprogram %s cannot be found or executed\n"
-               (car co-command)))
-        ((/= (car result) 0)
-         (warn "\n%s\nfailed with following output:\n%s\n"
-               (mapconcat 'identity co-command " ")
-               (cdr result)))
-        (t
-         (message-or-box
-          "build: %s has been checked out" file))))
-      (message-or-box
-       "build: retrieving cvs tags from %s" file)
-      (setq result
-           (build-call-process status-command infile buffer displayp))
-      (cond
-       ((null (car result))
-       (warn "\nprogram %s cannot be found or executed\n"
-             (car status-command)))
-       ((/= (car result) 0)
-       (warn "\n%s\nfailed with following output:\n%s\n"
-             (mapconcat 'identity status-command " ")
-             (cdr result)))
-       (t
-       (message-or-box
-        "build: cvs tags have been retrieved from %s" file)))
-      (if
-         (setq this-match-beginning
-               (string-match "^\\s-+Existing Tags:\n" (cdr result)))
-         (setq last-match-end (match-end 0)))
-      (while
-         (and 
-          (setq this-match-beginning 
-                (string-match
-                 "\t\\(\\S-+\\)\\s-+\\(.*\\)\n" (cdr result) last-match-end))
-          (= last-match-end this-match-beginning))
-       (setq last-match-end (match-end 0))
-       (if last-match-end
-           (push (list
-                  (match-string 1 (cdr result))
-                  (match-string 2 (cdr result))) tags)))
-      (reverse tags))))
-
-(defun build-cvs-checkout-options-validate (sym val)
-  (cond
-   ((string-match "-\\(d\\|N\\)\\b" val)
-    (customize-set-value sym build-cvs-checkout-options)
-    (warn "cannot use -d and -N.  `build-cvs-checkout-dir' will be used as -d argument if set, else `build-cvs-xemacs-module' will be used.  The -N option is unsupported."))
-   (t
-    (build-cvs-set-var-and-update-buffer sym val))))
-
-(defun build-cvs-set-var-and-update-buffer (sym val)
-  "Internal function for build."
-  (set-default sym val)
-  (when (fboundp 'build-from-CVS)
-    (save-window-excursion
-      (save-excursion
-        (build-from-CVS)))))
-
-(defcustom build-cvs-checkout-options
-  "-P"
-  "CVS checkout command-line options to use for all CVS commands."
-  :type 'string
-  :set 'build-cvs-checkout-options-validate
-  :group 'build-cvs)
-
-(defcustom build-cvs-options
-  "-z3"
-  "CVS command-line options to use for all CVS commands."
-  :type 'string
-  :set 'build-cvs-set-var-and-update-buffer
-  :group 'build-cvs)
-
-(defcustom build-cvs-update-options
-  "-P -d"
-  "CVS update command-line options to use for all CVS commands."
-  :type 'string
-  :set 'build-cvs-set-var-and-update-buffer
-  :group 'build-cvs)
-
-(defcustom build-cvs-checkout-parent-dir
-  (temp-directory)
-  "The parent directory on the local host into which the
-`build-cvs-xemacs-module' will be checked out, named according to
-`build-cvs-checkout-dir'."
-  :type 'directory
-  :set 'build-cvs-set-var-and-update-buffer
-  :group 'build-cvs)
-
-(defconst build-cvs-xemacs-module
-  "xemacs"
-  "CVS XEmacs module name to be checked out.")
-
-(defvar build-cvs-checkout-dir
-  nil
-  "Internal variable updated from user variable
-  `build-cvs-working-dir-naming'.")
-
-(defcustom build-cvs-use-pcl-cvs
-  nil
-  "*Whether build is to use PCL-CVS, when available.
-Alternatively, build will run CVS commands via `compile'."
-  :type 'boolean
-  :set 'build-cvs-set-var-and-update-buffer
-  :group 'build-cvs)
-
-(defcustom build-cvs-xemacs-repository
-  ":pserver:cvs@cvs.xemacs.org:/pack/xemacscvs"
-  "CVS Repository where XEmacs can be checked out from."
-  :type 'string
-  :set 'build-cvs-set-var-and-update-buffer
-  :group 'build-cvs)
-
-(defcustom build-cvs-working-dir-naming
-  '(format "%s-%s"
-           build-cvs-xemacs-module
-           build-cvs-xemacs-release)
-  "The naming of the directory on the local host into which the
-`build-cvs-xemacs-module' will be checked out. Be aware that cvs
-checkout options -d and -N will affect the resulting directory
-structure.  Therefor these options are disallowed in
-`build-cvs-checkout-options'.  The -N option is not supported, in order
-to avoid unknown directory structures."
-  :type '(choice
-          (const :tag "Named after CVS MODULE" build-cvs-xemacs-module)
-          (const :tag "Named after RELEASE Tag" build-cvs-xemacs-release)
-          (const :tag "Named after MODULE-RELEASE"
-                 (format "%s-%s"
-                         build-cvs-xemacs-module
-                         build-cvs-xemacs-release))
-          (string :tag "Working Dir Named manually" ""))
-  :set 'build-cvs-set-var-and-update-buffer
-  :group 'build-cvs)
-
-(defcustom build-cvs-xemacs-release
-  "HEAD"
-  "CVS XEmacs release to be checked out.
-The list of available releases is updated via cvs, if installed, by
-`build-from-CVS'.  Use \"Specify Tag Name\" to fill in the name of a
-release tag not yet in the list of choices."
-  :type '(choice :custom-state t
-                 (string :tag "Unlisted Release Name" "")
-                 (const :tag "release-21-1 (branch: 1.165.2)" "release-21-1")
-                 (const :tag "release-21-4 (branch: 1.166.2)" "release-21-4")
-                 (const :tag "r21-5-9 (revision: 1.183)" "r21-5-9"))
-  :set 'build-cvs-set-var-and-update-buffer
-  :group 'build-cvs)
-
-(defun build-cvs-login ()
-  "Login to XEmacs CVS repository."
-  (interactive)
-  (unless (file-exists-p build-cvs-checkout-parent-dir)
-    (make-directory build-cvs-checkout-parent-dir t))
-  (cd build-cvs-checkout-parent-dir)
-  (let (exit-status
-        (command
-         (list
-          "cvs" build-cvs-options "-d" build-cvs-xemacs-repository "login"))
-        (file (make-temp-name (expand-file-name "cvs-login" (getenv "TEMP"))))
-        (buffer (list t t))
-        displayp)
-    (with-temp-file file (insert "cvs\n"))
-    (message-or-box "build: cvs login at cvs.xemacs.org, please wait")
-    (setq result
-          (build-call-process command file buffer displayp))
-    (cond
-     ((null (car result))
-      (setq build-cvs-available-p nil)
-      (warn "\nprogram %s cannot be found or executed\n"
-            (car command)))
-     ((/= (car result) 0)
-      (setq build-cvs-available-p nil)
-      (warn "\n%s\nfails with following output:\n%s\n"
-            (mapconcat 'identity command " ")
-            (cdr result)))
-     (t
-      (setq build-cvs-available-p t)
-      (message-or-box "build: cvs login succeeded")))
-    (delete-file file)))
-
-(defun build-cvs-checkout (&optional release-tag)
-  "Fetch XEmacs from the repository."
-  (interactive "sXEmacs Release Tag: ")
-  (unless (file-exists-p build-cvs-checkout-parent-dir)
-    (make-directory build-cvs-checkout-parent-dir t))
-  (cd build-cvs-checkout-parent-dir)
-  (let ((cmd
-         (format "cvs %s -d%s checkout %s -d %s%s %s"
-                 build-cvs-options
-                 build-cvs-xemacs-repository
-                 build-cvs-checkout-options
-                 build-cvs-checkout-dir
-                 (if (and release-tag
-                          (not (string-equal release-tag "")))
-                     (concat " -r " release-tag)
-                   "")
-                 build-cvs-xemacs-module))
-        (compilation-mode-hook
-         'build-compilation-mode-hook)
-        (compilation-buffer-name-function
-         '(lambda (mode)
-            (generate-new-buffer-name
-             (format "%s-cvs-checkout%s.err" build-cvs-checkout-dir
-                     (if (and release-tag
-                              (not (string-equal release-tag "")))
-                         (format "-%s" release-tag)
-                       ""))))))
-    (compile cmd)))
-
-(defun build-cvs-update (&optional release-tag)
-  "Update XEmacs from the repository to newest release or to release
-specified by RELEASE-TAG'."
-  (interactive "sXEmacs Release Tag: ")
-  (cd
-   (expand-file-name build-cvs-checkout-dir
-                     build-cvs-checkout-parent-dir))
-  (let ((cmd
-         (format "cvs %s update %s%s"
-                 build-cvs-options
-                 build-cvs-update-options
-                 (if (and release-tag
-                          (not (string-equal release-tag "")))
-                     (concat " -r " release-tag)
-                   " -A")
-                 ))
-        (compilation-mode-hook
-         'build-compilation-mode-hook)
-        (compilation-buffer-name-function
-         '(lambda (mode)
-            (generate-new-buffer-name
-             (concat build-cvs-checkout-dir "-cvs-update"
-                     (when (and release-tag
-                                (not (string-equal release-tag "")))
-                       (format "-%s" release-tag))
-                     ".err")))))
-    (cond
-     ((and
-       build-cvs-use-pcl-cvs
-       (featurep 'pcl-cvs))
-      (cvs-update
-       (expand-file-name build-cvs-checkout-dir
-                         build-cvs-checkout-parent-dir)
-       (split-string build-cvs-update-options "\\s-+")))
-     (t
-      (compile cmd)))))
-
-;;}}}
-
-;;{{{ Build From
-
-(defun build-from-CVS ()
-  (interactive)
-  (let
-      ((name
-        (format "*Build XEmacs From CVS With %s*" build-with-what)))
-    (kill-buffer (get-buffer-create name))
-    (switch-to-buffer (get-buffer-create name))
-    (kill-all-local-variables)
-    (unless (file-exists-p build-cvs-checkout-parent-dir)
-      (make-directory build-cvs-checkout-parent-dir t))
-    (cd build-cvs-checkout-parent-dir)
-    ;; #### FIXME build-cvs-checkout-dir is not driven by custom
-    ;; events as it should be!
-    (setq build-cvs-checkout-dir
-          (eval build-cvs-working-dir-naming))
-    (put 'build-cvs-xemacs-release 'custom-type
-         (append
-          '(choice
-            :custom-state t)
-          (cons
-           '(string :tag "Unlisted Release Name" "")
-           (mapcar
-            (function
-             (lambda (tag)
-               (list
-                'const
-                :tag (format "%s %s" (first tag) (second tag)) (first tag))))
-            (build-cvs-get-branch-and-release-tags)))))
-    (widget-insert "\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (let
-                                 ((buffer-back "*Build XEmacs*"))
-                               (if (buffer-live-p (get-buffer buffer-back))
-                                   (switch-to-buffer buffer-back)
-                                 (build))))
-                   "Go Back")
-    (widget-insert
-     "\nYou need to customize CVS options and then download a release\nof XEmacs.\n\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (customize-browse 'build-cvs))
-                   "Browse Build CVS Options ...")
-    (widget-insert "\n")
-    (widget-insert
-     (format "\t%+20s: %s\n" "Use Pcl Cvs"
-             (if build-cvs-use-pcl-cvs "Yes" "No")))
-    (widget-insert
-     (format "\t%+20s: \"%s\"\n" "XEmacs CVS Repository"
-             build-cvs-xemacs-repository))
-    (widget-insert
-     (format "\t%+20s: \"%s\"\n" "CVS Options"
-             build-cvs-options))
-    (widget-insert
-     (format "\t%+20s: \"%s\"\n" "Checkout Options"
-             build-cvs-checkout-options))
-    (widget-insert
-     (format "\t%+20s: \"%s\"\n" "Update Options"
-             build-cvs-update-options))
-    (widget-insert
-     (format "\t%+20s: \"%s\"\n" "XEmacs Module"
-             build-cvs-xemacs-module))
-    (widget-insert
-     (format "\t%+20s: \"%s\"\n" "XEmacs Release"
-             build-cvs-xemacs-release))
-    (widget-insert
-     (format "\t%+20s: %S\n" "Working Dir Naming"
-             build-cvs-working-dir-naming))
-    (widget-insert
-     (format "\t%+20s: \"%s\"\n" "Checkout Parent Dir"
-             build-cvs-checkout-parent-dir))
-    (widget-insert
-     (format "\t%+20s: \"%s\"\n" "Working Dir"
-             build-cvs-checkout-dir))
-    (widget-insert "\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (build-cvs-login))
-                   "CVS Login XEmacs")
-    (widget-insert "\n\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (build-cvs-checkout
-                              build-cvs-xemacs-release))
-                   "CVS Checkout XEmacs")
-    (widget-insert "\n\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (build-cvs-update
-                              build-cvs-xemacs-release))
-                   (format
-                    "CVS Update XEmacs To CVS Tag \"%s\""
-                    build-cvs-xemacs-release))
-    (widget-insert "\nor\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (build-cvs-update))
-                   "CVS Update To Latest XEmacs on Trunk")
-    (widget-insert "\nMake sure to \"Browse Build CVS Options ...\" first.\nChoose XEmacs release to be checked out.\nAlternatively you can simply get the latest sources on the trunk (not\non any branch).  This is always the latest XEmacs version under\ndevelopment.  As of 2002-03-14 the trunk is headed for XEmacs 21.5.\n\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (let
-                                 ((dir
-                                   (cond
-                                    ((string-equal build-with-what "GNU Tools")
-                                     (expand-file-name
-                                      build-cvs-checkout-dir
-                                      build-cvs-checkout-parent-dir))
-                                    ((string-equal build-with-what "Microsoft Tools")
-                                     (expand-file-name
-                                      "nt"
-                                      (expand-file-name
-                                       build-cvs-checkout-dir
-                                       build-cvs-checkout-parent-dir))))))
-                               (if
-                                   (file-directory-p
-                                    (file-name-as-directory dir))
-                                   (cond
-                                    ((string-equal build-with-what "GNU Tools")
-                                     (build-with-GNU dir))
-                                    ((string-equal build-with-what "Microsoft Tools")
-                                     (build-with-MS dir)))
-                                 (message-or-box "need to checkout to create %s?" dir))))
-                   (format "Build XEmacs With %s Now ..." build-with-what))
-    (use-local-map widget-keymap)
-    (widget-setup)
-    (custom-mode)
-    (goto-char (point-min))))
-
-(defun build-from-tarballs ()
-  (interactive)
-  (let
-      ((name
-        (format "*Build XEmacs From Tarballs With %s*" build-with-what)))
-    (kill-buffer (get-buffer-create name))
-    (switch-to-buffer (get-buffer-create name))
-    (kill-all-local-variables)
-    (cd build-tarball-dest)
-    (widget-insert "\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (let
-                                 ((buffer-back "*Build XEmacs*"))
-                               (if (buffer-live-p (get-buffer buffer-back))
-                                   (switch-to-buffer buffer-back)
-                                 (build))))
-                   "Go Back")
-    (widget-insert
-     "\nYou need to customize Tarball options and then download a beta/release\nversion of XEmacs.\n\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (customize-browse 'build-tarball))
-                   "Browse Build Tarball Options ...")
-    (widget-insert "\n\t")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (dired build-tarball-site))
-                   "Browse Build Tarball Site ...")
-    (widget-insert "\n\t")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (build-tarball-expand-all))
-                   "View Build Tarball Set ...")
-    (widget-insert "\n\t")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (build-tarball-get-all))
-                   "Download Build Tarball Set")
-    (widget-insert "\n\t")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (build-tarball-extract-all))
-                   "Install Downloaded Build Tarball Set")
-    (widget-insert "\n\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (cond
-                              ((string-equal build-with-what "GNU Tools")
-                               (build-with-GNU
-                                (expand-file-name
-                                 build-tarball-prefix
-                                 build-tarball-dest)))
-                              ((string-equal build-with-what "Microsoft Tools")
-                               (build-with-MS
-                                (expand-file-name
-                                 "nt"
-                                 (expand-file-name
-                                  build-tarball-prefix
-                                  build-tarball-dest))))))
-                   (format "Build XEmacs With %s Now ..." build-with-what))
-    (use-local-map widget-keymap)
-    (widget-setup)
-    (custom-mode)
-    (goto-char (point-min))))
-
-;;}}}
-
-;;{{{ Build Tarballs
-
-(defgroup build-tarball nil
-  "Standardized the fetching of XEmacs beta/release tarballs."
-  :group 'build)
-
-(defcustom build-tarball-dest
-  (temp-directory)
-  "The destination directory on the local host the `build-tarball-set'
-will be deposited in."
-  :type 'directory
-  :group 'build-tarball)
-
-(defcustom build-tarball-dir
-  "beta"
-  "The sub-directory under `build-tarball-site' in which the
-`build-tarball-set' is located."
-  :type '(choice
-          :custom-state t
-          (const "beta")
-          (const "gamma")
-          (const "stable"))
-  :group 'build-tarball)
-
-(defcustom build-tarball-prefix
-  "xemacs-21.5.6"
-  "The prefix shared among all of the `build-tarball-set'.  This makes
-it easy to switch over from one beta/gamma/stable release tarball set
-to the next,
-e.g. from \"xemacs-21.5.5\" to \"xemacs-21.5.6\"."
-  :type 'string
-  :group 'build-tarball)
-
-(defcustom build-tarball-set
-  nil
-  "The set of final name components of XEmacs tarballs you wish to
-fetch."
-  :type'(set
-         (const :tag "XEmacs byte-compiled lisp tarball" "-elc.tar.gz")
-         (const :tag "XEmacs byte-compiled lisp tarball signature" "-elc.tar.gz.asc")
-         (const :tag "XEmacs info tarball" "-info.tar.gz")
-         (const :tag "XEmacs info tarball signature" "-info.tar.gz.asc")
-         (const :tag "XEmacs Mule tarball" "-mule.tar.gz")
-         (const :tag "XEmacs Mule tarball signature" "-mule.tar.gz.asc")
-         (const :tag "XEmacs source tarball" ".tar.gz")
-         (const :tag "XEmacs source tarball signature" ".tar.gz.asc")
-         (repeat
-          :custom-show t
-          :documentation-shown t
-          (string "")))
-  :group 'build-tarball)
-
-(defcustom build-tarball-site
-  "/ftp@ftp.xemacs.org:/pub/xemacs/"
-  "The EFS path to a top-level XEmacs directory to fetch the XEmacs
-  `build-tarball-set' from.
-The list of available sites is dynamically generated based on
-`package-get-download-sites'.  In addition you may set the value to a
-manually chosen EFS path."
-  :link '(url-link :tag "XEmacs Download Locations"
-                   "http://www.xemacs.org/Download/")
-  :type (append
-         '(choice :custom-state t)
-         (cons
-          '(directory :tag "EFS Path" "/user@host.domain:/directory/")
-          (remove
-           nil
-           (mapcar
-            (function
-             (lambda (entry)
-               (let (comment host path efs-path)
-                 (setq comment (nth 0 entry)
-                       host (nth 1 entry)
-                       path (nth 2 entry))
-                 (when
-                     (and host
-                          (not (string-equal comment "Pre-Releases")))
-                   (setq efs-path (format "/ftp@%s:/%s" host path))
-                   (list
-                    'const
-                    :tag (format "%s - %s" efs-path comment)
-                    (file-name-directory efs-path))))))
-            package-get-download-sites))))
-  :group 'build-tarball)
-
-(defun build-tarball-expand (item)
-  (let ((prfx
-         (expand-file-name
-          build-tarball-prefix
-          (concat build-tarball-site build-tarball-dir))))
-    (concat prfx item)))
-
-(defun build-tarball-collapse (item)
-  (let ((str
-         (concat build-tarball-site build-tarball-dir build-tarball-prefix)))
-    (string-match str item)
-    (replace-match "" t t item)))
-
-(defun build-tarball-get (file)
-  (if (not (featurep 'efs))
-      (message-or-box
-       "please install efs to be able to \"Download Build Tarball Set\".")
-    (let ((efs-mode-hook
-           '(lambda ()
-              (set (make-local-variable 'efs-expire-ftp-buffers) nil)
-              (set (make-local-variable 'auto-save-hook)
-                   '(lambda ()
-                      (message "Auto-saved %s\n" (buffer-name))))
-              (auto-save-mode 1))))
-      (efs-copy-file
-       (build-tarball-expand file)
-       (concat
-        (expand-file-name
-         build-tarball-prefix build-tarball-dest)
-        file)
-       1 nil t))))
-
-(defun build-tarball-extract (file)
-  (cd build-tarball-dest)
-  (let ((cmd
-         (format "gunzip -c %s%s | tar -xvf -" build-tarball-prefix file))
-        (compilation-mode-hook
-         'build-compilation-mode-hook)
-        (compilation-buffer-name-function
-         '(lambda (mode)
-            (generate-new-buffer-name
-             (concat
-              (file-name-sans-extension
-               (file-name-sans-extension
-                (concat build-tarball-prefix file))) "-toc.err"))))
-        )
-    (if (string-match "tar\\.gz$" file)
-        (compile cmd)
-      (warn "%s is not a tar.gz file, skipped."
-            (concat build-tarball-prefix file)))))
-
-(defun build-tarball-get-all ()
-  "Get all the expanded files of `build-tarball-set'.
-Use `build-tarball-expand-all' to find out which tarballs would be
-fetched by this function.  All tarballs are saved under
-`build-tarball-dest'"
-  (interactive)
-  (mapc 'build-tarball-get build-tarball-set))
-
-(defun build-tarball-extract-all ()
-  "Extract all files from the locally present `build-tarball-set' which
-have to be in \".tar.gz\" format."
-  (interactive)
-  (mapc 'build-tarball-extract build-tarball-set))
-
-(defun build-tarball-expand-all ()
-  "Print the expanded value of `build-tarball-set' to temporary buffer
-\"*Build Tarball Set*\"."
-  (interactive)
-  (cd build-tarball-dest)
-  (with-output-to-temp-buffer
-      "*Build Tarball Set*"
-    (princ (mapconcat 'build-tarball-expand build-tarball-set "\n"))))
-
-(defun build-tarball-add-url ()
-  "Add URL near point to `build-tarball-set' via
-`url-get-url-at-point'."
-  (interactive)
-  (setq build-tarball-set (cons (url-get-url-at-point) build-tarball-set)))
-
-;;}}}
-
-;;{{{ Build With
-
-(defvar build-with-MS-has-config-inc
-  nil
-  "Internal variable indicating whether the XEmacs to be built has
-support for config.inc.")
-
-(defgroup build-with-MS nil
-  "Standardizes the building of XEmacs with MiroSoft tools."
-  :group 'build)
-
-(defcustom build-with-MS-make-command
-  "nmake"
-  "Path of Microsoft make utility used to build XEmacs."
-  :type 'file
-  :group 'build-with-MS)
-
-(defcustom build-with-MS-make-options
-  '("/f xemacs.mak")
-  "Options to use with Microsoft make utility when building XEmacs."
-  :type '(repeat string)
-  :group 'build-with-MS)
-
-(defun build-with-GNU (dir)
-  (interactive)
-  (let
-      ((name "*Build XEmacs With GNU Tools*"))
-    ;; Overwrite any customized setting for this build session so
-    ;; that build-report will find the right information.
-    (customize-set-variable
-     'build-report-installation-file
-     (expand-file-name "Installation" dir))
-    (customize-set-variable
-     'build-report-version-file
-     (expand-file-name "version.sh" dir))
-    (kill-buffer (get-buffer-create name))
-    (switch-to-buffer (get-buffer-create name))
-    (kill-all-local-variables)
-    (cd dir)
-    (widget-insert "\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (let
-                                 (buffer-back get-back)
-                              (cond
-                               ((string-equal build-from-what "Tarballs")
-                                (setq buffer-back "*Build XEmacs From Tarballs With GNU Tools*")
-                                (setq get-back 'build-from-tarballs))
-                               ((string-equal build-from-what "CVS")
-                                (setq buffer-back "*Build XEmacs From CVS With GNU Tools*")
-                                (setq get-back 'build-from-CVS)))
-                               (if (buffer-live-p (get-buffer buffer-back))
-                                   (switch-to-buffer buffer-back)
-                                 (funcall get-back))))
-                   "Go Back")
-    (widget-insert "\n\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (build-configure-generate "configure.usage"))
-                   "Generate Build Configure")
-    (widget-insert "\n\t")
-    (widget-apply
-     (widget-create 'push-button
-                    :notify (lambda (&rest ignore)
-                              (eval-buffer "build-configure.el"))
-                    "Activate Generated Build Configure")
-     (if (boundp 'build-configure-options)
-         :deactivate
-       :activate))
-    (when (boundp 'build-configure-options)
-      (widget-insert
-       "\n\tYou will need to restart XEmacs first if you want to activate the\n\tgenerated interface to Build Make again."))
-    (widget-insert "\n\t")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (customize-browse 'build-configure))
-                   "Browse Build Configure ...")
-    (widget-insert "\n\t")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (build-configure))
-                   "Run XEmacs Configure")
-    (widget-insert "\n\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (build-make-generate))
-                   "Generate XEmacs Make")
-;    (widget-insert "\n\t")
-;    (widget-create 'push-button
-;                 :notify (lambda (&rest ignore)
-;                           (customize-browse 'build-make))
-;                 "Browse Build-Make")
-    (widget-insert "\n\t")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (call-interactively 'build-make))
-                   "Run XEmacs Make")
-    (widget-insert "\n\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (build-build-report))
-                   "Generate XEmacs Build Report ...")
-    (widget-insert "\n\n")
-    (use-local-map widget-keymap)
-    (widget-setup)
-    (custom-mode)
-    (goto-char (point-min))))
-
-(defun build-with-MS (dir)
-  (interactive "DXEmacs source directry: ")
-  (let
-      ((name "*Build XEmacs With Microsoft Tools*"))
-    ;; Overwrite any customized setting for this build session so
-    ;; that build-report will find the right information.
-    (customize-set-variable
-     'build-report-installation-file
-     (expand-file-name
-      "Installation"
-      (expand-file-name
-       ".."
-       dir)))
-    (customize-set-variable
-     'build-report-version-file
-     (expand-file-name
-      "version.sh"
-      (expand-file-name
-       ".."
-       dir)))
-    (setq build-with-MS-has-config-inc
-          (multiple-value-bind
-              (major minor beta codename)
-              (build-report-version-file-data
-               build-report-version-file)
-            ;; APA: config.inc file was introduced by Ben Wing in 21.2-b32.
-            (if
-                (and
-                 (>= (string-to-int major) 21)
-                 (or
-                  ;; 21.2 versions >= b32
-                  (and
-                   (= (string-to-int minor) 2)
-                   (>= (string-to-int beta) 32))
-                  ;; 21 versions with minor number > 2
-                  (> (string-to-int minor) 2)))
-                t
-              nil)))
-    (kill-buffer (get-buffer-create name))
-    (switch-to-buffer (get-buffer-create name))
-    (kill-all-local-variables)
-    (cd (expand-file-name "" dir))
-    (widget-insert "\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (let
-                                 (buffer-back get-back)
-                              (cond
-                               ((string-equal build-from-what "Tarballs")
-                                (setq buffer-back "*Build XEmacs From Tarballs With Microsoft Tools*")
-                                (setq get-back 'build-from-tarballs))
-                               ((string-equal build-from-what "CVS")
-                                (setq buffer-back "*Build XEmacs From CVS With Microsoft Tools*")
-                                (setq get-back 'build-from-CVS)))
-                               (if (buffer-live-p (get-buffer buffer-back))
-                                   (switch-to-buffer buffer-back)
-                                 (funcall get-back))))
-                   "Go Back")
-    (widget-insert "\n")
-    (widget-insert
-     "\nYou need to customize Microsoft Tools options.\n\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (customize-browse 'build-with-MS))
-                   "Browse Build With MS Options ...")
-    (widget-insert "\n\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (build-make-generate "xemacs.mak"))
-                   "Generate XEmacs Make")
-    (widget-insert "\n\t")
-    (widget-apply
-     (widget-create 'push-button
-                    :notify (lambda (&rest ignore)
-                              (eval-buffer "build-make.el"))
-                    "Activate Generated Build Make")
-     (if (boundp 'build-make-options)
-         :deactivate
-       :activate))
-    (when (boundp 'build-make-options)
-      (widget-insert
-       "\n\tYou will need to restart XEmacs to activate\n\tthe generated interface to Build Make again."))
-    (widget-insert "\n\t")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (customize-browse 'build-make))
-                   "Browse Build Make ...")
-    (widget-insert "\n\t")
-    (widget-apply
-     (widget-create 'push-button
-                    :notify (lambda (&rest ignore)
-                              (eval-buffer "build-make.el")
-                              (build-config-inc-generate))
-                    "Generate config.inc")
-     (if build-with-MS-has-config-inc
-         :activate
-       :deactivate))
-    (widget-insert
-     "\n\tXEmacs versions prior to 21.2-b32 do not use config.inc.\n\tThose are configured by passing all variable values to nmake\n\ton the command-line.\n\nDon't forget to save config.inc before building!")
-    (widget-insert "\n\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (build-make
-                              "distclean"
-                              (mapconcat
-                               'identity
-                               (cons
-                                build-with-MS-make-command
-                                build-with-MS-make-options)
-                               " ")))
-                   "Clean XEmacs Distribution")
-    (widget-insert "\n\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (build-make
-                              "all"
-                              (concat
-                               (mapconcat
-                                'identity
-                                (cons
-                                 build-with-MS-make-command
-                                 build-with-MS-make-options)
-                                " ")
-                               (unless build-with-MS-has-config-inc
-                                 (build-make-get-option-string)))))
-                   "Build XEmacs")
-    (widget-insert "\n\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (build-make
-                              "install"
-                              (concat
-                               (mapconcat
-                                'identity
-                                (cons
-                                 build-with-MS-make-command
-                                 build-with-MS-make-options)
-                                " ")
-                               (unless build-with-MS-has-config-inc
-                                 (build-make-get-option-string)))))
-                   "Build and Install XEmacs")
-    (widget-insert "\n\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (build-make
-                              "check-temacs"
-                              (concat
-                               (mapconcat
-                                'identity
-                                (cons
-                                 build-with-MS-make-command
-                                 build-with-MS-make-options)
-                                " ")
-                               (unless build-with-MS-has-config-inc
-                                 (build-make-get-option-string)))))
-                   "Check temacs (XEmacs before dumping)")
-    (widget-insert "\n\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (build-make
-                              "check"
-                              (concat
-                               (mapconcat
-                                'identity
-                                (cons
-                                 build-with-MS-make-command
-                                 build-with-MS-make-options)
-                                " ")
-                               (unless build-with-MS-has-config-inc
-                                 (build-make-get-option-string)))))
-                   "Check XEmacs")
-    (widget-insert "\n\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (build-build-report))
-                   "Generate XEmacs Build Report ...")
-    (widget-insert "\n\n")
-    (use-local-map widget-keymap)
-    (widget-setup)
-    (custom-mode)
-    (goto-char (point-min))))
-
-;;}}}
-
-;;{{{ Build Report
-
-(defun build-build-report ()
-  (interactive)
-  (let
-      ((name "*Generate XEmacs Build Report*"))
-    (kill-buffer (get-buffer-create name))
-    (switch-to-buffer (get-buffer-create name))
-    (widget-insert "\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (let
-                                 (buffer-back get-back dir)
-                              (cond
-                               ((string-equal build-with-what "GNU Tools")
-                                (setq buffer-back "*Build XEmacs With GNU Tools*")
-                                (setq get-back 'build-with-GNU))
-                               ((string-equal build-with-what "Microsoft Tools")
-                                (setq buffer-back "*Build XEmacs With Microsoft Tools*")
-                                (setq get-back 'build-with-MS)))
-                              (cond
-                               ((string-equal build-from-what "Tarballs")
-                                (setq dir
-                                      (expand-file-name
-                                       build-tarball-prefix
-                                       build-tarball-dest)))
-                               ((string-equal build-from-what "CVS")
-                                (setq dir
-                                      (expand-file-name
-                                       build-cvs-checkout-dir
-                                       build-cvs-checkout-parent-dir))))
-                               (if (buffer-live-p (get-buffer buffer-back))
-                                   (switch-to-buffer buffer-back)
-                                 (funcall get-back dir))))
-                   "Go Back")
-    (widget-insert "\n\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (customize-browse 'build-report))
-                   "Browse Build Report ...")
-    (widget-insert "\n\nYou may need to customize Build Report options in order to find all\ninformation created by your last building of XEamcs.\n\n")
-    (widget-create 'push-button
-                   :notify (lambda (&rest ignore)
-                             (call-interactively 'build-report))
-                   "Generate Build Report ...")
-    (widget-insert "\n")
-    (use-local-map widget-keymap)
-    (widget-setup)
-    (custom-mode)
-    (goto-char (point-min))))
-
-;;}}}
-
-;;{{{ Build Make
-
-(defvar build-make-alist
-  nil
-  "Internal variable keeping track of makefile macros and targets")
-
-(defconst build-make-target-doc-paragraph
-  "^##\\s-*make\\s-+\\([^
-       ]+\\(\\s-+or\\s-+make\\s-+\\([^
-       ]+\\)\\)*\\)\\(\\s-*\\(\\(.*\\)\\(\n##\\s-\\{3,\\}.+\\)*\\)\\)$"
-  "Internal REGEXP matching a XEmacs makefile target comment.  These comments
-don't exist in `xemacs.mak'")
-
-(defconst build-make-target-paragraph
-  "\\(^#.+
-\\)?\\(\\(\\w\\|_\\)+\\)\\s-*:.*"
-  "Internal REGEXP matching a XEmacs makefile target name.")
-
-(defconst build-make-macro-paragraph
-  "^\\(?:!message Please specify root directory for your .* installation: \\)?\\(\\(\\w\\|_\\)+\\)\\s-*=\\s-*\\(\\(.*\\\\
-\\)*.+\\)$"
-  "Internal REGEXP matching a XEmacs makefile macro definition.")
-
-(defconst build-make-prolog
-  "
-(provide 'build-make)
-
-(setq build-make-options nil)
-
-(defun build-make-sym-to-opt (sym)
-  ;; #### Strip the \"build-make-\" prefix.
-  (substring (symbol-name sym) 11))
-
-(defun build-make-set-value (sym val)
-  (setq build-make-options
-        (remassoc (build-make-sym-to-opt sym) build-make-options))
-  (unless (equal val (first (get sym 'standard-value)))
-    (setq build-make-options
-          (acons (build-make-sym-to-opt sym) val
-                 build-make-options)))
-  (set-default sym val))
-
-(defgroup build-make nil
-  \"build-make options.\"
-  :group 'build)
-
-"
-  "Internal variable of `build'.")
-
-(defun build-config-inc-generate (&optional dir)
-  (interactive)
-  (let
-      ((buffer (buffer-name (generate-new-buffer "config.inc"))))
-    (if dir
-        (cd dir))
-    (with-output-to-temp-buffer buffer
-      (save-window-excursion
-        (princ "# -*- mode: makefile -*-\n")
-        (princ (format "# generated by %s" build-version))
-        (princ "\n\n")
-        (princ
-         (if (boundp 'build-make-options)
-             (mapconcat
-              (function (lambda (e)
-                          (cond
-                           (t
-                            (format "%s=%s\n" (first e) (rest e))))))
-              (sort
-               (delete-duplicates
-                build-make-options :from-end t
-                :test (lambda (a b)
-                        (string=
-                         (first a) (first b))))
-               (lambda (a b)
-                 (string<
-                  (first a) (first b))))
-              "")
-           ""))
-        ))
-    (set-buffer buffer)
-    (kill-all-local-variables)
-    (makefile-mode)
-    (font-lock-mode 1)
-    (toggle-read-only 1)))
-
-(defun build-make (&optional target command)
-  "Build the XEmacs target argument according to the settings in
-customized group `build' and its members."
-  (interactive "sTarget: \nsCommand: ")
-  (let ((cmd
-         (if (string-equal command "")
-             (format "make %s" target)
-           (format "%s %s" command target)))
-        (compilation-mode-hook
-         'build-compilation-mode-hook)
-        (compilation-buffer-name-function
-         '(lambda (mode)
-            (generate-new-buffer-name
-             (format "%s-make%s.err"
-                     (cond
-                      ((string-equal build-from-what "Tarballs")
-                       build-tarball-prefix)
-                      ((string-equal build-from-what "CVS")
-                       build-cvs-checkout-dir))
-                     (if target
-                         (format "-%s" target)
-                       ""))))))
-    (compile cmd)))
-
-(defun build-make-generate (&optional file)
-  (interactive "fMakefile: ")
-  (setq build-make-alist (list (cons 'macros nil) (cons 'targets nil)))
-  (unless file
-    (setq file
-          (expand-file-name
-           "Makefile.in"
-           (cond
-            ((string-equal build-from-what "Tarballs")
-             (expand-file-name
-              build-tarball-prefix
-              build-tarball-dest))
-            ((string-equal build-from-what "CVS")
-             (expand-file-name
-              build-cvs-checkout-dir
-              build-cvs-checkout-parent-dir))))))
-  (let
-      (category categories option value detected doc
-                (buffer "build-make.el"))
-    (with-output-to-temp-buffer buffer
-      (save-window-excursion
-        (find-file-read-only file)
-;      (build-make-prolog file)
-        (goto-char (point-min))
-        (while (< (point) (point-max))
-          (cond
-           ((looking-at build-make-target-doc-paragraph)
-            (goto-char (match-end 0))
-            (build-make-process-target-doc
-             ;; target [or target ...]
-             (match-string 1)
-             ;; documentation for current targets; possibly
-             ;; spreading multiple lines.
-             (match-string 5)
-             build-make-alist))
-           ((looking-at build-make-target-paragraph)
-            (goto-char (match-end 0))
-            (when (> (length (match-string 1)) 0)
-              (build-make-process-target-doc
-               ;; target name
-               (match-string 2)
-               ;; documentation for target; possibly
-               ;; spreading multiple lines.
-               (match-string 1)
-               build-make-alist))
-            )
-           ((looking-at build-make-macro-paragraph)
-            (goto-char (match-end 0))
-;          (unless (string-match "\\$" (match-string 3))
-            (build-make-process-macro
-             ;; macro name
-             (match-string 1)
-             ;; macro value
-             (match-string 3)
-             build-make-alist))
-;          )
-           ((looking-at
-             "^.+$")
-            (goto-char (match-end 0)))
-           ((looking-at "\n")
-            (goto-char (match-end 0)))
-           ))
-        (build-make-customize build-make-alist)
-        ))
-    (set-buffer buffer)
-    (insert "(setq build-make-alist (quote")
-;    (cl-prettyprint (nreverse build-make-alist))
-    (cl-prettyprint build-make-alist)
-    (insert "))\n")
-    (toggle-read-only 1)))
-
-(defun build-make-get-option-string ()
-  (if (boundp 'build-make-options)
-      (mapconcat
-       (function (lambda (e)
-                   (cond
-                    (t
-                     (format " %s=\"%s\"" (first e) (rest e))))))
-       (delete-duplicates
-        build-make-options :from-end t
-        :test (lambda (a b)
-                (string=
-                 (first a) (first b))))
-       "")
-    ""))
-
-(defun build-make-process-target-doc (targets doc a-list)
-  (setq targets (replace-in-string targets "or\\(\n\\|\\s-\\)+make" ""))
-  (setq doc (replace-in-string doc "##?\\s-+" ""))
-  (setq doc (build-configure-fill-doc (list doc)))
-  (setcdr (assoc 'targets a-list)
-          (append (list (list targets doc)) (cdr (assoc 'targets a-list)))))
-
-(defun build-make-process-macro (name value a-list)
-  (unless (assoc name (assoc 'macros a-list))
-    (setcdr (assoc 'macros a-list)
-            (append (list (list name value)) (cdr (assoc 'macros a-list))))))
-
-(defun build-make-customize (a-list)
-  (princ build-make-prolog)
-  (mapcar
-   (lambda (macro)
-     (if (string-match "_DIR\\'" (first macro))
-         (build-make-file (first macro) (second macro))
-       (build-make-string (first macro) (second macro))))
-   (rest (assoc 'macros a-list))))
-
-(defun build-make-string (name val)
-  (princ (format "(defcustom build-make-%s\n" name))
-  (princ (format "  %S\n" val))
-  (princ (format "  \"macro %s\"\n" name))
-  (princ (format "  :group \'build-make\n"))
-  (princ "  :type 'string\n")
-  (princ "  :set 'build-make-set-value)\n")
-  (princ "\n"))
-
-(defun build-make-file (name val)
-  (princ (format "(defcustom build-make-%s\n" name))
-  (princ (format "  %S\n" val))
-  (princ (format "  \"macro %s\"\n" name))
-  (princ (format "  :group \'build-make\n"))
-  (princ "  :type 'file\n")
-  (princ "  :set 'build-make-set-value)\n")
-  (princ "\n"))
-
-;;}}}
-
-;;{{{ Build Settings
-
-(defcustom build-settings
-  nil
-  "Internal alist of named settings for building multiple XEmacs
-configurations.
-This variable is updated via \"Delete\", Load\", and \"Save\" buttons
-of the `build' GUI."
-  :type 'sexp
-  :group 'build)
-
-(defun build-settings-save-custom-group (group key alist)
-  "Save customization values of custom GROUP as value of KEY in ALIST"
-  (dolist
-      (cgm (custom-group-members group nil))
-    (let ((symbol (first cgm))
-         (type (second cgm)))
-      (cond
-       ((equal type 'custom-group)
-       (setq alist (build-settings-save-custom-group symbol key alist)))
-       (t
-       (unless
-           (assoc key alist)
-         (setq alist
-               (acons key nil alist)))
-       (if (get symbol 'customized-value)
-           (setcdr
-            (assoc key alist)
-            (append
-             (cdr
-              (assoc key alist))
-             (list
-              (list symbol (car
-                            (get symbol 'customized-value)))))))))))
-  alist)
-
-(defun build-settings-load (key alist)
-  "Load build variable settings from alist."
-  (interactive)
-  (dolist
-      (var (cdr (assoc key alist)))
-    (message "%S\n\t%S" (car var) (car (cdr var)))
-    (set (car var) (eval (car (cdr var))))
-    ))
-
-;;}}}
-
-;; build.el ends here
diff --git a/xemacs-packages/build/build.texi b/xemacs-packages/build/build.texi
deleted file mode 100644 (file)
index dd5d5ef..0000000
+++ /dev/null
@@ -1,578 +0,0 @@
-\input texinfo   @c -*-texinfo-*-
-@c %**start of header
-@setfilename build.info
-@settitle XEmacs Build Reference Manual
-@dircategory Emacs
-@direntry
-* Build: (build).      Build XEmacs from within (UNIX, Windows).
-@end direntry
-@c footnotestyle separate
-@c paragraphindent 2
-@c %**end of header
-@setchapternewpage odd
-@ifinfo
-This document describes the XEmacs package called build.
-Copyright @copyright{} 2000-2002 Adrian Aichner.
-@end ifinfo
-
-@c @c Combine indices.
-@c @synindex cp fn
-@c @syncodeindex vr fn
-@c @syncodeindex ky fn
-@c @syncodeindex pg fn
-@c @syncodeindex tp fn
-
-@titlepage
-@c @sp 10
-@c @comment The title is printed in a large font.
-@c @center @titlefont{Build}
-@c @c The following two commands start the copyright page.
-@c @page
-@c @vskip 0pt plus 1filll
-@c Copyright @copyright{} 2000-2002 Adrian Aichner.
-@title XEmacs Build Reference Manual
-@subtitle Version 2.00 (for XEmacs 21.1, 21.4, 21.5), dated 2002-03-07
-
-@author by Adrian Aichner
-@page
-@vskip 0pt plus 1filll
-@sp 2
-@c Version 3.3 @*
-@c Revised for XEmacs Versions 21.0,@*
-@c April 1998.@*
-
-Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice are
-preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-section entitled ``GNU General Public License'' is included
-exactly as in the original, and provided that the entire resulting
-derived work is distributed under the terms of a permission notice
-identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that the section entitled ``GNU General Public License'' may be
-included in a translation approved by the Free Software Foundation
-instead of in the original English.
-@end titlepage
-@node Top, Build Overview, , (dir)
-@comment node-name, next,          previous, up
-@chapter Build Package
-
-This is the XEmacs Build Reference Manual, Version 2.00 (for XEmacs
-21.1, 21.4, 21.5), dated 2002-03-07, by @email{adrian@@xemacs.org,
-Adrian Aichner}.
-
-@menu
-* Build Overview::                    Overview of build package
-* Build Installation::                Installation of the build package
-* Build XEmacs::                      Choosing source and tools          
-* Build XEmacs From CVS::             Fetching sources with CVS
-* Build XEmacs From Tarballs::        Fetching source tarballs with EFS
-* Build XEmacs With GNU Tools::       UNIX-style build using configure, make
-* Build XEmacs With Microsoft Tools:: Microsoft build using MS VC++ >= 4.0
-* Generate XEmacs Build Report::      Reporting Success or Failure
-* Known Problems of Build::           Problems, Workarounds, and Fixes
-* Concept Index::                     An item for each concept
-@end menu
-
-@node Build Overview, Build Installation, Top, (dir)
-@comment node-name,     next,          previous, up
-@chapter Build Overview
-@cindex What build is
-
-@code{build} supports the building process of the XEmacs editor from its
-sources.
-
-@cindex XEmacs build process
-
-The build process consists of following steps:
-
-@enumerate
-
-@item
-Download source code from FTP server or CVS repository.
-
-@item
-Configure any attributes of the build process, of the resulting XEmacs
-executable, and of the XEmacs environment.
-
-@item
-Start the make process to build XEmacs, install it, and run the
-regression tests.
-
-@item
-Report on the success or failure of the build, using build-report.
-
-@end enumerate
-
-The @code{build} command generates a widget-based interface to configure
-and build XEmacs either using GNU Tools (@code{configure}, @code{make})
-or Microsoft Tools (@code{nmake} with command-line options (<= 21.2-b32)
-or @file{config.inc} configuration file (> 21.2-b32)).
-
-@node Build Installation, Build XEmacs, Build Overview, (dir)
-@comment node-name,     next,          previous, up
-@chapter Build Installation
-@cindex How to install build
-
-You have following three choices to install build (@pxref{Installing
-Packages, Installing Packages, , xemacs}):
-
-@enumerate
-
-@item
-Use the package GUI:
-
-@itemize @bullet
-
-@item
-In XEmacs Release 21.1:
-
-Select a download site under
-
-@example
-Options->Manage Packages->Add Download Site
-@end example
-
-and after listing available packages with
-
-@example
-Options->Manage Packages->List & Install
-@end example
-
-install @code{build} with
-
-@example
-Packages->Toggle install `build'
-Packages->Install/Remove Selected
-@end example
-
-followed by starting a fresh XEmacs.
-
-@item
-In XEmacs Beta Release 21.2-bXX:
-
-Menus have been re-arranged in XEmacs 21.2.
-
-Select a download site under
-
-@example
-Tools->Packages->Add Download Site
-@end example
-
-and after listing available packages with
-
-@example
-Tools->Packages->List and Install
-@end example
-
-install @code{build} with
-
-@example
-Packages->Toggle install `build'
-Packages->Install/Remove Selected
-@end example
-  
-followed by starting a fresh XEmacs.
-
-@end itemize
-
-@item
-Run XEmacs command
-
-@example
-@kbd{M-x package-admin-add-binary-package @key{RET} @var{build-package-tarball-path} @key{RET}}
-@end example
-
-after tarball download with EFS or ftp.
-
-@item
-
-Extract the build tarball(s) into the xemacs-packages hierarchy from
-your favorite shell.
-
-@code{bash}, @code{csh}, @code{ksh}, @code{zsh} come to mind on UNIX
-systems; Cygwin's @code{bash}, @code{cmd.exe}, and @code{command.exe}
-for Windows 95/98/NT/2000.
-
-@example
-@kbd{cd @var{installation-directory}/xemacs-packages;
-gzip -dc @var{build-package-tarball-path} | tar -xvf -}
-@end example
-@end enumerate
-
-@node Build XEmacs, Build XEmacs From CVS, Build Installation, Top
-@comment node-name,    next,  previous,      up
-@chapter Build XEmacs
-
-@cindex Accessing Documentation
-@section Accessing Documentation for the Build package
-
-You may want to read through the build package info documentation first.
-It is accessible via links to Info- and HTML-documentation from the
-initial *Build XEmacs* buffer, which has this:
-
-@example
-Visit info documentation for the XEmacs build package in [XEmacs]
-or on the XEmacs website at
-[http://www.xemacs.org/Documentation/packages/html/build.html]
-@end example
-
-@cindex build-settings
-@cindex build settings
-@section Saving Multiple Build Settings
-
-Build settings, introduced in build 2.00, allow you to save all variable
-settings relevant to building XEmacs under a single name.  This saves
-time and simplifies the process of building multiple XEmacs versions or
-configurations.
-
-@example
-Current Build Settings: unknown
-
-[Load] [Delete] build settings: [Value Menu] default
-[Save] current build settings as: [Value Menu] String: default
-@end example
-
-@cindex Browsing Build Options
-@section Browsing Build Options
-
-Global build options can be browsed next.
-
-@example
-[Browse Build Options ...]
-@end example
-
-@cindex build from
-@section What to Build From and Build With
-
-You have to decide what to @emph{build from}:
-
-@enumerate
-
-@item
-CVS sources in the XEmacs CVS repository at
-@uref{http://cvs.xemacs.org/}.
-
-@item
-Tarballs (tar.gz files) on the XEmacs FTP Site
-@uref{http://ftp.xemacs.org/pub/xemacs/} or one of its mirror sites.
-
-@end enumerate
-
-@cindex build with
-and what to @emph{build with}:
-
-@enumerate
-
-@item
-GNU@footnote{Alert readers will note: GNU's Not UNIX!}/UNIX tools using
-@code{configure}, @code{make}, and @code{cc}.
-
-@cindex xemacs.mak
-@item
-Microsoft tools using @code{nmake} and @code{cl}, supported by
-@file{nt/xemacs.mak} and, beginning with XEmacs 21.2-b33,
-@file{nt/config.inc}.
-
-@end enumerate
-
-These two choices determine which of the following steps will be taken.
-
-@example
-[Build XEmacs From CVS Now]
-@end example
-
-@example
-[Build XEmacs From Tarballs Now]
-@end example
-
-As of build version 2.00 a check is performed whether CVS is available.
-
-The user interface to *Build XEmacs from CVS* will only be available if
-this test (cvs -v) passes.
-
-The cvs client version installed on your system will be displayed below
-following button.
-
-@example
-[Build XEmacs From CVS Now]
-@end example
-
-Finally either press the button labeled @ref{Build XEmacs From CVS}
-or @ref{Build XEmacs From Tarballs}.  Only the button labeled according
-to your choice under the @emph{build from:} menu will be active.
-See @ref{Build XEmacs} and @ref{Known Problems of Build}.
-
-Each of the following steps allow to return to a previous one with the
-
-@cindex Going Back
-@example
-[Go Back]
-@end example
-
-button to review your choices.
-
-Whether to build from tarballs or CVS sources depends on what the user
-wants to do with the sources.
-
-@itemize @bullet
-
-@item
-Tarballs are convenient for building a well-defined release of XEmacs.
-These tarballs are big and users with slow or expensive network
-connections should avoid them.
-
-@code{gzip} and @code{tar} are required for this method.
-
-@item
-For users who want to stay in close sync with the development of XEmacs,
-especially the Beta releases, create patches against files or whole
-directories, CVS is the way to go.
-
-You will obviously need to install @code{cvs} first.
-
-@end itemize
-
-The choice is yours@footnote{unless your access to the Internet is
-limited by firewalls or disabled IP ports, you don't have gzip/tar, or
-cvs.}.
-
-@node Build XEmacs From CVS, Build XEmacs From Tarballs, Build XEmacs, Top
-@comment node-name,    next,  previous,      up
-@chapter Build XEmacs From CVS
-@cindex Obtaining sources with CVS
-
-The CVS commands to fetch XEmacs source code are run through the XEmacs
-@code{compile} command (@pxref{Compilation, , , xemacs}).
-
-The buffers are named uniquely with the current working directory
-appropriately set to save the buffers with @kbd{C-x C-w} (@kbd{M-x
-write-file}) under the XEmacs source directory.
-
-First you have to login to the XEmacs CVS server.
-
-Please do so by pressing following button.
-
-@example
-[CVS Login XEmacs]
-@end example
-
-If that fails, please send the message generated in the *Warnings*
-buffer to @email{cvs-admin@@xemacs.org, XEmacs CVS Administrator}.
-
-After pressing the 
-
-@example
-[CVS Checkout XEmacs]
-@end example
-
-button (unless you have
-checked out before) and either one of 
-
-@example
-[CVS Update XEmacs To Release]
-@end example
-
-(as specified with
-
-@example
-[Browse Build CVS Options ...]
-@end example
-
-) or
-
-@example
-[CVS Update XEmacs To Latest]
-@end example
-
-(resetting all @pxref{Sticky tags, , , cvs}) you are ready to proceed
-with
-
-@example
-[Build XEmacs Now ...]
-@end example
-
-@node Build XEmacs From Tarballs, Build XEmacs With GNU Tools, Build XEmacs From CVS, Top
-@comment node-name,    next,  previous,      up
-@chapter Build XEmacs From Tarballs
-@cindex Obtaining sources with EFS
-
-The tarballs chosen with 
-
-@example
-[Browse Build Tarball Options ...]
-@end example
-
-Press
-
-@example
-[Download Build Tarball Set]
-@end example
-
-to fetch tarballs with EFS, which needs to be installed @footnote{If EFS
-is not installed you may obtain these tarballs by other means and
-extract them to the configured directory.}, followed by
-
-@example
-[Install Downloaded Build Tarball Set]
-@end example
-
-to extract tarballs using @code{gzip} and @code{tar} in a
-@code{compilation-mode} buffer named accordingly (e.g. ???).
-
-Finally press the button either labeled @ref{Build XEmacs With GNU
-Tools} or @ref{Build XEmacs With Microsoft Tools} according to your
-choice under the @emph{build with:} menu.  See @ref{Build XEmacs}.
-
-@node Build XEmacs With GNU Tools, Build XEmacs With Microsoft Tools, Build XEmacs From Tarballs, Top
-@comment node-name,    next,  previous,      up
-@chapter Build XEmacs With GNU Tools
-@cindex Build on UNIX
-@cindex Build with Cygnus (now Cygwin)
-@cindex Build with Cygwin
-@cindex configure
-@cindex configure.usage
-@cindex make
-@cindex gcc
-
-Besides GNU make (@code{make}) and GNU cc (@code{gcc}) XEmacs can be
-built with the equivalent programs from many UNIX vendors.
-
-The @dfn{configure}@footnote{This shell script is on the top-level of
-the XEmacs source tree, see also configure.usage there.} script, which
-is run before @code{make}, determines the configuration of your system
-and warns about any problems it finds.
-
-@node Build XEmacs With Microsoft Tools, Generate XEmacs Build Report, Build XEmacs With GNU Tools, Top
-@comment node-name,    next,  previous,      up
-@chapter Build XEmacs With Microsoft Tools
-@cindex Build on Windows 95/98/NT/2000
-@cindex Build with MS Visual Studio C++
-@cindex nmake
-@cindex cl
-@cindex config.inc
-
-XEmacs is built using Microsoft's version of @code{make}, @dfn{nmake},
-and Microsoft's C++ compiler, @dfn{cl}, which are both part of Microsoft
-Visual Studio @footnote{Version 4.0 or greater is required.}.
-
-Up to XEmacs 21.2-b32 all configuration choices are passed on to
-@code{nmake} as command-line options.
-
-XEmacs versions > 21.2-b32
-support @file{nt/config.inc} which is generated according to user
-choices made under
-
-@example
-[Browse Build Make ...]
-@end example
-
-by
-
-@example
-[Generate config.inc]
-@end example
-
-which you have to save after reviewing it shortly.
-
-@node Generate XEmacs Build Report, Known Problems of Build, Build XEmacs With Microsoft Tools, Top
-@comment node-name,    next,  previous,      up
-@chapter Generate XEmacs Build Report
-
-This is a GUI making use of the @code{build-report} feature provided
-with XEmacs.
-
-When used standalone, you have to first
-
-@example
-[Browse Build Report ...]
-@end example
-
-to pick up the information for the XEmacs build you would like to
-generate the report for.
-
-@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 ???
-
-@node Known Problems of Build, Concept Index, Generate XEmacs Build Report, Top
-@chapter Known Problems of Build
-@cindex Limitations
-@cindex Bugs
-
-@enumerate
-
-@item
-Activated buttons appear to be inactive.
-
-@itemize @bullet
-
-@item
-Problem
-
-The buttons
-@example
-[Build XEmacs From CVS Now]
-@end example
-and
-@example
-[Build XEmacs From Tarballs Now]
-@end example
-don't show as active after being re-activated due to a bug in
-wid-edit.el in XEmacs 21.1.12 and below.
-
-@item
-Workaround
-
-You can easily find which button is active by using
-@kbd{TAB} runs `widget-forward'
-or
-@kbd{Sh-TAB} runs `widget-backward'.
-
-@item
-Fix
-
-@uref{http://www.xemacs.org/list-archives/xemacs-patches/200010/msg00031.html}
-should fix this problem for later versions of XEmacs.
-
-@end itemize
-
-@item
-Inactive buttons appear to be active.
-
-@itemize @bullet
-
-@item
-Problem
-
-XEmacs 21.2-b36 and below have another bug which will not render the
-de-activated button as such.
-
-@item
-Workaround
-
-You can easily find which button is active by using
-@kbd{TAB} runs `widget-forward'
-or
-@kbd{Sh-TAB} runs `widget-backward'.
-
-@item
-Fix
-
-None as of 2000-10-21.  See
-@uref{http://www.xemacs.org/list-archives/xemacs-beta/200010/msg00194.html}.
-
-@end itemize
-
-@end enumerate
-
-@node Concept Index, , Known Problems of Build, Top
-@comment node-name,    next,  previous,      up
-@unnumbered Concept Index
-@printindex cp
-@contents
-@bye
diff --git a/xemacs-packages/build/package-info.in b/xemacs-packages/build/package-info.in
deleted file mode 100644 (file)
index e562dcd..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-(build
-  (standards-version 1.0
-   version VERSION
-   author-version AUTHOR_VERSION
-   date DATE
-   build-date BUILD_DATE
-   maintainer MAINTAINER
-   distribution stable
-   priority low
-   category CATEGORY
-   dump nil
-   description "Build XEmacs from within (UNIX, Windows)."
-   filename FILENAME
-   md5sum MD5SUM
-   size SIZE
-   provides (build)
-   requires (REQUIRES)
-   type regular
-))