rules.mk 840 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. .PHONY: format clean all run versionning include
  2. all: $(EXE)
  3. include $(wildcard */rules.mk)
  4. # Object dependency files
  5. -include $(OBJS:%.o=%.d)
  6. $(OUT)/%.o: %.c | $(BUILT_SRCS)
  7. @echo "CC: $@"
  8. @mkdir -p $(dir $@)
  9. @$(CC) $(CFLAGS) -c $< -o $@
  10. %.o: %.c | $(BUILT_SRCS)
  11. @echo "CC: $@"
  12. @$(CC) $(CFLAGS) -c $< -o $@
  13. $(OUT)/%.o: %.cpp | $(BUILT_SRCS)
  14. @echo "CPP: $@"
  15. @mkdir -p $(dir $@)
  16. @$(CPP) $(CPPFLAGS) -c $< -o $@
  17. %.o: %.cpp | $(BUILT_SRCS)
  18. @echo "CPP: $@"
  19. @$(CPP) $(CPPFLAGS) -c $< -o $@
  20. $(ELF): $(OBJS)
  21. @mkdir -p $(dir $@)
  22. @echo "CCLD: $@"
  23. @+$(CC) $(LDFLAGS) $^ -o $(ELF)
  24. clean:
  25. @echo "RM: $(OUT)"
  26. @rm -rf $(OUT)
  27. format:
  28. @echo "Formatting source using clang-format"
  29. @clang-format -i -style=file $(SRCS_C) $(SRCS_CPP) $(wildcard $(addsuffix /*.h,$(INCLUDE)))
  30. include:
  31. @echo -n $(addprefix -I ,$(INCLUDE))
  32. .FORCE: