home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / zip / gnu / gawk213s.lzh / GAWK213S / VMS-CONF.H < prev    next >
Text File  |  1993-07-29  |  9KB  |  308 lines

  1. /*
  2.  * config.h -- configuration definitions for gawk.
  3.  *
  4.  * For VMS (assumes V4.6 or later; tested on V5.3 and V5.4)
  5.  */
  6.  
  7. /* 
  8.  * Copyright (C) 1991, the Free Software Foundation, Inc.
  9.  * 
  10.  * This file is part of GAWK, the GNU implementation of the
  11.  * AWK Progamming Language.
  12.  * 
  13.  * GAWK is free software; you can redistribute it and/or modify
  14.  * it under the terms of the GNU General Public License as published by
  15.  * the Free Software Foundation; either version 1, or (at your option)
  16.  * any later version.
  17.  * 
  18.  * GAWK is distributed in the hope that it will be useful,
  19.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  20.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  21.  * GNU General Public License for more details.
  22.  * 
  23.  * You should have received a copy of the GNU General Public License
  24.  * along with GAWK; see the file COPYING.  If not, write to
  25.  * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  26.  */
  27.  
  28. /**************************/
  29. /* Miscellanious features */
  30. /**************************/
  31.  
  32. /*
  33.  * BLKSIZE_MISSING
  34.  *    VMS: missing--not applicable
  35.  * Check your /usr/include/sys/stat.h file.  If the stat structure
  36.  * does not have a member named st_blksize, define this.  (This will
  37.  * most likely be the case on most System V systems prior to V.4.)
  38.  */
  39. #define BLKSIZE_MISSING    1
  40.  
  41. /*
  42.  * SIGTYPE
  43.  *    VMS: either should work; void is 'correct'
  44.  * The return type of the routines passed to the signal function.
  45.  * Modern systems use `void', older systems use `int'.
  46.  * If left undefined, it will default to void.
  47.  */
  48. #define SIGTYPE    void
  49.  
  50. /*
  51.  * SIZE_T_MISSING
  52.  *    VMS: <stddef.h> via <stdlib.h> (VAX C V2.3 & up); <sys/types.h> (GNU C)
  53.  * If your system has no typedef for size_t, define this to get a default
  54.  */
  55. /* #define    SIZE_T_MISSING    1 */
  56.  
  57. /*
  58.  * CHAR_UNSIGNED
  59.  *    VMS: well behaved, either signed or unsigned (signed by default)
  60.  * If your machine uses unsigned characters (IBM RT and RS/6000 and others)
  61.  * then define this for use in regex.c
  62.  */
  63. /* #define CHAR_UNSIGNED    1 */
  64.  
  65. /*
  66.  * HAVE_UNDERSCORE_SETJMP
  67.  *    VMS: not present
  68.  * Check in your /usr/include/setjmp.h file.  If there are routines
  69.  * there named _setjmp and _longjmp, then you should define this.
  70.  * Typically only systems derived from Berkeley Unix have this.
  71.  */
  72. /* #define HAVE_UNDERSCORE_SETJMP    1 */
  73.  
  74. /***********************************************/
  75. /* Missing library subroutines or system calls */
  76. /***********************************************/
  77.  
  78. /*
  79.  * GETOPT_MISSING
  80.  *    VMS: missing
  81.  * Define this if your library does not have the getopt(3) library
  82.  * routine for parsing command line arguments.
  83.  */
  84. #define GETOPT_MISSING    1
  85.  
  86. /*
  87.  * MEMCMP_MISSING
  88.  * MEMCPY_MISSING
  89.  * MEMSET_MISSING
  90.  *    VMS: <string.h> (introduced V4.6)
  91.  * These three routines are for manipulating blocks of memory. Most
  92.  * likely they will either all three be present or all three be missing,
  93.  * so they're grouped together.
  94.  */
  95. /* #define MEMCMP_MISSING    1 */
  96. /* #define MEMCPY_MISSING    1 */
  97. /* #define MEMSET_MISSING    1 */
  98.  
  99. /*
  100.  * RANDOM_MISSING
  101.  *    VMS: missing (as of V5.4)
  102.  * Your system does not have the random(3) suite of random number
  103.  * generating routines.  These are different than the old rand(3)
  104.  * routines!
  105.  */
  106. #define RANDOM_MISSING    1
  107.  
  108. /*
  109.  * STRCASE_MISSING
  110.  *    VMS: missing
  111.  * Your system does not have the strcasemp() and strncasecmp()
  112.  * routines that originated in Berkeley Unix.
  113.  */
  114. #define STRCASE_MISSING    1
  115.  
  116. /*
  117.  * STRCHR_MISSING
  118.  *    VMS: <string.h>
  119.  * Your system does not have the strchr() and strrchr() functions.
  120.  */
  121. /* #define STRCHR_MISSING    1 */
  122.  
  123. /*
  124.  * STRERROR_MISSING
  125.  *    VMS: <stdlib.h> (introduced V4.6)
  126.  * Your system lacks the ANSI C strerror() routine for returning the
  127.  * strings associated with errno values.
  128.  */
  129. /* #define STRERROR_MISSING    1 */
  130.  
  131. /*
  132.  * STRFTIME_MISSING
  133.  *    VMS: missing (as of V5.4)
  134.  * Your system lacks the ANSI C strftime() routine for formatting
  135.  * broken down time values.
  136.  */
  137. #define STRFTIME_MISSING    1
  138.  
  139. /*
  140.  * STRTOD_MISSING
  141.  *    VMS: <stdlib.h> (introduced V4.6)
  142.  * Your system does not have the strtod() routine for converting
  143.  * strings to double precision floating point values.
  144.  */
  145. /* #define STRTOD_MISSING    1 */
  146.  
  147. /*
  148.  * STRTOL_MISSING
  149.  *    VMS: <stdlib.h> (introduced V4.6)
  150.  * Your system does not have the strtol() routine for converting
  151.  * strings to long integers.
  152.  */
  153. /* #define STRTOL_MISSING    1 */
  154.  
  155. /*
  156.  * TZSET_MISSING
  157.  *    VMS: missing, but can't use missing/tzset.c  [no timezone support]
  158.  * If you have a 4.2 BSD vintage system, then the strftime() routine
  159.  * supplied in the missing directory won't be enough, because it relies on the
  160.  * tzset() routine from System V / Posix.  Fortunately, there is an
  161.  * emulation for tzset() too that should do the trick.  If you don't
  162.  * have tzset(), define this.
  163.  */
  164. /* #define TZSET_MISSING    1 */
  165.  
  166. /*
  167.  * STDC_HEADERS
  168.  *    VMS: close enough (as of V4.6, VAX C V2.3) [GCC, see below]
  169.  * If your system does have ANSI compliant header files that
  170.  * provide prototypes for library routines, then define this.
  171.  */
  172. #define STDC_HEADERS    1
  173.  
  174. /*
  175.  * NO_TOKEN_PASTING
  176.  *    VMS: compiler specific--see below
  177.  * If your compiler define's __STDC__ but does not support token
  178.  * pasting (tok##tok), then define this.
  179.  */
  180. /* #define NO_TOKEN_PASTING    1 */
  181.  
  182. /*****************************************************************/
  183. /* Stuff related to the Standard I/O Library.             */
  184. /*****************************************************************/
  185. /* Much of this is (still, unfortunately) black magic in nature. */
  186. /* You may have to use some or all of these together to get gawk */
  187. /* to work correctly.                         */
  188. /*****************************************************************/
  189.  
  190. /*
  191.  * NON_STD_SPRINTF
  192.  *    VMS: ok
  193.  * Look in your /usr/include/stdio.h file.  If the return type of the
  194.  * sprintf() function is NOT `int', define this.
  195.  */
  196. /* #define NON_STD_SPRINTF    1 */
  197.  
  198. /*
  199.  * VPRINTF_MISSING
  200.  *    VMS: ok (introduced V4.6)
  201.  * Define this if your system lacks vprintf() and the other routines
  202.  * that go with it.
  203.  */
  204. /* #define VPRINTF_MISSING    1 */
  205.  
  206. /*
  207.  * BSDSTDIO
  208.  *    VMS: forgot it
  209.  * Define this if your standard i/o library is internally compatible
  210.  * with the one shipped with Berkeley Unix systems (4.n, n <= 3-reno).
  211.  * If you've defined VPRINTF_MISSING, you probably will need this too.
  212.  */
  213. /* #define BSDSTDIO        1 */
  214.  
  215. /*
  216.  * DOPRNT_MISSING
  217.  *    VMS: missing--doesn't matter
  218.  * Define this if your standard i/o library does not have the _doprnt()
  219.  * routine.  This is used in an attempt to simulate the vfprintf()
  220.  * routine.
  221.  */
  222. /* #define DOPRNT_MISSING    1 */
  223.  
  224. /*
  225.  * Casts from size_t to int and back.  These will become unnecessary
  226.  * at some point in the future, but for now are required where the
  227.  * two types are a different representation.
  228.  */
  229. /* #define SZTC */
  230. /* #define INTC */
  231.  
  232. /*
  233.  * SYSTEM_MISSING
  234.  *    VMS: ok (introduced V4.6)
  235.  * Define this if your library does not provide a system function
  236.  * or you are not entirely happy with it and would rather use
  237.  * a provided replacement (atari only).
  238.  */
  239. /* #define SYSTEM_MISSING   1 */
  240.  
  241.  
  242. /*******************************/
  243. /* Gawk configuration options. */
  244. /*******************************/
  245.  
  246. /*
  247.  * DEFPATH
  248.  *    VMS: "/AWK_LIBRARY" => "AWK_LIBRARY:"
  249.  * The default search path for the -f option of gawk.  It is used
  250.  * if the AWKPATH environment variable is undefined.
  251.  *
  252.  * Note: OK even if no AWK_LIBRARY logical name has been defined.
  253.  */
  254.  
  255. #define DEFPATH    ".,/AWK_LIBRARY"
  256. #define ENVSEP    ','
  257.  
  258. /*
  259.  * Extended source file access.
  260.  */
  261. #define DEFAULT_FILETYPE ".awk"
  262.  
  263. /*
  264.  * Pipe handling.
  265.  */
  266. #define PIPES_SIMULATED    1
  267.  
  268. /*
  269.  * %g format in VAXCRTL is broken (chooses %e format when should use %f).
  270.  */
  271. #define GFMT_WORKAROUND    1
  272.  
  273. /*
  274.  * VAX C
  275.  *
  276.  * As of V3.2, VAX C is not yet ANSI-compliant.  But it's close enough
  277.  * for GAWK's purposes.  Comment this out for VAX C V2.4 and earlier.
  278.  * Value of 0 should mean "not ANSI-C", but GAWK uses def/not-def tests.
  279.  * YYDEBUG definition is needed for combination of VAX C V2.x and Bison.
  280.  */
  281. #if defined(VAXC) && !defined(__STDC__)
  282. #define __STDC__    0
  283. #define NO_TOKEN_PASTING
  284. #define VAXC_BUILTINS
  285. /* #define YYDEBUG 0 */
  286. #endif
  287.  
  288. /*
  289.  * GNU C
  290.  *
  291.  * Versions of GCC (actually GAS) earlier than 1.38 don't produce the
  292.  * right code for ``extern const'' constructs, and other usages of
  293.  * const might not be right either.  The old set of include files from
  294.  * the gcc-vms distribution did not contain prototypes, and this could
  295.  * provoke some const-related compiler warnings.  If you've got an old
  296.  * version of gcc for VMS, define 'const' out of existance, and by all
  297.  * means obtain the most recent version!
  298.  *
  299.  * Note: old versions of GCC should also avoid defining STDC_HEADERS,
  300.  *       because most of the ANSI-C required header files are missing.
  301.  */
  302. #ifdef __GNUC__
  303. #define const
  304. #undef STDC_HEADERS
  305. #define alloca __builtin_alloca
  306. #define environ $$PsectAttributes_NOSHR$$environ    /* awful GAS kludge */
  307. #endif
  308.