blob: fa4f5a01a65f640d91c40699eb1fd156546da8cf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
#!/bin/sh -e
# This file is dedicated to the public domain.
case "`uname -s`" in
# weird people using Windows Bash might type ./compile, help them out :)
*NT*)
echo "You're on Windows, idiot! Running compile.bat for you."
exec cmd /c compile.bat ;;
esac
mkdir -p .build/include
warnings=-Wall -pedantic -Wno-parentheses -Wno-missing-braces
objs=
cc() {
objs="$objs .build/${1%%.c}.o"
clang -m32 -c -O2 -flto -fpic $warnings -I.build/include \
-D_FILE_OFFSET_BITS=64 -DFILE_BASENAME="${1%%.c}" \
-o ".build/${1%%.c}.o" "src/$1"
}
ld() {
clang -m32 -shared -O2 -flto -fpic -s -fuse-ld=lld -L.build -ldl -o sst.so$objs
}
src="\
autojump.c \
con_.c \
demorec.c \
dbg.c \
extmalloc.c \
fixes.c \
gamedata.c \
gameinfo.c \
hook.c \
kv.c \
os.c \
sst.c \
udis86.c"
clang -O2 -fuse-ld=lld $warnings -D_FILE_OFFSET_BITS=64 -o .build/codegen \
src/build/codegen.c src/build/cmeta.c src/os.c
clang -O2 -fuse-ld=lld $warnings -D_FILE_OFFSET_BITS=64 -o .build/mkgamedata \
src/build/mkgamedata.c src/kv.c src/os.c
.build/codegen `for s in $src; do echo "src/$s"; done`
.build/mkgamedata gamedata/gamelib.kv gamedata/engine.kv
for s in $src; do cc "$s" done
clang -m32 -shared -fpic -fuse-ld=lld -O0 -w -o .build/libtier0.so src/tier0stub.c
ld
clang -fuse-ld=lld -O2 -g3 -include test/test.h -o .build/bitbuf.test test/bitbuf.test.c
.build/bitbuf.test
# skipping this test on linux for now, since inline hooks aren't compiled in
#clang -m32 -fuse-ld=lld -O2 -g3 -include test/test.h -o .build/hook.test test/hook.test.c
#.build/hook.test
clang -fuse-ld=lld -O2 -g3 -include test/test.h -o .build/kv test/kv.test.c
.build/kv.test
# vi: sw=4 tw=4 noet tw=80 cc=80
|