Return to BSD News archive
Newsgroups: comp.unix.bsd Path: sserve!manuel!munnari.oz.au!mips!mips!darwin.sura.net!uvaarpa!cv3.cv.nrao.edu!laphroaig!cflatter From: cflatter@nrao.edu (Chris Flatters) Subject: GNU emacs for 386BSD Message-ID: <1992Jul28.155251.3433@nrao.edu> Sender: news@nrao.edu Reply-To: cflatter@nrao.edu Organization: NRAO Date: Tue, 28 Jul 1992 15:52:51 GMT Lines: 300 The following shar file contains the two configuration files required for GNU emacs 18.58 under 386BSD 0.1 (s-386bsd.h and m-386bsd.h) and a brief README. I have assumed that anybody who wants this has read the GNU emacs INSTALL document. I didn't know about Pace Willisson's earlier configuration for 386BSD 0.0 when I started this. This version is organized rather differently than Pace's and has one improvement --- the load-average function will now work if emacs is installed with the correct privileges. # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # README # m-386bsd.h # s-386bsd.h # echo x - README sed 's/^X//' >README << 'END-of-README' XThe two files s-386bsd.h and m-386bsd.h configure GNU emacs 18.58 for X386BSD 0.1. Copy them to the directory $BUILD/src where $BUILD stands Xfor the topmost directory of the GNU emacs distribution. You may then Xfollow the instructions in the GNU Emacs Installation Guide using Xs-386bsd.h and m-386bsd.h as the s- and m- files in conf.h. Note, Xhowever, that you must edit $BUILD/Makefile changing `/bin/sed' to X`/usr/bin/sed' before running make. Also note that you must run the Xfollowing commands (as root) after installing emacs. X Xcd /usr/local/bin # or wherever the emacs binary was installed Xchgrp kmem emacs Xchmod g+s emacs X XIf you don't perform this last step then the load-average function Xwill always return (0 0 0). X XNOTES X X- Pressing Ctrl-Shift-2 generates `@' rather than C-@ so you will X have to change the keyboard mapping for set-mark. I think that X this must be an oddity in the 386BSD keyboard driver. X X- There is nothing wrong with the status line. The termcap database X for the console highlights text by changing the colour rather than X using inverse video: this looks rather odd if you are used to seeing X emacs on monochrome terminals. X X- The only substantial difference between m-386bsd.h and m-intel386.h X are the macros relating to the load average. These should probably X have been placed in a #ifdef block in m-intel386.h but I dislike X #ifdefs. END-of-README echo x - m-386bsd.h sed 's/^X//' >m-386bsd.h << 'END-of-m-386bsd.h' X/* m- file for 386BSD. X Copyright (C) 1987 Free Software Foundation, Inc. X XThis file is part of GNU Emacs. X XGNU Emacs is free software; you can redistribute it and/or modify Xit under the terms of the GNU General Public License as published by Xthe Free Software Foundation; either version 1, or (at your option) Xany later version. X XGNU Emacs is distributed in the hope that it will be useful, Xbut WITHOUT ANY WARRANTY; without even the implied warranty of XMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the XGNU General Public License for more details. X XYou should have received a copy of the GNU General Public License Xalong with GNU Emacs; see the file COPYING. If not, write to Xthe Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ X X X/* The following three symbols give information on X the size of various data types. */ X X#define SHORTBITS 16 /* Number of bits in a short */ X X#define INTBITS 32 /* Number of bits in an int */ X X#define LONGBITS 32 /* Number of bits in a long */ X X/* i386 is not big-endian: lowest numbered byte is least significant. */ X X/* #undef BIG_ENDIAN */ X X/* Define NO_ARG_ARRAY if you cannot take the address of the first of a X * group of arguments and treat it as an array of the arguments. */ X X/* #define NO_ARG_ARRAY */ X X/* Define WORD_MACHINE if addresses and such have X * to be corrected before they can be used as byte counts. */ X X/* #define WORD_MACHINE */ X X/* Define how to take a char and sign-extend into an int. X On machines where char is signed, this is a no-op. */ X X#define SIGN_EXTEND_CHAR(c) (c) X X/* Now define a symbol for the cpu type, if your compiler X does not define it automatically: X Ones defined so far include vax, m68000, ns16000, pyramid, X orion, tahoe, APOLLO and many others */ X X#define INTEL386 X X/* Use type int rather than a union, to represent Lisp_Object */ X X#define NO_UNION_TYPE X X/* crt0.c, if it is used, should use the i386-bsd style of entry. X with no extra dummy args. On USG and XENIX, X NO_REMAP says this isn't used. */ X X#define CRT0_DUMMIES bogus_fp, X X/* crt0.c should define a symbol `start' and do .globl with a dot. */ X X#define DOT_GLOBAL_START X X/* Data type of load average, as read out of kmem. */ X#define LOAD_AVE_TYPE unsigned long X X/* Convert that into an integer that is 100 for a load average of 1.0 */ X#define LOAD_AVE_CVT(x) ((int)(((double) (x)) * 100.0 / FSCALE)) X X/* Define CANNOT_DUMP on machines where unexec does not work. X Then the function dump-emacs will not be defined X and temacs will do (load "loadup") automatically unless told otherwise. */ X X/* #define CANNOT_DUMP */ X X/* Define VIRT_ADDR_VARIES if the virtual addresses of X pure and impure space as loaded can vary, and even their X relative order cannot be relied on. X X Otherwise Emacs assumes that text space precedes data space, X numerically. */ X X/* #define VIRT_ADDR_VARIES */ X X#define HAVE_ALLOCA X X/* If compiling with GCC, let GCC implement alloca. */ X#if defined(__GNUC__) && !defined(alloca) X#define alloca(n) __builtin_alloca(n) X#define HAVE_ALLOCA X#endif END-of-m-386bsd.h echo x - s-386bsd.h sed 's/^X//' >s-386bsd.h << 'END-of-s-386bsd.h' X/* Definitions file for GNU Emacs running on 386BSD X Copyright (C) 1985, 1986 Free Software Foundation, Inc. X XThis file is part of GNU Emacs. X XGNU Emacs is free software; you can redistribute it and/or modify Xit under the terms of the GNU General Public License as published by Xthe Free Software Foundation; either version 1, or (at your option) Xany later version. X XGNU Emacs is distributed in the hope that it will be useful, Xbut WITHOUT ANY WARRANTY; without even the implied warranty of XMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the XGNU General Public License for more details. X XYou should have received a copy of the GNU General Public License Xalong with GNU Emacs; see the file COPYING. If not, write to Xthe Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ X X X/* X * Define symbols to identify the version of Unix this is. X * Define all the symbols that apply correctly. X */ X X#ifndef BSD4_3 X#define BSD4_3 X#endif /* BSD4_3 */ X X#ifndef BSD X#define BSD X#endif /* BSD */ X X/* SYSTEM_TYPE should indicate the kind of system you are using. X It sets the Lisp variable system-type. */ X X#define SYSTEM_TYPE "386BSD" X X/* nomultiplejobs should be defined if your system's shell X does not have "job control" (the ability to stop a program, X run some other program, then continue the first one). */ X X/* #define NOMULTIPLEJOBS */ X X/* Do not use interrupt_input = 1 by default, because in 4.3 X we can make noninterrupt input work properly. */ X X#undef INTERRUPT_INPUT X X/* First pty name is /dev/ptyp0. */ X X#define FIRST_PTY_LETTER 'p' X/* X * Define HAVE_TIMEVAL if the system supports the BSD style clock values. X * Look in <sys/time.h> for a timeval structure. X */ X X#define HAVE_TIMEVAL X X/* X * Define HAVE_SELECT if the system supports the `select' system call. X */ X X#define HAVE_SELECT X X/* X * Define HAVE_PTYS if the system supports pty devices. X */ X X#define HAVE_PTYS X X/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ X X#define HAVE_SOCKETS X X/* X * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate X * The 4.2 opendir, etc., library functions. X */ X X/* #define NONSYSTEM_DIR_LIBRARY */ X X/* Define this symbol if your system has the functions bcopy, etc. */ X X#define BSTRING X X/* subprocesses should be defined if you want to X have code for asynchronous subprocesses X (as used in M-x compile and M-x shell). X This is generally OS dependent, and not supported X under most USG systems. */ X X#define subprocesses X X/* If your system uses COFF (Common Object File Format) then define the X preprocessor symbol "COFF". */ X X/* #define COFF */ X X/* define MAIL_USE_FLOCK if the mailer uses flock X to interlock access to /usr/spool/mail/$USER. X The alternative is that a lock file named X /usr/spool/mail/$USER.lock. */ X X#define MAIL_USE_FLOCK X X/* Define CLASH_DETECTION if you want lock files to be written X so that Emacs can tell instantly when you try to modify X a file that someone else has modified in his Emacs. */ X X#define CLASH_DETECTION X X/* We use the Berkeley (and usg5.2.2) interface to nlist. */ X X#define NLIST_STRUCT X X/* The file containing the kernel's symbol table is called /386bsd. */ X X#define KERNEL_FILE "/386bsd" X X/* The symbol in the kernel where the load average is found X is named _averunnable. */ X X#define LDAV_SYMBOL "_averunnable" X X/* This macro determines the number of bytes waiting to be written X in a FILE buffer. */ X X#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base) X X/* 386BSD uses GNU C */ X X#define C_COMPILER gcc -traditional X X/* 386BSD stores the termcap database in /usr/share/misc rather than X /etc. We use the system termcap library to avoid putting a #ifdef X in termcap.c or forcing the user to use TERMCAP. */ X#define LIBS_TERMCAP -ltermcap END-of-s-386bsd.h exit