Annotation of GNUtools/emacs/src/s-dgux.h, revision 1.1.1.1

1.1       root        1: /* Definitions file for GNU Emacs running on Data General's DG/UX
                      2:    version 4.32 and above.
                      3:    Copyright (C) 1985, 1986, 1991 Free Software Foundation, Inc.
                      4: 
                      5: This file is part of GNU Emacs.
                      6: 
                      7: GNU Emacs is free software; you can redistribute it and/or modify
                      8: it under the terms of the GNU General Public License as published by
                      9: the Free Software Foundation; either version 1, or (at your option)
                     10: any later version.
                     11: 
                     12: GNU Emacs is distributed in the hope that it will be useful,
                     13: but WITHOUT ANY WARRANTY; without even the implied warranty of
                     14: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     15: GNU General Public License for more details.
                     16: 
                     17: You should have received a copy of the GNU General Public License
                     18: along with GNU Emacs; see the file COPYING.  If not, write to
                     19: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
                     20: 
                     21: 
                     22: /*
                     23:  *     Define symbols to identify the version of Unix this is.
                     24:  *     Define all the symbols that apply correctly.
                     25:  */
                     26: 
                     27: /* #define UNIPLUS */
                     28: /* #define USG5 */
                     29: /* #define USG */
                     30: /* #define HPUX */
                     31: /* #define UMAX */
                     32: /* #define BSD4_1 */
                     33: #define BSD4_2
                     34: #define BSD4_3
                     35: #define BSD
                     36: /* #define VMS */
                     37: 
                     38: /* SYSTEM_TYPE should indicate the kind of system you are using.
                     39:  It sets the Lisp variable system-type.  */
                     40: 
                     41: #define SYSTEM_TYPE "dgux-unix"
                     42: 
                     43: /* NOMULTIPLEJOBS should be defined if your system's shell
                     44:  does not have "job control" (the ability to stop a program,
                     45:  run some other program, then continue the first one).  */
                     46: 
                     47: /* #define NOMULTIPLEJOBS */
                     48: 
                     49: /* Emacs can read input using SIGIO and buffering characters itself,
                     50:    or using CBREAK mode and making C-g cause SIGINT.
                     51:    The choice is controlled by the variable interrupt_input.
                     52:    Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO)
                     53: 
                     54:    SIGIO can be used only on systems that implement it (4.2 and 4.3).
                     55:    CBREAK mode has two disadvatages
                     56:      1) At least in 4.2, it is impossible to handle the Meta key properly.
                     57:         I hear that in system V this problem does not exist.
                     58:      2) Control-G causes output to be discarded.
                     59:         I do not know whether this can be fixed in system V.
                     60: 
                     61:    Another method of doing input is planned but not implemented.
                     62:    It would have Emacs fork off a separate process
                     63:    to read the input and send it to the true Emacs process
                     64:    through a pipe.
                     65: */
                     66: 
                     67: #define INTERRUPT_INPUT
                     68: 
                     69: /* Letter to use in finding device name of first pty,
                     70:   if system supports pty's.  'a' means it is /dev/ptya0  */
                     71: 
                     72: #define FIRST_PTY_LETTER 'r'
                     73: 
                     74: /*
                     75:  *     Define HAVE_TIMEVAL if the system supports the BSD style clock values.
                     76:  *     Look in <sys/time.h> for a timeval structure.
                     77:  */
                     78: 
                     79: #define HAVE_TIMEVAL
                     80: 
                     81: /*
                     82:  *     Define HAVE_SELECT if the system supports the `select' system call.
                     83:  */
                     84: 
                     85: #define HAVE_SELECT
                     86: 
                     87: /*
                     88:  *     Define HAVE_SOCKETS if the system supports sockets.
                     89:  */
                     90: 
                     91: #define HAVE_SOCKETS
                     92: 
                     93: /*
                     94:  *     Define HAVE_PTYS if the system supports pty devices.
                     95:  */
                     96: 
                     97: #define HAVE_PTYS
                     98: 
                     99: /*
                    100:  *     Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
                    101:  *      The 4.2 opendir, etc., library functions.
                    102:  */
                    103: 
                    104: /* #define NONSYSTEM_DIR_LIBRARY */
                    105: 
                    106: /* Define this symbol if your system has the functions bcopy, etc. */
                    107: 
                    108: #define BSTRING
                    109: 
                    110: /* subprocesses should be defined if you want to
                    111:    have code for asynchronous subprocesses
                    112:    (as used in M-x compile and M-x shell).
                    113:    This is generally OS dependent, and not supported
                    114:    under most USG systems. */
                    115: 
                    116: #define subprocesses
                    117: 
                    118: /* If your system uses COFF (Common Object File Format) then define the
                    119:    preprocessor symbol "COFF".
                    120: 
                    121:    DGUX can use either COFF or ELF.  To use ELF format, define ELF.  */
                    122: 
                    123: #ifndef ELF
                    124: #define COFF
                    125: #endif
                    126: 
                    127: #ifndef COFF /* People will probably find this apparently unreliable
                    128:                till the NFS dumping bug is fixed.  */
                    129: 
                    130: /* It is possible to undump to ELF with DG/UX 5.4, but for revisions below
                    131:    5.4.1 the undump MUST be done on a local file system, or the kernel will
                    132:    panic.  ELF executables have the advantage of using shared libraries,
                    133:    while COFF executables will still work on 4.2x systems. */
                    134: 
                    135: #define UNEXEC unexelf.o
                    136: 
                    137: /* This makes sure that all segments in the executable are undumped,
                    138:    not just text, data, and bss.  In the case of Mxdb and shared
                    139:    libraries, additional information is stored in other sections.
                    140:    It does not hurt to have this defined if you don't use Mxdb or
                    141:    shared libraries.  In fact, it makes no difference. */
                    142: 
                    143: /* Necessary for shared libraries and Mxdb debugging information. */
                    144: #define USG_SHARED_LIBRARIES
                    145: #endif
                    146: 
                    147: /* define MAIL_USE_FLOCK if the mailer uses flock
                    148:    to interlock access to /usr/spool/mail/$USER.
                    149:    The alternative is that a lock file named
                    150:    /usr/spool/mail/$USER.lock.  */
                    151: 
                    152: /* #define MAIL_USE_FLOCK */
                    153: 
                    154: /* Define CLASH_DETECTION if you want lock files to be written
                    155:    so that Emacs can tell instantly when you try to modify
                    156:    a file that someone else has modified in his Emacs.  */
                    157: 
                    158: /* #define CLASH_DETECTION */
                    159: 
                    160: /* Define a replacement for the baud rate switch, since DG/UX uses a different
                    161:    from BSD.  */
                    162: 
                    163: #define        BAUD_CONVERT    { 0, 110, 134, 150, 300, 600, 1200, 1800, 2400, \
                    164:                          4800, 9600, 19200, 38400 }
                    165: 
                    166: /*
                    167:  *     Define HAVE_GETTIMEOFDAY if gettimeofday() system call is available.
                    168:  */
                    169: 
                    170: #define HAVE_GETTIMEOFDAY
                    171: 
                    172: /*
                    173:  *     Define NLIST_STRUCT if the system has nlist.h
                    174:  */
                    175: 
                    176: #define        NLIST_STRUCT
                    177: 
                    178: /*
                    179:  *      Make WM Interface Compliant.
                    180:  */
                    181: 
                    182: #define XICCC
                    183: 
                    184: /* Here, on a separate page, add any special hacks needed
                    185:    to make Emacs work on this system.  For example,
                    186:    you might define certain system call names that don't
                    187:    exist on your system, or that do different things on
                    188:    your system and must be used only through an encapsulation
                    189:    (Which you should place, by convention, in sysdep.c).  */
                    190: 
                    191: /* Some compilers tend to put everything declared static
                    192:    into the initialized data area, which becomes pure after dumping Emacs.
                    193:    On these systems, you must #define static as nothing to foil this.
                    194:    Note that emacs carefully avoids static vars inside functions.  */
                    195: 
                    196: /* #define static */
                    197: 
                    198: /* DG/UX SPECIFIC ADDITIONS TO TEMPLATE FOLLOW: */
                    199: 
                    200: /* Use the Berkeley flavors of the library routines, instead of System V.  */
                    201: 
                    202: #define setpgrp(pid,pgrp) setpgrp2(pid,pgrp)
                    203: #define getpgrp(pid) getpgrp2(pid)
                    204: 
                    205: /* Act like Berkeley. */
                    206: 
                    207: #define _setjmp(env) sigsetjmp(env,0)
                    208: #define        _longjmp(env,val) longjmp(env,val)
                    209: 
                    210: /* Use TERMINFO instead of termcap */
                    211: 
                    212: #define        TERMINFO
                    213: 
                    214: /*
                    215:  *     Define HAVE_TERMIO if the system provides sysV-style ioctls
                    216:  *     for terminal control.
                    217:  *     DG/UX has both BSD and AT&T style ioctl's.  Bsd ioctl's don't
                    218:  *     seem to wait for the output to drain properly, so use System V.
                    219:  */
                    220: 
                    221: /* #define HAVE_TERMIO */
                    222: 
                    223: /*
                    224:  *     DG/UX 4.10 needs the following to turn on berkeley ioctl's.
                    225:  */
                    226: 
                    227: #ifndef HAVE_TERMIO
                    228: #ifndef _BSD_TTY_FLAVOR                /* Already defined, in dgux 4.30.  */
                    229: #define _BSD_TTY_FLAVOR
                    230: #endif
                    231: #endif
                    232: 
                    233: /*
                    234:  *     Use a Berkeley style sys/wait.h.
                    235:  *      This makes WIF* macros operate on structures instead of ints.
                    236:  */
                    237: 
                    238: #define _BSD_WAIT_FLAVOR
                    239: 
                    240: /*
                    241:  *      Use BSD and POSIX-style signals.  This is crucial!
                    242:  */
                    243: 
                    244: #define POSIX_SIGNALS
                    245: 
                    246: /* Not worth converting the old GNU malloc to work with POSIX_SIGNALS.  */
                    247: #define SYSTEM_MALLOC
                    248: 
                    249: /* Define this if you use System 5 Release 4 Streams */
                    250: #define SYSV4_PTYS
                    251: #define open  sys_open
                    252: #define close sys_close
                    253: #define read  sys_read
                    254: #define write sys_write
                    255: 
                    256: #define INTERRUPTABLE_OPEN
                    257: #define INTERRUPTABLE_CLOSE
                    258: /* can't hurt to define these, even though read/write should auto restart */
                    259: #define INTERRUPTABLE_IO
                    260: 
                    261: /* Can't use sys_signal because then etc/server.c would need sysdep.o.  */
                    262: #define signal(SIG,FUNC) berk_signal(SIG,FUNC)
                    263: 
                    264: #define LD_SWITCH_SYSTEM
                    265: /* Cannot depend on /lib/crt0.o because make does not understand an elink(1) */
                    266: #define START_FILES pre-crt0.o
                    267: #define LIBS_SYSTEM -ldgc /lib/crt0.o
                    268: 
                    269: /* definitions for xmakefile production */
                    270: #ifdef COFF
                    271:  
                    272: #define C_COMPILER \
                    273:   TARGET_BINARY_INTERFACE=m88kdguxcoff gcc -traditional
                    274:  
                    275: #define LINKER \
                    276:   TARGET_BINARY_INTERFACE=m88kdguxcoff ld
                    277: 
                    278: #define MAKE_COMMAND \
                    279:   TARGET_BINARY_INTERFACE=m88kdguxcoff make
                    280: 
                    281: #else /* not COFF */
                    282: 
                    283: #define C_COMPILER \
                    284:   TARGET_BINARY_INTERFACE=m88kdguxelf gcc -traditional
                    285:  
                    286: #define LINKER \
                    287:   TARGET_BINARY_INTERFACE=m88kdguxelf ld
                    288: 
                    289: #define MAKE_COMMAND \
                    290:   TARGET_BINARY_INTERFACE=m88kdguxelf make
                    291: 
                    292: #endif /* COFF */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.