Advertisement
Guest User

Untitled

a guest
Aug 29th, 2022
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 0.79 KB | Source Code | 0 0
  1. .PHONY: clean run
  2. CXX := g++
  3. CXXFLAGS :=
  4. LINKFLAGS :=
  5. OBJS_DIR? = obj/
  6. BUILD_DIR? = build/
  7. SOURCE_DIR := .
  8. EXEC := client
  9. SOURCE_FILES := $(wildcard $(SOURCE_DIR)/*.cpp)
  10. SOURCE_HEADERS := $(wildcard $(SOURCE_DIR)/*.h)
  11. $(info $$(subst $(SOURCE_DIR),$(OBJS_DIR), $(patsubst %.cpp,%.o,$(SOURCE_FILES))) is [${$(subst $(SOURCE_DIR),$(OBJS_DIR), $(patsubst %.cpp,%.o,$(SOURCE_FILES)))}])
  12. OBJS := $(subst $(SOURCE_DIR),$(OBJS_DIR), $(patsubst %.cpp,%.o,$(SOURCE_FILES)))
  13.  
  14. $(EXEC): $(OBJS)
  15.     $(CXX) $(OBJS) $(CXXFLAGS) $(LINKFLAGS) -o $(OUT_DIR)/$(EXEC)
  16.  
  17. $(OBJS_DIR)/%.o : $(SOURCE_DIR)/%.cpp
  18.     $(CXX) $(CXXFLAGS) -c $< -o $@
  19.  
  20. #Files to be compiled
  21. $(OBJS_DIR)/main.o: $(SOURCE_FILES) $(SOURCE_HEADERS)
  22.  
  23. run:
  24.     ./build/main
  25. clean:
  26.     rm $(OBJS_DIR)/*.o
  27.     rm $(OUT_DIR)/$(EXEC)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement