C="clang++"
W="-Wall -Wextra -Wno-infinite-recursion -Wno-unused-parameter"
L="-std=c++17 -lstdc++fs"
O="-foptimize-sibling-calls -Ofast"
D="-g"
export JOJO=$HOME/.jojo
export PATH=$JOJO/bin:$PATH
tangle ()
{
./tangle.js
}
b () {
tangle
clean
time $C -o jojo jojo.cpp $W $L
}
bo () {
tangle
clean
time $C -o jojo jojo.cpp $W $L $O
}
bd () {
tangle
clean
time $C -o jojo jojo.cpp $W $L $D
}
clean ()
{
rm -f jojo
}
t () {
time ./jojo test/*
}
d () {
clean
tangle
time $C -o jojo jojo.cpp $W $L
t
}
debug () {
for FILE in $(ls test | grep "\.jo" | grep "test-")
do
echo "<test/$FILE>" && valgrind jojo "test/$FILE" && echo "</test/$FILE>" && echo ""
done
}
i () {
rm -rf $JOJO
install -Dm755 jojo $JOJO/bin/jojo
for FILE in $(ls lib)
do
install -Dm644 lib/$FILE $JOJO/lib/$FILE
done
}
main ()
{
for TASK in $@
do
$TASK
done
}
main $@