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