xref: /freebsd/contrib/libarchive/cat/bsdcat_platform.h (revision bd66c1b43e33540205dbc1187c2f2a15c58b57ba)
1cdf63a70SMartin Matuska /*-
2*bd66c1b4SMartin Matuska  * SPDX-License-Identifier: BSD-2-Clause
3*bd66c1b4SMartin Matuska  *
4cdf63a70SMartin Matuska  * Copyright (c) 2003-2007 Tim Kientzle
5cdf63a70SMartin Matuska  * All rights reserved.
6cdf63a70SMartin Matuska  */
7cdf63a70SMartin Matuska 
8cdf63a70SMartin Matuska /*
9cdf63a70SMartin Matuska  * This header is the first thing included in any of the bsdtar
10cdf63a70SMartin Matuska  * source files.  As far as possible, platform-specific issues should
11cdf63a70SMartin Matuska  * be dealt with here and not within individual source files.
12cdf63a70SMartin Matuska  */
13cdf63a70SMartin Matuska 
14cdf63a70SMartin Matuska #ifndef BSDCAT_PLATFORM_H_INCLUDED
15cdf63a70SMartin Matuska #define	BSDCAT_PLATFORM_H_INCLUDED
16cdf63a70SMartin Matuska 
17cdf63a70SMartin Matuska #if defined(PLATFORM_CONFIG_H)
18cdf63a70SMartin Matuska /* Use hand-built config.h in environments that need it. */
19cdf63a70SMartin Matuska #include PLATFORM_CONFIG_H
20cdf63a70SMartin Matuska #else
21cdf63a70SMartin Matuska /* Not having a config.h of some sort is a serious problem. */
22cdf63a70SMartin Matuska #include "config.h"
23cdf63a70SMartin Matuska #endif
24cdf63a70SMartin Matuska 
25cdf63a70SMartin Matuska #ifdef HAVE_LIBARCHIVE
26cdf63a70SMartin Matuska /* If we're using the platform libarchive, include system headers. */
27cdf63a70SMartin Matuska #include <archive.h>
28cdf63a70SMartin Matuska #include <archive_entry.h>
29cdf63a70SMartin Matuska #else
30cdf63a70SMartin Matuska /* Otherwise, include user headers. */
31cdf63a70SMartin Matuska #include "archive.h"
32cdf63a70SMartin Matuska #include "archive_entry.h"
33cdf63a70SMartin Matuska #endif
34cdf63a70SMartin Matuska 
35cdf63a70SMartin Matuska /* How to mark functions that don't return. */
36cdf63a70SMartin Matuska /* This facilitates use of some newer static code analysis tools. */
37b9128a37SMartin Matuska #undef __LA_NORETURN
38cdf63a70SMartin Matuska #if defined(__GNUC__) && (__GNUC__ > 2 || \
39cdf63a70SMartin Matuska                           (__GNUC__ == 2 && __GNUC_MINOR__ >= 5))
40b9128a37SMartin Matuska #define __LA_NORETURN       __attribute__((__noreturn__))
41b9128a37SMartin Matuska #elif defined(_MSC_VER)
42b9128a37SMartin Matuska #define __LA_NORETURN __declspec(noreturn)
43cdf63a70SMartin Matuska #else
44b9128a37SMartin Matuska #define __LA_NORETURN
45cdf63a70SMartin Matuska #endif
46cdf63a70SMartin Matuska 
47cdf63a70SMartin Matuska #endif /* !BSDCAT_PLATFORM_H_INCLUDED */
48