#!/bin/sh set -xe if [ -z "$1" ] ; then echo "No libarchive version specified, aborting..." exit 1 fi LIBARCHIVE_VER="$1" LIBARCHIVE_BALL="libarchive-${LIBARCHIVE_VER}.tar.gz" LIBARCHIVE_URL="https://libarchive.org/downloads/${LIBARCHIVE_BALL}" [ -f "${LIBARCHIVE_BALL}" ] || curl -LO "${LIBARCHIVE_URL}" [ -d "libarchive-${LIBARCHIVE_VER}" ] || tar xf "${LIBARCHIVE_BALL}" cd "libarchive-${LIBARCHIVE_VER}" ./configure \ --without-openssl \ --without-xml2 \ --without-expat \ --without-cng \ --without-lzma \ --without-zstd \ --without-lz4 \ --without-iconv \ --without-libb2 \ --without-bz2lib \ --without-zlib \ --without-libiconv-prefix \ --disable-acl \ --disable-xattr \ --disable-posix-regex-lib \ --disable-bsdcpio \ --disable-bsdcat \ --disable-bsdtar case "$(uname -s)" in "linux"|"Linux") sed \ -e '/define HAVE_LIBMD/d' \ -e '/define ARCHIVE_CRYPTO_.*_LIBMD/d' \ -e '/define HAVE_MD5_H/d' \ -e '/define HAVE_RIPEMD_H/d' \ -e '/define HAVE_SHA256_H/d' \ -e '/define HAVE_SHA512_H/d' \ -e '/define HAVE_SHA_H/d' \ -e '/define HAVE_SYS_ACL_H/d' \ -e '/define HAVE_EXT2FS_EXT2_FS_H/d' \ config.h > ../c/autoconf-linux/config.h ;; "Darwin"|"darwin") sed \ -e '/define HAVE_LIBMD/d' \ -e '/define ARCHIVE_CRYPTO_.*_LIBMD/d' \ -e '/define HAVE_MD5_H/d' \ -e '/define HAVE_RIPEMD_H/d' \ -e '/define HAVE_SHA256_H/d' \ -e '/define HAVE_SHA512_H/d' \ -e '/define HAVE_SHA_H/d' \ -e '/define HAVE_SYS_ACL_H/d' \ -e '/define HAVE_EXT2FS_EXT2_FS_H/d' \ config.h > ../c/autoconf-darwin/config.h ;; "FreeBSD"|"freebsd") sed \ -e '/define HAVE_LIBMD/d' \ -e '/define ARCHIVE_CRYPTO_.*_LIBMD/d' \ -e '/define HAVE_MD5_H/d' \ -e '/define HAVE_RIPEMD_H/d' \ -e '/define HAVE_SHA256_H/d' \ -e '/define HAVE_SHA512_H/d' \ -e '/define HAVE_SHA_H/d' \ -e '/define HAVE_SYS_ACL_H/d' \ -e '/define HAVE_EXT2FS_EXT2_FS_H/d' \ config.h > ../c/autoconf-freebsd/config.h ;; # TODO: windows *) die "Unknown platform" ;; esac rm ../c/*.[ch] cp libarchive/*.[ch] ../c/