Advertisement
Guest User

Untitled

a guest
May 4th, 2016
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. .PHONY: all clean
  2.  
  3. CFLAGS += -g -Wall -Wpedantic -std=c11 -I include/
  4. LDFLAGS += -L lib/
  5. LDLIBS += -l libName
  6.  
  7. BINDIR = bin
  8. SRCDIR = src
  9. OBJDIR = obj
  10. DEPDIR = .dep
  11.  
  12. COMPILE = $(CC) $(CFLAGS) -c -o $@ $<
  13. LINK = $(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS)
  14. MAKEDEPEND = $(CC) $(CFLAGS) -MM -MP -MT $@ -o $(DEPDIR)/$*.d $<
  15.  
  16. OUT = $(BINDIR)/program
  17. SRC = $(wildcard $(SRCDIR)/*.c)
  18. OBJ = $(SRC:$(SRCDIR)/%.c=$(OBJDIR)/%.o)
  19.  
  20. $(shell mkdir -p $(DEPDIR) $(OBJDIR) $(BINDIR))
  21.  
  22. all: $(OUT)
  23.  
  24. clean:
  25. rm -rf $(DEPDIR) $(OBJDIR) $(BINDIR)
  26.  
  27. $(OBJDIR)/%.o : $(SRCDIR)/%.c
  28. $(OBJDIR)/%.o : $(SRCDIR)/%.c $(DEPDIR)/%.d
  29. $(MAKEDEPEND)
  30. $(COMPILE)
  31.  
  32. $(OUT): $(OBJ)
  33. $(LINK)
  34.  
  35. $(DEPDIR)/%.d: ;
  36. .PRECIOUS: $(DEPDIR)/%.d
  37.  
  38. -include $(SRC:$(SRCDIR)/%.c=$(DEPDIR)/%.d)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement