home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / source / a2.0bemacs-src.lha / Emacs-19.25 / src / s / amigados.h < prev   
Encoding:
C/C++ Source or Header  |  1995-01-10  |  7.3 KB  |  272 lines

  1. /* file for GNU Emacs running on AmigaDOS 2.04, SAS C compiler 6.51b
  2.    Copyright (C) 1985, 1986 Free Software Foundation, Inc.
  3.  
  4. This file is part of GNU Emacs.
  5.  
  6. GNU Emacs is distributed in the hope that it will be useful,
  7. but WITHOUT ANY WARRANTY.  No author or distributor
  8. accepts responsibility to anyone for the consequences of using it
  9. or for whether it serves any particular purpose or works at all,
  10. unless he says so in writing.  Refer to the GNU Emacs General Public
  11. License for full details.
  12.  
  13. Everyone is granted permission to copy, modify and redistribute
  14. GNU Emacs, but only under the conditions described in the
  15. GNU Emacs General Public License.   A copy of this license is
  16. supposed to have been given to you along with GNU Emacs so you
  17. can know your rights and responsibilities.  It should be in a
  18. file named COPYING.  Among other things, the copyright notice
  19. and this notice must be preserved on all copies.  */
  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. #ifndef AMIGA
  28. #define AMIGA
  29. #endif /* AMIGA */
  30.  
  31. /* SYSTEM_TYPE should indicate the kind of system you are using.
  32.  It sets the Lisp variable system-type.  */
  33.  
  34. #define SYSTEM_TYPE "amigados" /* CHFIXME: to amigaos ? */
  35.  
  36. /* Define this if you want a faster redisplay. This saves a lot of CPU
  37.    time at the expense of more characters to be redrawn.
  38.    On a bitmapped display you win, with a serial line you probably lose.
  39. */
  40. /* #define FAST_DISPLAY */
  41.  
  42. /* Define this to display eight bit characters. The actual characters
  43.    that are visible can be set in init_xdisp ().
  44. */
  45. /* #define EIGHT_BIT should not be needed anymore CHFIXME */
  46.  
  47. /* nomultiplejobs should be defined if your system's shell
  48.  does not have "job control" (the ability to stop a program,
  49.  run some other program, then continue the first one).  */
  50.  
  51. #define NOMULTIPLEJOBS
  52.  
  53. /* Define this to include various patches that allow the Amiga to dump.
  54.    This *must* be defined on the Amiga!
  55. */
  56. #define AMIGA_DUMP
  57.  
  58. /* Do not use interrupt_input = 1 by default, because in 4.3
  59.    we can make noninterrupt input work properly.  */
  60.  
  61. /* #undef INTERRUPT_INPUT */    /* This file borrowed from s-bsd4-3.h */
  62.  
  63. /* First pty name is /dev/ptyp0.  */
  64.  
  65. /* #define FIRST_PTY_LETTER 'p' */
  66. /*
  67.  *      Define HAVE_TIMEVAL if the system supports the BSD style clock values.
  68.  *      Look in <sys/time.h> for a timeval structure.
  69.  */
  70.  
  71. #define HAVE_TIMEVAL
  72. #define USE_UTIME
  73.  
  74. /*
  75.  *      Define HAVE_SELECT if the system supports the `select' system call.
  76.  */
  77.  
  78. #define HAVE_SELECT
  79.  
  80. /*
  81.  *      Define HAVE_PTYS if the system supports pty devices.
  82.  */
  83.  
  84. /* #define HAVE_PTYS */
  85.  
  86. /* Define HAVE_SOCKETS if system supports 4.2-compatible sockets.  */
  87.  
  88. /* #define HAVE_SOCKETS */
  89.  
  90. /* But we do have socket pairs for processes ... */
  91. #define SKTPAIR
  92.  
  93. /*
  94.  *      Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
  95.  *      The 4.2 opendir, etc., library functions.
  96.  */
  97.  
  98. /* #define NONSYSTEM_DIR_LIBRARY */
  99. #define SYSV_SYSTEM_DIR
  100.  
  101. /* Define this symbol if your system has the functions bcopy, etc. */
  102.  
  103. #define BSTRING         /* #define'ed later on */
  104.  
  105. /* subprocesses should be defined if you want to
  106.    have code for asynchronous subprocesses
  107.    (as used in M-x compile and M-x shell).
  108.    This is generally OS dependent, and not supported
  109.    under most USG systems. */
  110.  
  111. #define subprocesses
  112.  
  113. #define DID_REMOTE              /* Use 0 length write to send eof */
  114.  
  115. /* If your system uses COFF (Common Object File Format) then define the
  116.    preprocessor symbol "COFF". */
  117.  
  118. /* #define COFF */
  119.  
  120. /* define MAIL_USE_FLOCK if the mailer uses flock
  121.    to interlock access to /usr/spool/mail/$USER.
  122.    The alternative is that a lock file named
  123.    /usr/spool/mail/$USER.lock.  */
  124.  
  125. /* #define MAIL_USE_FLOCK */
  126.  
  127. /* Define CLASH_DETECTION if you want lock files to be written
  128.    so that Emacs can tell instantly when you try to modify
  129.    a file that someone else has modified in his Emacs.  */
  130.  
  131. /* #define CLASH_DETECTION */
  132.  
  133. /* We use the Berkeley (and usg5.2.2) interface to nlist.  */
  134.  
  135. /* #define NLIST_STRUCT */
  136.  
  137. /* The file containing the kernel's symbol table is called /vmunix.  */
  138.  
  139. /* #define KERNEL_FILE "/vmunix" */
  140.  
  141. /* The symbol in the kernel where the load average is found
  142.    is named _avenrun.  */
  143.  
  144. /* #define LDAV_SYMBOL "_avenrun" */
  145.  
  146. /* We use our own malloc for 2 reasons:
  147.      - To check that the 6 (INTBITS - VALBITS) of allocated data are
  148.        the same as &pure[0].
  149.      - To release unused memory to the system (SAS's malloc keeps it
  150.        till you quit)
  151. */
  152.  
  153. #define SYMS_SYSTEM syms_of_amiga()
  154.  
  155. #define SYSTEM_MALLOC           /* But I have replaced the system malloc ... */
  156.  
  157. #define DEF_PURESIZE 280000             /* Leave space for extra code for Amiga */
  158. #ifdef emacs
  159. extern int puresize;
  160. #endif
  161. #define PURESIZE puresize       /* Puresize is variable ... */
  162.  
  163. #ifdef emacs
  164. /* Stdio must be included before redefining putchar */
  165. #include <stdio.h>
  166. extern char cbuffer[], *cbuffer_pos;
  167. #define PENDING_OUTPUT_COUNT(x) (cbuffer_pos - cbuffer)
  168. #endif
  169. /* We divert some calls to our routines */
  170. #undef putchar
  171. #define putchar(c) do { extern int noninteractive; \
  172.                      if (noninteractive) putc (c, stdout); \
  173.                      else emacs_putchar(c); } while(0)
  174. #define fwrite emacs_fwrite
  175. #define fflush emacs_fflush
  176. #define random rand
  177. #define srandom srand
  178. #define main emacs_main
  179. #define select emacs_select
  180.  
  181. #ifdef emacs
  182. #include <string.h>
  183. #undef index
  184. #undef rindex
  185. #define index strchr
  186. #define rindex strrchr
  187. #endif
  188.  
  189. #define fsync(x) 0              /* Emulate fsync ... */
  190.  
  191. #ifdef emacs
  192. #include <sys/wait.h>           /* process.c doesn't have appropriate #ifdef's */
  193. extern int amiga_process_stack_size;
  194. #endif
  195.  
  196. #define LISP_FLOAT_TYPE
  197.  
  198. /* Here are some symbols for ymakefile's benefit */
  199.  
  200. #define LIB_STANDARD            New:compilers/unix/src/unix.lib lib:scm881.lib lib:sc.lib lib:amiga.lib
  201. #define START_FILES             lib:c.o firstfile.o
  202. #define C_DEBUG_SWITCH          debug s
  203. #define C_OPTIMIZE_SWITCH       opt
  204. #define LD_SWITCH_SYSTEM
  205. #define C_SWITCH_SYSTEM
  206. #define S_SWITCH_MACHINE        /* Nothing! */
  207. #define UNEXEC amiga_dump.o
  208. #define OBJECTS_SYSTEM          amiga_clipboard.o amiga_tty.o amiga_serial.o \
  209.                                 amiga_screen.o amiga_menu.o amiga_malloc.o \
  210.                                 amiga_rexx.o simplerexx.o amiga_term.o
  211.  
  212. /* Can't use : on Amiga */
  213. #define SEPCHAR ','
  214.  
  215. #define abort() amiga_abort(__FILE__,__LINE__)
  216.  
  217. #define NULL_DEVICE "NIL:"
  218.  
  219. /* Define USE_TEXT_PROPERTIES to support visual and other properties
  220.    on text. */
  221. #ifndef USE_TEXT_PROPERTIES
  222. #define USE_TEXT_PROPERTIES
  223. #endif
  224.  
  225. #undef USER_FULL_NAME
  226. #define USER_FULL_NAME "GNU Emacs Lover"
  227.  
  228. #define HAVE_SYS_TIMEB_H
  229. #define HAVE_SYS_TIME_H
  230. #define HAVE_UNISTD_H
  231. #define STDC_HEADERS
  232. #define TIME_WITH_SYS_TIME
  233.  
  234. #define HAVE_GETTIMEOFDAY
  235. #define HAVE_GETHOSTNAME
  236. #undef HAVE_DUP2
  237. #define HAVE_RENAME
  238. #define HAVE_CLOSEDIR
  239.  
  240. #define HAVE_TM_ZONE
  241. #define HAVE_TZNAME
  242.  
  243. #define HAVE_LONG_FILE_NAMES
  244.  
  245. #define HAVE_MKDIR
  246. #define HAVE_RMDIR
  247. #define HAVE_RANDOM
  248. #define HAVE_BCOPY
  249. #define HAVE_BCMP
  250. #undef  HAVE_LOGB
  251. #define HAVE_FREXP
  252. #define HAVE_FMOD
  253. #define HAVE_FTIME
  254.  
  255. #define EMACS_CONFIGURATION "dgilbert"
  256.  
  257. #define NAME_SHELL "gnuemacs-19.25:etc/sh"
  258.  
  259. /* Amiga window-specific stuff */
  260.  
  261. #define VERS "2.0DCLG Beta"
  262.  
  263. #define FALSE 0
  264. #define TRUE 1
  265.  
  266. #define HAVE_MOUSE
  267.  
  268. #define USE_EXTERNAL_MENU_BAR
  269. #if 0
  270. #define USE_SCROLL_BARS
  271. #endif
  272.