[MKISOFS]
[reactos.git] / reactos / sdk / tools / mkisofs / schilytools / include / schily / prototyp.h
1 /* @(#)prototyp.h 1.17 15/12/26 Copyright 1995-2015 J. Schilling */
2 /*
3 * Definitions for dealing with ANSI / KR C-Compilers
4 *
5 * Copyright (c) 1995-2015 J. Schilling
6 */
7 /*
8 * The contents of this file are subject to the terms of the
9 * Common Development and Distribution License, Version 1.0 only
10 * (the "License"). You may not use this file except in compliance
11 * with the License.
12 *
13 * See the file CDDL.Schily.txt in this distribution for details.
14 * A copy of the CDDL is also available via the Internet at
15 * http://www.opensource.org/licenses/cddl1.txt
16 *
17 * When distributing Covered Code, include this CDDL HEADER in each
18 * file and include the License file CDDL.Schily.txt from this distribution.
19 */
20
21 /*
22 * <schily/mconfig.h> includes <schily/prototyp.h>
23 * To be correct, we need to include <schily/mconfig.h> before we test
24 * for _SCHILY_PROTOTYP_H
25 *
26 * In order to keep the silly Solaris hdrchk(1) quiet, we are forced to
27 * have the _SCHILY_PROTOTYP_H first in <schily/prototyp.h>.
28 * To keep hdrchk(1) quiet and be correct, we need to introduce a second
29 * guard _SCHILY_PROTOTYP_X_H.
30 */
31 #ifndef _SCHILY_PROTOTYP_H
32 #define _SCHILY_PROTOTYP_H
33
34 #ifndef _SCHILY_MCONFIG_H
35 #undef _SCHILY_PROTOTYP_H
36 #include <schily/mconfig.h>
37 #endif
38
39 #ifndef _SCHILY_PROTOTYP_X_H
40 #define _SCHILY_PROTOTYP_X_H
41
42 #include <schily/ccomdefs.h>
43
44 #ifdef __cplusplus
45 extern "C" {
46 #endif
47
48 #ifndef PROTOTYPES
49 /*
50 * If this has already been defined,
51 * someone else knows better than us...
52 */
53 # ifdef __STDC__
54 # if __STDC__ /* ANSI C */
55 # define PROTOTYPES
56 # endif
57 # if defined(sun) && __STDC__ - 0 == 0 /* Sun C */
58 # define PROTOTYPES
59 # endif
60 # endif
61 #endif /* PROTOTYPES */
62
63 #if !defined(PROTOTYPES) && (defined(__cplusplus) || defined(_MSC_VER))
64 /*
65 * C++ always supports prototypes.
66 * Define PROTOTYPES so we are not forced to make
67 * a separtate autoconf run for C++
68 *
69 * Microsoft C has prototypes but does not define __STDC__
70 */
71 # define PROTOTYPES
72 #endif
73
74 /*
75 * If we have prototypes, we should have stdlib.h string.h stdarg.h
76 */
77 #ifdef PROTOTYPES
78 #if !(defined(SABER) && defined(sun))
79 # ifndef HAVE_STDARG_H
80 # define HAVE_STDARG_H
81 # endif
82 #endif
83 #ifndef JOS
84 # ifndef HAVE_STDLIB_H
85 # define HAVE_STDLIB_H
86 # endif
87 # ifndef HAVE_STRING_H
88 # define HAVE_STRING_H
89 # endif
90 # ifndef HAVE_STDC_HEADERS
91 # define HAVE_STDC_HEADERS
92 # endif
93 # ifndef STDC_HEADERS
94 # define STDC_HEADERS /* GNU name */
95 # endif
96 #endif
97 #endif
98
99 #ifdef NO_PROTOTYPES /* Force not to use prototypes */
100 # undef PROTOTYPES
101 #endif
102
103 #ifdef PROTOTYPES
104 # define __PR(a) a
105 #else
106 # define __PR(a) ()
107 #endif
108
109 #if !defined(PROTOTYPES) && !defined(NO_CONST_DEFINE)
110 # ifndef const
111 # define const
112 # endif
113 # ifndef signed
114 # define signed
115 # endif
116 # ifndef volatile
117 # define volatile
118 # endif
119 #endif
120
121 #ifdef PROTOTYPES
122 #define ALERT '\a'
123 #else
124 #define ALERT '\07'
125 #endif
126
127 #ifdef __cplusplus
128 }
129 #endif
130
131 #endif /* _SCHILY_PROTOTYP_X_H */
132 #endif /* _SCHILY_PROTOTYP_H */