summaryrefslogtreecommitdiff
path: root/fuzzylite/build.sh
diff options
context:
space:
mode:
Diffstat (limited to 'fuzzylite/build.sh')
-rwxr-xr-xfuzzylite/build.sh70
1 files changed, 70 insertions, 0 deletions
diff --git a/fuzzylite/build.sh b/fuzzylite/build.sh
new file mode 100755
index 0000000..78343c4
--- /dev/null
+++ b/fuzzylite/build.sh
@@ -0,0 +1,70 @@
+#!/bin/bash
+
+debug(){
+ mkdir -p debug
+ cd debug
+ cmake .. -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DFL_BACKTRACE=ON -DFL_USE_FLOAT=OFF -DFL_CPP11=OFF
+ make
+ cd ..
+}
+
+release(){
+ mkdir -p release
+ cd release
+ cmake .. -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFL_BACKTRACE=ON -DFL_USE_FLOAT=OFF -DFL_CPP11=OFF
+ make
+ cd ..
+}
+
+all(){
+ debug
+ release
+}
+
+clean(){
+ rm -rf release debug CMakeFiles
+}
+
+usage(){
+ printf 'Usage:\t[bash] ./build.sh [options]\n'
+ printf "where\t[options] can be any of the following:\n"
+ printf "\tall\t\t builds fuzzylite in debug and release mode (default)\n"
+ printf "\tdebug\t\t builds fuzzylite in debug mode\n"
+ printf "\trelease\t\t builds fuzzylite in release mode\n"
+ printf "\tclean\t\t erases previous builds\n"
+ printf "\thelp\t\t shows this information\n"
+ printf "\n"
+}
+
+#############################
+
+OPTIONS=( "all" "debug" "release" "clean" "help")
+BUILD=( )
+
+for arg in "$@"
+do
+ if [[ "$arg" == "help" ]]; then usage && exit 0; fi
+
+ if [[ "$arg" == "all" || "$arg" == "debug" || "$arg" == "release" || "$arg" == "clean" ]];
+ then BUILD+=( $arg ); else echo "Invalid option: $arg" && usage && exit 2;
+ fi
+done
+
+if [ ${#BUILD[@]} -eq 0 ]; then BUILD+=( "all" ); fi
+
+echo "Building schedule: ${BUILD[@]}"
+echo "Starting in 3 seconds..."
+sleep 3
+
+for option in "${BUILD[@]}"
+do
+ printf "\n\n"
+ printf "******************************\n"
+ printf "STARTING: $option\n"
+ eval ${option}
+ printf "\nFINISHED: $option\n"
+ printf "******************************\n\n"
+done
+
+
+