1e64fe029SMartin Matuska /*- 2e64fe029SMartin Matuska * Copyright (c) 2003-2007 Tim Kientzle 3e64fe029SMartin Matuska * All rights reserved. 4e64fe029SMartin Matuska * 5e64fe029SMartin Matuska * Redistribution and use in source and binary forms, with or without 6e64fe029SMartin Matuska * modification, are permitted provided that the following conditions 7e64fe029SMartin Matuska * are met: 8e64fe029SMartin Matuska * 1. Redistributions of source code must retain the above copyright 9e64fe029SMartin Matuska * notice, this list of conditions and the following disclaimer. 10e64fe029SMartin Matuska * 2. Redistributions in binary form must reproduce the above copyright 11e64fe029SMartin Matuska * notice, this list of conditions and the following disclaimer in the 12e64fe029SMartin Matuska * documentation and/or other materials provided with the distribution. 13e64fe029SMartin Matuska * 14e64fe029SMartin Matuska * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR 15e64fe029SMartin Matuska * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 16e64fe029SMartin Matuska * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17e64fe029SMartin Matuska * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, 18e64fe029SMartin Matuska * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19e64fe029SMartin Matuska * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 20e64fe029SMartin Matuska * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 21e64fe029SMartin Matuska * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22e64fe029SMartin Matuska * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 23e64fe029SMartin Matuska * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24e64fe029SMartin Matuska */ 25e64fe029SMartin Matuska 26e64fe029SMartin Matuska /* 27e64fe029SMartin Matuska * This header is the first thing included in any of the bsdtar 28e64fe029SMartin Matuska * source files. As far as possible, platform-specific issues should 29e64fe029SMartin Matuska * be dealt with here and not within individual source files. 30e64fe029SMartin Matuska */ 31e64fe029SMartin Matuska 32e64fe029SMartin Matuska #ifndef BSDUNZIP_PLATFORM_H_INCLUDED 33e64fe029SMartin Matuska #define BSDUNZIP_PLATFORM_H_INCLUDED 34e64fe029SMartin Matuska 35e64fe029SMartin Matuska #if defined(PLATFORM_CONFIG_H) 36e64fe029SMartin Matuska /* Use hand-built config.h in environments that need it. */ 37e64fe029SMartin Matuska #include PLATFORM_CONFIG_H 38e64fe029SMartin Matuska #else 39e64fe029SMartin Matuska /* Not having a config.h of some sort is a serious problem. */ 40e64fe029SMartin Matuska #include "config.h" 41e64fe029SMartin Matuska #endif 42e64fe029SMartin Matuska 43e64fe029SMartin Matuska #ifdef HAVE_LIBARCHIVE 44e64fe029SMartin Matuska /* If we're using the platform libarchive, include system headers. */ 45e64fe029SMartin Matuska #include <archive.h> 46e64fe029SMartin Matuska #include <archive_entry.h> 47e64fe029SMartin Matuska #else 48e64fe029SMartin Matuska /* Otherwise, include user headers. */ 49e64fe029SMartin Matuska #include "archive.h" 50e64fe029SMartin Matuska #include "archive_entry.h" 51e64fe029SMartin Matuska #endif 52e64fe029SMartin Matuska 53e64fe029SMartin Matuska /* How to mark functions that don't return. */ 54e64fe029SMartin Matuska /* This facilitates use of some newer static code analysis tools. */ 55*b9128a37SMartin Matuska #undef __LA_NORETURN 56e64fe029SMartin Matuska #if defined(__GNUC__) && (__GNUC__ > 2 || \ 57e64fe029SMartin Matuska (__GNUC__ == 2 && __GNUC_MINOR__ >= 5)) 58*b9128a37SMartin Matuska #define __LA_NORETURN __attribute__((__noreturn__)) 59*b9128a37SMartin Matuska #elif defined(_MSC_VER) 60*b9128a37SMartin Matuska #define __LA_NORETURN __declspec(noreturn) 61e64fe029SMartin Matuska #else 62*b9128a37SMartin Matuska #define __LA_NORETURN 63e64fe029SMartin Matuska #endif 64e64fe029SMartin Matuska 65e64fe029SMartin Matuska #endif /* !BSDUNZIP_PLATFORM_H_INCLUDED */ 66