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