v4 / thirdparty / build_scripts / thirdparty-macos-arm64_bdwgc.sh
71 lines · 53 sloc · 1.9 KB · 5ad37a5a8656c438c68dabd31c9d36467390e046
Raw
1#!/usr/bin/env bash
2
3set -e
4
5if ! test -f vlib/v/compiler_errors_test.v; then
6 echo "this script should be run in V's main repo folder!"
7 exit 1
8fi
9
10## ensure all output is in English, independent from the current user's local:
11export LANG=C
12
13export CURRENT_SCRIPT_PATH=$(realpath "$0")
14
15export CC="${CC:-gcc}"
16export TCC_FOLDER="${TCC_FOLDER:-thirdparty/tcc}"
17export LIBGC_COMMIT="${LIBGC_COMMIT:-master}"
18mkdir -p $TCC_FOLDER/lib/
19
20echo " CC: $CC"
21echo " TCC_FOLDER: $TCC_FOLDER"
22echo "LIBGC_COMMIT: $LIBGC_COMMIT"
23echo ===============================================================
24
25rm -rf bdwgc/
26
27pushd .
28git clone https://github.com/ivmai/bdwgc
29cd bdwgc/
30
31git checkout $LIBGC_COMMIT
32export LIBGC_COMMIT_FULL_HASH=$(git rev-parse HEAD)
33
34git clone https://github.com/bdwgc/libatomic_ops
35
36./autogen.sh
37
38CC=$CC CFLAGS="-Os -mtune=generic -fPIC" LDFLAGS="-Os -fPIC" ./configure \
39 --disable-dependency-tracking \
40 --disable-docs \
41 --enable-static=yes \
42 --enable-shared=yes \
43 --enable-single-obj-compilation \
44 --enable-gc-debug \
45 --enable-thread-local-alloc \
46 --enable-large-config \
47 --enable-cplusplus \
48 --with-libatomic-ops=check \
49 --enable-sigrt-signals
50
51make
52
53cd .libs/
54for dname in *.dylib; do
55 echo "Post processing ${dname} ..."
56 install_name_tool -id "@rpath/${dname}" $dname;
57 otool -D $dname;
58done
59
60popd
61
62################################################################################################
63date > $TCC_FOLDER/lib/libgc_build_on_date.txt
64echo $LIBGC_COMMIT_FULL_HASH > $TCC_FOLDER/lib/libgc_build_source_hash.txt
65uname -a > $TCC_FOLDER/lib/libgc_build_machine_uname.txt
66echo "$0" > $TCC_FOLDER/lib/libgc_build_cmd.txt
67
68rsync -a bdwgc/.libs/ $TCC_FOLDER/lib/
69ls -lad $TCC_FOLDER/lib/*
70
71echo "Done compiling libgc, at commit $LIBGC_COMMIT , full hash: $LIBGC_COMMIT_FULL_HASH . The static library is in $TCC_FOLDER/lib/libgc.a "
72