[comp.sys.sgi] GNU Emacs 18.56 - patches for Irix 3.2

operator@IRIS.KTH.DK (Martin Liversage) (01/23/91)

These are my installation notes for compiling GNU Emacs 18.56 under
Irix 3.2.

System: GNU emacs 18.56
Date: Wed Jan 23 14:14:39 MET 1991
Source:  Anonymous ftp to prep.ai.mit.edu (pub/gnu/emacs-18.56.tar.Z)
Comment:
	Unpack archive (zcat emacs-18.56.tar.Z | tar xvof -).
	Apply patch (patch -p < patch1).
	Install it (rm -rf /usr/local/emacs ; chmod +x build-install ;
	build-install).
	Clean up (make clean ; rm -rf oldXmenu gdb).
	Make man page (awf -man etc/emacs.1 > /usr/catman/local/cat1/emacs.1).
Files:
	/usr/local/bin/emacs
	/usr/local/bin/ctags
	/usr/local/bin/etags
	/usr/local/emacs/*
	/usr/catman/local/cat1/emacs.1

And here are the patches

----------------------------- file: patch1 -----------------------------
System: GNU Emacs 18.56
Patch #: 1
Description: Local installation patch
Date: Wed Jan 23 14:14:39 MET 1991
Index: etc/Makefile
*** etc/Makefile.orig	Mon Jan  7 05:21:30 1991
--- etc/Makefile	Wed Jan 23 13:12:47 1991
***************
*** 1,8 ****
! CFLAGS= -g
  # For Xenix.  Needed for movemail
  #  LOADLIBES= -lx
  # For Mips.  Needed for who knows what.
! #  LOADLIBES = -lmld /usr/bsd43/usr/lib/libc.a
  
  EXECUTABLES = test-distrib etags ctags wakeup make-docfile \
     digest-doc sorted-doc movemail cvtmail fakemail yow env \
--- 1,8 ----
! CFLAGS= -O -Olimit 622
  # For Xenix.  Needed for movemail
  #  LOADLIBES= -lx
  # For Mips.  Needed for who knows what.
! LOADLIBES = -lmld -lc_s
  
  EXECUTABLES = test-distrib etags ctags wakeup make-docfile \
     digest-doc sorted-doc movemail cvtmail fakemail yow env \
Index: src/ymakefile
*** src/ymakefile.orig	Tue Jan  8 19:23:01 1991
--- src/ymakefile	Wed Jan 23 13:12:53 1991
***************
*** 44,50 ****
  
  /* Some machines don't find the standard C libraries in the usual place.  */
  #ifndef LIB_STANDARD
! #define LIB_STANDARD -lc
  #endif
  
  /* Unless inhibited or changed, use -lg to link for debugging.  */
--- 44,50 ----
  
  /* Some machines don't find the standard C libraries in the usual place.  */
  #ifndef LIB_STANDARD
! #define LIB_STANDARD -lbsd -lc
  #endif
  
  /* Unless inhibited or changed, use -lg to link for debugging.  */
***************
*** 78,84 ****
  
  /* Some m- files define this to request special switches in cc.  */
  #ifndef C_SWITCH_MACHINE
! #define C_SWITCH_MACHINE
  #endif
  
  #ifndef C_SWITCH_SYSTEM
--- 78,84 ----
  
  /* Some m- files define this to request special switches in cc.  */
  #ifndef C_SWITCH_MACHINE
! #define C_SWITCH_MACHINE -I/usr/include/bsd
  #endif
  
  #ifndef C_SWITCH_SYSTEM
***************
*** 144,150 ****
  SHORT= shortnames
  #endif /* SHORTNAMES */
  
! CFLAGS= C_DEBUG_SWITCH -Demacs $(MYCPPFLAG) C_SWITCH_MACHINE C_SWITCH_SYSTEM
  /* DO NOT use -R.  There is a special hack described in lastfile.c
     which is used instead.  Some initialized data areas are modified
     at initial startup, then labeled as part of the text area when
--- 144,150 ----
  SHORT= shortnames
  #endif /* SHORTNAMES */
  
! CFLAGS= C_OPTIMIZE_SWITCH -Demacs $(MYCPPFLAG) C_SWITCH_MACHINE C_SWITCH_SYSTEM
  /* DO NOT use -R.  There is a special hack described in lastfile.c
     which is used instead.  Some initialized data areas are modified
     at initial startup, then labeled as part of the text area when
Index: src/fns.c
*** src/fns.c.orig	Tue Jan  8 18:33:26 1991
--- src/fns.c	Wed Jan 23 13:13:13 1991
***************
*** 1211,1219 ****
--- 1211,1223 ----
  
  #ifdef IRIS_4D
  	{
+ #ifndef IRIX_32
  #include <sys/types.h>
  #include <sys/sysmp.h>
  	    nl[0].n_value = sysmp(MP_KERNADDR, MPKA_AVENRUN);
+ #else /* IRIX_32 */
+ 	    nlist(KERNEL_FILE, nl);
+ #endif /* IRIX_32 */
  	    nl[0].n_value &= 0x7fffffff;
  	}
  #else
Index: src/config.h
*** /dev/null	Wed Jan 23 11:17:40 1991
--- src/config.h	Wed Jan 23 13:12:59 1991
***************
*** 0 ****
--- 1,115 ----
+ /* 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-irix3-3.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-iris4d.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.  */
+ 
+ /* #define X11 */
+ 
+ /* 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 119000
+ #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 */
+ 
+ /* Additions by Martin Liversage - 91.01.23 */
+ 
+ #define IRIX_32
+ #undef NOMULTIPLEJOBS
+ #define SYSV_SYSTEM_DIR
+ #define sigsetmask(mask)
+ #define sigblock(x) x
Index: lisp/term/iris.el
*** /dev/null	Wed Jan 23 11:17:40 1991
--- lisp/term/iris.el	Wed Jan 23 13:14:10 1991
***************
*** 0 ****
--- 1,54 ----
+ ;; Martin Liversage - 91.01.10 12:10:32
+ 
+ (require 'keypad)
+ 
+ (defvar iris-function-map nil)
+ 
+ (if (not iris-function-map)
+     (progn
+       (setq iris-function-map (lookup-key global-map "\e["))
+       (if (not (keymapp iris-function-map))
+ 	  (setq iris-function-map (make-sparse-keymap)))
+       (setup-terminal-keymap iris-function-map
+ 			     '(("A" . ?u) ; Up
+ 			       ("B" . ?d) ; Down
+ 			       ("C" . ?r) ; Right
+ 			       ("D" . ?l) ; Left
+ 			       ("H" . ?h) ; Home
+ 			       ("150q" . ?P) ; Page Up
+ 			       ("154q" . ?N) ; Page Down
+ 			       ("001q" . ?\C-a) ; F1
+ 			       ("002q" . ?\C-b)
+ 			       ("003q" . ?\C-c)
+ 			       ("004q" . ?\C-d)
+ 			       ("005q" . ?\C-e)
+ 			       ("006q" . ?\C-f)
+ 			       ("007q" . ?\C-g)
+ 			       ("008q" . ?\C-h)
+ 			       ("009q" . ?\C-i)
+ 			       ("010q" . ?\C-j)
+ 			       ("011q" . ?\C-k)
+ 			       ("012q" . ?\C-l)
+ 			       ("013q" . ?\C-m) ; Shift-F1
+ 			       ("014q" . ?\C-n)
+ 			       ("015q" . ?\C-o)
+ 			       ("016q" . ?\C-p)
+ 			       ("017q" . ?\C-q)
+ 			       ("018q" . ?\C-r)
+ 			       ("019q" . ?\C-s)
+ 			       ("020q" . ?\C-t)
+ 			       ("021q" . ?\C-u)
+ 			       ("022q" . ?\C-v)
+ 			       ("023q" . ?\C-w)
+ 			       ("024q" . ?\C-x)
+ 			       ("139q" . ?I) ; Insert
+ 			       ("150q" . ?P) ; Page Up
+ 			       ("154q" . ?N))))) ; Page Down
+ 
+ (defun enable-function-keys ()
+   "Enable the use of the iris arrow and function keys.
+ Because of the nature of the iris, this unavoidably breaks
+ the standard Emacs command ESC [; therefore, it is not done by default,
+ but only if you give this command."
+   (global-set-key "\e[" iris-function-map))
+ 
-------------------------- end of file: patch1 --------------------------

Hope this is useful to some of you 8)

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\                                                                             \
\ Martin Liversage                      8616 m  /\                            \
\ Royal Dental College Copenhagen              /  \_   K2 - Mountain of Fate  \
\ Department of Pediatric Dentistry           / \   \       and Dreams        \
\ Norre Alle 20                              /   | | \                        \
\ DK-2200 Kobenhavn N                      /\    |  \ \                       \
\ +45 31 37 17 00 - 4276                  /  \ ^     | \                      \
\                                                                             \
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\