v / thirdparty / build_scripts / thirdparty-freebsd-amd64_bdwgc.sh
59 lines · 44 sloc · 1.5 KB · 9072cc14eb6757f8cc30772b6274d991dbb3fe3e
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
10export CURRENT_SCRIPT_PATH=$(realpath "$0")
11
12export CC="${CC:-gcc}"
13export TCC_FOLDER="${TCC_FOLDER:-thirdparty/tcc}"
14export LIBGC_COMMIT="${LIBGC_COMMIT:-master}"
15mkdir -p $TCC_FOLDER/lib/
16
17echo " CC: $CC"
18echo " TCC_FOLDER: $TCC_FOLDER"
19echo "LIBGC_COMMIT: $LIBGC_COMMIT"
20echo ===============================================================
21
22rm -rf bdwgc/
23
24pushd .
25git clone https://github.com/ivmai/bdwgc
26cd bdwgc/
27
28git checkout $LIBGC_COMMIT
29export LIBGC_COMMIT_FULL_HASH=$(git rev-parse HEAD)
30
31./autogen.sh
32
33CC=$CC CFLAGS='-Os -mtune=generic -fPIC' LDFLAGS='-Os -fPIC' ./configure \
34 --disable-dependency-tracking \
35 --disable-docs \
36 --enable-handle-fork=yes \
37 --enable-rwlock \
38 --enable-threads=posix \
39 --enable-static \
40 --enable-shared=no \
41 --enable-parallel-mark \
42 --enable-single-obj-compilation \
43 --enable-gc-debug \
44 --with-libatomic-ops=yes \
45 --enable-sigrt-signals \
46 --enable-mmap
47
48make
49
50popd
51
52cp bdwgc/.libs/libgc.a $TCC_FOLDER/lib/libgc.a
53
54date > $TCC_FOLDER/lib/libgc_build_on_date.txt
55echo $LIBGC_COMMIT_FULL_HASH > $TCC_FOLDER/lib/libgc_build_source_hash.txt
56uname -a > $TCC_FOLDER/lib/libgc_build_machine_uname.txt
57
58ls -la $TCC_FOLDER/lib/libgc.a
59echo "Done compiling libgc, at commit $LIBGC_COMMIT , full hash: $LIBGC_COMMIT_FULL_HASH . The static library is in $TCC_FOLDER/lib/libgc.a "
60