# 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=src/RuneOptimizer/RuneOptimizer.c CC=gcc CFLAGS= OPTS_DEBUG=-Wall -g OPTS_TEST= OPTS=-O3 LIBS=-lsqlite3 -lm -ljson-c OUT=bin/RuneOptimizer OUT_DEBUG=bin/RuneOptimizer_DEBUG TEST_SRC=src/test/RuneOptimizerTest.c TEST_SRC_UNIT=src/test/RuneOptimizerUnitTest.c TEST_SRC_INTEGRATION=src/test/RuneOptimizerIntegrationTest.c TEST_SRC_E2E=srctest/RuneOptimizerE2ETest.c TEST_OUT_UNIT=bin/RuneOptimizerUnitTest TEST_OUT_INTEGRATION=bin/RuneOptimizerIntegrationTest TEST_OUT_E2E=bin/RuneOptimizerE2ETest #TEST_FUNCTION=-nostartfiles -Wl,-emain_test TEST_FUNCTION= INSTALL_DIR=/usr/local/bin/ GUI_INSTALL_DIR=/usr/share/ GUI_EXECUTABLE_SRC=/usr/share/RuneOptimizerGUI/RuneOptimizer.py GUI_EXECUTABLE_DST=/usr/local/bin/RuneOptimizerGUI default : @$(CC) -o $(OUT)$(EXTENSION) $(SRC) $(INC) $(LIBS) $(OPTS) @echo Compiled executable $(OUT)$(EXTENSION) debug : $(CC) -o $(OUT_DEBUG)$(EXTENSION) $(SRC) $(INC) $(LIBS) @echo Compiled debug executable $(OUT_DEBUG) test : default @$(CC) $(OPTS_TEST) -o $(TEST_OUT_UNIT)$(EXTENSION) $(TEST_SRC_UNIT) $(INC) $(LIBS) $(TEST_FUNCTION) @echo Compiled testing executable $(TEST_OUT_UNIT)$(EXTENSION) @$(CC) $(OPTS_TEST) -o $(TEST_OUT_INTEGRATION)$(EXTENSION) $(TEST_SRC_INTEGRATION) $(INC) $(LIBS) $(TEST_FUNCTION) @echo Compiled testing executable $(TEST_OUT_INTEGRATION)$(EXTENSION) @$(CC) $(OPTS_TEST) -o $(TEST_OUT_E2E)$(EXTENSION) $(TEST_SRC_E2E) $(INC) $(LIBS) $(TEST_FUNCTION) @echo Compiled testing executable $(TEST_OUT_E2E)$(EXTENSION) install : @mkdir -p $(INSTALL_DIR) @cp $(OUT)$(EXTENSION) $(INSTALL_DIR) @cp -rf RuneOptimizerGUI $(GUI_INSTALL_DIR) -@rm $(GUI_EXECUTABLE_DST) @ln -s $(GUI_EXECUTABLE_SRC) $(GUI_EXECUTABLE_DST) clean : # TODO: Delete database? @$(RM) $(OUT)$(EXTENSION) @$(RM) $(OUT_DEBUG)$(EXTENSION) @echo All clean