home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / gnu / lucid / lemacs-19.6 / src / config.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-04-01  |  8.9 KB  |  266 lines

  1. /* GNU Emacs site configuration template file.
  2.    Copyright (C) 1986-1993 Free Software Foundation, Inc.
  3.  
  4. This file is part of GNU Emacs.
  5.  
  6. GNU Emacs is free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 2, or (at your option)
  9. any later version.
  10.  
  11. GNU Emacs is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with GNU Emacs; see the file COPYING.  If not, write to
  18. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  19.  
  20. #ifndef _CONFIG_H_
  21. #define _CONFIG_H_
  22.  
  23. /* Allow Emacses larger than 16 megabytes.  */
  24.  
  25. #ifndef VALBITS
  26. #define VALBITS 26
  27. #define GCTYPEBITS 5
  28. #endif
  29.  
  30. /* Define USE_GCC to compile with GCC.
  31.    Define USE_LCC to compile with Lucid C.
  32.    Otherwise, "cc" will be used.
  33.    You -must- use an ANSI C compiler.
  34.    This has to come before include the m- file.
  35.  */
  36.  
  37. #define USE_GCC
  38. /* #define USE_LCC */
  39.  
  40. /* Include here a s- file that describes the system type you are using.
  41.    See the file ../etc/MACHINES for a list of systems and the names of
  42.    the s- files to use for them.  See s-template.h for documentation on 
  43.    writing s- files.
  44.  */
  45. #include "s/s-sunos4shr.h"
  46.  
  47. /* Include here a m- file that describes the machine and system you use.
  48.    See the file ../etc/MACHINES for a list of machines and the names of 
  49.    the m- files to use for them.   See m-template.h for info on what m- 
  50.    files should define.
  51.  */
  52. #include "m/m-sparc.h"
  53.  
  54. /* Load in the conversion definitions if this system
  55.    needs them and the source file being compiled has not
  56.    said to inhibit this.  There should be no need for you
  57.    to alter these lines.  */
  58.  
  59. #ifdef SHORTNAMES
  60. #ifndef NO_SHORTNAMES
  61. #include "../shortnames/remap.h"
  62. #endif /* not NO_SHORTNAMES */
  63. #endif /* SHORTNAMES */
  64.  
  65. /* Define HAVE_X_WINDOWS if you want to use the X window system.  */
  66. #define HAVE_X_WINDOWS
  67.  
  68. #ifdef HAVE_X_WINDOWS
  69. #ifndef MULTI_SCREEN
  70. #define MULTI_SCREEN
  71. #endif
  72. #endif
  73.  
  74. /* Define HAVE_XPM if you have the `xpm' library and want emacs to use it. */
  75. #define HAVE_XPM
  76.  
  77. /* Define `subprocesses' if you want to have code for asynchronous
  78.    subprocesses (as used in M-x compile and M-x shell).  These do not
  79.    work for some USG systems yet; for the ones where they work, the
  80.    s-*.h file defines this flag.  */
  81.  
  82. #ifndef VMS
  83. #ifndef USG
  84. #define subprocesses
  85. #endif
  86. #endif
  87.  
  88. /* Define the return type of signal handlers if the s-xxx file
  89.    did not already do so.  */
  90. #ifndef SIGTYPE
  91. #define SIGTYPE void
  92. #endif
  93.  
  94. /* Define USER_FULL_NAME to return a string
  95.    that is the user's full name.
  96.    It can assume that the variable `pw'
  97.    points to the password file entry for this user.
  98.  
  99.    At some sites, the pw_gecos field contains
  100.    the user's full name.  If neither this nor any other
  101.    field contains the right thing, use pw_name,
  102.    giving the user's login name, since that is better than nothing.  */
  103.  
  104. #define USER_FULL_NAME pw->pw_gecos
  105.  
  106. /* Define AMPERSAND_FULL_NAME if you use the convention
  107.    that & in the full name stands for the login id.  */
  108.  
  109. /* #define AMPERSAND_FULL_NAME */
  110.  
  111. /* Define HIGHPRI as a negative number if you want Emacs to run at a higher
  112.    than normal priority.  For this to take effect, you must install it as
  113.    setuid root. */
  114.  
  115. /* #define HIGHPRI */
  116.  
  117. /* support `getenv' and `setenv' in Emacs (unix only) */
  118. #define MAINTAIN_ENVIRONMENT
  119.  
  120. /* Define LISP_FLOAT_TYPE if you want emacs to support floating-point
  121.    numbers. */
  122.  
  123. #define LISP_FLOAT_TYPE
  124.  
  125. /* Define this for new syntax parsing code that works with C++ mode. */
  126. #define NEW_SYNTAX
  127.  
  128. /* Define GNU_MALLOC if you want to use the *new* GNU memory allocator.
  129.    If you have trouble with _malloc being multiply-defined, or if you're
  130.    on a NeXT (or possibly MACH in general) comment out the next four lines.
  131.  */
  132. #ifdef SYSTEM_MALLOC
  133. #undef SYSTEM_MALLOC
  134. #endif
  135. #define GNU_MALLOC
  136.  
  137. /* The SunOS 4.1 version of localtime() allocates 8 bytes and writes to 9,
  138.    which causes predictably bad problems unless you use the SunOS version
  139.    of malloc, which doesn't mind.  This turns on a workaround in gmalloc.c.
  140.    This is allegedly fixed by Sun patch 100267-04.  Its official designation
  141.    is "1038500: localtime or tzsetwall corrupts malloc space."
  142.  */
  143. #if defined(GNU_MALLOC) && defined(sparc) && !defined(__svr4__)
  144. # define SUNOS_LOCALTIME_BUG
  145. #endif
  146.  
  147. /* Define NEED_STRDUP if your system doesn't have a strdup() function.
  148.    Define NEED_REALPATH if your system does not include a realpath() function.
  149.    These flags really should be in the appropriate s- file, so if you need 
  150.    to do this, let us know and we'll put them there in the next release.
  151.  */
  152. /* #define NEED_STRDUP */
  153. /* #define NEED_REALPATH */
  154.  
  155.  
  156. /* Define REL_ALLOC if you want to use the relocating allocator for
  157.    buffer space.  (There are too many problems with this right now.) */
  158.  
  159. /* #define REL_ALLOC */
  160.  
  161. /* Define ENERGIZE to compile with support for the Energize Programming System.
  162.    If you do this, don't forget to define ENERGIZE in lwlib/Imakefile as well.
  163.    You will need to set your C_SWITCH_SITE and LD_SWITCH_SITE to point at the
  164.    Energize connection library (libconn.a) and associated header files.
  165.  */
  166. /* #define ENERGIZE */
  167.  
  168. /* You should define LWLIB_HAS_EXTENSIONS if and only if the lwlib Imakefile
  169.    had INCLUDE_EXTENSIONS defined.  This makes it possible to link arbitrary
  170.    other widgets into the Emacs frame; Energize requires this.  The only
  171.    reason you would not want this defined is if you couldn't get lwlib to
  172.    compile this way because you don't have read-access to the X source tree.
  173.    See also LWLIB_USES_MOTIF and LWLIB_USES_OLIT, below.
  174.  */
  175. #ifdef ENERGIZE
  176. #define LWLIB_HAS_EXTENSIONS
  177. #endif
  178.  
  179. /* Sun SparStations and SGI machines have support for playing different sound
  180.    files as beeps.  If you are on a SparcStation but do not have the sound 
  181.    option installed for some reason (It's usually in /usr/demo/SOUND/) then
  182.    undefine USE_SOUND.
  183.  */
  184. /* #undef USE_SOUND */
  185.  
  186.  
  187. /* Compile in support for running emacs directly from temacs (useful for
  188.    debugging emacs) */
  189. /* #define RUNNABLE_TEMACS */
  190.  
  191.  
  192. /* If you have defined USE_MOTIF in the lwlib Imakefile, then you must define
  193.    LWLIB_USES_MOTIF here.  Similarly, if you have defined USE_OLIT in the
  194.    lwlib Imakefile, you must define LWLIB_USES_OLIT here.  This is because
  195.    emacs must be linked with the Motif or OpenLook libraries if lwlib has
  196.    been configured to use them.  (Note: you cannot define both.)
  197.  
  198.    See the comments in lwlib/Imakefile for more info.
  199.  */
  200. /* #define LWLIB_USES_MOTIF */
  201. /* #define LWLIB_USES_OLIT */
  202.  
  203. /* Energize requires Motif. */
  204. #if defined(ENERGIZE) && !defined(LWLIB_USES_MOTIF)
  205. # define LWLIB_USES_MOTIF
  206. # undef LWLIB_USES_OLIT
  207. #endif
  208.  
  209.  
  210. #ifdef THIS_IS_YMAKEFILE
  211.  
  212. /* Define LD_SWITCH_SITE to contain any special flags your loader may
  213.    need.  For instance, if you've defined HAVE_X_WINDOWS above and your
  214.    X libraries aren't in a place that your loader can find on its own,
  215.    you might want to add "-L/..." or something similar.  */
  216.  
  217. /* #define LD_SWITCH_SITE -L/x11r4/usr.`arch`/lib */
  218.  
  219. /* Define C_SWITCH_SITE to contain any special flags your compiler may
  220.    need.  For instance, if you've defined HAVE_X_WINDOWS above and your
  221.    X include files aren't in a place that your compiler can find on its
  222.    own, you might want to add "-I/..." or something similar.  */
  223.  
  224. /* #define C_SWITCH_SITE -I/x11r4/usr/include */
  225.  
  226. #ifdef USE_GCC
  227. /* Depending on how GCC is installed, you may need to add the gcc library
  228.    here.  This could also go in LD_SWITCH_SITE.  If you get errors about
  229.    __fixunsdfsi or__main being undefined, you probably need to do this. */
  230.  
  231. /* #define LIB_GCC /cadillacgnu/lib/sun4/gcc-gnulib */
  232.  
  233. /* this kludge is because gcc uses "-static" and "-dynamic", while everyone
  234.    else in the world uses "-Bstatic" and "-Bdynamic". */
  235. # define Bstatic  static
  236. # define Bdynamic dynamic
  237.  
  238. #endif /* USE_GCC */
  239.  
  240. #ifdef USE_LCC
  241. # undef C_OPTIMIZE_SWITCH
  242. # define C_OPTIMIZE_SWITCH -O4 -Oi -G
  243. #endif
  244.  
  245. /* If you are using SunOS 4.1.1 and X11r5, then you need this patch.
  246.    There is a stupid bug in the SunOS libc.a: two functions which X11r5
  247.    uses, mbstowcs() and wcstombs(), are unusable when programs are
  248.    statically linked (as Emacs must be) because the static version of
  249.    libc.a contains the *dynamic* versions of these functions.  These
  250.    functions don't seem to be called when Emacs is running, so it's 
  251.    enough to define stubs for them.
  252.  
  253.    This appears to be fixed in SunOS 4.1.2.
  254.  
  255.    Also, SunOS 4.1.1 contains buggy versions of strcmp and strcpy that
  256.    sometimes reference memory past the end of the string, which can segv.
  257.    I don't know whether this is has been fixed as of 4.1.2 or 4.1.3.
  258.  */
  259. #if defined(sparc) && !defined(__svr4__)
  260. #define OBJECTS_SYSTEM sunOS-fix.o strcmp.o strcpy.o
  261. #endif
  262.  
  263.  
  264. #endif /* THIS_IS_YMAKEFILE */
  265. #endif /* _CONFIG_H_ */
  266.