v / thirdparty / build_scripts / thirdparty-macos-arm64_bdwgc.sh
70 lines · 52 sloc · 1.87 KB · 1c34c34c6dff3978746e1af8d86d9778e1261e2d
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-large-config \
46 --enable-cplusplus \
47 --with-libatomic-ops=check \
48 --enable-sigrt-signals
49
50make
51
52cd .libs/
53for dname in *.dylib; do
54 echo "Post processing ${dname} ..."
55 install_name_tool -id "@rpath/${dname}" $dname;
56 otool -D $dname;
57done
58
59popd
60
61################################################################################################
62date > $TCC_FOLDER/lib/libgc_build_on_date.txt
63echo $LIBGC_COMMIT_FULL_HASH > $TCC_FOLDER/lib/libgc_build_source_hash.txt
64uname -a > $TCC_FOLDER/lib/libgc_build_machine_uname.txt
65echo "$0" > $TCC_FOLDER/lib/libgc_build_cmd.txt
66
67rsync -a bdwgc/.libs/ $TCC_FOLDER/lib/
68ls -lad $TCC_FOLDER/lib/*
69
70echo "Done compiling libgc, at commit $LIBGC_COMMIT , full hash: $LIBGC_COMMIT_FULL_HASH . The static library is in $TCC_FOLDER/lib/libgc.a "
71