fstat: Fix module dependency conditions.
[gnulib/ericb.git] / lib / getopt-pfx-ext.h
blobd960bb34ee09b61a098884683bb9ecf433179cff
1 /* getopt (GNU extensions) gnulib wrapper header.
2 Copyright (C) 1989-2017 Free Software Foundation, Inc.
3 This file is part of gnulib.
4 Unlike most of the getopt implementation, it is NOT shared
5 with the GNU C Library.
7 gnulib is free software; you can redistribute it and/or modify it
8 under the terms of the GNU Lesser General Public License as
9 published by the Free Software Foundation; either version 2.1 of
10 the License, or (at your option) any later version.
12 gnulib is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
17 You should have received a copy of the GNU Lesser General Public
18 License along with gnulib; if not, see
19 <http://www.gnu.org/licenses/>. */
21 #ifndef _GETOPT_PFX_EXT_H
22 #define _GETOPT_PFX_EXT_H 1
24 /* This header should not be used directly; include getopt.h instead.
25 It does not have a protective #error, because the guard macro for
26 getopt.h in gnulib is not fixed. */
28 /* Standalone applications should #define __GETOPT_PREFIX to an
29 identifier that prefixes the external functions and variables
30 defined in getopt-core.h and getopt-ext.h. Systematically
31 rename identifiers so that they do not collide with the system
32 functions and variables. Renaming avoids problems with some
33 compilers and linkers. */
34 #ifdef __GETOPT_PREFIX
35 # ifndef __GETOPT_ID
36 # define __GETOPT_CONCAT(x, y) x ## y
37 # define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y)
38 # define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y)
39 # endif
40 # undef getopt_long
41 # undef getopt_long_only
42 # undef option
43 # undef _getopt_internal
44 # define getopt_long __GETOPT_ID (getopt_long)
45 # define getopt_long_only __GETOPT_ID (getopt_long_only)
46 # define option __GETOPT_ID (option)
47 # define _getopt_internal __GETOPT_ID (getopt_internal)
48 #endif
50 /* Standalone applications get correct prototypes for getopt_long and
51 getopt_long_only; they declare "char **argv". For backward
52 compatibility with old applications, if __GETOPT_PREFIX is not
53 defined, we supply GNU-libc-compatible, but incorrect, prototypes
54 using "char *const *argv". (GNU libc is stuck with the incorrect
55 prototypes, as they are baked into older versions of LSB.) */
56 #ifndef __getopt_argv_const
57 # if defined __GETOPT_PREFIX
58 # define __getopt_argv_const /* empty */
59 # else
60 # define __getopt_argv_const const
61 # endif
62 #endif
64 #include <getopt-ext.h>
66 #endif /* _GETOPT_PFX_EXT_H */