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
30232153Smm#define HAVE_ACL_CREATE_ENTRY 1
31232153Smm#define HAVE_ACL_GET_LINK_NP 1
32232153Smm#define HAVE_ACL_GET_PERM_NP 1
33232153Smm#define HAVE_ACL_INIT 1
34238909Smm#define HAVE_ACL_IS_TRIVIAL_NP 1
35232153Smm#define HAVE_ACL_PERMSET_T 1
36232153Smm#define HAVE_ACL_SET_FD 1
37232153Smm#define HAVE_ACL_SET_FD_NP 1
38232153Smm#define HAVE_ACL_SET_FILE 1
39238909Smm#define HAVE_ACL_SET_LINK_NP 1
40232153Smm#define HAVE_ACL_USER 1
41232153Smm#define HAVE_EXTATTR_GET_FILE 1
42232153Smm#define HAVE_EXTATTR_LIST_FILE 1
43232153Smm#define HAVE_EXTATTR_SET_FD 1
44232153Smm#define HAVE_EXTATTR_SET_FILE 1
45232153Smm#define HAVE_SYS_ACL_H 1
46232153Smm#define HAVE_SYS_EXTATTR_H 1
47165000Skientzle#endif
48165000Skientzle
49191241Skientzle#ifdef WITH_OPENSSL
50248616Smm#define HAVE_LIBCRYPTO 1
51248616Smm#define HAVE_OPENSSL_EVP_H 1
52232153Smm#define HAVE_OPENSSL_MD5_H 1
53232153Smm#define HAVE_OPENSSL_RIPEMD_H 1
54232153Smm#define HAVE_OPENSSL_SHA_H 1
55232153Smm#define HAVE_OPENSSL_SHA256_INIT 1
56232153Smm#define HAVE_OPENSSL_SHA384_INIT 1
57232153Smm#define HAVE_OPENSSL_SHA512_INIT 1
58232153Smm#define HAVE_SHA256 1
59232153Smm#define HAVE_SHA384 1
60232153Smm#define HAVE_SHA512 1
61221472Sobrien#else
62248616Smm#define HAVE_LIBMD 1
63232153Smm#define HAVE_MD5_H 1
64232153Smm#define HAVE_MD5INIT 1
65248616Smm#define HAVE_RIPEMD_H 1
66232153Smm#define HAVE_SHA_H 1
67232153Smm#define HAVE_SHA1 1
68232153Smm#define HAVE_SHA1_INIT 1
69232153Smm#define HAVE_SHA256 1
70232153Smm#define HAVE_SHA256_H 1
71232153Smm#define HAVE_SHA256_INIT 1
72232153Smm#define HAVE_SHA512 1
73232153Smm#define HAVE_SHA512_H 1
74232153Smm#define HAVE_SHA512_INIT 1
75191241Skientzle#endif
76191241Skientzle
77232153Smm#define HAVE_BSDXML_H 1
78232153Smm#define HAVE_BZLIB_H 1
79232153Smm#define HAVE_CHFLAGS 1
80232153Smm#define HAVE_CHOWN 1
81232153Smm#define HAVE_CHROOT 1
82232153Smm#define HAVE_CTIME_R 1
83232153Smm#define HAVE_CTYPE_H 1
84232153Smm#define HAVE_DECL_EXTATTR_NAMESPACE_USER 1
85232153Smm#define HAVE_DECL_INT64_MAX 1
86232153Smm#define HAVE_DECL_INT64_MIN 1
87232153Smm#define HAVE_DECL_SIZE_MAX 1
88232153Smm#define HAVE_DECL_SSIZE_MAX 1
89232153Smm#define HAVE_DECL_STRERROR_R 1
90232153Smm#define HAVE_DECL_UINT32_MAX 1
91232153Smm#define HAVE_DECL_UINT64_MAX 1
92232153Smm#define HAVE_DIRENT_H 1
93232153Smm#define HAVE_DLFCN_H 1
94232153Smm#define HAVE_D_MD_ORDER 1
95232153Smm#define HAVE_EFTYPE 1
96232153Smm#define HAVE_EILSEQ 1
97232153Smm#define HAVE_ERRNO_H 1
98232153Smm#define HAVE_FCHDIR 1
99232153Smm#define HAVE_FCHFLAGS 1
100232153Smm#define HAVE_FCHMOD 1
101232153Smm#define HAVE_FCHOWN 1
102232153Smm#define HAVE_FCNTL 1
103232153Smm#define HAVE_FCNTL_H 1
104232153Smm#define HAVE_FDOPENDIR 1
105232153Smm#define HAVE_FORK 1
106232153Smm#define HAVE_FSEEKO 1
107232153Smm#define HAVE_FSTAT 1
108232153Smm#define HAVE_FSTATAT 1
109232153Smm#define HAVE_FSTATFS 1
110232153Smm#define HAVE_FSTATVFS 1
111232153Smm#define HAVE_FTRUNCATE 1
112232153Smm#define HAVE_FUTIMES 1
113232153Smm#define HAVE_FUTIMESAT 1
114232153Smm#define HAVE_GETEUID 1
115232153Smm#define HAVE_GETGRGID_R 1
116232153Smm#define HAVE_GETGRNAM_R 1
117232153Smm#define HAVE_GETPID 1
118232153Smm#define HAVE_GETPWNAM_R 1
119232153Smm#define HAVE_GETPWUID_R 1
120232153Smm#define HAVE_GETVFSBYNAME 1
121232153Smm#define HAVE_GMTIME_R 1
122232153Smm#define HAVE_GRP_H 1
123232153Smm#define HAVE_INTMAX_T 1
124232153Smm#define HAVE_INTTYPES_H 1
125232153Smm#define HAVE_LANGINFO_H 1
126232153Smm#define HAVE_LCHFLAGS 1
127232153Smm#define HAVE_LCHMOD 1
128232153Smm#define HAVE_LCHOWN 1
129232153Smm#define HAVE_LIBZ 1
130232153Smm#define HAVE_LIMITS_H 1
131232153Smm#define HAVE_LINK 1
132232153Smm#define HAVE_LOCALE_H 1
133232153Smm#define HAVE_LOCALTIME_R 1
134232153Smm#define HAVE_LONG_LONG_INT 1
135232153Smm#define HAVE_LSTAT 1
136232153Smm#define HAVE_LUTIMES 1
137232153Smm#define HAVE_MBRTOWC 1
138232153Smm#define HAVE_MEMMOVE 1
139232153Smm#define HAVE_MEMORY_H 1
140232153Smm#define HAVE_MEMSET 1
141232153Smm#define HAVE_MKDIR 1
142232153Smm#define HAVE_MKFIFO 1
143232153Smm#define HAVE_MKNOD 1
144232153Smm#define HAVE_MKSTEMP 1
145232153Smm#define HAVE_NL_LANGINFO 1
146232153Smm#define HAVE_OPENAT 1
147232153Smm#define HAVE_PATHS_H 1
148232153Smm#define HAVE_PIPE 1
149232153Smm#define HAVE_POLL 1
150232153Smm#define HAVE_POLL_H 1
151248616Smm#define HAVE_POSIX_SPAWNP 1
152232153Smm#define HAVE_PWD_H 1
153232153Smm#define HAVE_READDIR_R 1
154232153Smm#define HAVE_READLINK 1
155232153Smm#define HAVE_READLINKAT 1
156232153Smm#define HAVE_REGEX_H 1
157232153Smm#define HAVE_SELECT 1
158232153Smm#define HAVE_SETENV 1
159232153Smm#define HAVE_SETLOCALE 1
160232153Smm#define HAVE_SIGACTION 1
161232153Smm#define HAVE_SIGNAL_H 1
162248616Smm#define HAVE_SPAWN_H 1
163232153Smm#define HAVE_STATFS 1
164232153Smm#define HAVE_STATVFS 1
165232153Smm#define HAVE_STDARG_H 1
166232153Smm#define HAVE_STDINT_H 1
167232153Smm#define HAVE_STDLIB_H 1
168232153Smm#define HAVE_STRCHR 1
169232153Smm#define HAVE_STRDUP 1
170232153Smm#define HAVE_STRERROR 1
171232153Smm#define HAVE_STRERROR_R 1
172232153Smm#define HAVE_STRFTIME 1
173232153Smm#define HAVE_STRINGS_H 1
174232153Smm#define HAVE_STRING_H 1
175232153Smm#define HAVE_STRRCHR 1
176232153Smm#define HAVE_STRUCT_STATFS_F_NAMEMAX 1
177232153Smm#define HAVE_STRUCT_STAT_ST_BIRTHTIME 1
178232153Smm#define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC 1
179232153Smm#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
180232153Smm#define HAVE_STRUCT_STAT_ST_FLAGS 1
181232153Smm#define HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC 1
182232153Smm#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1
183232153Smm#define HAVE_STRUCT_TM_TM_GMTOFF 1
184232153Smm#define HAVE_SYMLINK 1
185232153Smm#define HAVE_SYS_CDEFS_H 1
186232153Smm#define HAVE_SYS_IOCTL_H 1
187232153Smm#define HAVE_SYS_MOUNT_H 1
188232153Smm#define HAVE_SYS_PARAM_H 1
189232153Smm#define HAVE_SYS_POLL_H 1
190232153Smm#define HAVE_SYS_SELECT_H 1
191232153Smm#define HAVE_SYS_STATVFS_H 1
192232153Smm#define HAVE_SYS_STAT_H 1
193232153Smm#define HAVE_SYS_TIME_H 1
194232153Smm#define HAVE_SYS_TYPES_H 1
195232153Smm#define HAVE_SYS_UTSNAME_H 1
196232153Smm#define HAVE_SYS_WAIT_H 1
197232153Smm#define HAVE_TIMEGM 1
198232153Smm#define HAVE_TIME_H 1
199232153Smm#define HAVE_TZSET 1
200232153Smm#define HAVE_UINTMAX_T 1
201232153Smm#define HAVE_UNISTD_H 1
202232153Smm#define HAVE_UNSETENV 1
203232153Smm#define HAVE_UNSIGNED_LONG_LONG 1
204232153Smm#define HAVE_UNSIGNED_LONG_LONG_INT 1
205232153Smm#define HAVE_UTIME 1
206232153Smm#define HAVE_UTIMES 1
207232153Smm#define HAVE_UTIME_H 1
208232153Smm#define HAVE_VFORK 1
209232153Smm#define HAVE_VPRINTF 1
210232153Smm#define HAVE_WCHAR_H 1
211232153Smm#define HAVE_WCHAR_T 1
212232153Smm#define HAVE_WCRTOMB 1
213232153Smm#define HAVE_WCSCMP 1
214232153Smm#define HAVE_WCSCPY 1
215232153Smm#define HAVE_WCSLEN 1
216232153Smm#define HAVE_WCTOMB 1
217232153Smm#define HAVE_WCTYPE_H 1
218232153Smm#define HAVE_WMEMCMP 1
219232153Smm#define HAVE_WMEMCPY 1
220232153Smm#define HAVE_ZLIB_H 1
221232153Smm#define TIME_WITH_SYS_TIME 1
222165000Skientzle
223165000Skientzle/* FreeBSD 4 and earlier lack intmax_t/uintmax_t */
224165000Skientzle#if __FreeBSD__ < 5
225232153Smm#define intmax_t int64_t
226232153Smm#define uintmax_t uint64_t
227165000Skientzle#endif
228224152Smm
229224152Smm/* FreeBSD defines for archive_hash.h */
230224152Smm#ifdef WITH_OPENSSL
231269519Sdim#define ARCHIVE_CRYPTO_MD5_OPENSSL 1
232269519Sdim#define ARCHIVE_CRYPTO_RMD160_OPENSSL 1
233269519Sdim#define ARCHIVE_CRYPTO_SHA1_OPENSSL
234269519Sdim#define ARCHIVE_CRYPTO_SHA256_OPENSSL 1
235269519Sdim#define ARCHIVE_CRYPTO_SHA384_OPENSSL 1
236269519Sdim#define ARCHIVE_CRYPTO_SHA512_OPENSSL 1
237224152Smm#else
238269519Sdim#define ARCHIVE_CRYPTO_MD5_LIBMD 1
239269519Sdim#define ARCHIVE_CRYPTO_SHA1_LIBMD 1
240269519Sdim#define ARCHIVE_CRYPTO_SHA256_LIBMD 1
241269519Sdim#define ARCHIVE_CRYPTO_SHA512_LIBMD 1
242224152Smm#endif
243