diff --git a/.gitignore b/.gitignore index 85ed7e7..19d5d8e 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ **/*.s **/a.out /tmp* +/thirdparty /chibicc /test/*.exe /stage2 diff --git a/test/thirdparty/common b/test/thirdparty/common new file mode 100644 index 0000000..5c4ba8a --- /dev/null +++ b/test/thirdparty/common @@ -0,0 +1,11 @@ +make="make -j$(nproc)" +chibicc=`pwd`/chibicc + +dir=$(basename -s .git $repo) + +set -e -x + +mkdir -p thirdparty +cd thirdparty +[ -d $dir ] || git clone $repo +cd $dir diff --git a/test/thirdparty/git.sh b/test/thirdparty/git.sh new file mode 100755 index 0000000..d20d1e1 --- /dev/null +++ b/test/thirdparty/git.sh @@ -0,0 +1,7 @@ +#!/bin/bash +repo='git@github.com:git/git.git' +. test/thirdparty/common +git reset --hard 54e85e7af1ac9e9a92888060d6811ae767fea1bc + +$make clean +$make V=1 CC=$chibicc test diff --git a/test/thirdparty/libpng.sh b/test/thirdparty/libpng.sh new file mode 100755 index 0000000..8146eb5 --- /dev/null +++ b/test/thirdparty/libpng.sh @@ -0,0 +1,10 @@ +#!/bin/bash +repo='git@github.com:rui314/libpng.git' +. test/thirdparty/common +git reset --hard dbe3e0c43e549a1602286144d94b0666549b18e6 + +CC=$chibicc ./configure +sed -i 's/^wl=.*/wl=-Wl,/; s/^pic_flag=.*/pic_flag=-fPIC/' libtool +$make clean +$make +$make test diff --git a/test/thirdparty/sqlite.sh b/test/thirdparty/sqlite.sh new file mode 100755 index 0000000..d59def4 --- /dev/null +++ b/test/thirdparty/sqlite.sh @@ -0,0 +1,10 @@ +#!/bin/bash +repo='git@github.com:sqlite/sqlite.git' +. test/thirdparty/common +git reset --hard 86f477edaa17767b39c7bae5b67cac8580f7a8c1 + +CC=$chibicc CFLAGS=-D_GNU_SOURCE ./configure +sed -i 's/^wl=.*/wl=-Wl,/; s/^pic_flag=.*/pic_flag=-fPIC/' libtool +$make clean +$make +$make test diff --git a/test/thirdparty/tinycc.sh b/test/thirdparty/tinycc.sh new file mode 100755 index 0000000..0228ebf --- /dev/null +++ b/test/thirdparty/tinycc.sh @@ -0,0 +1,9 @@ +#!/bin/bash +repo='git@github.com:TinyCC/tinycc.git' +. test/thirdparty/common +git reset --hard df67d8617b7d1d03a480a28f9f901848ffbfb7ec + +./configure --cc=$chibicc +$make clean +$make +$make CC=cc test