tntxtnt

makefile

Jul 6th, 2016
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 1.39 KB | None | 0 0
  1. # EXECUTABLES - DO NOT MODIFIED
  2. CC = g++
  3. RM = rm -f
  4. MKDIR = mkdir -p
  5.  
  6.  
  7. # PROJECT NAME - will be output executable name
  8. PROJECT = helloworld
  9.  
  10.  
  11. # BUILD TARGETS - change your compile flags here
  12. BUILD_DEBUG = Debug
  13. CFLAGS_DEBUG = -g
  14. LFLAGS_DEBUG =
  15.  
  16. BUILD_RELEASE = Release
  17. CFLAGS_RELEASE = -O2
  18. LFLAGS_RELEASE = -s
  19.  
  20. # Add another build target here
  21.  
  22. # Switch your build target here
  23. BUILD = $(BUILD_RELEASE)
  24. CFLAGS = -Wall $(CFLAGS_RELEASE)
  25. LFLAGS = $(LFLAGS_RELEASE)
  26.  
  27.  
  28. # Input directory
  29. SRCDIR = src
  30.  
  31. # Output directories - DO NOT MODIFIED
  32. OBJDIR = build/$(BUILD)/obj
  33. EXEDIR = build/$(BUILD)/bin
  34. DEPDIR = build/_dependencies
  35. EXE = $(EXEDIR)/$(PROJECT).exe
  36. EXEWIN = build\$(BUILD)\bin\$(PROJECT).exe
  37.  
  38. SRCS = $(wildcard $(SRCDIR)/*.cpp)
  39. HDRS = $(wildcard $(SRCDIR)/*.h)
  40. DEPS = $(patsubst $(SRCDIR)/%.cpp,$(DEPDIR)/%.d,$(SRCS))
  41. OBJS = $(patsubst $(SRCDIR)/%.cpp,$(OBJDIR)/%.o,$(SRCS))
  42.  
  43. $(DEPDIR)/%.d: $(SRCDIR)/%.cpp | $(DEPDIR)
  44.     $(CC) $< -MM -MT "$@ $(patsubst $(SRCDIR)/%.cpp,$(OBJDIR)/%.o,$<)" > $@
  45.  
  46. -include $(DEPS)
  47.  
  48. $(OBJDIR)/%.o: $(SRCDIR)/%.cpp | $(OBJDIR)
  49.     $(CC) $(CFLAGS) -c $< -o $@
  50.  
  51. $(OBJDIR):
  52.     $(MKDIR) $(OBJDIR)
  53.  
  54. $(DEPDIR):
  55.     $(MKDIR) $(DEPDIR)
  56.  
  57. $(EXEDIR):
  58.     $(MKDIR) $(EXEDIR)
  59.  
  60. run:
  61.     start cmd /k "$(EXEWIN) && pause && exit"
  62.  
  63. build: $(OBJS) | $(EXEDIR)
  64.     $(CC) $(OBJS) $(LFLAGS) -o $(EXE)
  65.  
  66. clean:
  67.     $(RM) $(EXE)
  68.     $(RM) $(OBJS)
  69.  
  70. .PHONY: run build clean
Advertisement
Add Comment
Please, Sign In to add comment