# Try to detect operating system
ifeq ($(OS),Windows_NT)
	ifeq ($(shell uname -s),) # not in a bash-like shell
		RM = del /F /Q
		MKDIR = mkdir
	else # in a bash-like shell, like msys
		RM = rm -f
		MKDIR = mkdir -p
	endif
	EXTENSION=.exe
	INC=-I C:\MinGW\lib
else
	RM = rm -f
	MKDIR = mkdir -p
	EXTENSION=
	INC=
endif

SRC=RuneOptimizer/RuneOptimizer.c
CC=gcc
CFLAGS=
OPTS_DEBUG=-Wall -g
OPTS=-O3
LIBS=-lsqlite3 -lm -ljson-c
OUT=../RuneOptimizer
OUT_DEBUG=../RuneOptimizer_DEBUG
TEST_SRC=test/TestRuneOptimizer.c
TEST_OUT=test/RuneOptimizerTest
TEST_FUNCTION=-Wl,-etest_main

default :
	@$(CC) -o $(OUT)$(EXTENSION) $(SRC) $(INC) $(LIBS) $(OPTS)
	@echo Compiled executable $(OUT)

debug :
	$(CC) -o $(OUT_DEBUG)$(EXTENSION) $(SRC) $(INC) $(LIBS)
	@echo Compiled debug executable $(OUT_DEBUG)

test : default
	@$(CC) -o $(TEST_OUT)$(EXTENSION) $(TEST_SRC) $(INC) $(LIBS) $(TEST_FUNCTION)
clean :
# TODO: Delete database?
	@$(RM) $(OUT)$(EXTENSION)
	@$(RM) $(OUT_DEBUG)$(EXTENSION)
	@echo All clean
