getopt-cdefs.in.h 1.99 KB
Newer Older
Paul Eggert's avatar
Paul Eggert committed
1
/* getopt-on-non-glibc compatibility macros.
Paul Eggert's avatar
Paul Eggert committed
2
   Copyright (C) 1989-2020 Free Software Foundation, Inc.
Paul Eggert's avatar
Paul Eggert committed
3 4 5 6
   This file is part of gnulib.
   Unlike most of the getopt implementation, it is NOT shared
   with the GNU C Library.

7
   This file is free software; you can redistribute it and/or modify it
Paul Eggert's avatar
Paul Eggert committed
8 9 10 11
   under the terms of the GNU General Public License as
   published by the Free Software Foundation; either version 3 of
   the License, or (at your option) any later version.

12
   This file is distributed in the hope that it will be useful, but
Paul Eggert's avatar
Paul Eggert committed
13 14 15 16 17 18
   WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   General Public License for more details.

   You should have received a copy of the GNU General Public
   License along with gnulib; if not, see
Paul Eggert's avatar
Paul Eggert committed
19
   <https://www.gnu.org/licenses/>.  */
Paul Eggert's avatar
Paul Eggert committed
20 21 22 23 24 25 26 27

#ifndef _GETOPT_CDEFS_H
#define _GETOPT_CDEFS_H 1

/* This header should not be used directly; include getopt.h or
   unistd.h instead.  It does not have a protective #error, because
   the guard macro for getopt.h in gnulib is not fixed.  */

Paul Eggert's avatar
Paul Eggert committed
28
/* getopt-core.h and getopt-ext.h are shared with GNU libc, and expect
Paul Eggert's avatar
Paul Eggert committed
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
   a number of the internal macros supplied to GNU libc's headers by
   sys/cdefs.h.  Provide fallback definitions for all of them.  */
#if @HAVE_SYS_CDEFS_H@
# include <sys/cdefs.h>
#endif

#ifndef __BEGIN_DECLS
# ifdef __cplusplus
#  define __BEGIN_DECLS extern "C" {
# else
#  define __BEGIN_DECLS /* nothing */
# endif
#endif
#ifndef __END_DECLS
# ifdef __cplusplus
#  define __END_DECLS }
# else
#  define __END_DECLS /* nothing */
# endif
#endif

#ifndef __GNUC_PREREQ
# if defined __GNUC__ && defined __GNUC_VERSION__
# define __GNUC_PREREQ(maj, min) \
        ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
# else
#  define __GNUC_PREREQ(maj, min) 0
# endif
#endif

#ifndef __THROW
# if defined __cplusplus && __GNUC_PREREQ (2,8)
#  define __THROW       throw ()
# else
#  define __THROW
# endif
#endif

Paul Eggert's avatar
Paul Eggert committed
67
#endif /* _GETOPT_CDEFS_H */