#ifndef sysdep_incl
#define sysdep_incl
#if defined(__VMS) && !defined(VMS)
#define VMS
#define vms
#endif
#ifdef VMS
# define pgm_warning 0x10000000
# define pgm_ok 0x00000001
# define pgm_error 0x10000002
#else
# define pgm_ok 0
# define pgm_warning 2
# define pgm_error 3
#endif
#ifdef VMS
#define ERROR_STATUS(s) (((s) & 1) != 1)
#else
#define ERROR_STATUS(s) ((s) != 0)
#endif
#ifdef _MSDOS
#ifndef __STDC__
#define __STDC__ 1
#endif
#define BRANCHCHAR '\\'
#define BRANCHSTRING "\\"
#define HASPOPEN
#define HASDIRTREE
#define DEFAULT_IDIR "\\mstools\\h"
#define DEFAULT_H_IDIR "\\mstools\\h"
#define INCLUDE_TEMPLATE "#include <dce\\%s>\n"
#define USER_INCLUDE_TEMPLATE "#include \"%s\"\n"
#define USER_INCLUDE_H_TEMPLATE "#include \"%s.h\"\n"
#define MESSAGE_CATALOG_DIR "\\bin"
#define CD_IDIR "."
#define unlink _unlink
#define getcwd _getcwd
#define chdir _chdir
#define stat _stat
#define popen _popen
#define pclose _pclose
#define S_IFMT _S_IFMT
#define S_IFDIR _S_IFDIR
#define S_IFREG _S_IFREG
#define NO_TRY_CATCH_FINALLY
#ifdef TURBOC
#define stat(a,b) turboc_stat(a,b)
#endif
#endif
#ifdef VMS
#define HASDIRTREE
#define BRANCHCHAR ']'
#define BRANCHSTRING "]"
#define DEFAULT_IDIR "DCE:"
#define DEFAULT_H_IDIR "DCE:"
#define INCLUDE_TEMPLATE "#include <dce/%s>\n"
#define USER_INCLUDE_TEMPLATE "#include <%s>\n"
#define USER_INCLUDE_H_TEMPLATE "#include <%s.h>\n"
#define CD_IDIR "[]"
#endif
#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(__APPLE__)
#ifndef BSD
#define BSD
#endif
#endif
#if defined(__OSF__) || defined(__OSF1__) || defined(__osf__) || \
defined(BSD) || defined(SYS5) || defined(ultrix) || defined(_AIX) || \
defined(__ultrix) || defined(_BSD) || defined (linux) || \
defined (__linux__)
#define UNIX
#define HASDIRTREE
#define HASPOPEN
#define HASINODES
#define BRANCHCHAR '/'
#define BRANCHSTRING "/"
#define CD_IDIR "."
#endif
#ifndef CD_IDIR
Porting Message: You must provide definitions for the symbols
describing the directory structure available on your platform.
#endif
#ifndef DEFAULT_IDIR
# define DEFAULT_IDIR "/usr/include"
# define DEFAULT_H_IDIR "/usr/include"
# define INCLUDE_TEMPLATE "#include <dce/%s>\n"
# define USER_INCLUDE_TEMPLATE "#include <%s>\n"
# define USER_INCLUDE_H_TEMPLATE "#include <%s.h>\n"
#endif
#ifndef AUTO_IMPORT_FILE
# define AUTO_IMPORT_FILE "dce/nbase.idl"
#endif
#if defined(VMS) || defined(_MSDOS)
#define OBJ_FILETYPE ".OBJ"
#else
#define OBJ_FILETYPE ".o"
#endif
#ifdef UNIX
# ifdef apollo
# define CPP "/usr/lib/cpp "
# elif defined(__APPLE__)
# define CPP "/usr/bin/cpp -E "
# else
# define CPP "/lib/cpp "
# endif
#endif
#ifdef VMS
#ifdef __alpha
# define CPP "CC/STANDARD=VAX"
#else
# define CPP "CC "
#endif
#endif
#ifdef UNIX
# define CSTUB_SUFFIX "_cstub.c"
# define SSTUB_SUFFIX "_sstub.c"
# define HEADER_SUFFIX ".h"
# define CAUX_SUFFIX "_caux.c"
# define SAUX_SUFFIX "_saux.c"
#endif
#ifdef _MSDOS
# define CSTUB_SUFFIX "_c.c"
# define SSTUB_SUFFIX "_s.c"
# define HEADER_SUFFIX ".h"
# define CAUX_SUFFIX "_x.c"
# define SAUX_SUFFIX "_y.c"
#endif
#ifdef VMS
# define CSTUB_SUFFIX "_cstub.c"
# define SSTUB_SUFFIX "_sstub.c"
# define HEADER_SUFFIX ".h"
# define CAUX_SUFFIX "_caux.c"
# define SAUX_SUFFIX "_saux.c"
#endif
#ifndef CSTUB_SUFFIX
Porting Message: You must provide definitions for the files suffixes to
be used on your platform.
#endif
#ifndef IDL_VERSION_TEXT
#define IDL_VERSION_TEXT "OSF DCE T1.1.0-03"
#endif
#define IDL_VERSION_TEMPLATE "/* Generated by IDL compiler version %s */\n"
#ifdef UNIX
# if defined(vax) && defined(ultrix)
# define CC_DEF_CMD "cc -c -Mg"
# else
# define CC_DEF_CMD "cc -c"
# endif
# if !(defined(vax) && defined(ultrix)) && !defined(apollo) && !defined(_AIX)
# define CC_OPT_OBJECT "-o "
# endif
#endif
#ifdef VMS
# define CC_DEF_CMD "CC/G_FLOAT"
# define CC_OPT_OBJECT "/OBJECT="
#endif
#ifdef _MSDOS
# define CC_DEF_CMD "cc /c"
# define CC_OPT_OBJECT "/Fo"
#endif
#ifndef apollo
# define PASS_I_DIRS_TO_CC
#endif
#ifdef DUMPERS
# define NIDL_LIBRARY_EV "NIDL_LIBRARY"
#endif
#define MAX_ID 31
#define AUTO_HEAP_STACK_THRESHOLD 7000
#if defined(__STDC__)
#define AUDIBLE_BELL '\a'
#define AUDIBLE_BELL_CSTR "\\a"
#else
#define AUDIBLE_BELL '\007'
#define AUDIBLE_BELL_CSTR "\\007"
#endif
#if defined(__STDC__) || defined(vaxc)
#define heap_mem void
#else
#define heap_mem char
#endif
#ifndef PATH_MAX
# ifdef VMS
# define PATH_MAX 256
# else
# define PATH_MAX 1024
# endif
#endif
#if defined(_AIX)
# define NL_SPRINTF NLsprintf
# define NL_VFPRINTF NLvfprintf
#else
# define NL_SPRINTF sprintf
# define NL_VFPRINTF vfprintf
#endif
#if defined(ultrix) || defined(__ultrix) || defined(VMS) || defined(_MSDOS)
#define ULTRIX_LEX_YACC
#endif
#if defined(__hp9000s300) || defined(__hp9000s800)
#define HPUX_LEX_YACC
#endif
#if defined(apollo)
#define APOLLO_LEX_YACC
#endif
#if (defined(__OSF__) || defined(__OSF1__)) && !defined(APOLLO_LEX_YACC)
#define OSF_LEX_YACC
#endif
#if defined(_AIX) || defined(__osf__)
#define AIX_LEX_YACC
#define AIX_YACC_VAR extern
#endif
#if defined(linux) || defined(BSD)
#define GNU_LEX_YACC
#endif
#if defined(sun) && defined(sparc)
# define SUN_LEX_YACC
# if defined(__sunos_41__)
# define SUN_41_LEX_YACC
# endif
#endif
#ifndef YACC_INT
#if defined (OSF_LEX_YACC)
#define YACC_VAR
#define YACC_INT int
#elif defined(ULTRIX_LEX_YACC) || (defined(SUN_LEX_YACC) && !defined(SUN_41_LEX_YACC))
#define YACC_VAR
#define YACC_INT short
#else
#define YACC_VAR extern
#define YACC_INT int
#endif
#endif
#if defined(OSF_LEX_YACC) || defined(ULTRIX_LEX_YACC) || defined(APOLLO_LEX_YACC) || defined(AIX_LEX_YACC) || defined(SUN_LEX_YACC) || defined(HPUX_LEX_YACC)\
|| defined(SVR4_LEX_YACC) || defined(UMIPS_LEX_YACC) || defined(GNU_LEX_YACC)
#ifndef YYLMAX
#if defined(SVR4_LEX_YACC)
#define YYLMAX 200
#else
#define YYLMAX 1024
#endif
#endif
#ifndef YYTYPE
#ifndef PROCESSING_LEX
#define YYTYPE int
#endif
#endif
#ifndef YYMAXDEPTH
#define YYMAXDEPTH 150
#endif
#define LEX_YACC_EXTERNS \
extern int yyprevious; \
extern char * yysptr; \
extern char yysbuf[]; \
extern int yynerrs
#ifdef notdef
struct yywork { YYTYPE verify, advance; }; \
struct yysvf { \
struct yywork *yystoff;\
struct yysvf *yyother;\
int *yystops;};\
extern struct yysvf *yybgin;\
extern int yychar;\
extern YACC_INT yyerrflag;\
extern struct yysvf *yyestate;\
extern int *yyfnd;\
extern FILE *yyin;\
extern int yyleng;\
extern int yylineno;\
extern struct yysvf **yylsp;\
extern struct yysvf *yylstate;\
extern YYSTYPE yylval;\
extern int yymorfg;\
extern int yynerrs;\
extern struct yysvf **yyolsp;\
extern int yyprevious;\
YACC_VAR int *yyps;\
YACC_VAR YYSTYPE *yypv;\
AIX_YACC_VAR YYSTYPE *yypvt;\
YACC_VAR YACC_INT yys[ YYMAXDEPTH ];\
extern char yysbuf[];\
extern char *yysptr;\
YACC_VAR YACC_INT yystate;\
extern int yytchar;\
extern char yytext[];\
YACC_VAR int yytmp;\
extern YYSTYPE yyv[];\
extern YYSTYPE yyval
#endif
typedef char *lex_yacc_state_t;
extern lex_yacc_state_t NIDL_save_lex_yacc_state(
void
);
extern void NIDL_restore_lex_yacc_state(
lex_yacc_state_t state_ptr
);
#define LEX_YACC_STATE_BUFFER(name) lex_yacc_state_t name
#define SAVE_LEX_YACC_STATE(x) ((x) = NIDL_save_lex_yacc_state())
#define RESTORE_LEX_YACC_STATE(x) NIDL_restore_lex_yacc_state(x)
#endif
#ifndef LEX_YACC_STATE_BUFFER
Porting Message: Due to differences between implementations of the
lex and yacc tools, different state variables must be saved
in order to perform multiple parses within a single program
exectuion. Either enable one of the LEX_YACC sets above on this
architecture or add an additional set of macros to save/restore
the variables used by lex and yacc. This is done via inspection
of the generated lex/yacc output files for any non-automatic
state variables. You might also need to make additions to the
file acf.h depending on your implementation of lex/yacc. See
the comments in acf.h for more information.
#endif
#endif
#if defined(vms) || defined(ultrix) || defined(__osf__)
#define IDL_USE_OUTPUT_LINE
#ifdef fprintf
#undef fprintf
#endif
#define fprintf output_line
extern int output_line(
FILE * fid,
char *format,
...
);
extern void flush_output_line(
FILE * fid
);
#endif