# Job 3: Mac OS X native Clang
- os: osx
compiler: clang
- env: V=1 CONFIGURE="--with-libzstd-from-internet" ENABLE_CACHE_CLEANUP_TESTS=1
+ env: V=1 CONFIGURE="--with-libzstd-from-internet --with-libb2-from-internet" ENABLE_CACHE_CLEANUP_TESTS=1
# Job 4: Linux 32-bit native
- os: linux
compiler: gcc
- env: V=1 CFLAGS="-m32 -g -O2" LDFLAGS="-m32" CONFIGURE="--host=i386-linux-gnu --with-libzstd-from-internet" ENABLE_CACHE_CLEANUP_TESTS=1
+ env: V=1 CFLAGS="-m32 -g -O2" LDFLAGS="-m32" CONFIGURE="--host=i386-linux-gnu --with-libzstd-from-internet --with-libb2-from-internet" ENABLE_CACHE_CLEANUP_TESTS=1
addons:
apt:
packages:
# Job 5: Linux cross-compiled 32-bit MinGW
- os: linux
compiler: i686-w64-mingw32-gcc
- env: V=1 CONFIGURE="--host=i686-w64-mingw32 --with-libzstd-from-internet" TEST="unittest/run.exe" ENABLE_CACHE_CLEANUP_TESTS=1
+ env: V=1 CONFIGURE="--host=i686-w64-mingw32 --with-libzstd-from-internet --with-libb2-from-internet" TEST="unittest/run.exe" ENABLE_CACHE_CLEANUP_TESTS=1
addons:
apt:
packages:
# Job 6: Linux cross-compiled 64-bit MinGW
- os: linux
compiler: x86_64-w64-mingw32-gcc
- env: V=1 CONFIGURE="--host=x86_64-w64-mingw32 --with-libzstd-from-internet" TEST="unittest/run.exe" ENABLE_CACHE_CLEANUP_TESTS=1
+ env: V=1 CONFIGURE="--host=x86_64-w64-mingw32 --with-libzstd-from-internet --with-libb2-from-internet" TEST="unittest/run.exe" ENABLE_CACHE_CLEANUP_TESTS=1
addons:
apt:
packages:
clean:
rm -rf $(files_to_clean)
[ ! -d src/third_party/zstd ] || $(MAKE) -C src/third_party/zstd/lib clean
+ [ ! -d src/libb2 ] || $(MAKE) -C src/libb2 clean
src/snprintf.o: CFLAGS += @no_implicit_fallthrough_warning@
src/third_party/zstd/lib/libzstd.a:
$(MAKE) -C src/third_party/zstd/lib libzstd.a $(libzstd_options) CC="$(CC)"
+libb2_options = \
+ --disable-shared \
+ --enable-static
+
+src/libb2/src/.libs/libb2.a:
+ cd src/libb2 && ./configure --build=@build_alias@ --host=@host_alias@ --target=@target_alias@ ${libb2_options}
+ $(MAKE) -C src/libb2 CC="$(CC)"
+
.PHONY: performance
performance: ccache$(EXEEXT)
$(srcdir)/misc/performance --ccache ccache$(EXEEXT) $(CC) $(all_cppflags) $(all_cflags) $(srcdir)/src/ccache.c
extra_libs="src/third_party/zstd/lib/libzstd.a"
fi
+dnl Check for libb2
+libb2_version=0.98.1
+libb2_url=https://github.com/BLAKE2/libb2/releases/download/v${libb2_version}/libb2-${libb2_version}.tar.gz
+
+AC_ARG_WITH(libb2-from-internet,
+ [AS_HELP_STRING([--with-libb2-from-internet],
+ [download and use libb2 from the Internet instead of using the system's default libb2])])
+if test x${with_libb2_from_internet} = x; then
+ AC_CHECK_LIB([b2],[blake2b], [found_libb2=yes])
+ if test x${found_libb2} = x; then
+ AC_MSG_ERROR(please install libb2 or use --with-libb2-from-internet)
+ fi
+ LIBS="$LIBS -lb2"
+else
+ libb2_archive=`basename ${libb2_url}`
+ if ! test -f ${libb2_archive}; then
+ AC_CHECK_TOOL(WGET, wget)
+ if test -n "$WGET"; then
+ AC_MSG_NOTICE(downloading libb2 from $libb2_url)
+ wget -q ${libb2_url}
+ else
+ AC_CHECK_TOOL(CURL, curl)
+ if test -n "$CURL"; then
+ AC_MSG_NOTICE(downloading libb2 from $libb2_url)
+ curl -sLOJ ${libb2_url}
+ else
+ AC_MSG_ERROR(please install wget or curl)
+ fi
+ fi
+ fi
+ (cd src && tar -xzf ../${libb2_archive})
+ rm -rf src/libb2
+ mv src/libb2-${libb2_version} src/libb2
+ CPPFLAGS="$CPPFLAGS -I$srcdir/src/libb2/src"
+ extra_libs="$extra_libs src/libb2/src/.libs/libb2.a"
+fi
+
AC_ARG_ENABLE(man,
[AS_HELP_STRING([--disable-man],
[disable installing man pages])])
extra_sources="src/third_party/minitrace.c"
fi
-AC_CHECK_HEADERS(blake2.h)
-AC_CHECK_LIB([b2],[blake2b])
-
dnl Linking on Windows needs ws2_32
if test x${windows_os} = xyes; then
LIBS="$LIBS -lws2_32"