From xemacs-m  Wed Apr 16 20:49:36 1997
Received: from altair.xemacs.org (steve@xemacs.miranova.com [206.190.83.19])
	by xemacs.org (8.8.5/8.8.5) with ESMTP id UAA18378
	for <xemacs-beta@xemacs.org>; Wed, 16 Apr 1997 20:49:34 -0500 (CDT)
Received: (from steve@localhost)
	by altair.xemacs.org (8.8.5/8.8.5) id TAA25063;
	Wed, 16 Apr 1997 19:02:12 -0700
Mail-Copies-To: never
To: xemacs-beta@xemacs.org
Subject: Binary Kit instructions
X-Url: http://www.miranova.com/%7Esteve/
X-Face: #!T9!#9s-3o8)*uHlX{Ug[xW7E7Wr!*L46-OxqMu\xz23v|R9q}lH?cRS{rCNe^'[`^sr5"
 f8*@r4ipO6Jl!:Ccq<xoV[Qz2u8<8-+Vwf2gzJ44lf_/y9OaQ`@#Q65{U4/TC)i2`~/M&QI$X>p:9I
 OSS'2{-)-4wBnVeg0S\O4Al@)uC[pD|+
X-Attribution: sb
From: Steven L Baur <steve@miranova.com>
Mime-Version: 1.0 (generated by tm-edit 7.106)
Content-Type: text/plain; charset=US-ASCII
Date: 16 Apr 1997 19:02:09 -0700
Message-ID: <m27mi2xv8e.fsf@altair.xemacs.org>
Lines: 306
X-Mailer: Gnus v5.4.45/XEmacs 20.1

O.K.  I've put an updated XEmacs 20.1 tarball in
	ftp.xemacs.org/pub/xemacs-20.1/xemacs-20.1.tar.gz

This consists of what was in yesterday's tarball + the two posted
patch kits.  The non-dump patches do not require redumping XEmacs
after applying and rebuilding the .elcs.

By popular demand, here is V20.1 of the Binary Kit Instructions,
updated for MULE.

		    Binary Kit Instructions, V20.1

The optimal Latin-1 binary kit would be built as such:

	--with-menubars=lucid
	--with-scrollbars=lucid
	--with-dialogs=motif	if you have Motif
	--with-xpm		important - please use xpm 3.4h
	--with-xface
	--with-tooltalk		if you've got it
	--with-sound=native	if your system has it
	--with-sound=both	if you've got netaudio (else don't sweat it)
	--with-gif
	--with-png		NOTE:  the autodetection bug is back.
	--with-jpeg
	--with-dbm		if you've got it
	--with-offix		if you've got it

For MULE add:
	--with-mule=yes
	--with-wnn		if you've got it
	--with-canna		if you've got it
and possibly
	--with-wnn6		see below


If you build with Motif you automatically get XIM.  Wnn4 is somewhat
of a pain to build so for this first go around if you can't get it
built don't sweat it.  A Canna 3.5beta tarball is sitting in /pub/aux
in the ftp site.  Canna builds very smoothly on Linux, I'm not sure about
other platforms.

Wnn4 and Wnn6 are mutually exclusive -- you can't
put both in the same XEmacs.  I've been running a MULE binary with
Canna and Wnn4 for several months and haven't had any problems.

The Wnn6 SDK is at
	ftp://ftp-sp.omronsoft.co.jp/pub/Wnn6/sdk/
This consists of a static library and header files.


Compile with the highest level of optimization you feel comfortable
with.

Please avoid the -fast Solaris option on Solaris.

Also make sure *NOT* to strip the binary.  A stack backtrace should
at least show the names of the functions on the stack (the default
behavior without -g, I think).  Consider adding a temacs on Irix so
the executable can be redumped.

If you don't have Motif then build with Athena dialogs instead.  Do
not change the menubar or scrollbar toolkit without talking to me
first.

I'm relaxing the static!, static!, static! rule somewhat.  Any
standard system library may be dynamically linked.  Any library which
might not be installed on a system MUST be statically linked.  Let me
repeat that.  ANY library which might not be installed on a system
MUST be statically linked.

On systems where we have had problems with system libraries, notably
Linux and HP/UX you should staticly link at least libc.  Remember the
_h_errno SNAFU in 19.13 and 19.14, and __malloc_hook in 19.15.  We
receive 3 or 4 crash reports a week from people on HP/UX crashing in
strcat in libc.

Basically if a library doesn't get installed when doing the most
minimal install of the OS, or if there is quite a bit of variation
between installations of the OS (e.g. Linux) then you should be
linking statically.

Libraries which should definitely be statically linked include:

	XPM
	compface
	Motif
	JPEG
	PNG
	Canna
	Wnn4
	Wnn6
	OffiX


Also, ncurses and the db libraries should probably be statically linked.

If you do link dynamically, try VERY VERY hard to link against
the oldest possible versions of the libraries.

If you use something like Athena3d, that's fine, but make sure the
thing is statically linked.


Do your builds with

	USRLOCAL=/usr/local
	CONFIG=`./config.guess`

	./configure $CONFIG			\
	  --prefix=$USRLOCAL			\
	  --bindir=$USRLOCAL/bin/$CONFIG

$USRLOCAL can be anything you want, it doesn't matter - all the pathnames
will be relative to that by the time I see them.

Use ldd or your system equivalent on all of the executables (xemacs
itself, and the lib-src executables) to verify that they are linked
the way you think they are linked.

The tar file you send me should then contain a README, and two directories:
bin/$CONFIG/ and lib/xemacs-19.15/$CONFIG/, which should contain no more
(and no less, unless I goofed) than the following files:

	README.$CONFIG
	bin/$CONFIG/
	bin/$CONFIG/b2m
	bin/$CONFIG/ctags
	bin/$CONFIG/emacsclient
	bin/$CONFIG/etags
	bin/$CONFIG/gnuattach
	bin/$CONFIG/gnuclient
	bin/$CONFIG/gnudoit
	bin/$CONFIG/install-sid
	bin/$CONFIG/pstogif
	bin/$CONFIG/rcs-checkin
	bin/$CONFIG/send-pr
	bin/$CONFIG/xemacs symbolic link to xemacs-20.1
	bin/$CONFIG/xemacs-20.1
	lib/xemacs-20.1/$CONFIG/
	lib/xemacs-20.1/$CONFIG/DOC
	lib/xemacs-20.1/$CONFIG/cvtmail
	lib/xemacs-20.1/$CONFIG/digest-doc
	lib/xemacs-20.1/$CONFIG/emacsserver
	lib/xemacs-20.1/$CONFIG/fakemail
	lib/xemacs-20.1/$CONFIG/gnuserv
	lib/xemacs-20.1/$CONFIG/gzip-el.sh
	lib/xemacs-20.1/$CONFIG/hexl
	lib/xemacs-20.1/$CONFIG/make-docfile
	lib/xemacs-20.1/$CONFIG/make-path
	lib/xemacs-20.1/$CONFIG/mmencode
	lib/xemacs-20.1/$CONFIG/movemail
	lib/xemacs-20.1/$CONFIG/profile
	lib/xemacs-20.1/$CONFIG/rcs2log
	lib/xemacs-20.1/$CONFIG/send-pr
	lib/xemacs-20.1/$CONFIG/sorted-doc
	lib/xemacs-20.1/$CONFIG/tm-au
	lib/xemacs-20.1/$CONFIG/tm-file
	lib/xemacs-20.1/$CONFIG/tm-html
	lib/xemacs-20.1/$CONFIG/tm-image
	lib/xemacs-20.1/$CONFIG/tm-mpeg
	lib/xemacs-20.1/$CONFIG/tm-plain
	lib/xemacs-20.1/$CONFIG/tm-ps
	lib/xemacs-20.1/$CONFIG/tmdecode
	lib/xemacs-20.1/$CONFIG/vcdiff
	lib/xemacs-20.1/$CONFIG/wakeup
	lib/xemacs-20.1/$CONFIG/yow


This is the directory setup that you will get if you just do "make install".

I don't have a clue about what permissions these should be, but Chuck does
and he will handling the incoming side for this release (thanks Chuck).

What follows is a sample README.$CONFIG.  Your READMEs should look
approximately like this, with appropriate query-replace results.
However, do mention anything else you think needs to be mentioned.

And of course, attempt an installation as described in the README, on a
different machine if possible.

When you're done, dump them in ftp.xemacs.org:/pub/beta/incoming/.
Please also put there the config.status file you used to build the kit.

Thanks!

------------------------------------------------------------------------------

This directory contains Linux ELF executables for XEmacs 20.1.
These were compiled with XawXPM (a 3d Athena widget set, see the file
defaults-XawXpm in the top level directory for resources to set), XPM,
X-Face, GIF, JPG, DBM, full optimization, and have system libraries
dynamically linked and all others statically linked.

Built by Steve Baur <steve@altair.xemacs.org>

The tar file which contains these executables contains only the
executables (the architecture-dependent files.)  To use these
executables, you will also need the architecture-independent files
(the `lisp', `etc' and `info' directories.)  These files are
distributed in a separate file (xemacs-20.1-common.tar.gz.)

HOW TO INSTALL
==============

Simply cd to the directory in which you wish to install xemacs,
and then unpack the architecture independent tar file, followed by
the architecture-dependent files for those architectures you use.

  cd /usr/local/	# or wherever you install 3rd-party software
  gzip -dc xemacs-20.1-common.tar.gz | tar -pxf -
  gzip -dc xemacs-20.1-i586-unknown-linux2.0.29.tar.gz | tar -pxf -

Replace `/usr/local/' with what you like, but it probably ought not
have `xemacs' or a version number in it - that directory is expected
to be the common prefix for installed software, and xemacs-specific
subdirectories of it will be created.  The directories are arranged
in such a way that multiple versions of xemacs can peaceably coexist
under the same `/usr/local/' tree.

After unpacking, you will have a directory structure like:

  ./bin/i586-unknown-linux2.0.29/xemacs-20.1*	executable
  ./lib/xemacs-20.1/lisp/			lisp library
  ./lib/xemacs-20.1/etc/			data directory
  ./lib/xemacs-20.1/info/			documentation
  ./lib/xemacs-20.1/i586-unknown-linux2.0.29/	utility programs
  ./lib/xemacs/lock/				lock directory
  ./lib/xemacs/site-lisp/			local lisp code

For the executable to work, the directory layout must look pretty
much like this; the executable looks for "sibling" directories at
run-time to figure out where its lisp library is.  These constraints
on the local directory layout are necessary to avoid having to
hardcode pathnames into the executables, or require that environment
variables be set before running the executable.

It is possible to do a multi-architecture installl in such a way that
the executables for the various architectures are on different
partitions; in that case you must install some symbolic links so that
the directory structure appears as above from the clients.

For example, assume that $LOCAL refers to a directory which is
mounted only on machines of the same type; and $SHARED refers to
a directory which is shared among all machines.  You could set up
the directory hierarchy like this:

  $LOCAL/bin/xemacs-20.1*
  $LOCAL/lib/xemacs-20.1/i586-unknown-linux2.0.29/
  $LOCAL/lib/xemacs-20.1/lisp@  ->  $SHARED/xemacs-20.1/lisp/
  $LOCAL/lib/xemacs-20.1/etc@   ->  $SHARED/xemacs-20.1/etc/
  $LOCAL/lib/xemacs-20.1/info@  ->  $SHARED/xemacs-20.1/info/
  $LOCAL/lib/xemacs@             ->  $SHARED/xemacs/

  $SHARED/xemacs-20.1/lisp/
  $SHARED/xemacs-20.1/etc/
  $SHARED/xemacs-20.1/info/
  $SHARED/xemacs/lock/
  $SHARED/xemacs/site-lisp/

That is, the various $SHARED directories contain only the
architecture-independent files, but still look like normal
installation trees, since the architecture-independent
directories have been replaced with symbolic links to the 
single $COMMON tree.

uname -a: Linux altair.xemacs.org 2.0.30 #3 Wed Apr 9 17:35:04 PDT 1997 i586

/usr/src/xemacs-20.0/configure  '--with-gnu-make' '--srcdir=/usr/src/xemacs-20.0' '--with-offix' '--cflags=-m486 -g -O4 -fno-strength-reduce -malign-loops=2 -malign-jumps=2 -malign-functions=2' '--with-sound=no' '--with-xface=yes' '--with-mule=yes' '--with-dialogs=athena3d' '--with-scrollbars=lucid' '--use-union-type=yes' '--use-system-malloc=no' '--with-canna=yes' '--debug=yes' '--error-checking=all' '--with-wnn=yes' '--wnn-includes=/usr/X11R6/include/wnn'


Configured for `i586-unknown-linux2.0.30'.

  Where should the build process find the source code?    /usr/src/xemacs-20.0
  What installation prefix should install use?            /usr/local
  What operating system and machine description files should XEmacs use?
        `s/linux.h' and `m/intel386.h'
  What compiler should XEmacs be built with?              gcc -m486 -g -O4 -fno-strength-reduce -malign-loops=2 -malign-jumps=2 -malign-functions=2
  Should XEmacs use the GNU version of malloc?            yes
  Should XEmacs use the relocating allocator for buffers? yes
  What window system should XEmacs use?                   x11
  Where do we find X Windows header files?                /usr/X11R6/include
  Where do we find X Windows libraries?                   /usr/X11R6/lib
  Compiling in support for XAUTH.
  Compiling in support for XPM.
  Compiling in support for X-Face headers.
  Compiling in support for GIF image conversion.
  Compiling in support for JPEG image conversion.
  Compiling in support for PNG image conversion.
  Compiling in support for Berkeley DB.
  Compiling in support for GNU DBM.
  Compiling in support for ncurses.
  Compiling in Mule (multi-lingual) support.
  Compiling in support for Canna on Mule.
  Compiling in support for the WNN input method on Mule.
    Finding WNN includes with:                          -I/usr/X11R6/include/wnn
    Finding WNN libs with:                              -L/usr/X11R6/lib
  Compiling in support for OffiX.
  Using the Lucid menubar.
  Using the Lucid scrollbar.
  Using the Athena-3d dialog boxes.
  Using the union type for Lisp_Objects.

-- 
steve@miranova.com baur
Unsolicited commercial e-mail will be billed at $250/message.

