Guest User

Untitled

a guest
Dec 11th, 2018
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. SRC := $(shell find src -name '*.c')
  2. HDR := $(shell find src -name '*.h')
  3. OBJ := $(patsubst src/%.c,obj/%.o,$(SRC))
  4. DEP := $(patsubst src/%.c,dep/%.d,$(SRC))
  5. PKG_CONFIG ?= pkg-config
  6. STRIP ?= strip
  7.  
  8. TARGET := my-project
  9. VERSION = $(shell git describe --long --all --dirty)
  10.  
  11. LIBS = freeglut glu
  12. LINK = -lm -ldl $(shell $(PKG_CONFIG) --libs $(LIBS)) $(LDFLAGS
  13.  
  14. FLAGS = \
  15. -DVERSION=\"$(VERSION)\" -O2 \
  16. -Wall -Wextra -Wno-parentheses -Wno-unused-parameter \
  17. $(shell $(PKG_CONFIG) --cflags $(LIBS)) \
  18. $(CFLAGS)
  19.  
  20. $(TARGET): $(OBJ)
  21. @printf "(LD) "
  22. $(CC) $(OBJ) $(LINK) -o $@
  23.  
  24. $(TARGET)-strip: $(TARGET)
  25. @printf "(STRIP) "
  26. $(STRIP) -o $@ $<
  27.  
  28. obj/%.o: src/%.c
  29. @mkdir -p $(dir $@)
  30. @printf "(CC) "
  31. $(CC) $(FLAGS) -o $@ -c $<
  32.  
  33. dep/%.d: src/%.c $(HDR)
  34. @mkdir -p $(dir $@)
  35. @printf "(DEP) $@\n"
  36. @$(CC) $(FLAGS) -o $@ -MT $(patsubst src/%.c,obj/%.o,$<) -MM $<
  37.  
  38. ifeq ($(filter clean,$(MAKECMDGOALS)),)
  39. -include $(DEP)
  40. endif
  41.  
  42. .PHONY: clean
  43. clean:
  44. rm -f $(TARGET) $(TARGET)-strip
  45. rm -rf obj dep
Add Comment
Please, Sign In to add comment