/* * This file was produced by running the config_h.SH script, which * gets its values from config.sh, which is generally produced by * running Configure. * * Feel free to modify any of this as the need arises. Note, however, * that running config.h.SH again will wipe out any changes you've made. * For a more permanent change edit config.sh and rerun config.h.SH. * * $Id: config.h,v 2.0.1.1 1994/05/19 01:10:45 greyham Exp greyham $ */ /* Configuration time: Tue Apr 26 09:56:37 PDT 1994 * Configured by: flower * Target system: sunos flower 4.1.3 3 sun4 */ #ifndef _config_h_ #define _config_h_ #ifdef VMS /* * Access call. Also maintained in unistd.h */ #define F_OK 0 /* does file exist */ #define X_OK 1 /* is it executable by caller */ #define W_OK 2 /* writable by caller */ #define R_OK 4 /* readable by caller */ /* VMS does not have unlink() */ #define unlink(s) delete(s) #endif /* BSD: * This symbol, if defined, indicates that the program is running under * a BSD system. */ /*#define BSD */ /* CPP_FILE_COM: * This symbol contains the first part of the string which will invoke * the C preprocessor a file and produce to standard output, preserving * comments. Typical value of "cc -E -C" or "/lib/cpp -C". */ /* CPP_STDIN_FLAGS: * This variable contains any flags necessary to get CPP_FILE_COM to * read from the standard input. */ /* CPP_IGN_HDRS: * This symbol is defined if CPP_FILE_COM ignores *.h files. */ /* CPP_CAN_STDIN: * This symbol is defined if CPP_FILE_COM can read standard input * directly. */ #define CPP_FILE_COM "cpp -\"C\"" #define CPP_STDIN_FLAGS "\"-\"" /*#define CPP_IGN_HDRS */ /* does CPP ignore .h files? */ #define CPP_CAN_STDIN /* can CPP read stdin directly? */ /* HAS_ACCESS: * This manifest constant lets the C program know that the access() * system call is available to check for accessibility using real UID/GID. * (always present on UNIX.) */ #define HAS_ACCESS /**/ /* HASCONST: * This symbol, if defined, indicates that this C compiler knows about * the const type. There is no need to actually test for that symbol * within your programs. The mere use of the "const" keyword will * trigger the necessary tests. */ #define HASCONST /**/ #ifndef HASCONST #define const #endif /* FLEXFILENAMES: * This symbol, if defined, indicates that the system supports filenames * longer than 14 characters. */ #define FLEXFILENAMES /**/ /* HAS_LINK: * This symbol, if defined, indicates that the link routine is * available to create hard links. */ /*#define HAS_LINK */ /* HAS_OPEN3: * This manifest constant lets the C program know that the three * argument form of open(2) is available. */ #define HAS_OPEN3 /**/ /* HAS_STRCHR: * This symbol is defined to indicate that the strchr()/strrchr() * functions are available for string searching. If not, try the * index()/rindex() pair. */ /* HAS_INDEX: * This symbol is defined to indicate that the index()/rindex() * functions are available for string searching. */ #define HAS_STRCHR /**/ /*#define HAS_INDEX /**/ /* HAS_STRFTIME: * This symbol, if defined, indicates that the strftime routine is * available to format locale-specific times. */ /*#define HAS_STRFTIME */ /* HAS_STRSTR: * This symbol, if defined, indicates that the strstr routine is * available to find substrings. */ #define HAS_STRSTR /**/ /* HAS_SYMLINK: * This symbol, if defined, indicates that the symlink routine is available * to create symbolic links. */ /*#define HAS_SYMLINK */ /* Time_t: * This symbol holds the type returned by time(). It can be long, * or time_t on BSD sites (in which case <sys/types.h> should be * included). */ #define Time_t long /* Time type */ /* Signal_t: * This symbol's value is either "void" or "int", corresponding to the * appropriate return type of a signal handler. Thus, you can declare * a signal handler using "Signal_t (*handler)()", and define the * handler using "Signal_t handler(sig)". */ #define Signal_t void /* Signal handler's return type */ /* HASVOLATILE: * This symbol, if defined, indicates that this C compiler knows about * the volatile declaration. */ /*#define HASVOLATILE */ #ifndef HASVOLATILE #define volatile #endif /* I_FCNTL: * This manifest constant tells the C program to include <fcntl.h>. */ /*#define I_FCNTL /**/ /* I_STDARG: * This symbol, if defined, indicates that <stdarg.h> exists and should * be included. */ #define I_STDARG /**/ /* I_STDDEF: * This symbol, if defined, indicates that <stddef.h> exists and should * be included. */ #define I_STDDEF /**/ /* I_STDLIB: * This symbol, if defined, indicates that <stdlib.h> exists and should * be included. */ #define I_STDLIB /**/ /* I_STRING: * This symbol, if defined, indicates to the C program that it should * include <string.h> (USG systems) instead of <strings.h> (BSD systems). */ #define I_STRING /**/ /* I_SYS_FILE: * This symbol, if defined, indicates to the C program that it should * include <sys/file.h> to get definition of R_OK and friends. */ #define I_SYS_FILE /**/ /* I_SYS_TYPES: * This symbol, if defined, indicates to the C program that it should * include <sys/types.h>. */ /*#define I_SYS_TYPES */ /* I_TIME: * This symbol, if defined, indicates to the C program that it should * include <time.h>. */ /* I_SYS_TIME: * This symbol, if defined, indicates to the C program that it should * include <sys/time.h>. */ #define I_TIME /**/ /*#define I_SYS_TIME */ /* I_UNISTD: * This symbol, if defined, indicates to the C program that it should * include <unistd.h>. */ /*#define I_UNISTD */ /* I_VARARGS: * This symbol, if defined, indicates to the C program that it should * include <varargs.h>. */ /*#define I_VARARGS */ /* CAN_PROTOTYPE: * If defined, this macro indicates that the C compiler can handle * function prototypes. */ /* DOTS: * This macro is used to specify the ... in function prototypes which * have arbitrary additional arguments. */ /* NXT_ARG: * This macro is used to separate arguments in the declared argument list. */ /* P_FUNC: * This macro is used to declare "private" (static) functions. * It takes three arguments: the function type and name, a parenthesized * traditional (comma separated) argument list, and the declared argument * list (in which arguments are separated with NXT_ARG, and additional * arbitrary arguments are specified with DOTS). For example: * * P_FUNC(int foo, (bar, baz), int bar NXT_ARG char *baz[]) */ /* P_FUNC_VOID: * This macro is used to declare "private" (static) functions that have * no arguments. The macro takes one argument: the function type and name. * For example: * * P_FUNC_VOID(int subr) */ /* V_FUNC: * This macro is used to declare "public" (non-static) functions. * It takes three arguments: the function type and name, a parenthesized * traditional (comma separated) argument list, and the declared argument * list (in which arguments are separated with NXT_ARG, and additional * arbitrary arguments are specified with DOTS). For example: * * V_FUNC(int main, (argc, argv), int argc NXT_ARG char *argv[]) */ /* V_FUNC_VOID: * This macro is used to declare "public" (non-static) functions that have * no arguments. The macro takes one argument: the function type and name. * For example: * * V_FUNC_VOID(int fork) */ /* _: * This macro is used to declare function parameters for folks who want * to make declarations with prototypes using a different style than * the above macros. Use double parentheses. For example: * * int main _((int argc, char *argv[])); */ #define CAN_PROTOTYPE /**/ #ifdef CAN_PROTOTYPE #define NXT_ARG , #define DOTS , ... #define V_FUNC(name, arglist, args)name(args) #define P_FUNC(name, arglist, args)static name(args) #define V_FUNC_VOID(name)name(void) #define P_FUNC_VOID(name)static name(void) #define _(args) args #else #define NXT_ARG ; #define DOTS #define V_FUNC(name, arglist, args)name arglist args; #define P_FUNC(name, arglist, args)static name arglist args; #define V_FUNC_VOID(name)name() #define P_FUNC_VOID(name)static name() #define _(args) () #endif /* CAN_VAPROTO: * This variable is defined on systems supporting prototype declaration * of functions with a variable number of arguments. */ /* _V: * This macro is used to declare function parameters in prototypes for * functions with a variable number of parameters. Use double parentheses. * For example: * * int printf _V((char *fmt, ...)); * * Remember to use the plain simple _() macro when declaring a function * with no variable number of arguments, since it might be possible to * have a non-effect _V() macro and still get prototypes via _(). */ #define CAN_VAPROTO /**/ #ifdef CAN_VAPROTO #define _V(args) args #else #define _V(args) () #endif /* VOIDFLAGS: * This symbol indicates how much support of the void type is given by this * compiler. What various bits mean: * * 1 = supports declaration of void * 2 = supports arrays of pointers to functions returning void * 4 = supports comparisons between pointers to void functions and * addresses of void functions * 8 = suports declaration of generic void pointers * * The package designer should define VOIDUSED to indicate the requirements * of the package. This can be done either by #defining VOIDUSED before * including config.h, or by defining defvoidused in Myinit.U. If the * latter approach is taken, only those flags will be tested. If the * level of void support necessary is not present, defines void to int. */ #ifndef VOIDUSED #define VOIDUSED 9 #endif #define VOIDFLAGS 9 #if (VOIDFLAGS & VOIDUSED) != VOIDUSED #define void int /* is void to be avoided? */ #define M_VOID /* Xenix strikes again */ #endif #endif