2
0

Makefile 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. CC = gcc
  2. CFLAGS =
  3. INCLUDES = -I.
  4. LDFLAGS = -L$(BUILDDIR)/cgreen/build-c/src
  5. LDLIBS = -lcgreen
  6. UNITOBJ = $(BUILDDIR)/testserial/unitobj
  7. DEPDIR = $(BUILDDIR)/testserial/unit.d
  8. UNITEXE = $(BUILDDIR)/testserial/unitexe
  9. DEPFLAGS = -MT $@ -MMD -MP -MF $(DEPDIR)/$*.Td
  10. EXT =
  11. UNAME := $(shell uname)
  12. ifneq (, $(findstring mingw, $(UNAME)))
  13. EXT += exe
  14. endif
  15. ifneq (, $(findstring cygwin, $(UNAME)))
  16. EXT += exe
  17. endif
  18. SRC = $(wildcard *.c)
  19. EXE = $(patsubst %.c, $(UNITEXE)/%$(EXT), $(SRC))
  20. $(shell mkdir -p $(DEPDIR) >/dev/null)
  21. test: $(EXE)
  22. @for f in $^; do \
  23. echo "++++++++++++++++++"; \
  24. echo "Running unit tests"; \
  25. echo $$(basename $$f); \
  26. echo "++++++++++++++++++"; \
  27. echo ""; \
  28. $$f || exit 1; \
  29. echo ""; \
  30. echo "******************"; \
  31. echo ""; \
  32. done
  33. $(UNITEXE)/%$(EXT): $(UNITOBJ)/%.o
  34. mkdir -p $(UNITEXE)
  35. $(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS)
  36. $(UNITOBJ)/%.o : %.c
  37. $(UNITOBJ)/%.o: %.c $(DEPDIR)/%.d
  38. mkdir -p $(UNITOBJ)
  39. $(CC) $(CFLAGS) $(DEPFLAGS) -c $< -o $@
  40. mv -f $(DEPDIR)/$*.Td $(DEPDIR)/$*.d
  41. $(DEPDIR)/%.d: ;
  42. .PRECIOUS: $(DEPDIR)/%.d
  43. -include $(patsubst %,$(DEPDIR)/%.d,$(basename $(SRC).c))