From xemacs-m  Wed Mar 26 22:25:24 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 WAA08240
	for <xemacs-beta@xemacs.org>; Wed, 26 Mar 1997 22:25:22 -0600 (CST)
Received: (from steve@localhost)
	by altair.xemacs.org (8.8.5/8.8.5) id UAA07549;
	Wed, 26 Mar 1997 20:37:59 -0800
Mail-Copies-To: never
To: xemacs-beta@xemacs.org
Subject: Binary Kit Instructions (rewritten)
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: 26 Mar 1997 20:37:57 -0800
Message-ID: <m220923q6y.fsf@altair.xemacs.org>
Lines: 260
X-Mailer: Gnus v5.4.37/XEmacs 20.1(beta10)

I was asked to repost this, and I've updated some of the items in it
where I made mistakes the first time.  This is a lightly warmed over
version of Chuck's instructions in 19.14, any new mistakes are mine
not his.


The optimal 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 a newish xpm.
	--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

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).

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 the looming __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

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) <sbNEW>unless I goofed</sbNEW> 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/pstogif
	bin/$CONFIG/rcs-checkin
	bin/$CONFIG/xemacs symbolic link to xemacs-19.15
	bin/$CONFIG/xemacs-19.15
	lib/xemacs-19.15/$CONFIG/
	lib/xemacs-19.15/$CONFIG/DOC-19.15-XEmacs
	lib/xemacs-19.15/$CONFIG/cvtmail
	lib/xemacs-19.15/$CONFIG/digest-doc
	lib/xemacs-19.15/$CONFIG/emacsserver
	lib/xemacs-19.15/$CONFIG/fakemail
	lib/xemacs-19.15/$CONFIG/gnuserv
	lib/xemacs-19.15/$CONFIG/gzip-el.sh
	lib/xemacs-19.15/$CONFIG/hexl
	lib/xemacs-19.15/$CONFIG/make-docfile
	lib/xemacs-19.15/$CONFIG/make-path
	lib/xemacs-19.15/$CONFIG/mmencode
	lib/xemacs-19.15/$CONFIG/movemail
	lib/xemacs-19.15/$CONFIG/profile
	lib/xemacs-19.15/$CONFIG/rcs2log
	lib/xemacs-19.15/$CONFIG/sorted-doc
	lib/xemacs-19.15/$CONFIG/tm-au
	lib/xemacs-19.15/$CONFIG/tm-file
	lib/xemacs-19.15/$CONFIG/tm-html
	lib/xemacs-19.15/$CONFIG/tm-image
	lib/xemacs-19.15/$CONFIG/tm-mpeg
	lib/xemacs-19.15/$CONFIG/tm-plain
	lib/xemacs-19.15/$CONFIG/tm-ps
	lib/xemacs-19.15/$CONFIG/tmdecode
	lib/xemacs-19.15/$CONFIG/vcdiff
	lib/xemacs-19.15/$CONFIG/wakeup
	lib/xemacs-19.15/$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 19.15.
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 seperate file (xemacs-19.15-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-19.15-common.tar.gz | tar -pxf -
  gzip -dc xemacs-19.15-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-19.15*	executable
  ./lib/xemacs-19.15/lisp/			lisp library
  ./lib/xemacs-19.15/etc/			data directory
  ./lib/xemacs-19.15/info/			documentation
  ./lib/xemacs-19.15/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 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-19.15*
  $LOCAL/lib/xemacs-19.15/i586-unknown-linux2.0.29/
  $LOCAL/lib/xemacs-19.15/lisp@  ->  $SHARED/xemacs-19.15/lisp/
  $LOCAL/lib/xemacs-19.15/etc@   ->  $SHARED/xemacs-19.15/etc/
  $LOCAL/lib/xemacs-19.15/info@  ->  $SHARED/xemacs-19.15/info/
  $LOCAL/lib/xemacs@             ->  $SHARED/xemacs/

  $SHARED/xemacs-19.15/lisp/
  $SHARED/xemacs-19.15/etc/
  $SHARED/xemacs-19.15/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.


./configure --with-offix --cflags="-m486 -O4 -fno-strength-reduce -malign-loops=2 -malign-jumps=2 -malign-functions=2 " --with-sound=native --with-xface=yes --error-checking=none --debug=no --with-dialogs=athena --use-union-type=yes 

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

  Where should the build process find the source code?    /usr/src/xemacs-19.15
  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 -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 native sound support.
  Compiling in support for Berkeley DB.
  Compiling in support for GNU DBM.
  Compiling in support for OffiX.
  Using the Lucid menubar.
  Using the Lucid scrollbar.
  Using the Athena dialog boxes.
  Using the union type for Lisp_Objects.


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

