Commit 6f57f002 authored by Adrien Béraud's avatar Adrien Béraud Committed by Guillaume Roguez

contrib: add boost, cryptopp

Change-Id: Ia972ca8b3ae99f382ca7d7433071e4c3dd07a6ee
Tuleap: #682
parent 921146f5
......@@ -29,6 +29,7 @@ AC_PROG_CPP
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
AC_LANG(C++)
dnl
dnl Check the operating system
......@@ -548,6 +549,18 @@ AM_CONDITIONAL([BUILD_OPUS], [test "$HAVE_OPUS" -eq 1])
dnl check for openDHT
PKG_CHECK_MODULES([OPENDHT], [opendht >= 0.6.1],, AC_MSG_WARN([Missing OpenDHT]))
AC_CHECK_HEADER([cryptopp/cryptlib.h], , AC_MSG_FAILURE([Unable to find the cryptopp headers (you may need to install the dev package).]))
LDFLAGS+=" -lcryptopp"
AS_IF([test "${SYS}" = "mingw32"],[
LDFLAGS+=" -lboost_random -lboost_system"
CPPFLAGS+=" -DBOOST_SYSTEM_NO_DEPRECATED"
], [
AX_BOOST_BASE([1.48],,[AC_MSG_ERROR([Ring needs Boost but it was not found in your system])])
AC_CHECK_LIB([boost_system], exit, , [AC_MSG_FAILURE(['Can't find boost system'])])
AC_CHECK_LIB([boost_random], exit, , [AC_MSG_FAILURE(['Can't find boost random'])])
CPPFLAGS+=" -DBOOST_SYSTEM_NO_DEPRECATED"
])
dnl IPv6 mode is default-disabled
AC_ARG_ENABLE([ipv6], AS_HELP_STRING([--enable-ipv6], [Enable IPv6 support]))
......
a1c7338e2d2dbac8552ede7c554640d22cbb2fda7fbc325dc3cdcb51e769713626695426ffc158cbe0e1729dd9a7b5ad18af4800d74e24539e8d8564268c2b9d boost_1_61_0.tar.bz2
# Boost
BOOST_VERSION := 1_61_0
BOOST_URL := https://downloads.sourceforge.net/project/boost/boost/1.61.0/boost_$(BOOST_VERSION).tar.bz2
PKGS += boost
ifdef HAVE_LINUX
ifndef HAVE_ANDROID
PKGS_FOUND += boost
endif
endif
BOOST_B2_OPTS := variant=release \
link=static \
--prefix="$(PREFIX)" \
--includedir="$(PREFIX)/include" \
--libdir="$(PREFIX)/lib" \
--build="$(BUILD)" \
--host="$(HOST)" \
--target="$(HOST)" \
--program-prefix="" \
--with-system --with-random \
define="BOOST_SYSTEM_NO_DEPRECATED" \
-sNO_BZIP2=1 cxxflags=-fPIC cflags=-fPIC
ifdef HAVE_WIN32
BOOST_B2_OPTS += target-os=windows \
threadapi=win32 \
runtime-link=static \
binary-format=pe \
architecture=x86 \
--user-config=user-config.jam \
cxxflags="-std=c++11 -fPIC -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4"
endif
ifdef HAVE_ANDROID
BOOST_B2_OPTS += --user-config=user-config.jam
endif
$(TARBALLS)/boost_$(BOOST_VERSION).tar.bz2:
$(call download,$(BOOST_URL))
.sum-boost: boost_$(BOOST_VERSION).tar.bz2
boost: boost_$(BOOST_VERSION).tar.bz2 .sum-boost
$(UNPACK)
$(MOVE)
.boost: boost
ifdef HAVE_WIN32
cd $< && echo "using gcc : mingw64 : ${HOST}-g++" > user-config.jam
cd $< && echo ":" >> user-config.jam
cd $< && echo "<rc>${HOST}-windres" >> user-config.jam
cd $< && echo "<archiver>${HOST}-ar" >> user-config.jam
cd $< && echo ";" >> user-config.jam
endif
ifdef HAVE_ANDROID
cd $< && echo "using gcc : android : clang++" > user-config.jam
cd $< && echo ":" >> user-config.jam
cd $< && echo "<archiver>${HOST}-ar" >> user-config.jam
cd $< && echo "<compileflags>-DANDROID" >> user-config.jam
cd $< && echo "<compileflags>-D__ANDROID__" >> user-config.jam
cd $< && echo "<compileflags>-I$(ANDROID_TOOLCHAIN)/include/c++/4.9" >> user-config.jam
cd $< && echo ";" >> user-config.jam
endif
cd $< && $(HOSTVARS) ./bootstrap.sh
cd $< && $(HOSTVARS) ./b2 $(BOOST_B2_OPTS) install
touch $@
bdb7563b8959c1a9261a3feda9d0f6a81172e12d2b34fbe761b7d60f3a5917d82d1bca285dd9d4da23e71b306ad5e2a7d283545a559c88da8118a3830487ab71 cryptopp-54557b18275053bbfc34594f7e65808dd92dd1a6.tar.gz
--- a/CMakeLists.txt
+++ b/CMakeLists.txt.patched
@@ -39,12 +39,7 @@ set(CRYPTOPP_DATA_DIR "" CACHE PATH "Crypto++ test data directory")
# Always 1 ahead in Master. Also see http://groups.google.com/forum/#!topic/cryptopp-users/SFhqLDTQPG4
set(LIB_VER ${cryptopp_VERSION_MAJOR}${cryptopp_VERSION_MINOR}${cryptopp_VERSION_PATCH})
-# Only set when cross-compiling, http://www.vtk.org/Wiki/CMake_Cross_Compiling
-if (NOT (CMAKE_SYSTEM_VERSION AND CMAKE_SYSTEM_PROCESSOR))
- set(CRYPTOPP_CROSS_COMPILE 1)
-else()
- set(CRYPTOPP_CROSS_COMPILE 0)
-endif()
+set(CRYPTOPP_CROSS_COMPILE 1)
# Don't use RPATH's. The resulting binary could fail a security audit.
if (NOT CMAKE_VERSION VERSION_LESS 2.8.12)
# Crypto++
CRYPTOPP_VERSION := 54557b18275053bbfc34594f7e65808dd92dd1a6
CRYPTOPP_URL := https://github.com/weidai11/cryptopp/archive/$(CRYPTOPP_VERSION).tar.gz
PKGS += cryptopp
ifeq ($(call need_pkg,'libcrypto++'),)
PKGS_FOUND += cryptopp
endif
CRYPTOPP_CMAKECONF := -DBUILD_TESTING=Off \
-DBUILD_SHARED=Off \
-DCMAKE_INSTALL_LIBDIR=lib
$(TARBALLS)/cryptopp-$(CRYPTOPP_VERSION).tar.gz:
$(call download,$(CRYPTOPP_URL))
.sum-cryptopp: cryptopp-$(CRYPTOPP_VERSION).tar.gz
cryptopp: cryptopp-$(CRYPTOPP_VERSION).tar.gz .sum-cryptopp
$(UNPACK)
ifdef HAVE_ANDROID
$(APPLY_BIN) $(SRC)/cryptopp/cmake-crosscompile.patch
endif
$(MOVE)
.cryptopp: cryptopp toolchain.cmake
cd $< && rm GNUmakefile*
cd $< && $(HOSTVARS) $(CMAKE) . $(CRYPTOPP_CMAKECONF)
cd $< && $(MAKE) install
touch $@
......@@ -349,6 +349,7 @@ UNPACK = $(RM) -R $@ \
$(foreach f,$(filter %.zip,$^), && unzip $(f))
UNPACK_DIR = $(basename $(basename $(notdir $<)))
APPLY = (cd $(UNPACK_DIR) && patch -fp1) <
APPLY_BIN = (cd $(UNPACK_DIR) && patch --binary -flp1) <
pkg_static = (cd $(UNPACK_DIR) && ../../../contrib/src/pkg-static.sh $(1))
MOVE = mv $(UNPACK_DIR) $@ && touch $@
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment