home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / unix / bsd / 3035 < prev    next >
Encoding:
Internet Message Format  |  1992-07-28  |  9.7 KB

  1. Path: sparky!uunet!pmafire!news.dell.com!swrinde!mips!darwin.sura.net!uvaarpa!cv3.cv.nrao.edu!laphroaig!cflatter
  2. From: cflatter@nrao.edu (Chris Flatters)
  3. Newsgroups: comp.unix.bsd
  4. Subject: GNU emacs for 386BSD
  5. Message-ID: <1992Jul28.155251.3433@nrao.edu>
  6. Date: 28 Jul 92 15:52:51 GMT
  7. Sender: news@nrao.edu
  8. Reply-To: cflatter@nrao.edu
  9. Organization: NRAO
  10. Lines: 298
  11.  
  12. The following shar file contains the two configuration files required
  13. for GNU emacs 18.58 under 386BSD 0.1 (s-386bsd.h and m-386bsd.h) and a
  14. brief README.  I have assumed that anybody who wants this has read the
  15. GNU emacs INSTALL document.
  16.  
  17. I didn't know about Pace Willisson's earlier configuration for 386BSD 0.0
  18. when I started this.  This version is organized rather differently than
  19. Pace's and has one improvement --- the load-average function will now work
  20. if emacs is installed with the correct privileges.
  21.  
  22.  
  23. # This is a shell archive.  Save it in a file, remove anything before
  24. # this line, and then unpack it by entering "sh file".  Note, it may
  25. # create directories; files and directories will be owned by you and
  26. # have default permissions.
  27. #
  28. # This archive contains:
  29. #
  30. #    README
  31. #    m-386bsd.h
  32. #    s-386bsd.h
  33. #
  34. echo x - README
  35. sed 's/^X//' >README << 'END-of-README'
  36. XThe two files s-386bsd.h and m-386bsd.h configure GNU emacs 18.58 for
  37. X386BSD 0.1.  Copy them to the directory $BUILD/src where $BUILD stands
  38. Xfor the topmost directory of the GNU emacs distribution.  You may then
  39. Xfollow the instructions in the GNU Emacs Installation Guide using
  40. Xs-386bsd.h and m-386bsd.h as the s- and m- files in conf.h.  Note,
  41. Xhowever, that you must edit $BUILD/Makefile changing `/bin/sed' to
  42. X`/usr/bin/sed' before running make.  Also note that you must run the
  43. Xfollowing commands (as root) after installing emacs.
  44. X
  45. Xcd /usr/local/bin    # or wherever the emacs binary was installed
  46. Xchgrp kmem emacs
  47. Xchmod g+s emacs
  48. X
  49. XIf you don't perform this last step then the load-average function
  50. Xwill always return (0 0 0).
  51. X
  52. XNOTES
  53. X
  54. X- Pressing Ctrl-Shift-2 generates `@' rather than C-@ so you will
  55. X  have to change the keyboard mapping for set-mark.  I think that
  56. X  this must be an oddity in the 386BSD keyboard driver.
  57. X
  58. X- There is nothing wrong with the status line.  The termcap database
  59. X  for the console highlights text by changing the colour rather than
  60. X  using inverse video: this looks rather odd if you are used to seeing
  61. X  emacs on monochrome terminals.
  62. X
  63. X- The only substantial difference between m-386bsd.h and m-intel386.h
  64. X  are the macros relating to the load average.  These should probably
  65. X  have been placed in a #ifdef block in m-intel386.h but I dislike
  66. X  #ifdefs.
  67. END-of-README
  68. echo x - m-386bsd.h
  69. sed 's/^X//' >m-386bsd.h << 'END-of-m-386bsd.h'
  70. X/* m- file for 386BSD.
  71. X   Copyright (C) 1987 Free Software Foundation, Inc.
  72. X
  73. XThis file is part of GNU Emacs.
  74. X
  75. XGNU Emacs is free software; you can redistribute it and/or modify
  76. Xit under the terms of the GNU General Public License as published by
  77. Xthe Free Software Foundation; either version 1, or (at your option)
  78. Xany later version.
  79. X
  80. XGNU Emacs is distributed in the hope that it will be useful,
  81. Xbut WITHOUT ANY WARRANTY; without even the implied warranty of
  82. XMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  83. XGNU General Public License for more details.
  84. X
  85. XYou should have received a copy of the GNU General Public License
  86. Xalong with GNU Emacs; see the file COPYING.  If not, write to
  87. Xthe Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  88. X
  89. X
  90. X/* The following three symbols give information on
  91. X the size of various data types.  */
  92. X
  93. X#define SHORTBITS 16        /* Number of bits in a short */
  94. X
  95. X#define INTBITS 32        /* Number of bits in an int */
  96. X
  97. X#define LONGBITS 32        /* Number of bits in a long */
  98. X
  99. X/* i386 is not big-endian: lowest numbered byte is least significant. */
  100. X
  101. X/* #undef BIG_ENDIAN */
  102. X
  103. X/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
  104. X * group of arguments and treat it as an array of the arguments.  */
  105. X
  106. X/* #define NO_ARG_ARRAY */
  107. X
  108. X/* Define WORD_MACHINE if addresses and such have
  109. X * to be corrected before they can be used as byte counts.  */
  110. X
  111. X/* #define WORD_MACHINE */
  112. X
  113. X/* Define how to take a char and sign-extend into an int.
  114. X   On machines where char is signed, this is a no-op.  */
  115. X
  116. X#define SIGN_EXTEND_CHAR(c) (c)
  117. X
  118. X/* Now define a symbol for the cpu type, if your compiler
  119. X   does not define it automatically:
  120. X   Ones defined so far include vax, m68000, ns16000, pyramid,
  121. X   orion, tahoe, APOLLO and many others */
  122. X
  123. X#define INTEL386
  124. X
  125. X/* Use type int rather than a union, to represent Lisp_Object */
  126. X
  127. X#define NO_UNION_TYPE
  128. X
  129. X/* crt0.c, if it is used, should use the i386-bsd style of entry.
  130. X   with no extra dummy args.  On USG and XENIX,
  131. X   NO_REMAP says this isn't used. */
  132. X
  133. X#define CRT0_DUMMIES bogus_fp,
  134. X
  135. X/* crt0.c should define a symbol `start' and do .globl with a dot.  */
  136. X
  137. X#define DOT_GLOBAL_START
  138. X
  139. X/* Data type of load average, as read out of kmem.  */
  140. X#define LOAD_AVE_TYPE unsigned long
  141. X
  142. X/* Convert that into an integer that is 100 for a load average of 1.0  */
  143. X#define LOAD_AVE_CVT(x) ((int)(((double) (x)) * 100.0 / FSCALE))
  144. X  
  145. X/* Define CANNOT_DUMP on machines where unexec does not work.
  146. X   Then the function dump-emacs will not be defined
  147. X   and temacs will do (load "loadup") automatically unless told otherwise.  */
  148. X
  149. X/* #define CANNOT_DUMP */
  150. X
  151. X/* Define VIRT_ADDR_VARIES if the virtual addresses of
  152. X   pure and impure space as loaded can vary, and even their
  153. X   relative order cannot be relied on.
  154. X
  155. X   Otherwise Emacs assumes that text space precedes data space,
  156. X   numerically.  */
  157. X
  158. X/* #define VIRT_ADDR_VARIES */
  159. X
  160. X#define HAVE_ALLOCA
  161. X
  162. X/* If compiling with GCC, let GCC implement alloca.  */
  163. X#if defined(__GNUC__) && !defined(alloca)
  164. X#define alloca(n) __builtin_alloca(n)
  165. X#define HAVE_ALLOCA
  166. X#endif
  167. END-of-m-386bsd.h
  168. echo x - s-386bsd.h
  169. sed 's/^X//' >s-386bsd.h << 'END-of-s-386bsd.h'
  170. X/* Definitions file for GNU Emacs running on 386BSD
  171. X   Copyright (C) 1985, 1986 Free Software Foundation, Inc.
  172. X
  173. XThis file is part of GNU Emacs.
  174. X
  175. XGNU Emacs is free software; you can redistribute it and/or modify
  176. Xit under the terms of the GNU General Public License as published by
  177. Xthe Free Software Foundation; either version 1, or (at your option)
  178. Xany later version.
  179. X
  180. XGNU Emacs is distributed in the hope that it will be useful,
  181. Xbut WITHOUT ANY WARRANTY; without even the implied warranty of
  182. XMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  183. XGNU General Public License for more details.
  184. X
  185. XYou should have received a copy of the GNU General Public License
  186. Xalong with GNU Emacs; see the file COPYING.  If not, write to
  187. Xthe Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  188. X
  189. X
  190. X/*
  191. X *    Define symbols to identify the version of Unix this is.
  192. X *    Define all the symbols that apply correctly.
  193. X */
  194. X
  195. X#ifndef BSD4_3
  196. X#define BSD4_3
  197. X#endif /* BSD4_3 */
  198. X
  199. X#ifndef BSD
  200. X#define BSD
  201. X#endif /* BSD */
  202. X
  203. X/* SYSTEM_TYPE should indicate the kind of system you are using.
  204. X It sets the Lisp variable system-type.  */
  205. X
  206. X#define SYSTEM_TYPE "386BSD"
  207. X
  208. X/* nomultiplejobs should be defined if your system's shell
  209. X does not have "job control" (the ability to stop a program,
  210. X run some other program, then continue the first one).  */
  211. X
  212. X/* #define NOMULTIPLEJOBS */
  213. X
  214. X/* Do not use interrupt_input = 1 by default, because in 4.3
  215. X   we can make noninterrupt input work properly.  */
  216. X
  217. X#undef INTERRUPT_INPUT
  218. X
  219. X/* First pty name is /dev/ptyp0.  */
  220. X
  221. X#define FIRST_PTY_LETTER 'p'
  222. X/*
  223. X *    Define HAVE_TIMEVAL if the system supports the BSD style clock values.
  224. X *    Look in <sys/time.h> for a timeval structure.
  225. X */
  226. X
  227. X#define HAVE_TIMEVAL
  228. X/*
  229. X *    Define HAVE_SELECT if the system supports the `select' system call.
  230. X */
  231. X
  232. X#define HAVE_SELECT
  233. X
  234. X/*
  235. X *    Define HAVE_PTYS if the system supports pty devices.
  236. X */
  237. X
  238. X#define HAVE_PTYS
  239. X
  240. X/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets.  */
  241. X
  242. X#define HAVE_SOCKETS
  243. X
  244. X/*
  245. X *    Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
  246. X *      The 4.2 opendir, etc., library functions.
  247. X */
  248. X
  249. X/* #define NONSYSTEM_DIR_LIBRARY */
  250. X
  251. X/* Define this symbol if your system has the functions bcopy, etc. */
  252. X
  253. X#define BSTRING
  254. X
  255. X/* subprocesses should be defined if you want to
  256. X   have code for asynchronous subprocesses
  257. X   (as used in M-x compile and M-x shell).
  258. X   This is generally OS dependent, and not supported
  259. X   under most USG systems. */
  260. X
  261. X#define subprocesses
  262. X
  263. X/* If your system uses COFF (Common Object File Format) then define the
  264. X   preprocessor symbol "COFF". */
  265. X
  266. X/* #define COFF */
  267. X
  268. X/* define MAIL_USE_FLOCK if the mailer uses flock
  269. X   to interlock access to /usr/spool/mail/$USER.
  270. X   The alternative is that a lock file named
  271. X   /usr/spool/mail/$USER.lock.  */
  272. X
  273. X#define MAIL_USE_FLOCK
  274. X
  275. X/* Define CLASH_DETECTION if you want lock files to be written
  276. X   so that Emacs can tell instantly when you try to modify
  277. X   a file that someone else has modified in his Emacs.  */
  278. X
  279. X#define CLASH_DETECTION
  280. X
  281. X/* We use the Berkeley (and usg5.2.2) interface to nlist.  */
  282. X
  283. X#define NLIST_STRUCT
  284. X
  285. X/* The file containing the kernel's symbol table is called /386bsd.  */
  286. X
  287. X#define KERNEL_FILE "/386bsd"
  288. X
  289. X/* The symbol in the kernel where the load average is found
  290. X   is named _averunnable. */
  291. X
  292. X#define LDAV_SYMBOL "_averunnable"
  293. X
  294. X/* This macro determines the number of bytes waiting to be written
  295. X   in a FILE buffer. */
  296. X
  297. X#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base)
  298. X
  299. X/* 386BSD uses GNU C */
  300. X
  301. X#define C_COMPILER gcc -traditional
  302. X
  303. X/* 386BSD stores the termcap database in /usr/share/misc rather than
  304. X   /etc. We use the system termcap library to avoid putting a #ifdef
  305. X   in termcap.c or forcing the user to use TERMCAP. */
  306. X#define LIBS_TERMCAP -ltermcap
  307. END-of-s-386bsd.h
  308. exit
  309.