-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathxbuild.sh
More file actions
executable file
·117 lines (102 loc) · 2.43 KB
/
xbuild.sh
File metadata and controls
executable file
·117 lines (102 loc) · 2.43 KB
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#!/bin/sh
SYS_NAME=`uname -s`
SYS_ARCH=`uname -m`
MACOS_SYSNAME=${MACOS_SYSNAME-"Darwin"}
if [ "$SYS_NAME" = $MACOS_SYSNAME ]; then
./mac_build.sh $*
exit
fi
PROG_DIR=bin/${SYS_NAME}_${SYS_ARCH}
PROG_NAME=crosscore_demo
PROG_PATH=$PROG_DIR/$PROG_NAME
if [ ! -d $PROG_DIR ]; then mkdir -p $PROG_DIR; fi
CXX_OPTS="-std=c++11 -ffast-math -ftree-vectorize -pthread"
PROG_OPTS=${XBUILD_ALT_DEFS-"-DX11"}
PROG_LIBS=${XBUILD_ALT_LIBS-"-lX11"}
PROG_INCS="-I src -I inc"
PROG_SRCS="`ls src/*.cpp`"
DEF_CXX="g++"
LS_OPTS="-lho"
CP_OPTS="-v"
case $SYS_NAME in
Linux)
PROG_LIBS="$PROG_LIBS -ldl"
LS_OPTS="-ho --color=always"
;;
OpenBSD)
PROG_INCS="$PROG_INCS -I/usr/X11R6/include"
PROG_LIBS="$PROG_LIBS -L/usr/X11R6/lib"
DEF_CXX="clang++"
;;
FreeBSD)
PROG_INCS="$PROG_INCS -I/usr/local/include"
PROG_LIBS="$PROG_LIBS -L/usr/local/lib"
DEF_CXX="clang++"
;;
SunOS)
PROG_LIBS="$PROG_LIBS -static-libgcc -static-libstdc++"
CP_OPTS=""
;;
Haiku)
CXX_OPTS="$CXX_OPTS -fvisibility=hidden"
;;
CYGWIN*)
PROG_OPTS=""
PROG_LIBS="-lgdi32 -static"
;;
esac
DL_CMD=""
if [ -x "`command -v wget`" ]; then
DL_CMD="wget -O"
elif [ -x "`command -v curl`" ]; then
DL_CMD="curl -o"
fi
VEMA_DIR=etc/vema
VEMA_SRCS=""
VEMA_OPTS=""
USE_VEMA=${XBUILD_VEMA:-0}
if [ $USE_VEMA -ne 0 ]; then
if [ -n "$DL_CMD" ]; then
mkdir -p $VEMA_DIR
VEMA_URL=https://schaban.github.io/vema
if [ ! -f "$VEMA_DIR/vema.h" ]; then
echo "Downloading vema header..."
$DL_CMD $VEMA_DIR/vema.h $VEMA_URL/vema.h
fi
if [ ! -f "$VEMA_DIR/vema.cpp" ]; then
echo "Downloading vema source..."
$DL_CMD $VEMA_DIR/vema.cpp $VEMA_URL/vema.c
fi
if [ -f "$VEMA_DIR/vema.h" ] && [ -f "$VEMA_DIR/vema.cpp" ]; then
echo "Using vema."
VEMA_SRCS="$VEMA_DIR/vema.cpp"
VEMA_OPTS="-I $VEMA_DIR -DXD_USE_VEMA -DVEMA_NO_CLIB"
else
USE_VEMA=0
fi
else
USE_VEMA=0
fi
fi
CXX=${CXX:-$DEF_CXX}
DISASM_OPTS=""
case $SYS_ARCH in
x86_64 | amd64 | i386 | i686 | i86pc)
DISASM_OPTS="-M intel"
;;
esac
echo "Compiling with $CXX..."
rm -f $PROG_PATH
$CXX $CXX_OPTS $VEMA_OPTS $PROG_OPTS $PROG_INCS $VEMA_SRCS $PROG_SRCS $PROG_LIBS -o $PROG_PATH $*
MSG="Failed."
SYMSG="\e[31m\u2717\e[0m"
if [ -f $PROG_PATH ]; then
objdump $DISASM_OPTS -dC $PROG_PATH > $PROG_PATH.txt
cp $CP_OPTS src/cmd/roof.sh $PROG_DIR
cp $CP_OPTS src/cmd/roof_low.sh $PROG_DIR
cp $CP_OPTS src/cmd/lot_low.sh $PROG_DIR
MSG="Done."
SYMSG="\e[92m\u2714\e[0m"
fi
ls $LS_OPTS $PROG_PATH
echo -e $SYMSG $MSG