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