4 LIBARCHIVEDIR= ${.CURDIR}/../../contrib/libarchive
8 LIBADD= z bz2 lzma bsdxml
9 CFLAGS+= -DHAVE_BZLIB_H=1 -DHAVE_LIBLZMA=1 -DHAVE_LZMA_H=1
11 # FreeBSD SHLIB_MAJOR value is managed as part of the FreeBSD system.
12 # It has no real relation to the libarchive version number.
15 CFLAGS+= -DPLATFORM_CONFIG_H=\"${.CURDIR}/config_freebsd.h\"
18 .if ${MK_OPENSSL} != "no"
19 CFLAGS+= -DWITH_OPENSSL
25 .if ${MK_ICONV} != "no"
26 # TODO: This can be changed back to CFLAGS once iconv works correctly
27 # with statically linked binaries.
28 SHARED_CFLAGS+= -DHAVE_ICONV=1 -DHAVE_ICONV_H=1 -DICONV_CONST=const
31 .if ${MACHINE_ARCH:Marm*} != "" || ${MACHINE_ARCH:Mmips*} != "" || \
32 ${MACHINE_ARCH:Msparc64*} != ""
34 .if ${MACHINE_ARCH:M*64*} == ""
42 ${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
43 ${.CURDIR}/libarchive.pc ${DESTDIR}${LIBDATADIR}/pkgconfig
46 .PATH: ${LIBARCHIVEDIR}/libarchive
48 # Headers to be installed in /usr/include
49 INCS= archive.h archive_entry.h
51 # Sources to be compiled.
53 archive_check_magic.c \
57 archive_entry_copy_stat.c \
58 archive_entry_link_resolver.c \
59 archive_entry_sparse.c \
60 archive_entry_stat.c \
61 archive_entry_strmode.c \
62 archive_entry_xattr.c \
70 archive_read_append_filter.c \
71 archive_read_data_into_fd.c \
72 archive_read_disk_entry_from_file.c \
73 archive_read_disk_posix.c \
74 archive_read_disk_set_standard_lookup.c \
75 archive_read_extract.c \
76 archive_read_open_fd.c \
77 archive_read_open_file.c \
78 archive_read_open_filename.c \
79 archive_read_open_memory.c \
80 archive_read_set_format.c \
81 archive_read_set_options.c \
82 archive_read_support_filter_all.c \
83 archive_read_support_filter_bzip2.c \
84 archive_read_support_filter_compress.c \
85 archive_read_support_filter_gzip.c \
86 archive_read_support_filter_grzip.c \
87 archive_read_support_filter_lrzip.c \
88 archive_read_support_filter_lzop.c \
89 archive_read_support_filter_none.c \
90 archive_read_support_filter_program.c \
91 archive_read_support_filter_rpm.c \
92 archive_read_support_filter_uu.c \
93 archive_read_support_filter_xz.c \
94 archive_read_support_format_7zip.c \
95 archive_read_support_format_all.c \
96 archive_read_support_format_ar.c \
97 archive_read_support_format_by_code.c \
98 archive_read_support_format_cab.c \
99 archive_read_support_format_cpio.c \
100 archive_read_support_format_empty.c \
101 archive_read_support_format_iso9660.c \
102 archive_read_support_format_lha.c \
103 archive_read_support_format_mtree.c \
104 archive_read_support_format_rar.c \
105 archive_read_support_format_raw.c \
106 archive_read_support_format_tar.c \
107 archive_read_support_format_xar.c \
108 archive_read_support_format_zip.c \
110 archive_string_sprintf.c \
114 archive_write_add_filter.c \
115 archive_write_disk_acl.c \
116 archive_write_disk_set_standard_lookup.c \
117 archive_write_disk_posix.c \
118 archive_write_open_fd.c \
119 archive_write_open_file.c \
120 archive_write_open_filename.c \
121 archive_write_open_memory.c \
122 archive_write_add_filter_b64encode.c \
123 archive_write_add_filter_by_name.c \
124 archive_write_add_filter_bzip2.c \
125 archive_write_add_filter_compress.c \
126 archive_write_add_filter_grzip.c \
127 archive_write_add_filter_gzip.c \
128 archive_write_add_filter_lrzip.c \
129 archive_write_add_filter_lzop.c \
130 archive_write_add_filter_none.c \
131 archive_write_add_filter_program.c \
132 archive_write_add_filter_uuencode.c \
133 archive_write_add_filter_xz.c \
134 archive_write_set_format.c \
135 archive_write_set_format_7zip.c \
136 archive_write_set_format_ar.c \
137 archive_write_set_format_by_name.c \
138 archive_write_set_format_cpio.c \
139 archive_write_set_format_cpio_newc.c \
140 archive_write_set_format_gnutar.c \
141 archive_write_set_format_iso9660.c \
142 archive_write_set_format_mtree.c \
143 archive_write_set_format_pax.c \
144 archive_write_set_format_shar.c \
145 archive_write_set_format_ustar.c \
146 archive_write_set_format_v7tar.c \
147 archive_write_set_format_xar.c \
148 archive_write_set_format_zip.c \
149 archive_write_set_options.c \
152 # Man pages to be installed.
153 MAN= archive_entry.3 \
154 archive_entry_acl.3 \
155 archive_entry_linkify.3 \
156 archive_entry_paths.3 \
157 archive_entry_perms.3 \
158 archive_entry_stat.3 \
159 archive_entry_time.3 \
161 archive_read_data.3 \
162 archive_read_disk.3 \
163 archive_read_extract.3 \
164 archive_read_filter.3 \
165 archive_read_format.3 \
166 archive_read_free.3 \
167 archive_read_header.3 \
169 archive_read_open.3 \
170 archive_read_set_options.3 \
173 archive_write_blocksize.3 \
174 archive_write_data.3 \
175 archive_write_disk.3 \
176 archive_write_filter.3 \
177 archive_write_finish_entry.3 \
178 archive_write_format.3 \
179 archive_write_free.3 \
180 archive_write_header.3 \
181 archive_write_new.3 \
182 archive_write_open.3 \
183 archive_write_set_options.3 \
186 libarchive_changes.3 \
187 libarchive_internals.3 \
188 libarchive-formats.5 \
191 # Symlink the man pages under each function name.
192 MLINKS+= archive_entry.3 archive_entry_clear.3
193 MLINKS+= archive_entry.3 archive_entry_clone.3
194 MLINKS+= archive_entry.3 archive_entry_free.3
195 MLINKS+= archive_entry.3 archive_entry_new.3
196 MLINKS+= archive_entry_acl.3 archive_entry_acl_add_entry.3
197 MLINKS+= archive_entry_acl.3 archive_entry_acl_add_entry_w.3
198 MLINKS+= archive_entry_acl.3 archive_entry_acl_clear.3
199 MLINKS+= archive_entry_acl.3 archive_entry_acl_count.3
200 MLINKS+= archive_entry_acl.3 archive_entry_acl_next.3
201 MLINKS+= archive_entry_acl.3 archive_entry_acl_next_w.3
202 MLINKS+= archive_entry_acl.3 archive_entry_acl_reset.3
203 MLINKS+= archive_entry_acl.3 archive_entry_acl_text_w.3
204 MLINKS+= archive_entry_linkify.3 archive_entry_linkresolver.3
205 MLINKS+= archive_entry_linkify.3 archive_entry_linkresolver_new.3
206 MLINKS+= archive_entry_linkify.3 archive_entry_linkresolver_set_strategy.3
207 MLINKS+= archive_entry_linkify.3 archive_entry_linkresolver_free.3
208 MLINKS+= archive_entry_paths.3 archive_entry_copy_hardlink.3
209 MLINKS+= archive_entry_paths.3 archive_entry_copy_hardlink_w.3
210 MLINKS+= archive_entry_paths.3 archive_entry_copy_link.3
211 MLINKS+= archive_entry_paths.3 archive_entry_copy_link_w.3
212 MLINKS+= archive_entry_paths.3 archive_entry_copy_pathname.3
213 MLINKS+= archive_entry_paths.3 archive_entry_copy_pathname_w.3
214 MLINKS+= archive_entry_paths.3 archive_entry_copy_sourcepath.3
215 MLINKS+= archive_entry_paths.3 archive_entry_copy_symlink.3
216 MLINKS+= archive_entry_paths.3 archive_entry_copy_symlink_w.3
217 MLINKS+= archive_entry_paths.3 archive_entry_hardlink.3
218 MLINKS+= archive_entry_paths.3 archive_entry_hardlink_w.3
219 MLINKS+= archive_entry_paths.3 archive_entry_pathname.3
220 MLINKS+= archive_entry_paths.3 archive_entry_pathname_w.3
221 MLINKS+= archive_entry_paths.3 archive_entry_set_hardlink.3
222 MLINKS+= archive_entry_paths.3 archive_entry_set_link.3
223 MLINKS+= archive_entry_paths.3 archive_entry_set_pathname.3
224 MLINKS+= archive_entry_paths.3 archive_entry_set_symlink.3
225 MLINKS+= archive_entry_paths.3 archive_entry_symlink.3
226 MLINKS+= archive_entry_paths.3 archive_entry_symlink_w.3
227 MLINKS+= archive_entry_paths.3 archive_entry_update_symlink_utf8.3
228 MLINKS+= archive_entry_paths.3 archive_entry_update_hardlink_utf8.3
229 MLINKS+= archive_entry_perms.3 archive_entry_copy_fflags_text.3
230 MLINKS+= archive_entry_perms.3 archive_entry_copy_fflags_text_w.3
231 MLINKS+= archive_entry_perms.3 archive_entry_copy_gname.3
232 MLINKS+= archive_entry_perms.3 archive_entry_copy_gname_w.3
233 MLINKS+= archive_entry_perms.3 archive_entry_copy_uname.3
234 MLINKS+= archive_entry_perms.3 archive_entry_copy_uname_w.3
235 MLINKS+= archive_entry_perms.3 archive_entry_fflags.3
236 MLINKS+= archive_entry_perms.3 archive_entry_fflags_text.3
237 MLINKS+= archive_entry_perms.3 archive_entry_gid.3
238 MLINKS+= archive_entry_perms.3 archive_entry_gname.3
239 MLINKS+= archive_entry_perms.3 archive_entry_gname_w.3
240 MLINKS+= archive_entry_perms.3 archive_entry_set_fflags.3
241 MLINKS+= archive_entry_perms.3 archive_entry_set_gid.3
242 MLINKS+= archive_entry_perms.3 archive_entry_set_gname.3
243 MLINKS+= archive_entry_perms.3 archive_entry_perm.3
244 MLINKS+= archive_entry_perms.3 archive_entry_set_perm.3
245 MLINKS+= archive_entry_perms.3 archive_entry_set_uid.3
246 MLINKS+= archive_entry_perms.3 archive_entry_set_uname.3
247 MLINKS+= archive_entry_perms.3 archive_entry_strmode.3
248 MLINKS+= archive_entry_perms.3 archive_entry_uid.3
249 MLINKS+= archive_entry_perms.3 archive_entry_uname.3
250 MLINKS+= archive_entry_perms.3 archive_entry_uname_w.3
251 MLINKS+= archive_entry_perms.3 archive_entry_update_gname_utf8.3
252 MLINKS+= archive_entry_perms.3 archive_entry_update_uname_utf8.3
253 MLINKS+= archive_entry_stat.3 archive_entry_copy_stat.3
254 MLINKS+= archive_entry_stat.3 archive_entry_dev.3
255 MLINKS+= archive_entry_stat.3 archive_entry_dev_is_set.3
256 MLINKS+= archive_entry_stat.3 archive_entry_devmajor.3
257 MLINKS+= archive_entry_stat.3 archive_entry_devminor.3
258 MLINKS+= archive_entry_stat.3 archive_entry_filetype.3
259 MLINKS+= archive_entry_stat.3 archive_entry_ino.3
260 MLINKS+= archive_entry_stat.3 archive_entry_ino64.3
261 MLINKS+= archive_entry_stat.3 archive_entry_ino_is_set.3
262 MLINKS+= archive_entry_stat.3 archive_entry_mode.3
263 MLINKS+= archive_entry_stat.3 archive_entry_nlink.3
264 MLINKS+= archive_entry_stat.3 archive_entry_rdev.3
265 MLINKS+= archive_entry_stat.3 archive_entry_rdevmajor.3
266 MLINKS+= archive_entry_stat.3 archive_entry_rdevminor.3
267 MLINKS+= archive_entry_stat.3 archive_entry_set_dev.3
268 MLINKS+= archive_entry_stat.3 archive_entry_set_devmajor.3
269 MLINKS+= archive_entry_stat.3 archive_entry_set_devminor.3
270 MLINKS+= archive_entry_stat.3 archive_entry_set_filetype.3
271 MLINKS+= archive_entry_stat.3 archive_entry_set_ino.3
272 MLINKS+= archive_entry_stat.3 archive_entry_set_ino64.3
273 MLINKS+= archive_entry_stat.3 archive_entry_set_mode.3
274 MLINKS+= archive_entry_stat.3 archive_entry_set_nlink.3
275 MLINKS+= archive_entry_stat.3 archive_entry_set_rdev.3
276 MLINKS+= archive_entry_stat.3 archive_entry_set_rdevmajor.3
277 MLINKS+= archive_entry_stat.3 archive_entry_set_rdevminor.3
278 MLINKS+= archive_entry_stat.3 archive_entry_set_size.3
279 MLINKS+= archive_entry_stat.3 archive_entry_size.3
280 MLINKS+= archive_entry_stat.3 archive_entry_size_is_set.3
281 MLINKS+= archive_entry_stat.3 archive_entry_unset_size.3
282 MLINKS+= archive_entry_time.3 archive_entry_atime.3
283 MLINKS+= archive_entry_time.3 archive_entry_atime_is_set.3
284 MLINKS+= archive_entry_time.3 archive_entry_atime_nsec.3
285 MLINKS+= archive_entry_time.3 archive_entry_birthtime.3
286 MLINKS+= archive_entry_time.3 archive_entry_birthtime_is_set.3
287 MLINKS+= archive_entry_time.3 archive_entry_birthtime_nsec.3
288 MLINKS+= archive_entry_time.3 archive_entry_ctime.3
289 MLINKS+= archive_entry_time.3 archive_entry_ctime_is_set.3
290 MLINKS+= archive_entry_time.3 archive_entry_ctime_nsec.3
291 MLINKS+= archive_entry_time.3 archive_entry_mtime.3
292 MLINKS+= archive_entry_time.3 archive_entry_mtime_is_set.3
293 MLINKS+= archive_entry_time.3 archive_entry_mtime_nsec.3
294 MLINKS+= archive_entry_time.3 archive_entry_set_atime.3
295 MLINKS+= archive_entry_time.3 archive_entry_set_birthtime.3
296 MLINKS+= archive_entry_time.3 archive_entry_set_ctime.3
297 MLINKS+= archive_entry_time.3 archive_entry_set_mtime.3
298 MLINKS+= archive_entry_time.3 archive_entry_unset_atime.3
299 MLINKS+= archive_entry_time.3 archive_entry_unset_birthtime.3
300 MLINKS+= archive_entry_time.3 archive_entry_unset_ctime.3
301 MLINKS+= archive_entry_time.3 archive_entry_unset_mtime.3
302 MLINKS+= archive_read_data.3 archive_read_data_block.3
303 MLINKS+= archive_read_data.3 archive_read_data_into_fd.3
304 MLINKS+= archive_read_data.3 archive_read_data_skip.3
305 MLINKS+= archive_read_header.3 archive_read_next_header.3
306 MLINKS+= archive_read_header.3 archive_read_next_header2.3
307 MLINKS+= archive_read_extract.3 archive_read_extract2.3
308 MLINKS+= archive_read_extract.3 archive_read_extract_set_progress_callback.3
309 MLINKS+= archive_read_extract.3 archive_read_extract_set_skip_file.3
310 MLINKS+= archive_read_open.3 archive_read_open2.3
311 MLINKS+= archive_read_open.3 archive_read_open_FILE.3
312 MLINKS+= archive_read_open.3 archive_read_open_fd.3
313 MLINKS+= archive_read_open.3 archive_read_open_file.3
314 MLINKS+= archive_read_open.3 archive_read_open_filename.3
315 MLINKS+= archive_read_open.3 archive_read_open_memory.3
316 MLINKS+= archive_read_free.3 archive_read_close.3
317 MLINKS+= archive_read_free.3 archive_read_finish.3
318 MLINKS+= archive_read_filter.3 archive_read_support_filter_all.3
319 MLINKS+= archive_read_filter.3 archive_read_support_filter_bzip2.3
320 MLINKS+= archive_read_filter.3 archive_read_support_filter_compress.3
321 MLINKS+= archive_read_filter.3 archive_read_support_filter_gzip.3
322 MLINKS+= archive_read_filter.3 archive_read_support_filter_lzma.3
323 MLINKS+= archive_read_filter.3 archive_read_support_filter_none.3
324 MLINKS+= archive_read_filter.3 archive_read_support_filter_xz.3
325 MLINKS+= archive_read_filter.3 archive_read_support_filter_program.3
326 MLINKS+= archive_read_filter.3 archive_read_support_filter_program_signature.3
327 MLINKS+= archive_read_format.3 archive_read_support_format_7zip.3
328 MLINKS+= archive_read_format.3 archive_read_support_format_all.3
329 MLINKS+= archive_read_format.3 archive_read_support_format_ar.3
330 MLINKS+= archive_read_format.3 archive_read_support_format_by_code.3
331 MLINKS+= archive_read_format.3 archive_read_support_format_cab.3
332 MLINKS+= archive_read_format.3 archive_read_support_format_cpio.3
333 MLINKS+= archive_read_format.3 archive_read_support_format_empty.3
334 MLINKS+= archive_read_format.3 archive_read_support_format_iso9660.3
335 MLINKS+= archive_read_format.3 archive_read_support_format_lha.3
336 MLINKS+= archive_read_format.3 archive_read_support_format_mtree.3
337 MLINKS+= archive_read_format.3 archive_read_support_format_rar.3
338 MLINKS+= archive_read_format.3 archive_read_support_format_raw.3
339 MLINKS+= archive_read_format.3 archive_read_support_format_tar.3
340 MLINKS+= archive_read_format.3 archive_read_support_format_xar.3
341 MLINKS+= archive_read_format.3 archive_read_support_format_zip.3
342 MLINKS+= archive_read_disk.3 archive_read_disk_entry_from_file.3
343 MLINKS+= archive_read_disk.3 archive_read_disk_gname.3
344 MLINKS+= archive_read_disk.3 archive_read_disk_new.3
345 MLINKS+= archive_read_disk.3 archive_read_disk_set_gname_lookup.3
346 MLINKS+= archive_read_disk.3 archive_read_disk_set_standard_lookup.3
347 MLINKS+= archive_read_disk.3 archive_read_disk_set_symlink_hybrid.3
348 MLINKS+= archive_read_disk.3 archive_read_disk_set_symlink_logical.3
349 MLINKS+= archive_read_disk.3 archive_read_disk_set_symlink_physical.3
350 MLINKS+= archive_read_disk.3 archive_read_disk_set_uname_lookup.3
351 MLINKS+= archive_read_disk.3 archive_read_disk_uname.3
352 MLINKS+= archive_read_set_options.3 archive_read_set_filter_option.3
353 MLINKS+= archive_read_set_options.3 archive_read_set_format_option.3
354 MLINKS+= archive_read_set_options.3 archive_read_set_option.3
355 MLINKS+= archive_util.3 archive_clear_error.3
356 MLINKS+= archive_util.3 archive_compression.3
357 MLINKS+= archive_util.3 archive_compression_name.3
358 MLINKS+= archive_util.3 archive_copy_error.3
359 MLINKS+= archive_util.3 archive_errno.3
360 MLINKS+= archive_util.3 archive_error_string.3
361 MLINKS+= archive_util.3 archive_file_count.3
362 MLINKS+= archive_util.3 archive_filter_code.3
363 MLINKS+= archive_util.3 archive_filter_count.3
364 MLINKS+= archive_util.3 archive_filter_name.3
365 MLINKS+= archive_util.3 archive_format.3
366 MLINKS+= archive_util.3 archive_format_name.3
367 MLINKS+= archive_util.3 archive_position.3
368 MLINKS+= archive_util.3 archive_set_error.3
369 MLINKS+= archive_write_blocksize.3 archive_write_get_bytes_in_last_block.3
370 MLINKS+= archive_write_blocksize.3 archive_write_get_bytes_per_block.3
371 MLINKS+= archive_write_blocksize.3 archive_write_set_bytes_in_last_block.3
372 MLINKS+= archive_write_blocksize.3 archive_write_set_bytes_per_block.3
373 MLINKS+= archive_write_disk.3 archive_write_data_block.3
374 MLINKS+= archive_write_disk.3 archive_write_disk_new.3
375 MLINKS+= archive_write_disk.3 archive_write_disk_set_group_lookup.3
376 MLINKS+= archive_write_disk.3 archive_write_disk_set_options.3
377 MLINKS+= archive_write_disk.3 archive_write_disk_set_skip_file.3
378 MLINKS+= archive_write_disk.3 archive_write_disk_set_standard_lookup.3
379 MLINKS+= archive_write_disk.3 archive_write_disk_set_user_lookup.3
380 MLINKS+= archive_write_filter.3 archive_write_add_filter_bzip2.3
381 MLINKS+= archive_write_filter.3 archive_write_add_filter_compress.3
382 MLINKS+= archive_write_filter.3 archive_write_add_filter_gzip.3
383 MLINKS+= archive_write_filter.3 archive_write_add_filter_lzip.3
384 MLINKS+= archive_write_filter.3 archive_write_add_filter_lzma.3
385 MLINKS+= archive_write_filter.3 archive_write_add_filter_none.3
386 MLINKS+= archive_write_filter.3 archive_write_add_filter_program.3
387 MLINKS+= archive_write_filter.3 archive_write_add_filter_xz.3
388 MLINKS+= archive_write_format.3 archive_write_set_format_cpio.3
389 MLINKS+= archive_write_format.3 archive_write_set_format_pax.3
390 MLINKS+= archive_write_format.3 archive_write_set_format_pax_restricted.3
391 MLINKS+= archive_write_format.3 archive_write_set_format_shar.3
392 MLINKS+= archive_write_format.3 archive_write_set_format_shar_dump.3
393 MLINKS+= archive_write_format.3 archive_write_set_format_ustar.3
394 MLINKS+= archive_write_free.3 archive_write_close.3
395 MLINKS+= archive_write_free.3 archive_write_fail.3
396 MLINKS+= archive_write_free.3 archive_write_finish.3
397 MLINKS+= archive_write_open.3 archive_write_open_FILE.3
398 MLINKS+= archive_write_open.3 archive_write_open_fd.3
399 MLINKS+= archive_write_open.3 archive_write_open_file.3
400 MLINKS+= archive_write_open.3 archive_write_open_filename.3
401 MLINKS+= archive_write_open.3 archive_write_open_memory.3
402 MLINKS+= archive_write_set_options.3 archive_write_set_filter_option.3
403 MLINKS+= archive_write_set_options.3 archive_write_set_format_option.3
404 MLINKS+= archive_write_set_options.3 archive_write_set_option.3
405 MLINKS+= libarchive.3 archive.3
407 .PHONY: check test clean-test
409 cd ${.CURDIR}/test && make obj && make test
412 cd ${.CURDIR}/test && make clean
414 .include <bsd.lib.mk>