diff --git a/build.sh b/build.sh index 98b58d8..05850b5 100644 --- a/build.sh +++ b/build.sh @@ -6,38 +6,91 @@ rm -rf out/* # Variables -files=" - src/test/main.c - - src/*.c - include/*.h - " +testFile="src/test/main.c" +sourceFiles="src/*.c" +includeFiles="include/*.h" compiler="cc" output="out/why2" +installOutput="libwhy2.so" flags="-Wall -ljson-c -lcurl" +includeDirectory="/usr/include/why2" -# Check for debug flag -if [[ "$*" == "debug" ]]; then - flags="$flags -g" - echo "Using debug flag" -fi +if [[ "$1" == "test" ]]; then ########## TEST ########## + ### + echo "Using '$compiler' as default compiler." + ### -### -echo "Using '$compiler' as default compiler. (Flags: $flags)" -echo "Compiling..." -### + # Check for debug flag + if [[ "$2" == "debug" ]]; then ########## TEST & DEBUG ########## + flags="$flags -g" + echo "Using debug flag" + fi -# Compile -$compiler $files $flags -o $output + ### + echo "Compiling... (Flags: $flags)" + ### + + # Compile + $compiler $testFile $sourceFiles $includeFiles $flags -o $output + + # Compilation failed + if [[ $? -ne 0 ]]; then + echo -e "\nCompilation failed. Did you run 'configure.sh' and 'build.sh install' first?" + exit 1 + fi + + ### + echo "Output generated as '$output'" + ### +elif [[ "$1" == "install" ]]; then ########## INSTALL ########## + ### + echo "Using '$compiler' as default compiler." + ### + + flags="-Wall -fPIC -c" + + ### + echo "Compiling... (Flags: $flags)" + ### + + $compiler $flags $sourceFiles + + flags="-Wall -shared" + + ### + echo "Compiling library... (Flags: $flags)" + ### + + $compiler $flags -o $installOutput *.o + + ### + echo "Installing..." + ### + + # Create why2 directory + if [[ ! -d $includeDirectory ]]; then + mkdir $includeDirectory + fi + + mv $installOutput /usr/lib/ + cp $includeFiles $includeDirectory + + # Compilation failed + if [[ $? -ne 0 ]]; then + echo -e "\nCompilation failed. Did you run 'build.sh' with sudo?" + exit 1 + fi + + ### + echo "Finished! Cleaning up..." + ### + + rm -rf *.o +else ########## ERR ########## + ### + echo "You have to enter 'test' or 'install' as arguments." + ### -if [[ $? -ne 0 ]]; then - echo -e "\nCompilation failed. Did you run 'configure.sh' first?" exit 1 -fi - -### -echo "Output generated as '$output'" -### - - +fi \ No newline at end of file