1165000Skientzle/*-
2165912Skientzle * Copyright (c) 2003-2007 Tim Kientzle
3165000Skientzle * All rights reserved.
4165000Skientzle *
5165000Skientzle * Redistribution and use in source and binary forms, with or without
6165000Skientzle * modification, are permitted provided that the following conditions
7165000Skientzle * are met:
8165000Skientzle * 1. Redistributions of source code must retain the above copyright
9165912Skientzle *    notice, this list of conditions and the following disclaimer.
10165000Skientzle * 2. Redistributions in binary form must reproduce the above copyright
11165000Skientzle *    notice, this list of conditions and the following disclaimer in the
12165000Skientzle *    documentation and/or other materials provided with the distribution.
13165000Skientzle *
14165000Skientzle * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
15165000Skientzle * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16165000Skientzle * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17165000Skientzle * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
18165000Skientzle * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19165000Skientzle * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20165000Skientzle * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21165000Skientzle * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22165000Skientzle * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23165000Skientzle * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24165000Skientzle *
25165000Skientzle * $FreeBSD$
26165000Skientzle */
27165000Skientzle
28189431Skientzle/* FreeBSD 5.0 and later have ACL and extattr support. */
29165000Skientzle#if __FreeBSD__ > 4
30165000Skientzle#define	HAVE_ACL_CREATE_ENTRY 1
31201079Skientzle#define	HAVE_ACL_GET_LINK_NP 1
32189427Skientzle#define	HAVE_ACL_GET_PERM_NP 1
33165000Skientzle#define	HAVE_ACL_INIT 1
34165000Skientzle#define	HAVE_ACL_SET_FD 1
35165000Skientzle#define	HAVE_ACL_SET_FD_NP 1
36165000Skientzle#define	HAVE_ACL_SET_FILE 1
37165000Skientzle#define	HAVE_ACL_USER 1
38189429Skientzle#define	HAVE_EXTATTR_GET_FILE 1
39189429Skientzle#define	HAVE_EXTATTR_LIST_FILE 1
40189429Skientzle#define	HAVE_EXTATTR_SET_FD 1
41189429Skientzle#define	HAVE_EXTATTR_SET_FILE 1
42189429Skientzle#define	HAVE_SYS_ACL_H 1
43189429Skientzle#define	HAVE_SYS_EXTATTR_H 1
44165000Skientzle#endif
45165000Skientzle
46191241Skientzle#ifdef WITH_OPENSSL
47191241Skientzle#define	HAVE_OPENSSL_MD5_H 1
48191241Skientzle#define	HAVE_OPENSSL_RIPEMD_H 1
49191241Skientzle#define	HAVE_OPENSSL_SHA_H 1
50221472Sobrien#define	HAVE_OPENSSL_SHA256_INIT 1
51221472Sobrien#define	HAVE_OPENSSL_SHA384_INIT 1
52221472Sobrien#define	HAVE_OPENSSL_SHA512_INIT 1
53221472Sobrien#define	HAVE_SHA256 1
54191241Skientzle#define	HAVE_SHA384 1
55191241Skientzle#define	HAVE_SHA512 1
56221472Sobrien#else
57221472Sobrien#define	HAVE_MD5_H 1
58221472Sobrien#define	HAVE_MD5INIT 1
59221472Sobrien#define	HAVE_SHA_H 1
60221472Sobrien#define	HAVE_SHA1 1
61221472Sobrien#define	HAVE_SHA1_INIT 1
62221472Sobrien#define	HAVE_SHA256 1
63221472Sobrien#define	HAVE_SHA256_H 1
64221472Sobrien#define	HAVE_SHA256_INIT 1
65221472Sobrien#define	HAVE_SHA512 1
66221472Sobrien#define	HAVE_SHA512_H 1
67221472Sobrien#define	HAVE_SHA512_INIT 1
68191241Skientzle#endif
69191241Skientzle
70201079Skientzle#define	HAVE_BSDXML_H 1
71229588Smm#define	HAVE_BZLIB_H 1
72165000Skientzle#define	HAVE_CHFLAGS 1
73176397Skientzle#define	HAVE_CHOWN 1
74224152Smm#define	HAVE_DECL_EXTATTR_NAMESPACE_USER 1
75168743Skientzle#define	HAVE_DECL_INT64_MAX 1
76168743Skientzle#define	HAVE_DECL_INT64_MIN 1
77168743Skientzle#define	HAVE_DECL_SIZE_MAX 1
78182954Skientzle#define	HAVE_DECL_SSIZE_MAX 1
79165000Skientzle#define	HAVE_DECL_STRERROR_R 1
80168743Skientzle#define	HAVE_DECL_UINT32_MAX 1
81168743Skientzle#define	HAVE_DECL_UINT64_MAX 1
82201079Skientzle#define	HAVE_DIRENT_H 1
83165000Skientzle#define	HAVE_EFTYPE 1
84165000Skientzle#define	HAVE_EILSEQ 1
85165000Skientzle#define	HAVE_ERRNO_H 1
86165000Skientzle#define	HAVE_FCHDIR 1
87165000Skientzle#define	HAVE_FCHFLAGS 1
88165000Skientzle#define	HAVE_FCHMOD 1
89165000Skientzle#define	HAVE_FCHOWN 1
90179321Skientzle#define	HAVE_FCNTL 1
91165000Skientzle#define	HAVE_FCNTL_H 1
92165000Skientzle#define	HAVE_FSEEKO 1
93177213Skientzle#define	HAVE_FSTAT 1
94182955Skientzle#define	HAVE_FTRUNCATE 1
95165000Skientzle#define	HAVE_FUTIMES 1
96176397Skientzle#define	HAVE_GETEUID 1
97224152Smm#define	HAVE_GETGRGID_R 1
98177201Skientzle#define	HAVE_GETPID 1
99224152Smm#define	HAVE_GETPWUID_R 1
100165000Skientzle#define	HAVE_GRP_H 1
101165000Skientzle#define	HAVE_INTTYPES_H 1
102165000Skientzle#define	HAVE_LCHFLAGS 1
103165000Skientzle#define	HAVE_LCHMOD 1
104165000Skientzle#define	HAVE_LCHOWN 1
105165000Skientzle#define	HAVE_LIMITS_H 1
106201079Skientzle#define	HAVE_LINK 1
107201079Skientzle#define	HAVE_LSTAT 1
108165000Skientzle#define	HAVE_LUTIMES 1
109165000Skientzle#define	HAVE_MALLOC 1
110191182Skientzle#define	HAVE_MD5 1
111165000Skientzle#define	HAVE_MEMMOVE 1
112165000Skientzle#define	HAVE_MKDIR 1
113165000Skientzle#define	HAVE_MKFIFO 1
114176397Skientzle#define	HAVE_MKNOD 1
115179321Skientzle#define	HAVE_PIPE 1
116170079Skientzle#define	HAVE_POLL 1
117170079Skientzle#define	HAVE_POLL_H 1
118165000Skientzle#define	HAVE_PWD_H 1
119189429Skientzle#define	HAVE_READLINK 1
120191182Skientzle#define	HAVE_RMD160 1
121170079Skientzle#define	HAVE_SELECT 1
122176397Skientzle#define	HAVE_SETENV 1
123191182Skientzle#define	HAVE_SIGNAL_H 1
124165000Skientzle#define	HAVE_STDINT_H 1
125165000Skientzle#define	HAVE_STDLIB_H 1
126165000Skientzle#define	HAVE_STRCHR 1
127165000Skientzle#define	HAVE_STRDUP 1
128165000Skientzle#define	HAVE_STRERROR 1
129165000Skientzle#define	HAVE_STRERROR_R 1
130165000Skientzle#define	HAVE_STRINGS_H 1
131165000Skientzle#define	HAVE_STRING_H 1
132165000Skientzle#define	HAVE_STRRCHR 1
133182954Skientzle#define	HAVE_STRUCT_STAT_ST_BLKSIZE 1
134183481Skientzle#define	HAVE_STRUCT_STAT_ST_BIRTHTIME 1
135183481Skientzle#define	HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC 1
136183011Skientzle#define	HAVE_STRUCT_STAT_ST_FLAGS 1
137165000Skientzle#define	HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC 1
138201079Skientzle#define	HAVE_SYMLINK 1
139201079Skientzle#define	HAVE_SYS_CDEFS_H 1
140165000Skientzle#define	HAVE_SYS_IOCTL_H 1
141170079Skientzle#define	HAVE_SYS_SELECT_H 1
142165000Skientzle#define	HAVE_SYS_STAT_H 1
143165000Skientzle#define	HAVE_SYS_TIME_H 1
144165000Skientzle#define	HAVE_SYS_TYPES_H 1
145176397Skientzle#undef	HAVE_SYS_UTIME_H
146165000Skientzle#define	HAVE_SYS_WAIT_H 1
147165000Skientzle#define	HAVE_TIMEGM 1
148176397Skientzle#define	HAVE_TZSET 1
149165000Skientzle#define	HAVE_UNISTD_H 1
150176397Skientzle#define	HAVE_UNSETENV 1
151168701Skientzle#define	HAVE_UTIME 1
152168701Skientzle#define	HAVE_UTIMES 1
153168701Skientzle#define	HAVE_UTIME_H 1
154179321Skientzle#define	HAVE_VFORK 1
155165000Skientzle#define	HAVE_WCHAR_H 1
156224152Smm#define	HAVE_WCSCMP 1
157168701Skientzle#define	HAVE_WCSCPY 1
158168701Skientzle#define	HAVE_WCSLEN 1
159179792Skientzle#define	HAVE_WCTOMB 1
160168701Skientzle#define	HAVE_WMEMCMP 1
161168701Skientzle#define	HAVE_WMEMCPY 1
162165000Skientzle#define	HAVE_ZLIB_H 1
163165000Skientzle#define	TIME_WITH_SYS_TIME 1
164165000Skientzle
165165000Skientzle/* FreeBSD 4 and earlier lack intmax_t/uintmax_t */
166165000Skientzle#if __FreeBSD__ < 5
167165000Skientzle#define	intmax_t int64_t
168165000Skientzle#define	uintmax_t uint64_t
169165000Skientzle#endif
170224152Smm
171224152Smm/* FreeBSD defines for archive_hash.h */
172224152Smm#ifdef WITH_OPENSSL
173224152Smm#define	ARCHIVE_HASH_MD5_OPENSSL 1
174224152Smm#define	ARCHIVE_HASH_RMD160_OPENSSL 1
175224152Smm#define	ARCHIVE_HASH_SHA1_OPENSSL
176224152Smm#define	ARCHIVE_HASH_SHA256_OPENSSL 1
177224152Smm#define	ARCHIVE_HASH_SHA384_OPENSSL 1
178224152Smm#define	ARCHIVE_HASH_SHA512_OPENSSL 1
179224152Smm#else
180224152Smm#define	ARCHIVE_HASH_MD5_LIBC 1
181224152Smm#define	ARCHIVE_HASH_SHA1_LIBC 1
182224152Smm#define	ARCHIVE_HASH_SHA256_LIBC 1
183224152Smm#define	ARCHIVE_HASH_SHA512_LIBC 1
184224152Smm#endif
185