Makefile 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. # Try to detect operating system
  2. ifeq ($(OS),Windows_NT)
  3. ifeq ($(shell uname -s),) # not in a bash-like shell
  4. RM = del /F /Q
  5. MKDIR = mkdir
  6. else # in a bash-like shell, like msys
  7. RM = rm -f
  8. MKDIR = mkdir -p
  9. endif
  10. EXTENSION=.exe
  11. INC=-I C:\MinGW\lib
  12. else
  13. RM = rm -f
  14. MKDIR = mkdir -p
  15. EXTENSION=
  16. INC=
  17. endif
  18. SRC=src/RuneOptimizer/RuneOptimizer.c
  19. CC=gcc
  20. CFLAGS=
  21. OPTS_DEBUG=-Wall -g
  22. OPTS_TEST=
  23. OPTS=-O3
  24. LIBS=-lsqlite3 -lm -ljson-c -lcurl
  25. OUT=bin/RuneOptimizer
  26. OUT_DEBUG=bin/RuneOptimizer_DEBUG
  27. TEST_SRC=src/test/RuneOptimizerTest.c
  28. TEST_SRC_UNIT=src/test/RuneOptimizerUnitTest.c
  29. TEST_SRC_INTEGRATION=src/test/RuneOptimizerIntegrationTest.c
  30. TEST_SRC_E2E=srctest/RuneOptimizerE2ETest.c
  31. TEST_OUT_UNIT=bin/RuneOptimizerUnitTest
  32. TEST_OUT_INTEGRATION=bin/RuneOptimizerIntegrationTest
  33. TEST_OUT_E2E=bin/RuneOptimizerE2ETest
  34. #TEST_FUNCTION=-nostartfiles -Wl,-emain_test
  35. TEST_FUNCTION=
  36. INSTALL_DIR=/usr/local/bin/
  37. GUI_INSTALL_DIR=/usr/share/
  38. GUI_EXECUTABLE_SRC=/usr/share/RuneOptimizerGUI/RuneOptimizer.py
  39. GUI_EXECUTABLE_DST=/usr/local/bin/RuneOptimizerGUI
  40. default :
  41. @$(CC) -o $(OUT)$(EXTENSION) $(SRC) $(INC) $(LIBS) $(OPTS)
  42. @echo Compiled executable $(OUT)$(EXTENSION)
  43. debug :
  44. $(CC) -o $(OUT_DEBUG)$(EXTENSION) $(SRC) $(INC) $(LIBS)
  45. @echo Compiled debug executable $(OUT_DEBUG)
  46. test : default
  47. @$(CC) $(OPTS_TEST) -o $(TEST_OUT_UNIT)$(EXTENSION) $(TEST_SRC_UNIT) $(INC) $(LIBS) $(TEST_FUNCTION)
  48. @echo Compiled testing executable $(TEST_OUT_UNIT)$(EXTENSION)
  49. @$(CC) $(OPTS_TEST) -o $(TEST_OUT_INTEGRATION)$(EXTENSION) $(TEST_SRC_INTEGRATION) $(INC) $(LIBS) $(TEST_FUNCTION)
  50. @echo Compiled testing executable $(TEST_OUT_INTEGRATION)$(EXTENSION)
  51. @$(CC) $(OPTS_TEST) -o $(TEST_OUT_E2E)$(EXTENSION) $(TEST_SRC_E2E) $(INC) $(LIBS) $(TEST_FUNCTION)
  52. @echo Compiled testing executable $(TEST_OUT_E2E)$(EXTENSION)
  53. install :
  54. @mkdir -p $(INSTALL_DIR)
  55. @cp $(OUT)$(EXTENSION) $(INSTALL_DIR)
  56. @cp -rf RuneOptimizerGUI $(GUI_INSTALL_DIR)
  57. -@rm $(GUI_EXECUTABLE_DST)
  58. @ln -s $(GUI_EXECUTABLE_SRC) $(GUI_EXECUTABLE_DST)
  59. clean :
  60. # TODO: Delete database?
  61. @$(RM) $(OUT)$(EXTENSION)
  62. @$(RM) $(OUT_DEBUG)$(EXTENSION)
  63. @echo All clean