chiark / gitweb /
8e703c638e5e37048fb6e9d3bfeac7afdc69c209
[termux-packages] / packages / nodejs / build.sh
1 TERMUX_PKG_HOMEPAGE=https://nodejs.org/
2 TERMUX_PKG_DESCRIPTION="Platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications"
3 TERMUX_PKG_VERSION=6.9.3
4 TERMUX_PKG_SRCURL=https://nodejs.org/dist/v${TERMUX_PKG_VERSION}/node-v${TERMUX_PKG_VERSION}.tar.gz
5 TERMUX_PKG_SHA256=5abdc3b77e011d664e13d74cab130680a8652b5cd23a63d2a17496d91399d5b5
6 # Note that we do not use a shared libuv to avoid an issue with the Android
7 # linker, which does not use symbols of linked shared libraries when resolving
8 # symbols on dlopen(). See https://github.com/termux/termux-packages/issues/462.
9 TERMUX_PKG_DEPENDS="openssl, c-ares"
10 TERMUX_PKG_RM_AFTER_INSTALL="lib/node_modules/npm/html lib/node_modules/npm/make.bat share/systemtap lib/dtrace"
11 TERMUX_PKG_BUILD_IN_SRC=yes
12
13 termux_step_configure () {
14         # See https://github.com/nodejs/build/issues/266 about enabling snapshots
15         # when cross compiling. We use {CC,CXX}_host for compilation of code to
16         # be run on the build maching (snapshots when cross compiling are
17         # generated using a CPU emulator provided by v8) and {CC,CXX} for the
18         # cross compile. We unset flags such as CFLAGS as they would affect
19         # both the host and cross compiled build.
20         # Remaining issue to be solved before enabling snapshots by removing
21         # the --without-snapshot flag is that pkg-config picks up cross compilation
22         # flags which breaks the host build.
23         #export CC_host="gcc -pthread"
24         #export CXX_host="g++ -pthread"
25         #export CC="$CC $CFLAGS $CPPFLAGS $LDFLAGS"
26         #export CXX="$CXX $CXXFLAGS $CPPFLAGS $LDFLAGS"
27         #export CFLAGS="-Os"
28         #export CXXFLAGS="-Os"
29         #unset CPPFLAGS LDFLAGS
30
31         if [ $TERMUX_ARCH = "arm" ]; then
32                 DEST_CPU="arm"
33         elif [ $TERMUX_ARCH = "i686" ]; then
34                 DEST_CPU="ia32"
35         elif [ $TERMUX_ARCH = "aarch64" ]; then
36                 DEST_CPU="arm64"
37         elif [ $TERMUX_ARCH = "x86_64" ]; then
38                 DEST_CPU="x64"
39         else
40                 echo "Unsupported arch: $TERMUX_ARCH"
41                 exit 1
42         fi
43
44         # See note above TERMUX_PKG_DEPENDS why we do not use a shared libuv.
45         ./configure \
46                 --prefix=$TERMUX_PREFIX \
47                 --dest-cpu=$DEST_CPU \
48                 --dest-os=android \
49                 --shared-cares \
50                 --shared-openssl \
51                 --shared-zlib \
52                 --without-inspector \
53                 --without-intl \
54                 --without-snapshot
55 }