/* SDCCglobl.h - global macros etc required by all files */
+
#ifndef SDCCGLOBL_H
#define SDCCGLOBL_H
+
#include <memory.h>
#include <assert.h>
#include <stdlib.h>
#include <setjmp.h>
#include <stdio.h>
+#include "SDCCset.h"
+
+
/*
* Define host port dependant constants etc.
*/
#define UNIX_DIR_SEPARATOR_CHAR '/'
#define UNIX_DIR_SEPARATOR_STRING "/"
-#if defined(__BORLANDC__) /* Borland Turbo C/Win32 Host */
-
-#define NATIVE_WIN32 1
-#define DIR_SEPARATOR_CHAR DOS_DIR_SEPARATOR_CHAR
-#define DIR_SEPARATOR_STRING DOS_DIR_SEPARATOR_STRING
-
-#elif defined(_MSC_VER) /* Miscosoft VC6/Win32 Host */
+#ifdef _WIN32 /* WIN32 native */
#define NATIVE_WIN32 1
+#ifdef __MINGW32__ /* GCC MINGW32 depends on configure */
+#include "sdccconf.h"
+#else
#include "sdcc_vc.h"
-#define DIR_SEPARATOR_CHAR DOS_DIR_SEPARATOR_CHAR
-#define DIR_SEPARATOR_STRING DOS_DIR_SEPARATOR_STRING
-
-#elif defined(__MINGW32__) /* MINGW32 DOS Host */
-
-#define NATIVE_WIN32 1
-#define DIR_SEPARATOR_CHAR DOS_DIR_SEPARATOR_CHAR
-#define DIR_SEPARATOR_STRING DOS_DIR_SEPARATOR_STRING
+#define PATH_MAX _MAX_PATH
+#endif
+#define DIR_SEPARATOR_CHAR DOS_DIR_SEPARATOR_CHAR
+#define DIR_SEPARATOR_STRING DOS_DIR_SEPARATOR_STRING
-#else /* Assume Un*x style system */
+#else /* Assume Un*x style system */
#include "sdccconf.h"
#define DIR_SEPARATOR_CHAR UNIX_DIR_SEPARATOR_CHAR
#define DIR_SEPARATOR_STRING UNIX_DIR_SEPARATOR_STRING
-#endif // _MSC_VER
+#endif
#include "SDCCerr.h"
#define PRAGMA_EXCLUDE "EXCLUDE"
#define PRAGMA_NOIV "NOIV"
#define PRAGMA_OVERLAY "OVERLAY"
+#define PRAGMA_LESSPEDANTIC "LESS_PEDANTIC"
+
#define SMALL_MODEL 0
#define LARGE_MODEL 1
#define TRUE 1
extern int stackPtr; /* stack pointer SDCC.y */
extern int xstackPtr; /* external stack pointer SDCC.y */
extern int reentrant; /* /X flag has been sent SDCC.y */
-extern char buffer[]; /* general buffer SDCCgen.c */
-extern int currRegBank; /* register bank being used SDCCgens.c */
-extern int RegBankUsed[4]; /* JCF: register banks used SDCCmain.c */
+extern char buffer[PATH_MAX * 2];/* general buffer SDCCmain.c */
+extern int currRegBank; /* register bank being used SDCCgens.c */
+extern int RegBankUsed[4]; /* JCF: register banks used SDCCmain.c */
extern struct symbol *currFunc; /* current function SDCCgens.c */
extern int cNestLevel; /* block nest level SDCCval.c */
extern int currBlockno; /* sequentail block number */
extern char *libPaths[128];
extern int nlibPaths;
+void setParseWithComma (set **, char *);
void parseWithComma (char **, char *);
/** Creates a temporary file a'la tmpfile which avoids the bugs
in cygwin wrt c:\tmp.
Scans, in order: TMP, TEMP, TMPDIR, else uses tmpfile().
*/
-char *
-tempfilename (void);
+char *tempfilename (void);
/** An assert() macro that will go out through sdcc's error
system.