From: mischler@cubic.com (Dave Mischler)
Subject: Emacs 18.58 for 386bsd 0.1
Organization: Cubic Toll Systems
Date: Wed, 29 Jul 92 22:53:10 GMT
Keywords: emacs, 386bsd

I haven't seen anybody's port of EMACS to 386bsd 0.1, so here's mine.
This will not solve all keyboard mapping problems, and "M-x rmail"
doesn't work, but it's a place to start.

How to use these files:

	1) Follow the directions below for extracting the four listed
	   files from the shell archive.  The file emacs-386bsd must
	   be made executable (e.g. "chmod ugo+rx emacs-386bsd").

	2) Acquire a copy of emacs-18.58.tar.Z and place it in the
	   same directory as the files contained in this post.

	3) From the root account, cd to the directory where you put
	   all this stuff and type emacs-386bsd.  Emacs will be
	   extracted, compiled and installed.  Other accounts besides
	   root may work, but this is the only one I have tried.

	4) Link /usr/share/misc/termcap to /etc/termcap (e.g.
	   "ln -s /usr/share/misc/termcap /etc/termcap" ).

	5) If you want to repeat the installation you should delete
	   directory /usr/local/emacs first (e.g. "rm -rf /usr/local/emacs").

Have fun.

Dave Mischler	-    mischler@cubic.com

#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
#	config.h
#	emacs-386bsd
#	s-386bsd.h
#	site-init.el
# This archive created: Wed Jul 29 16:05:19 1992
export PATH; PATH=/bin:$PATH
if test -f 'config.h'
then
	echo shar: will not over-write existing file "'config.h'"
else
cat << \SHAR_EOF > 'config.h'
/* GNU Emacs site configuration template file.
   Copyright (C) 1988 Free Software Foundation, Inc.

This file is part of GNU Emacs.

GNU Emacs 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 1, or (at your option)
any later version.

GNU Emacs 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 GNU Emacs; see the file COPYING.  If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */



/* Include here a s- file that describes the system type you are using.
   See the file ../etc/MACHINES for a list of systems and
   the names of the s- files to use for them.
   See s-template.h for documentation on writing s- files.  */
#include "s-386bsd.h"

/* Include here a m- file that describes the machine and system you use.
   See the file ../etc/MACHINES for a list of machines and
   the names of the m- files to use for them.
   See m-template.h for info on what m- files should define.
   */
#include "m-intel386.h"

/* Load in the conversion definitions if this system
   needs them and the source file being compiled has not
   said to inhibit this.  There should be no need for you
   to alter these lines.  */

#ifdef SHORTNAMES
#ifndef NO_SHORTNAMES
#include "../shortnames/remap.h"
#endif /* not NO_SHORTNAMES */
#endif /* SHORTNAMES */

/* Define HAVE_X_WINDOWS if you want to use the X window system.  */

/* #define HAVE_X_WINDOWS */

/* Define X11 if you want to use version 11 of X windows.
   Otherwise, Emacs expects to use version 10.  */

#ifdef HAVE_X_WINDOWS
#define X11
#endif

/* Define HAVE_X_MENU if you want to use the X window menu system.
   This appears to work on some machines that support X
   and not on others.  */

/* #define HAVE_X_MENU */

/* Define `subprocesses' should be defined if you want to
   have code for asynchronous subprocesses
   (as used in M-x compile and M-x shell).
   These do not work for some USG systems yet;
   for the ones where they work, the s-*.h file defines this flag.  */

#ifndef VMS
#ifndef USG
#define subprocesses
#endif
#endif

/* Define USER_FULL_NAME to return a string
   that is the user's full name.
   It can assume that the variable `pw'
   points to the password file entry for this user.

   At some sites, the pw_gecos field contains
   the user's full name.  If neither this nor any other
   field contains the right thing, use pw_name,
   giving the user's login name, since that is better than nothing.  */

#define USER_FULL_NAME pw->pw_gecos

/* Define AMPERSAND_FULL_NAME if you use the convention
   that & in the full name stands for the login id.  */

/* #define AMPERSAND_FULL_NAME */

/* # bytes of pure Lisp code to leave space for.
   Note that s-vms.h and m-sun2.h may override this default.  */

#ifndef PURESIZE
#ifdef HAVE_X_WINDOWS
#define PURESIZE 122000
#else
#define PURESIZE 120000
#endif
#endif

/* Define HIGHPRI as a negative number
   if you want Emacs to run at a higher than normal priority.
   For this to take effect, you must install Emacs with setuid root.
   Emacs will change back to the users's own uid after setting
   its priority.  */

/* #define HIGHPRI */

SHAR_EOF
fi # end of overwriting check
if test -f 'emacs-386bsd'
then
	echo shar: will not over-write existing file "'emacs-386bsd'"
else
cat << \SHAR_EOF > 'emacs-386bsd'
#
#   Shell script to install EMACS 18.58 on 386bsd.
#   It is expected that emacs-18.58.tar.Z, as well as config.h,
#   s-386bsd.h, and site-init.el are in the same directory as
#   this shell script.  I did this as root.
#
#   All EMACS features that I tried worked except rmail.
#
#   EMACS will look for the termcap database in /etc/termcap,
#   so you should either set up a link from there to
#   /usr/share/misc/termcap or set environment variable TERMCAP
#   to /usr/share/misc/termcap.
#
zcat emacs-18.58.tar | tar -xf -
#
#   Set up configuration files.
#
cd emacs-18.58/src
cp paths.h-dist paths.h
cp ../../config.h ./
cp ../../s-386bsd.h ./
cp ../../site-init.el ../lisp/
#
#   Build the stuff in etc.
#
cd ../etc
make
#
#   Build xemacs
#
cd ../src
make
#
#   Move all files to appropriate locations.
#
mv xemacs /usr/local/bin/emacs
cd ..
mv etc/ctags /usr/local/bin/
mv etc/etags /usr/local/bin/
mv etc/emacsclient /usr/local/bin/
mv etc/wakeup /usr/local/bin/
mkdir /usr/local/emacs
mv etc /usr/local/emacs/etc
mv info /usr/local/emacs/info
mv lisp /usr/local/emacs/lisp
SHAR_EOF
fi # end of overwriting check
if test -f 's-386bsd.h'
then
	echo shar: will not over-write existing file "'s-386bsd.h'"
else
cat << \SHAR_EOF > 's-386bsd.h'
/* Definitions file for GNU Emacs running on bsd 4.3
   Copyright (C) 1985, 1986 Free Software Foundation, Inc.

This file is part of GNU Emacs.

GNU Emacs 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 1, or (at your option)
any later version.

GNU Emacs 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 GNU Emacs; see the file COPYING.  If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */


/*
 *	Define symbols to identify the version of Unix this is.
 *	Define all the symbols that apply correctly.
 */

#ifndef BSD4_3
#define BSD4_3
#endif /* BSD4_3 */

#ifndef BSD
#define BSD
#endif /* BSD */

/* SYSTEM_TYPE should indicate the kind of system you are using.
 It sets the Lisp variable system-type.  */

#define SYSTEM_TYPE "berkeley-unix"

/* nomultiplejobs should be defined if your system's shell
 does not have "job control" (the ability to stop a program,
 run some other program, then continue the first one).  */

/* #define NOMULTIPLEJOBS */

/* Do not use interrupt_input = 1 by default, because in 4.3
   we can make noninterrupt input work properly.  */

#undef INTERRUPT_INPUT

/* First pty name is /dev/ptyp0.  */

#define FIRST_PTY_LETTER 'p'
/*
 *	Define HAVE_TIMEVAL if the system supports the BSD style clock values.
 *	Look in <sys/time.h> for a timeval structure.
 */

#define HAVE_TIMEVAL
 
/*
 *	Define HAVE_SELECT if the system supports the `select' system call.
 */

#define HAVE_SELECT

/*
 *	Define HAVE_PTYS if the system supports pty devices.
 */

#define HAVE_PTYS

/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets.  */

#define HAVE_SOCKETS

/*
 *	Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
 *      The 4.2 opendir, etc., library functions.
 */

/* #define NONSYSTEM_DIR_LIBRARY */

/* Define this symbol if your system has the functions bcopy, etc. */

#define BSTRING

/* subprocesses should be defined if you want to
   have code for asynchronous subprocesses
   (as used in M-x compile and M-x shell).
   This is generally OS dependent, and not supported
   under most USG systems. */

#define subprocesses

/* If your system uses COFF (Common Object File Format) then define the
   preprocessor symbol "COFF". */

/* #define COFF */

/* define MAIL_USE_FLOCK if the mailer uses flock
   to interlock access to /usr/spool/mail/$USER.
   The alternative is that a lock file named
   /usr/spool/mail/$USER.lock.  */

#define MAIL_USE_FLOCK

/* Define CLASH_DETECTION if you want lock files to be written
   so that Emacs can tell instantly when you try to modify
   a file that someone else has modified in his Emacs.  */

#define CLASH_DETECTION

/* We use the Berkeley (and usg5.2.2) interface to nlist.  */

#define NLIST_STRUCT

/* The file containing the kernel's symbol table is called /vmunix.  */

#define KERNEL_FILE "/vmunix"

/* The symbol in the kernel where the load average is found
   is named _avenrun.  */

#define LDAV_SYMBOL "_avenrun"

/* Make PENDING_OUTPUT_COUNT work in dispnew.c	*/

#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base)

/* "Fix" some make items	*/

#define C_SWITCH_SYSTEM -O -traditional
#define LIBS_DEBUG
SHAR_EOF
fi # end of overwriting check
if test -f 'site-init.el'
then
	echo shar: will not over-write existing file "'site-init.el'"
else
cat << \SHAR_EOF > 'site-init.el'
(setq rmail-spool-directory "/var/mail/")
(setq sendmail-program "/usr/sbin/sendmail")
(setq manual-program "/usr/bin/man")
SHAR_EOF
fi # end of overwriting check
#	End of shell archive
exit 0