summaryrefslogtreecommitdiffstats
path: root/soltools/mkdepend/def.h
diff options
context:
space:
mode:
Diffstat (limited to 'soltools/mkdepend/def.h')
-rw-r--r--soltools/mkdepend/def.h193
1 files changed, 193 insertions, 0 deletions
diff --git a/soltools/mkdepend/def.h b/soltools/mkdepend/def.h
new file mode 100644
index 000000000..bd06c5f01
--- /dev/null
+++ b/soltools/mkdepend/def.h
@@ -0,0 +1,193 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* $XConsortium: def.h,v 1.25 94/04/17 20:10:33 gildea Exp $ */
+/*
+
+Copyright (c) 1993, 1994 X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the X Consortium.
+
+*/
+
+#ifndef NO_X11
+#include <X11/Xosdefs.h>
+#ifdef _WIN32
+#include <X11/Xw32defs.h>
+#endif
+#ifndef SUNOS4
+#include <X11/Xfuncproto.h>
+#endif /* SUNOS4 */
+#endif /* NO_X11 */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#ifndef _MSC_VER
+#include <unistd.h>
+#endif
+
+#ifndef X_NOT_POSIX
+#ifndef _POSIX_SOURCE
+#define _POSIX_SOURCE
+#endif
+#endif
+#include <sys/types.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+#ifndef S_IFDIR
+#define S_IFDIR 0040000
+#endif
+
+#ifndef S_IFREG
+#define S_IFREG 0100000
+#endif
+
+#define MAXFILES 65536
+
+#define MAXDIRS 64
+#define SYMHASHSEED 131 /* 131 1313 13131 ... */
+#define SYMHASHMEMBERS 64 /* must be 2^x to work right */
+#define TRUE 1
+#define FALSE 0
+
+/* the following must match the directives table in main.c */
+#define IF 0
+#define ERROR 10
+#define ELIF 13
+#define IFFALSE 15 /* pseudo value --- never matched */
+#define ELIFFALSE 16 /* pseudo value --- never matched */
+#define ELIFGUESSFALSE 19 /* pseudo value --- never matched */
+
+#ifdef DEBUG
+extern int _debugmask;
+/*
+ * debug levels are:
+ *
+ * 0 show ifn*(def)*,endif
+ * 1 trace defined/!defined
+ * 2 show #include
+ * 3 show #include SYMBOL
+ * 4-6 unused
+ */
+#define debug(level,arg) { if (_debugmask & (1 << level)) warning arg; }
+#else
+#define debug(level,arg) /**/
+#endif /* DEBUG */
+
+// VG: a C++ class for information about directories
+#include "collectdircontent.hxx"
+
+typedef unsigned char boolean;
+
+struct pair {
+ char *p_name;
+ char *p_value;
+ struct pair *p_next;
+};
+
+struct symhash {
+ struct pair *s_pairs[SYMHASHMEMBERS];
+};
+
+struct inclist {
+ char *i_incstring; /* string from #include line */
+ char *i_file; /* path name of the include file */
+ struct inclist **i_list; /* list of files it itself includes */
+ int i_listlen; /* length of i_list */
+ boolean i_notified; /* whether we have revealed includes */
+ boolean i_marked; /* whether it's in the makefile */
+ boolean i_searched; /* whether we have read this */
+};
+
+struct filepointer {
+ char *f_p;
+ char *f_base;
+ char *f_end;
+ int f_line;
+};
+
+#ifndef X_NOT_STDC_ENV
+#if defined(macII) && !defined(__STDC__) /* stdlib.h fails to define these */
+char *malloc(), *realloc();
+#endif /* macII */
+#else
+char *malloc();
+char *realloc();
+#endif
+
+char *copy(char const *);
+char *base_name(char *);
+char *get_line(struct filepointer *);
+char *isdefined(char *);
+struct filepointer *getfile(char *);
+struct inclist *newinclude(char const *newfile,
+ char const *incstring);
+struct inclist *inc_path(char *, char *, boolean,
+ struct IncludesCollection *);
+
+void define( char *def, struct symhash **symbols );
+void hash_define(char *name, char const * val, struct symhash **symbols);
+struct symhash *hash_copy( struct symhash *symbols );
+void hash_free( struct symhash *symbols );
+void freefile( struct filepointer * fp );
+int find_includes(struct filepointer *filep, struct inclist *file,
+ struct inclist *file_red, int recursion, boolean failOK,
+ struct IncludesCollection* incCollection, struct symhash *symbols);
+void included_by(struct inclist *ip,
+ struct inclist * newfile);
+int cppsetup(char const *line);
+void add_include(struct filepointer *filep, struct inclist *file,
+ struct inclist *file_red, char *include, boolean dot, boolean failOK,
+ struct IncludesCollection* incCollection, struct symhash *symbols);
+int match(char const *str, char **list);
+void recursive_pr_include(struct inclist *head, char *file,
+ char *base);
+void recursive_pr_dummy(struct inclist *head, char *file);
+void inc_clean(void);
+
+void fatalerr(char *, ...);
+void warning(char const *, ...);
+void warning1(char const *, ...);
+
+void convert_slashes(char *);
+char *append_slash(char *);
+
+extern char * directives[];
+
+extern struct inclist inclist[ MAXFILES ];
+extern struct inclist * inclistp;
+
+extern char *includedirs[ ];
+
+extern char * objprefix;
+
+extern char * objsuffix;
+
+extern boolean printed;
+
+extern boolean verbose;
+
+extern boolean show_where_not;
+
+extern boolean warn_multiple;
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */