Advertisement
gabrieleb

G++ makefile

Apr 21st, 2024
509
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 0.73 KB | Source Code | 0 0
  1. .DEFAULT_GOAL := test # make
  2.  
  3. CFLAGS = -Wall -Wextra -pedantic -std=c++17
  4.  
  5. SRCDIR = src
  6. INCDIR = include
  7. BUILDDIR = build
  8. EXE = binfo
  9.  
  10. SRCS = $(wildcard $(SRCDIR)/*.cpp)
  11. OBJS = $(patsubst $(SRCDIR)/%.cpp,$(BUILDDIR)/%.o,$(SRCS))
  12. TEST_EXCLUDE = $(filter-out $(SRCDIR)/binfo.cpp, $(SRCS))
  13. TEST_OBJS = $(patsubst $(SRCDIR)/%.cpp,$(BUILDDIR)/%.o, $(TEST_EXCLUDE))
  14.  
  15. $(BUILDDIR)/%.o: $(SRCDIR)/%.cpp
  16.     g++ $(CFLAGS) -I$(INCDIR) -c -o $@ $<
  17.  
  18. test: $(OBJS) tests/test.cpp
  19.     g++ $(CFLAGS) -g -I$(INCDIR) -L. -o test tests/test.cpp $(TEST_OBJS)
  20.  
  21. d: $(OBJS)
  22.     g++ $(CFLAGS) -g -I$(INCDIR) -o $(EXE) $(OBJS)
  23.  
  24. binfo: $(OBJS)
  25.     g++ $(CFLAGS) -I$(INCDIR) -o $(EXE) $(OBJS)
  26.  
  27. clean:
  28.     rm -rf $(BUILDDIR)/*.o test.exe test binfo.exe binfo
  29.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement