(fix_submap_inheritance, get_keyelt, store_in_keymap,
[bpt/emacs.git] / src / s / gnu-linux.h
index b8ac147..3113565 100644 (file)
@@ -1,4 +1,4 @@
-/* This file is the configuration file for GNU/Linux operating systems.
+/* This file is the configuration file for Linux-based GNU systems
    Copyright (C) 1985, 1986, 1992, 1994, 1996 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -29,25 +29,30 @@ Boston, MA 02111-1307, USA.  */
 /* #define UNIPLUS */
 /* #define USG5 */
 #define USG
-/* #define BSD */
+/* #define BSD_SYSTEM */
 #define LINUX
 
 /* SYSTEM_TYPE should indicate the kind of system you are using.
  It sets the Lisp variable system-type.  */
 
-#define SYSTEM_TYPE "linux"            /* All the best software is free. */
+#define SYSTEM_TYPE "gnu/linux"                /* All the best software is free. */
 
 /* Check the version number of Linux--if it is at least 1.2.0,
    it is safe to use SIGIO.  */
 #ifndef NOT_C_CODE
 #ifdef emacs
+#ifdef HAVE_LINUX_VERSION_H
 #include <linux/version.h>
 
 #if LINUX_VERSION_CODE > 0x10200
 #define LINUX_SIGIO_DOES_WORK
-#endif
-#endif
-#endif
+#endif /* LINUX_VERSION_CODE > 0x10200 */
+#if LINUX_VERSION_CODE >= 0x20000
+#define LINUX_MAP_SHARED_DOES_WORK
+#endif /* LINUX_VERSION_CODE >= 0x20000 */
+#endif /* HAVE_LINUX_VERSION_H */
+#endif /* emacs */
+#endif /* NOT_C_CODE */
 
 /* Letter to use in finding device name of first pty,
   if system supports pty's.  'p' means it is /dev/ptyp0  */
@@ -88,9 +93,9 @@ Boston, MA 02111-1307, USA.  */
    The alternative is that a lock file named
    /usr/spool/mail/$USER.lock.  */
 
-/* Both are used in Linux by different mail programs.  I assume that most
-   people are using newer mailers that have heard of flock.  Change this
-   if you need to. */
+/* On GNU/Linux systems, both methods are used by various mail
+   programs.  I assume that most people are using newer mailers that
+   have heard of flock.  Change this if you need to. */
 
 #define MAIL_USE_FLOCK
 
@@ -148,13 +153,25 @@ Boston, MA 02111-1307, USA.  */
 #define LIB_GCC `$(CC) $(C_SWITCH_X_SITE) -print-libgcc-file-name`
 
 #ifndef __ELF__
-/* Linux has crt0.o in a non-standard place */
+/* GNU/Linux usually has crt0.o in a non-standard place */
 #define START_FILES pre-crt0.o /usr/lib/crt0.o
 #else
 #define START_FILES pre-crt0.o /usr/lib/crt1.o /usr/lib/crti.o
 #endif
 
-/* As of version 1.1.51, Linux does not actually implement SIGIO.  */
+#ifdef __ELF__
+/* Here is how to find X Windows.  LD_SWITCH_X_SITE_AUX gives an -R option
+   says where to find X windows at run time.  */
+
+#ifdef __mips__
+#define LD_SWITCH_SYSTEM -G 0 LD_SWITCH_X_SITE_AUX
+#else
+#define LD_SWITCH_SYSTEM LD_SWITCH_X_SITE_AUX
+#endif /* __mips__ */
+#endif /* __ELF__ */
+
+/* As of version 1.1.51, Linux did not actually implement SIGIO.
+   But it works in newer versions.  */
 /* Here we assume that signal.h is already included.  */
 #ifdef emacs
 #ifdef LINUX_SIGIO_DOES_WORK
@@ -175,6 +192,7 @@ Boston, MA 02111-1307, USA.  */
 #define HAVE_VFORK
 #define HAVE_SYS_SIGLIST
 #define HAVE_GETWD            /* cure conflict with getcwd? */
+#define HAVE_WAIT_HEADER
 
 #define SYSV_SYSTEM_DIR       /* use dirent.h */
 
@@ -219,16 +237,19 @@ Boston, MA 02111-1307, USA.  */
 /* Paul Abrahams <abrahams@equinox.shaysnet.com> says this is needed.  */
 #define LIB_MOTIF -lXm -lXpm
 
-#ifdef HAVE_NCURSES
+#ifdef HAVE_LIBNCURSES
 #define TERMINFO
+#define LIBS_TERMCAP -lncurses
 #endif
 
 #define HAVE_SYSVIPC
 
 #ifdef __ELF__
 #define UNEXEC unexelf.o
+#ifndef LINUX_MAP_SHARED_DOES_WORK
 #define UNEXEC_USE_MAP_PRIVATE
 #endif
+#endif
 
 #ifdef LINUX_QMAGIC
 
@@ -276,3 +297,8 @@ Boston, MA 02111-1307, USA.  */
    and the function definitions in libc.  So turn this off.  */
 /* #define REGEXP_IN_LIBC */
 
+/* Use BSD process groups, but use setpgid() instead of setpgrp() to
+   actually set a process group. */
+
+#define BSD_PGRPS
+#define setpgrp(pid,pgid) setpgid((pid),(pgid))