aboutsummaryrefslogtreecommitdiffstats
path: root/community/binaryen
diff options
context:
space:
mode:
Diffstat (limited to 'community/binaryen')
-rw-r--r--community/binaryen/APKBUILD56
-rw-r--r--community/binaryen/dont-enforce-sse.patch12
-rw-r--r--community/binaryen/fix-install-paths.patch85
-rw-r--r--community/binaryen/link-dynamically.patch70
4 files changed, 223 insertions, 0 deletions
diff --git a/community/binaryen/APKBUILD b/community/binaryen/APKBUILD
new file mode 100644
index 00000000000..f9927582bd6
--- /dev/null
+++ b/community/binaryen/APKBUILD
@@ -0,0 +1,56 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=binaryen
+pkgver=1.37.9
+pkgrel=1
+pkgdesc="Compiler infrastructure and toolchain library for WebAssembly, in C++"
+url="https://github.com/WebAssembly/binaryen"
+arch="all"
+license="ASL-2.0"
+makedepends="cmake"
+checkdepends="nodejs python2"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/WebAssembly/$pkgname/archive/$pkgver.tar.gz
+ fix-install-paths.patch
+ link-dynamically.patch
+ dont-enforce-sse.patch"
+builddir="$srcdir/$pkgname-$pkgver"
+
+case "$CARCH" in
+ x86) options="!check";; # XXX: two tests fail
+esac
+
+build() {
+ cd "$builddir"
+
+ cmake \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
+ -DCMAKE_C_FLAGS="$CFLAGS" \
+ -DCMAKE_VERBOSE_MAKEFILE=ON \
+ -DBUILD_SHARED_LIBS=ON
+ make
+}
+
+check() {
+ cd "$builddir"
+
+ # waterfall requires additional dependency
+ # gcc-tests fail, dunno why
+ python2 check.py --no-test-waterfall --no-run-gcc-tests
+}
+
+package() {
+ cd "$builddir"
+
+ make install DESTDIR="$pkgdir"
+ rm -R "$pkgdir"/usr/src
+ rm "$pkgdir"/usr/share/binaryen/binaryen.js
+}
+
+sha512sums="def54c53e4fd8e0cbf9d13215020456054674da26dd6f590c2c1cbd172707ef9da5fe1d4d6415eba1afdc87c37db0867a4e2e9c3188b61e9f8f817d1fc839e33 binaryen-1.37.9.tar.gz
+40720200053bf0a35528b67c999b21884787186c5ea305c4164421d365ae0257a593dda128b81688f74912585778d418fa24b6be881a345af5af7d4db5a3c811 fix-install-paths.patch
+4c69c4fe55690694143163576036b935072b7b0eac30e17921115b3ddeb58266a91cf7b6ff39396cede9059dac4fa2f9de691f6fd83cddca88abbbcc93d3c4fd link-dynamically.patch
+747dcebb46db3480f877f004c8a5efee297cedda7f826b1a85ba4a0cddc357c480a668efd5bfdf58f716d15756c7634fa73cc1a84c7a66edb43178f0e746537e dont-enforce-sse.patch"
diff --git a/community/binaryen/dont-enforce-sse.patch b/community/binaryen/dont-enforce-sse.patch
new file mode 100644
index 00000000000..970477cbd0f
--- /dev/null
+++ b/community/binaryen/dont-enforce-sse.patch
@@ -0,0 +1,12 @@
+Not all CPU architectures support these instructions.
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -92,8 +92,6 @@
+ SET(CMAKE_THREAD_PREFER_PTHREAD ON)
+ FIND_PACKAGE(Threads REQUIRED)
+ ADD_COMPILE_FLAG("-std=c++11")
+- ADD_COMPILE_FLAG("-msse2")
+- ADD_COMPILE_FLAG("-mfpmath=sse")
+ ADD_COMPILE_FLAG("-Wall")
+ ADD_COMPILE_FLAG("-Werror")
+ ADD_COMPILE_FLAG("-Wextra")
diff --git a/community/binaryen/fix-install-paths.patch b/community/binaryen/fix-install-paths.patch
new file mode 100644
index 00000000000..f885fbfcaae
--- /dev/null
+++ b/community/binaryen/fix-install-paths.patch
@@ -0,0 +1,85 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sat, 1 Apr 2017 02:00:34 +0200
+Subject: [PATCH] Fix install locations per FHS and allow to customize them
+
+Include built-in cmake module GNUInstallDirs that defines customizable
+CMAKE_INSTALL_* variables with common defaults per FHS.
+
+Upstream-Issue: https://github.com/WebAssembly/binaryen/pull/958
+---
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,5 +1,6 @@
+ PROJECT(binaryen C CXX)
+ CMAKE_MINIMUM_REQUIRED(VERSION 2.8.7)
++INCLUDE(GNUInstallDirs)
+
+ IF(NOT CMAKE_BUILD_TYPE)
+ MESSAGE(STATUS "No build type selected, default to Release")
+@@ -138,11 +139,11 @@ ELSE()
+ ADD_LIBRARY(binaryen SHARED ${binaryen_SOURCES})
+ ENDIF()
+ TARGET_LINK_LIBRARIES(binaryen ${all_passes} wasm asmjs ast support)
+-INSTALL(TARGETS binaryen DESTINATION lib)
++INSTALL(TARGETS binaryen DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+-INSTALL(FILES src/binaryen-c.h DESTINATION include)
+-INSTALL(FILES bin/wasm.js DESTINATION bin)
+-INSTALL(FILES bin/binaryen.js DESTINATION bin)
++INSTALL(FILES src/binaryen-c.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
++INSTALL(FILES bin/wasm.js DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME})
++INSTALL(FILES bin/binaryen.js DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME})
+ INSTALL(DIRECTORY src/js DESTINATION src)
+
+ SET(wasm-shell_SOURCES
+@@ -154,7 +155,7 @@ ADD_EXECUTABLE(wasm-shell
+ TARGET_LINK_LIBRARIES(wasm-shell wasm asmjs emscripten-optimizer ${all_passes} ast support)
+ SET_PROPERTY(TARGET wasm-shell PROPERTY CXX_STANDARD 11)
+ SET_PROPERTY(TARGET wasm-shell PROPERTY CXX_STANDARD_REQUIRED ON)
+-INSTALL(TARGETS wasm-shell DESTINATION bin)
++INSTALL(TARGETS wasm-shell DESTINATION ${CMAKE_INSTALL_BINDIR})
+
+ SET(wasm-opt_SOURCES
+ src/tools/wasm-opt.cpp
+@@ -164,7 +165,7 @@ ADD_EXECUTABLE(wasm-opt
+ TARGET_LINK_LIBRARIES(wasm-opt wasm asmjs emscripten-optimizer ${all_passes} ast support)
+ SET_PROPERTY(TARGET wasm-opt PROPERTY CXX_STANDARD 11)
+ SET_PROPERTY(TARGET wasm-opt PROPERTY CXX_STANDARD_REQUIRED ON)
+-INSTALL(TARGETS wasm-opt DESTINATION bin)
++INSTALL(TARGETS wasm-opt DESTINATION ${CMAKE_INSTALL_BINDIR})
+
+ SET(asm2wasm_SOURCES
+ src/tools/asm2wasm.cpp
+@@ -175,7 +176,7 @@ ADD_EXECUTABLE(asm2wasm
+ TARGET_LINK_LIBRARIES(asm2wasm emscripten-optimizer ${all_passes} wasm asmjs ast support)
+ SET_PROPERTY(TARGET asm2wasm PROPERTY CXX_STANDARD 11)
+ SET_PROPERTY(TARGET asm2wasm PROPERTY CXX_STANDARD_REQUIRED ON)
+-INSTALL(TARGETS asm2wasm DESTINATION bin)
++INSTALL(TARGETS asm2wasm DESTINATION ${CMAKE_INSTALL_BINDIR})
+
+ SET(s2wasm_SOURCES
+ src/tools/s2wasm.cpp
+@@ -187,7 +188,7 @@ ADD_EXECUTABLE(s2wasm
+ TARGET_LINK_LIBRARIES(s2wasm passes wasm asmjs ast support)
+ SET_PROPERTY(TARGET s2wasm PROPERTY CXX_STANDARD 11)
+ SET_PROPERTY(TARGET s2wasm PROPERTY CXX_STANDARD_REQUIRED ON)
+-INSTALL(TARGETS s2wasm DESTINATION bin)
++INSTALL(TARGETS s2wasm DESTINATION ${CMAKE_INSTALL_BINDIR})
+
+ SET(wasm_as_SOURCES
+ src/tools/wasm-as.cpp
+@@ -197,7 +198,7 @@ ADD_EXECUTABLE(wasm-as
+ TARGET_LINK_LIBRARIES(wasm-as wasm asmjs passes ast support)
+ SET_PROPERTY(TARGET wasm-as PROPERTY CXX_STANDARD 11)
+ SET_PROPERTY(TARGET wasm-as PROPERTY CXX_STANDARD_REQUIRED ON)
+-INSTALL(TARGETS wasm-as DESTINATION bin)
++INSTALL(TARGETS wasm-as DESTINATION ${CMAKE_INSTALL_BINDIR})
+
+ SET(wasm_dis_SOURCES
+ src/tools/wasm-dis.cpp
+@@ -207,4 +208,4 @@ ADD_EXECUTABLE(wasm-dis
+ TARGET_LINK_LIBRARIES(wasm-dis passes wasm asmjs ast support)
+ SET_PROPERTY(TARGET wasm-dis PROPERTY CXX_STANDARD 11)
+ SET_PROPERTY(TARGET wasm-dis PROPERTY CXX_STANDARD_REQUIRED ON)
+-INSTALL(TARGETS wasm-dis DESTINATION bin)
++INSTALL(TARGETS wasm-dis DESTINATION ${CMAKE_INSTALL_BINDIR})
diff --git a/community/binaryen/link-dynamically.patch b/community/binaryen/link-dynamically.patch
new file mode 100644
index 00000000000..f5945dba3e9
--- /dev/null
+++ b/community/binaryen/link-dynamically.patch
@@ -0,0 +1,70 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sat, 3 Apr 2017 00:01:00 +0200
+Subject: [PATCH] Link binaries with libbinaryen dynamically
+
+Link binaries with libbinaryen.so to significantly reduce their size.
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -137,7 +137,7 @@
+ ELSE()
+ ADD_LIBRARY(binaryen SHARED ${binaryen_SOURCES})
+ ENDIF()
+-TARGET_LINK_LIBRARIES(binaryen ${all_passes} wasm asmjs ast support)
++TARGET_LINK_LIBRARIES(binaryen ${all_passes} wasm asmjs ast support emscripten-optimizer)
+ INSTALL(TARGETS binaryen DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+ INSTALL(FILES src/binaryen-c.h DESTINATION include)
+@@ -151,7 +151,7 @@
+ )
+ ADD_EXECUTABLE(wasm-shell
+ ${wasm-shell_SOURCES})
+-TARGET_LINK_LIBRARIES(wasm-shell wasm asmjs emscripten-optimizer ${all_passes} ast support)
++TARGET_LINK_LIBRARIES(wasm-shell binaryen)
+ SET_PROPERTY(TARGET wasm-shell PROPERTY CXX_STANDARD 11)
+ SET_PROPERTY(TARGET wasm-shell PROPERTY CXX_STANDARD_REQUIRED ON)
+ INSTALL(TARGETS wasm-shell DESTINATION ${CMAKE_INSTALL_BINDIR})
+@@ -161,7 +161,7 @@
+ )
+ ADD_EXECUTABLE(wasm-opt
+ ${wasm-opt_SOURCES})
+-TARGET_LINK_LIBRARIES(wasm-opt wasm asmjs emscripten-optimizer ${all_passes} ast support)
++TARGET_LINK_LIBRARIES(wasm-opt binaryen)
+ SET_PROPERTY(TARGET wasm-opt PROPERTY CXX_STANDARD 11)
+ SET_PROPERTY(TARGET wasm-opt PROPERTY CXX_STANDARD_REQUIRED ON)
+ INSTALL(TARGETS wasm-opt DESTINATION ${CMAKE_INSTALL_BINDIR})
+@@ -172,7 +172,7 @@
+ )
+ ADD_EXECUTABLE(asm2wasm
+ ${asm2wasm_SOURCES})
+-TARGET_LINK_LIBRARIES(asm2wasm emscripten-optimizer ${all_passes} wasm asmjs ast support)
++TARGET_LINK_LIBRARIES(asm2wasm binaryen)
+ SET_PROPERTY(TARGET asm2wasm PROPERTY CXX_STANDARD 11)
+ SET_PROPERTY(TARGET asm2wasm PROPERTY CXX_STANDARD_REQUIRED ON)
+ INSTALL(TARGETS asm2wasm DESTINATION ${CMAKE_INSTALL_BINDIR})
+@@ -184,7 +184,7 @@
+ )
+ ADD_EXECUTABLE(s2wasm
+ ${s2wasm_SOURCES})
+-TARGET_LINK_LIBRARIES(s2wasm passes wasm asmjs ast support)
++TARGET_LINK_LIBRARIES(s2wasm binaryen)
+ SET_PROPERTY(TARGET s2wasm PROPERTY CXX_STANDARD 11)
+ SET_PROPERTY(TARGET s2wasm PROPERTY CXX_STANDARD_REQUIRED ON)
+ INSTALL(TARGETS s2wasm DESTINATION ${CMAKE_INSTALL_BINDIR})
+@@ -194,7 +194,7 @@
+ )
+ ADD_EXECUTABLE(wasm-as
+ ${wasm_as_SOURCES})
+-TARGET_LINK_LIBRARIES(wasm-as wasm asmjs passes ast support)
++TARGET_LINK_LIBRARIES(wasm-as binaryen)
+ SET_PROPERTY(TARGET wasm-as PROPERTY CXX_STANDARD 11)
+ SET_PROPERTY(TARGET wasm-as PROPERTY CXX_STANDARD_REQUIRED ON)
+ INSTALL(TARGETS wasm-as DESTINATION ${CMAKE_INSTALL_BINDIR})
+@@ -204,7 +204,7 @@
+ )
+ ADD_EXECUTABLE(wasm-dis
+ ${wasm_dis_SOURCES})
+-TARGET_LINK_LIBRARIES(wasm-dis passes wasm asmjs ast support)
++TARGET_LINK_LIBRARIES(wasm-dis binaryen)
+ SET_PROPERTY(TARGET wasm-dis PROPERTY CXX_STANDARD 11)
+ SET_PROPERTY(TARGET wasm-dis PROPERTY CXX_STANDARD_REQUIRED ON)
+ INSTALL(TARGETS wasm-dis DESTINATION ${CMAKE_INSTALL_BINDIR})