SHELL:=/bin/bash ubuntu1804: # git clone https://github.com/rayburgemeestre/v8pp # git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git || true # will be factored out at some point git clone https://github.com/pmed/v8pp || true pushd v8pp && git checkout 94308b4fcd992fcc8174b0b30a73e58a436819b2 # master at time of writing bash ../ubuntu1804.sh make build bash ../ubuntu1804.sh make archive # outside container not enough permissions bash ../ubuntu1804.sh make package # outside container not enough permissions # also packages v8pp for now make fpm_package ubuntu2004: # git clone https://github.com/rayburgemeestre/v8pp # git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git || true # will be factored out at some point git clone https://github.com/pmed/v8pp || true pushd v8pp && git checkout 94308b4fcd992fcc8174b0b30a73e58a436819b2 # master at time of writing bash ../ubuntu2004.sh make build bash ../ubuntu2004.sh make archive # outside container not enough permissions bash ../ubuntu2004.sh make package # outside container not enough permissions # also packages v8pp for now make fpm_package build: update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-10 40 update-alternatives --install /usr/bin/cc cc /usr/bin/clang-10 40 update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-10 40 update-alternatives --install /usr/bin/clang clang /usr/bin/clang-10 40 update-alternatives --install /usr/bin/ld ld /usr/bin/ld.lld-10 40 apt-get update apt-get install pkg-config python2.7 -y cp -prv /usr/bin/python2.7 /usr/bin/python # stupid depot tool scripts cp -prv /usr/bin/python2.7 /usr/bin/python2 # stupid depot tool scripts ./build-v8.sh archive: rm -rf v8.a #ar rvs v8.a $$(cat v8-include.txt |xargs -n 1 -I{} find {} -name '*.o') # third_party/ # excluding buildtools/third_party directory which contains libc++ etc., or you will get linker errors. # ./out/x64.release/obj/buildtools/third_party/libc++/libc++/ # second exclude for external snapshot, we need only the non-external one, or we get some weeiiird results of course! # both implement DefaultSnapshotBlob() and we need to add the right one to the object file. # ERR, ar rvs v8.a $$(find ./v8/out/x64.release/ -type f -name '*.o' | grep -v "buildtools/third_party/libc++/libc++" | grep -v "v8_external_snapshot") # Let's go back to our white-list approach.. let's see... #ar rvs v8.a $$(cat v8-include.txt |xargs -n 1 -I{} find {} -name '*.o') # We no longer use our v8.a, still including it for now. # no longer works with newer, missing some files echo all included object files listed below # no longer works with newer, missing some files ar rvs v8.a $$(cat v8-include.txt |xargs -n 1 -I{} find {} -name '*.o') # We'll use this one below.. find ./v8/out/x64.release/ -name 'libv8_monolith.a' -type f # We'll also include .so files.. find ./v8/out/x64.release/ -name '*.so' -type f package: rm -rf out rm -rf v8pp_*_amd64.deb mkdir -p out/opt/cppse/build/v8pp/lib mkdir -p out/opt/cppse/build/v8pp/include # Legacy include our own v8.a # no longer works with newer, missing some files cp -prv v8.a out/opt/cppse/build/v8pp/lib cp -prv v8/out/x64.release/obj/libv8_monolith.a out/opt/cppse/build/v8pp/lib # We'll also include .so files.. #echo TEMP find ./v8/out/x64.release/ -name '*.so' -type f | xargs -n 1 cp -prv -t out/opt/cppse/build/v8pp/lib cp -prv v8pp/v8pp out/opt/cppse/build/v8pp/include/ cp -prv v8/include out/opt/cppse/build/v8pp/include/v8 fpm_package: docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:18.04 fpm -v 1.1 -s dir -t deb -n v8pp --license MPL2 --maintainer "Ray Burgemeestre " --description "v8pp - build dependency" --url "https://github.com/rayburgemeestre/v8pp" --deb-generate-changes -C /src/out clean: rm -rf v8pp rm -rf v8 rm -rf out rm -rf depot_tools rm -rf .gclient rm -rf .gclient_entries shell: FLAGS="-i --privileged" bash ../ubuntu1804.sh /bin/bash