mirror of
https://github.com/danog/gllvm.git
synced 2024-11-30 08:39:03 +01:00
101 lines
3.4 KiB
Makefile
101 lines
3.4 KiB
Makefile
|
|
# https://gist.github.com/ianamason/1c3a54697465436dce2822b80ee364d1
|
|
|
|
VERSION=v10.16.0
|
|
SRC=node-${VERSION}
|
|
TAR=${SRC}.tar.gz
|
|
URL=https://nodejs.org/dist/${VERSION}/${TAR}
|
|
|
|
all: node_from_bitcode
|
|
|
|
|
|
bitcode: libnode.bc libzlib.bc libuv.bc libv8_base.bc libopenssl.bc node_main.bc \
|
|
libv8_libplatform.bc libicui18n.bc libhttp_parser.bc libcares.bc libnghttp2.bc \
|
|
libbrotili.bc libv8_libbase.bc libv8_sampler.bc libicuucx.bc libicudata.bc \
|
|
libicustubdata.bc libv8_snapshot.bc
|
|
|
|
${TAR}:
|
|
wget https://nodejs.org/dist/v10.16.0/node-v10.16.0.tar.gz
|
|
|
|
${SRC}: ${TAR}
|
|
tar xvfz ${TAR}
|
|
|
|
${SRC}/Makefile: ${SRC}
|
|
cd ${SRC}; CC=gclang CXX=gclang++ ./configure --openssl-no-asm
|
|
#make sure ${SRC}/node isn't earlier than ${SRC}
|
|
touch ${SRC}/Makefile
|
|
|
|
${SRC}/node: ${SRC}/Makefile
|
|
cd ${SRC}; CC=gclang CXX=gclang++ make
|
|
#make sure ${SRC}/node isn't earlier than ${SRC}
|
|
touch ${SRC}/node
|
|
|
|
node.bc: ${SRC}/node
|
|
get-bc -o node.bc ${SRC}/node
|
|
|
|
libnode.bc: ${SRC}/node
|
|
get-bc -b -o libnode.bc ${SRC}/out/Release/obj.target/libnode.a
|
|
|
|
libzlib.bc: ${SRC}/node
|
|
get-bc -b -o libzlib.bc ${SRC}/out/Release/obj.target/deps/zlib/libzlib.a
|
|
|
|
libuv.bc: ${SRC}/node
|
|
get-bc -b -o libuv.bc ${SRC}/out/Release/obj.target/deps/uv/libuv.a
|
|
|
|
libv8_base.bc: ${SRC}/node
|
|
get-bc -b -o libv8_base.bc ${SRC}/out/Release/obj.target/deps/v8/gypfiles/libv8_base.a
|
|
|
|
libopenssl.bc: ${SRC}/node
|
|
get-bc -b -o libopenssl.bc ${SRC}/out/Release/obj.target/deps/openssl/libopenssl.a
|
|
|
|
node_main.bc: ${SRC}/node
|
|
get-bc -b -o node_main.bc ${SRC}/out/Release/obj.target/node/src/node_main.o
|
|
|
|
libv8_libplatform.bc: ${SRC}/node
|
|
get-bc -b -o libv8_libplatform.bc ${SRC}/out/Release/obj.target/deps/v8/gypfiles/libv8_libplatform.a
|
|
|
|
libicui18n.bc: ${SRC}/node
|
|
get-bc -b -o libicui18n.bc ${SRC}/out/Release/obj.target/tools/icu/libicui18n.a
|
|
|
|
libhttp_parser.bc: ${SRC}/node
|
|
get-bc -b -o libhttp_parser.bc ${SRC}/out/Release/obj.target/deps/http_parser/libhttp_parser.a
|
|
|
|
libcares.bc: ${SRC}/node
|
|
get-bc -b -o libcares.bc ${SRC}/out/Release/obj.target/deps/cares/libcares.a
|
|
|
|
libnghttp2.bc: ${SRC}/node
|
|
get-bc -b -o libnghttp2.bc ${SRC}/out/Release/obj.target/deps/nghttp2/libnghttp2.a
|
|
|
|
libbrotili.bc: ${SRC}/node
|
|
get-bc -b -o libbrotli.bc ${SRC}/out/Release/obj.target/deps/brotli/libbrotli.a
|
|
|
|
libv8_libbase.bc: ${SRC}/node
|
|
get-bc -b -o libv8_libbase.bc ${SRC}/out/Release/obj.target/deps/v8/gypfiles/libv8_libbase.a
|
|
|
|
libv8_sampler.bc: ${SRC}/node
|
|
get-bc -b -o libv8_libsampler.bc ${SRC}/out/Release/obj.target/deps/v8/gypfiles/libv8_libsampler.a
|
|
|
|
libicuucx.bc: ${SRC}/node
|
|
get-bc -b -o libicuucx.bc ${SRC}/out/Release/obj.target/tools/icu/libicuucx.a
|
|
|
|
libicudata.bc: ${SRC}/node
|
|
get-bc -b -o libicudata.bc ${SRC}/out/Release/obj.target/tools/icu/libicudata.a
|
|
|
|
libicustubdata.bc: ${SRC}/node
|
|
get-bc -b -o libicustubdata.bc ${SRC}/out/Release/obj.target/tools/icu/libicustubdata.a
|
|
|
|
libv8_snapshot.bc: ${SRC}/node
|
|
get-bc -b -o libv8_snapshot.bc ${SRC}/out/Release/obj.target/deps/v8/gypfiles/libv8_snapshot.a
|
|
|
|
node_from_bitcode: bitcode
|
|
clang++ -o node_from_bitcode -pthread -rdynamic -m64 node_main.bc libnode.bc libv8_libplatform.bc libicui18n.bc libzlib.bc libhttp_parser.bc libcares.bc libuv.bc libnghttp2.bc libbrotli.bc libopenssl.bc libv8_base.bc libv8_libbase.bc libv8_libsampler.bc libicuucx.bc libicudata.bc libicustubdata.bc libv8_snapshot.bc -ldl -lrt -lm
|
|
|
|
clean:
|
|
make -C ${SRC} clean
|
|
|
|
spotless:
|
|
rm -rf ${SRC}
|
|
|
|
|
|
.PHONY: bitcode clean spotless
|