/* config.h-vms. Generated by hand by Klaus Kaempf <kkaempf@rmi.de>      -*-C-*-

Copyright (C) 1996-2020 Free Software Foundation, Inc.
This file is part of GNU Make.

GNU Make is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation; either version 3 of the License, or (at your option) any later
version.

GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
this program.  If not, see <http://www.gnu.org/licenses/>.  */

/* config.h.  Generated automatically by configure.  */
/* config.h.in.  Generated automatically from configure.ac by autoheader.  */

/* Pull in types.h here to get __CRTL_VER defined for old versions of the
   compiler which don't define it. */
#ifdef __DECC
# include <types.h>
#endif

/* Define to 1 if on AIX 3.
   System headers sometimes define this.
   We just want to avoid a redefinition error message.  */
#ifndef _ALL_SOURCE
/* #undef _ALL_SOURCE */
#endif

/* Define to 1 if NLS is requested.  */
/* #undef ENABLE_NLS */

/* Define as 1 if you have dcgettext.  */
/* #undef HAVE_DCGETTEXT */

/* Define as 1 if you have gettext and don't want to use GNU gettext.  */
/* #undef HAVE_GETTEXT */

/* Embed GNU Guile support */
/* #undef HAVE_GUILE */

/* Define to 1 if your locale.h file contains LC_MESSAGES.  */
/* #undef HAVE_LC_MESSAGES */

/* Define to the installation directory for locales.  */
#define LOCALEDIR ""

/* Define as 1 if you have the stpcpy function.  */
/* #undef HAVE_STPCPY */

/* Define to 1 if the closedir function returns void instead of int.  */
/* #undef CLOSEDIR_VOID */

/* Define to empty if the keyword does not work.  */
/* #undef const */

/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
   This function is required for alloca.c support on those systems.  */
/* #undef CRAY_STACKSEG_END */

/* Define for DGUX with <sys/dg_sys_info.h>.  */
/* #undef DGUX */

/* Define to 1 if the 'getloadavg' function needs to be run setuid or setgid.  */
/* #undef GETLOADAVG_PRIVILEGED */

/* Define to 'unsigned long' or 'unsigned long long'
   if <inttypes.h> doesn't define.  */
#define uintmax_t unsigned long

/* Define to 'int' if <sys/types.h> doesn't define.  */
/* #undef gid_t */

/* Define to 1 if you have alloca, as a function or macro.  */
#define HAVE_ALLOCA 1

/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).  */
/* #undef HAVE_ALLOCA_H */

/* Define to 1 if you have the fdopen function.  */
#define HAVE_FDOPEN 1

/* Define to 1 if your system has a working fnmatch function.  */
/* #undef HAVE_FNMATCH */

/* Define to 1 if your system has its own 'getloadavg' function.  */
/* #undef HAVE_GETLOADAVG */

/* Define to 1 if you have the getmntent function.  */
/* #undef HAVE_GETMNTENT */

/* Define to 1 if the 'long double' type works.  */
/* #undef HAVE_LONG_DOUBLE */

/* Define to 1 if you support file names longer than 14 characters.  */
#define HAVE_LONG_FILE_NAMES 1

/* Define to 1 if you have a working 'mmap' system call.  */
/* #undef HAVE_MMAP */

/* Define to 1 if system calls automatically restart after interruption
   by a signal.  */
/* #undef HAVE_RESTARTABLE_SYSCALLS */

/* Define to 1 if your struct stat has st_blksize.  */
/* #undef HAVE_ST_BLKSIZE */

/* Define to 1 if your struct stat has st_blocks.  */
/* #undef HAVE_ST_BLOCKS */

/* Define to 1 if you have the strcoll function and it is properly defined.  */
/* #undef HAVE_STRCOLL */

/* Define to 1 if you have the strncasecmp' function. */
#if __CRTL_VER >= 70000000
#define HAVE_STRNCASECMP 1
#endif

/* Define to 1 if your struct stat has st_rdev.  */
/* #undef HAVE_ST_RDEV */

/* Define to 1 if you have the strftime function.  */
/* #undef HAVE_STRFTIME */

/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible.  */
/* #undef HAVE_SYS_WAIT_H */

/* Define to 1 if your struct tm has tm_zone.  */
/* #undef HAVE_TM_ZONE */

/* Define to 1 if you don't have tm_zone but do have the external array
   tzname.  */
/* #undef HAVE_TZNAME */

/* Define to 1 if you have <unistd.h>.  */
#ifdef __DECC
#define HAVE_UNISTD_H 1
#endif

/* Define to 1 if utime(file, NULL) sets file's timestamp to the present.  */
/* #undef HAVE_UTIME_NULL */

/* Define to 1 if you have the wait3 system call.  */
/* #undef HAVE_WAIT3 */

/* Define to 1 if on MINIX.  */
/* #undef _MINIX */

/* Define to 1 if your struct nlist has an n_un member.  */
/* #undef NLIST_NAME_UNION */

/* Define to 1 if you have <nlist.h>.  */
/* #undef NLIST_STRUCT */

/* Define to 1 if your C compiler doesn't accept -c and -o together.  */
/* #undef NO_MINUS_C_MINUS_O */

/* Define to 'int' if <sys/types.h> doesn't define.  */
/* I assume types.h is available for all 5.0 cc/cxx compilers */
#if __DECC_VER < 50090000
#define pid_t int
#endif

/* Define to 1 if the system does not provide POSIX.1 features except
   with this defined.  */
/* #undef _POSIX_1_SOURCE */

/* Define to 1 if you need to in order for stat and other things to work.  */
/* #undef _POSIX_SOURCE */

/* Define as the return type of signal handlers (int or void).  */
#define RETSIGTYPE void

/* Define to 1 if the setvbuf function takes the buffering type as its second
   argument and the buffer pointer as the third, as on System V
   before release 3.  */
/* #undef SETVBUF_REVERSED */

/* If using the C implementation of alloca, define if you know the
   direction of stack growth for your system; otherwise it will be
   automatically deduced at run-time.
        STACK_DIRECTION > 0 => grows toward higher addresses
        STACK_DIRECTION < 0 => grows toward lower addresses
        STACK_DIRECTION = 0 => direction of growth unknown
 */
/* #undef STACK_DIRECTION */

/* Define to 1 if the 'S_IS*' macros in <sys/stat.h> do not work properly.  */
/* #undef STAT_MACROS_BROKEN */

/* Define to 1 if you have the ANSI C header files.  */
/* #undef STDC_HEADERS */

/* Define on System V Release 4.  */
/* #undef SVR4 */

/* Define to 1 if 'sys_siglist' is declared by <signal.h>.  */
/* #undef SYS_SIGLIST_DECLARED */

/* Define to 'int' if <sys/types.h> doesn't define.  */
#if __DECC_VER < 50090000
#define uid_t int
#endif

/* Define for Encore UMAX.  */
/* #undef UMAX */

/* Define for Encore UMAX 4.3 that has <inq_status/cpustats.h>
   instead of <sys/cpustats.h>.  */
/* #undef UMAX4_3 */

/* Name of this package (needed by automake) */
#define PACKAGE "%PACKAGE%"

/* Version of this package (needed by automake) */
#define VERSION "%VERSION%"

/* Define to the name of the SCCS 'get' command.  */
/* #undef SCCS_GET */

/* Define this if the SCCS 'get' command understands the '-G<file>' option.  */
/* #undef SCCS_GET_MINUS_G */

/* Define this to enable job server support in GNU make.  */
/* #undef MAKE_JOBSERVER */

/* Define to be the nanoseconds member of struct stat's st_mtim,
   if it exists.  */
/* #undef ST_MTIM_NSEC */

/* Define to 1 if the C library defines the variable 'sys_siglist'.  */
/* #undefine HAVE_SYS_SIGLIST */

/* Define to 1 if the C library defines the variable '_sys_siglist'.  */
/* #undef HAVE__SYS_SIGLIST */

/* Define to 1 if you have the 'union wait' type in <sys/wait.h>.  */
/* #undef HAVE_UNION_WAIT */

/* Define to 1 if you have the dup2 function.  */
#define HAVE_DUP2 1

/* Define to 1 if you have the getcwd function.  */
#define HAVE_GETCWD 1

/* Define to 1 if you have the getgroups function.  */
/* #undef HAVE_GETGROUPS */

/* Define to 1 if you have the gethostbyname function.  */
/* #undef HAVE_GETHOSTBYNAME */

/* Define to 1 if you have the gethostname function.  */
/* #undef HAVE_GETHOSTNAME */

/* Define to 1 if you have the memmove function.  */
#define HAVE_MEMMOVE 1

/* Define to 1 if you have the mktemp function.  */
#define HAVE_MKTEMP 1

/* Define to 1 if you have the psignal function.  */
/* #undef HAVE_PSIGNAL */

/* Define to 1 if you have the pstat_getdynamic function.  */
/* #undef HAVE_PSTAT_GETDYNAMIC */

/* Define to 1 if you have the setegid function.  */
/* #undef HAVE_SETEGID */

/* Define to 1 if you have the seteuid function.  */
/* #undef HAVE_SETEUID */

/* Define to 1 if you have the setlinebuf function.  */
/* #undef HAVE_SETLINEBUF */

/* Define to 1 if you have the setregid function.  */
/* #undefine HAVE_SETREGID */

/* Define to 1 if you have the setreuid function.  */
/* #define HAVE_SETREUID */

/* Define to 1 if you have the sigsetmask function.  */
#define HAVE_SIGSETMASK 1

/* Define to 1 if you have the socket function.  */
/* #undef HAVE_SOCKET */

/* Define to 1 if you have the strcasecmp function.  */
#define HAVE_STRCASECMP 1

/* Define to 1 if you have the strcmpi function.  */
/* #undef HAVE_STRCMPI */

/* Define to 1 if you have the stricmp function.  */
/* #undef HAVE_STRICMP */

/* Define to 1 if you have the strsignal function.  */
/* #undef HAVE_STRSIGNAL */

/* Define to 1 if you have the wait3 function.  */
/* #undef HAVE_WAIT3 */

/* Define to 1 if you have the waitpid function.  */
/* #undef HAVE_WAITPID */

/* Define to 1 if you have the <dirent.h> header file.  */
#define HAVE_DIRENT_H 1

/* Define to 1 if you have the <fcntl.h> header file.  */
#ifdef __DECC
#define HAVE_FCNTL_H 1
#endif

/* Define to 1 if you have the <limits.h> header file.  */
#define HAVE_LIMITS_H 1

/* Define to 1 if you have the <mach/mach.h> header file.  */
/* #undef HAVE_MACH_MACH_H */

/* Define to 1 if you have the <memory.h> header file.  */
/* #undef HAVE_MEMORY_H */

/* Define to 1 if you have the <ndir.h> header file.  */
/* #undef HAVE_NDIR_H */

/* Define to 1 if you have the <stdlib.h> header file.  */
#define HAVE_STDLIB_H 1

/* Define to 1 if you have the <string.h> header file.  */
#define HAVE_STRING_H 1

/* Define to 1 if you have the <sys/dir.h> header file.  */
/* #undef HAVE_SYS_DIR_H */

/* Define to 1 if you have the <sys/ndir.h> header file.  */
/* #undef HAVE_SYS_NDIR_H */

/* Define to 1 if you have the <sys/param.h> header file.  */
/* #undef HAVE_SYS_PARAM_H */

/* Define to 1 if you have the <sys/timeb.h> header file.  */
#ifndef __GNUC__
#define HAVE_SYS_TIMEB_H 1
#endif

/* Define to 1 if you have the <sys/wait.h> header file.  */
/* #undef HAVE_SYS_WAIT_H */

/* Define to 1 if you have the dgc library (-ldgc).  */
/* #undef HAVE_LIBDGC */

/* Define to 1 if you have the kstat library (-lkstat).  */
/* #undef HAVE_LIBKSTAT *

/* Define to 1 if you have the sun library (-lsun).  */
/* #undef HAVE_LIBSUN */

/* Define to 1 if you have the `isatty' function. */
/* #undef HAVE_ISATTY */

/* Define to 1 if you have the `ttyname' function. */
/* #undef HAVE_TTYNAME */

/* Use high resolution file timestamps if nonzero. */
#define FILE_TIMESTAMP_HI_RES 0

/* Define for case insensitve filenames */
#define HAVE_CASE_INSENSITIVE_FS 1

/* VMS specific, define it if you want to use case sensitive targets */
/* #undef WANT_CASE_SENSITIVE_TARGETS */

/* VMS specific, V7.0 has opendir() and friends, so it's undefined */
/* If you want to use non-VMS code for opendir() etc. on V7.0 and greater
   define the first or both macros AND change the compile command to get the
   non-VMS versions linked: (prefix=(all,except=(opendir,...  */
/* #undef HAVE_VMSDIR_H */
/* #undef _DIRENT_HAVE_D_NAMLEN */

/* On older systems without 7.0 backport of CRTL use non-VMS code for opendir() etc. */
#if __CRTL_VER < 70000000
# define HAVE_VMSDIR_H 1
#endif

#if defined(HAVE_VMSDIR_H) && defined(HAVE_DIRENT_H)
#undef HAVE_DIRENT_H
#endif

#define HAVE_STDLIB_H 1
#define INCLUDEDIR "sys$sysroot:[syslib]"
#define LIBDIR "sys$sysroot:[syslib]"

/* Don't use RTL functions of OpenVMS */
#ifdef __DECC
#include <stdio.h>
#include <unistd.h>
#define getopt   gnu_getopt
#define optarg   gnu_optarg
#define optopt   gnu_optopt
#define optind   gnu_optind
#define opterr   gnu_opterr
#define globfree gnu_globfree
#define glob     gnu_glob
#endif

/* Define if using alloca.c.  */
/* #undef C_ALLOCA */
/* maybe this should be placed into makeint.h */
#if     defined(__VAX) && defined(__DECC)
#define alloca(n)       __ALLOCA(n)
#endif

/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
   significant byte first (like Motorola and SPARC, unlike Intel). */
/* #  undef WORDS_BIGENDIAN */

/* Output sync sypport */
#define NO_OUTPUT_SYNC

/* Define to 1 to write even short single-line actions into a VMS/DCL command
   file; this also enables exporting make environment variables into the
   (sub-)process, which executes the action.
   The usual make rules apply whether a shell variable - here a DCL symbol or
   VMS logical [see CRTL getenv()] - is added to the make environment and
   is exported. */
#define USE_DCL_COM_FILE 1

/* Build host information. */
#define MAKE_HOST "VMS"
