Makefile revision 151332
1# $FreeBSD: head/lib/libarchive/Makefile 151332 2005-10-14 16:32:50Z kientzle $ 2 3# This Makefile is for use with the FreeBSD buid system. For 4# non-FreeBSD systems, you should first "make distfile" on FreeBSD, 5# then use the resulting tar.gz archive--which contains a portable 6# autoconf/automake-generated build system--on the other system. 7 8LIB= archive 9 10# Versioning <sigh>. There are three distinct sets of version 11# numbers: 12# * libarchive version 13# * libtool version (for shared libs built using configure script) 14# * FreeBSD SHLIB_MAJOR 15# The following logic helps ensure that there is some consistency across 16# these three: 17 18# First, the libarchive version is in three parts: 19# Bumped ONLY when API/ABI breakage happens (non-backwards-compatible change). 20ARCHIVE_API_MAJOR= 1 21# Bumped when significant new features are added. 22# Also used to bump SHLIB_MAJOR for reasons other than API/ABI breakage. 23# Note: Do NOT reset this to zero after bumping ARCHIVE_API_MAJOR! 24ARCHIVE_API_MINOR= 2 25# Bumped often. ;-) 26ARCHIVE_API_REVISION= 36 27# Full libarchive version combines the above three numbers. 28VERSION= ${ARCHIVE_API_MAJOR}.${ARCHIVE_API_MINOR}.${ARCHIVE_API_REVISION} 29 30# The FreeBSD SHLIB_MAJOR is computed from the above values. 31SHLIB_MAJOR!= echo $$((${ARCHIVE_API_MAJOR} + ${ARCHIVE_API_MINOR})) 32 33# The SHLIB_MAJOR computation above helps ensure that the libtool 34# version (computed in configure.ac.in) provides the same 35# shared library number as is used on FreeBSD. 36 37CFLAGS+= -DPACKAGE_NAME=\"lib${LIB}\" 38CFLAGS+= -DPACKAGE_VERSION=\"${VERSION}\" 39CFLAGS+= -I${.OBJDIR} 40 41# FreeBSD/arm has some limitations. 42.if ${MACHINE_ARCH} == "arm" 43WARNS?= 3 44.else 45WARNS?= 6 46.endif 47 48# Headers to be installed in /usr/include 49INCS= archive.h archive_entry.h 50 51# C sources to be compiled. This is one part of SRCS below. 52BASE_SRCS= archive_check_magic.c \ 53 archive_entry.c \ 54 archive_read.c \ 55 archive_read_data_into_buffer.c \ 56 archive_read_data_into_fd.c \ 57 archive_read_extract.c \ 58 archive_read_open_fd.c \ 59 archive_read_open_file.c \ 60 archive_read_support_compression_all.c \ 61 archive_read_support_compression_bzip2.c \ 62 archive_read_support_compression_compress.c \ 63 archive_read_support_compression_gzip.c \ 64 archive_read_support_compression_none.c \ 65 archive_read_support_format_all.c \ 66 archive_read_support_format_cpio.c \ 67 archive_read_support_format_iso9660.c \ 68 archive_read_support_format_tar.c \ 69 archive_read_support_format_zip.c \ 70 archive_string.c \ 71 archive_string_sprintf.c \ 72 archive_util.c \ 73 archive_write.c \ 74 archive_write_open_fd.c \ 75 archive_write_open_file.c \ 76 archive_write_set_compression_bzip2.c \ 77 archive_write_set_compression_gzip.c \ 78 archive_write_set_compression_none.c \ 79 archive_write_set_format.c \ 80 archive_write_set_format_by_name.c \ 81 archive_write_set_format_cpio.c \ 82 archive_write_set_format_pax.c \ 83 archive_write_set_format_shar.c \ 84 archive_write_set_format_ustar.c 85 86# Note: archive.h does need to be in SRCS, since it is built 87# from archive.h.in. But it does not get included in DIST_FILES 88# below, so I build up SRCS in two steps. 89SRCS= ${BASE_SRCS} archive.h 90 91# Man pages to be installed. 92MAN= archive_entry.3 \ 93 archive_read.3 \ 94 archive_util.3 \ 95 archive_write.3 \ 96 libarchive.3 \ 97 libarchive-formats.5 \ 98 tar.5 99 100# Symlink the man pages under each function name. 101MLINKS+= archive_entry.3 archive_entry_acl_add_entry.3 102MLINKS+= archive_entry.3 archive_entry_acl_add_entry_w.3 103MLINKS+= archive_entry.3 archive_entry_acl_clear.3 104MLINKS+= archive_entry.3 archive_entry_acl_count.3 105MLINKS+= archive_entry.3 archive_entry_acl_next.3 106MLINKS+= archive_entry.3 archive_entry_acl_next_w.3 107MLINKS+= archive_entry.3 archive_entry_acl_reset.3 108MLINKS+= archive_entry.3 archive_entry_acl_text_w.3 109MLINKS+= archive_entry.3 archive_entry_clear.3 110MLINKS+= archive_entry.3 archive_entry_clone.3 111MLINKS+= archive_entry.3 archive_entry_copy_fflags_text_w.3 112MLINKS+= archive_entry.3 archive_entry_copy_gname_w.3 113MLINKS+= archive_entry.3 archive_entry_copy_hardlink_w.3 114MLINKS+= archive_entry.3 archive_entry_copy_pathname_w.3 115MLINKS+= archive_entry.3 archive_entry_copy_stat.3 116MLINKS+= archive_entry.3 archive_entry_copy_symlink_w.3 117MLINKS+= archive_entry.3 archive_entry_copy_uname_w.3 118MLINKS+= archive_entry.3 archive_entry_fflags.3 119MLINKS+= archive_entry.3 archive_entry_fflags_text.3 120MLINKS+= archive_entry.3 archive_entry_free.3 121MLINKS+= archive_entry.3 archive_entry_gid.3 122MLINKS+= archive_entry.3 archive_entry_gname.3 123MLINKS+= archive_entry.3 archive_entry_gname_w.3 124MLINKS+= archive_entry.3 archive_entry_hardlink.3 125MLINKS+= archive_entry.3 archive_entry_ino.3 126MLINKS+= archive_entry.3 archive_entry_mode.3 127MLINKS+= archive_entry.3 archive_entry_mtime.3 128MLINKS+= archive_entry.3 archive_entry_mtime_nsec.3 129MLINKS+= archive_entry.3 archive_entry_new.3 130MLINKS+= archive_entry.3 archive_entry_pathname.3 131MLINKS+= archive_entry.3 archive_entry_pathname_w.3 132MLINKS+= archive_entry.3 archive_entry_rdev.3 133MLINKS+= archive_entry.3 archive_entry_rdevmajor.3 134MLINKS+= archive_entry.3 archive_entry_rdevminor.3 135MLINKS+= archive_entry.3 archive_entry_set_fflags.3 136MLINKS+= archive_entry.3 archive_entry_set_gid.3 137MLINKS+= archive_entry.3 archive_entry_set_gname.3 138MLINKS+= archive_entry.3 archive_entry_set_hardlink.3 139MLINKS+= archive_entry.3 archive_entry_set_link.3 140MLINKS+= archive_entry.3 archive_entry_set_mode.3 141MLINKS+= archive_entry.3 archive_entry_set_pathname.3 142MLINKS+= archive_entry.3 archive_entry_set_rdevmajor.3 143MLINKS+= archive_entry.3 archive_entry_set_rdevminor.3 144MLINKS+= archive_entry.3 archive_entry_set_size.3 145MLINKS+= archive_entry.3 archive_entry_set_symlink.3 146MLINKS+= archive_entry.3 archive_entry_set_uid.3 147MLINKS+= archive_entry.3 archive_entry_set_uname.3 148MLINKS+= archive_entry.3 archive_entry_size.3 149MLINKS+= archive_entry.3 archive_entry_stat.3 150MLINKS+= archive_entry.3 archive_entry_symlink.3 151MLINKS+= archive_entry.3 archive_entry_uid.3 152MLINKS+= archive_entry.3 archive_entry_uname.3 153MLINKS+= archive_entry.3 archive_entry_uname_w.3 154MLINKS+= archive_read.3 archive_read_data.3 155MLINKS+= archive_read.3 archive_read_data_block.3 156MLINKS+= archive_read.3 archive_read_data_into_buffer.3 157MLINKS+= archive_read.3 archive_read_data_into_fd.3 158MLINKS+= archive_read.3 archive_read_data_skip.3 159MLINKS+= archive_read.3 archive_read_extract.3 160MLINKS+= archive_read.3 archive_read_extract_set_progress_callback.3 161MLINKS+= archive_read.3 archive_read_finish.3 162MLINKS+= archive_read.3 archive_read_new.3 163MLINKS+= archive_read.3 archive_read_next_header.3 164MLINKS+= archive_read.3 archive_read_open.3 165MLINKS+= archive_read.3 archive_read_open_fd.3 166MLINKS+= archive_read.3 archive_read_open_file.3 167MLINKS+= archive_read.3 archive_read_set_bytes_per_block.3 168MLINKS+= archive_read.3 archive_read_support_compression_all.3 169MLINKS+= archive_read.3 archive_read_support_compression_bzip2.3 170MLINKS+= archive_read.3 archive_read_support_compression_compress.3 171MLINKS+= archive_read.3 archive_read_support_compression_gzip.3 172MLINKS+= archive_read.3 archive_read_support_compression_none.3 173MLINKS+= archive_read.3 archive_read_support_format_all.3 174MLINKS+= archive_read.3 archive_read_support_format_cpio.3 175MLINKS+= archive_read.3 archive_read_support_format_iso9660.3 176MLINKS+= archive_read.3 archive_read_support_format_tar.3 177MLINKS+= archive_read.3 archive_read_support_format_zip.3 178MLINKS+= archive_util.3 archive_compression.3 179MLINKS+= archive_util.3 archive_compression_name.3 180MLINKS+= archive_util.3 archive_errno.3 181MLINKS+= archive_util.3 archive_error_string.3 182MLINKS+= archive_util.3 archive_format.3 183MLINKS+= archive_util.3 archive_format_name.3 184MLINKS+= archive_util.3 archive_set_error.3 185MLINKS+= archive_write.3 archive_write_data.3 186MLINKS+= archive_write.3 archive_write_finish.3 187MLINKS+= archive_write.3 archive_write_header.3 188MLINKS+= archive_write.3 archive_write_new.3 189MLINKS+= archive_write.3 archive_write_open.3 190MLINKS+= archive_write.3 archive_write_open_fd.3 191MLINKS+= archive_write.3 archive_write_open_file.3 192MLINKS+= archive_write.3 archive_write_prepare.3 193MLINKS+= archive_write.3 archive_write_set_bytes_per_block.3 194MLINKS+= archive_write.3 archive_write_set_bytes_in_last_block.3 195MLINKS+= archive_write.3 archive_write_set_callbacks.3 196MLINKS+= archive_write.3 archive_write_set_compression_bzip2.3 197MLINKS+= archive_write.3 archive_write_set_compression_gzip.3 198MLINKS+= archive_write.3 archive_write_set_format_pax.3 199MLINKS+= archive_write.3 archive_write_set_format_shar.3 200MLINKS+= archive_write.3 archive_write_set_format_ustar.3 201MLINKS+= libarchive.3 archive.3 202 203# Build archive.h from archive.h.in by substituting version information. 204archive.h: archive.h.in Makefile 205 cat ${.CURDIR}/archive.h.in | \ 206 sed 's/@VERSION@/${VERSION}/g' | \ 207 sed 's/@SHLIB_MAJOR@/${SHLIB_MAJOR}/g' | \ 208 sed 's/@ARCHIVE_API_MAJOR@/${ARCHIVE_API_MAJOR}/g' | \ 209 sed 's/@ARCHIVE_API_MINOR@/${ARCHIVE_API_MINOR}/g' | \ 210 sed 's/@ARCHIVE_API_REVISION@/${ARCHIVE_API_REVISION}/g' | \ 211 cat > archive.h 212 213# archive.h needs to be cleaned 214CLEANFILES+= archive.h 215 216# 217# Voodoo for building a distfile that uses autoconf/automake/etc. 218# 219 220# Files that just get copied to the distfile build directory 221DIST_WORK_DIR= ${.OBJDIR}/lib${LIB}-${VERSION} 222CLEANDIRS+= ${DIST_WORK_DIR} 223DISTFILE= lib${LIB}-${VERSION}.tar.gz 224# DIST_FILES is the list of files to include in the distribution. 225DIST_FILES= ${BASE_SRCS} 226DIST_FILES+= ${MAN} 227DIST_FILES+= archive.h.in 228DIST_FILES+= archive_entry.h archive_platform.h 229DIST_FILES+= archive_private.h archive_string.h 230DIST_FILES+= Makefile.am 231 232distfile: 233 rm -rf ${DIST_WORK_DIR} 234 mkdir ${DIST_WORK_DIR} 235 # Copy the DIST_FILES; ignore errors, don't preserve permissions. 236 for f in ${DIST_FILES}; do \ 237 cat ${.CURDIR}/$$f >${DIST_WORK_DIR}/$$f || true; \ 238 done 239 # Build configure.ac from configure.ac.in 240 cat ${.CURDIR}/configure.ac.in | \ 241 sed 's/@VERSION@/${VERSION}/g' | \ 242 sed 's/@SHLIB_MAJOR@/${SHLIB_MAJOR}/g' | \ 243 sed 's/@ARCHIVE_API_MAJOR@/${ARCHIVE_API_MAJOR}/g' | \ 244 sed 's/@ARCHIVE_API_MINOR@/${ARCHIVE_API_MINOR}/g' | \ 245 sed 's/@ARCHIVE_API_REVISION@/${ARCHIVE_API_REVISION}/g' | \ 246 cat > ${DIST_WORK_DIR}/configure.ac 247 # Prepare some auxiliary files. 248 (cd ${DIST_WORK_DIR} && libtoolize) 249 (cd ${DIST_WORK_DIR} && aclocal && autoheader) 250 # Build the configure script and portable Makefile 251 (cd ${DIST_WORK_DIR} && autoconf && automake -a --foreign) 252 # Now, use automake-generated Makefile to build the final dist file. 253 (cd ${DIST_WORK_DIR} && ./configure && make distcheck && make dist) 254 mv ${DIST_WORK_DIR}/${DISTFILE} ${.OBJDIR} 255 @echo ================================================== 256 @echo Created ${.OBJDIR}/${DISTFILE} 257 @echo ================================================== 258 259.include <bsd.lib.mk> 260