| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- # 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 -rf
- MKDIR = mkdir -p
- endif
- EXTENSION=.exe
- INC=-I C:\MinGW\lib
- else
- RM = rm -rf
- MKDIR = mkdir -p
- EXTENSION=
- INC=
- endif
- SRC=src/RuneOptimizer/RuneOptimizer.c
- CC=gcc
- CFLAGS=
- OPTS_DEBUG=-Wall -g
- OPTS_TEST=
- OPTS=-O3
- OPTS_REPORT=-O3 -fdump-tree-all
- LIBS=-lsqlite3 -lm -ljson-c -lpthread
- 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
- DOC_COMMAND=doxygen
- default :
- @echo Compiling...
- @$(CC) -o $(OUT)$(EXTENSION) $(SRC) $(INC) $(LIBS) $(OPTS)
- @echo Compiled executable $(OUT)$(EXTENSION)
- debug :
- @echo Compiling with debug symbols...
- @$(CC) -o $(OUT_DEBUG)$(EXTENSION) $(SRC) $(INC) $(LIBS)
- @echo Compiled debug executable $(OUT_DEBUG)
- test : default
- @echo Generating tests...
- @$(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 :
- @echo Installing...
- @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)
- @echo Installed RuneOptimizer and RuneOptimizerGUI
- docs :
- ifeq ($(shell which $(DOC_COMMAND)),)
- $(error "No $(DOC_COMMAND) commannd found. Install it and run 'make doc' to generate documentation")
- else
- @echo Generating documentation...
- @mkdir -p doc/cli
- @mkdir -p doc/gui
- @doxygen doxygen-cli.conf
- @doxygen doxygen-gui.conf 2>/dev/null
- @echo Documentation generated in doc/
- endif
- clean :
- @echo Cleaning...
- @$(RM) bin/*
- @$(RM) doc/*
- @echo All clean
|