Guest User

Untitled

a guest
Apr 21st, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. CXX=g++
  2. RM=rm
  3. Q=@
  4. QQ=@
  5.  
  6. SRC=src
  7. BUILD=build
  8.  
  9. SOURCES=$(wildcard $(SRC)/*.cpp)
  10. OBJECTS:=$(patsubst $(SRC)/%.cpp,$(BUILD)/%.o,$(SOURCES))
  11.  
  12. PCH_SRC:=./include/Headers.h
  13. PCH_OUT:=./include/Headers.h.gch
  14.  
  15. INCLUDE:=./include
  16. INCLUDE+=./submodules/prefix/include
  17. INCLUDE:=$(patsubst %,-I%,$(INCLUDE))
  18.  
  19. LDFLAGS:=-L./submodules/prefix/lib64
  20. LDFLAGS+=-lgtest
  21. LDFLAGS+=-lgmock
  22. LDFLAGS+=-lpthread
  23.  
  24. CFLAGS+=-Wall
  25. CFLAGS+=-Wextra
  26. CFLAGS+=-O0
  27. CFLAGS+=-g
  28. CFLAGS+=-std=c++17
  29.  
  30. TARGET=main
  31.  
  32. all: $(PCH_OUT) $(TARGET)
  33.  
  34. $(TARGET): $(OBJECTS)
  35. $(QQ) echo " LD $@"
  36. $(Q) $(CXX) -o $@ $^ $(CFLAGS) $(LDFLAGS)
  37.  
  38. $(OBJECTS): | $(BUILD)
  39.  
  40. $(BUILD):
  41. $(Q) mkdir -p $(BUILD)
  42.  
  43. $(BUILD)/%.o: $(SRC)/%.cpp
  44. $(QQ) echo " CXX $@"
  45. $(Q) $(CXX) -c -o $@ $< $(INCLUDE) $(CFLAGS)
  46.  
  47. $(PCH_OUT): $(PCH_SRC)
  48. $(QQ) echo " CXX $@"
  49. $(Q) $(CXX) -c -o $@ $< $(INCLUDE) $(CFLAGS)
  50.  
  51. clean:
  52. $(QQ) echo " RM $(TARGET) $(OBJECTS)"
  53. $(Q) $(RM) -f $(TARGET) $(OBJECTS)
  54.  
  55. mrproper: clean
  56. $(QQ) echo " RM $(PCH_OUT)"
  57. $(Q) $(RM) -f $(PCH_OUT)
  58.  
  59. .PHONY: clean mrproper all
Add Comment
Please, Sign In to add comment