1
0

Makefile 884 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. GCC = gcc
  2. CFLAGS = -g -Wall -Wshadow
  3. LIBS = -lm -lpthread
  4. SOURCES = pa06.c parallel-primes.c
  5. TARGET = pa06
  6. VALGRIND = valgrind --tool=memcheck --leak-check=full --verbose
  7. # -------------------------------------------------------------
  8. .PHONY : all build clean environment help
  9. .DEFAULT_GOAL:= build
  10. OBJF = obj
  11. OBJS = $(patsubst %.c,$(OBJF)/%.o,$(SOURCES))
  12. -include $(SOURCES:%=$(OBJF)/%.P)
  13. all: | build test
  14. build: $(TARGET)
  15. clean:
  16. @cd $(CURDIR)
  17. rm -rf $(TARGET) $(TARGET_O3) $(OBJF) output/typing.ppm output/memoutput
  18. environment:
  19. @mkdir -p outputs
  20. @mkdir -p $(OBJF)
  21. help:
  22. @echo
  23. @echo " make builds $(TARGET)"
  24. @echo
  25. $(TARGET): $(OBJS) | environment
  26. $(GCC) $(CFLAGS) $(OBJS) $(LIBS) -o $@
  27. $(OBJF)/%.o: %.c | environment
  28. @$(GCC) -MM $(CFLAGS) $< | sed 's,^\([^ ]\),$(OBJF)\/\1,g' | sed '$$ s,$$, \\,' > $(OBJF)/$<.P
  29. $(GCC) $(CFLAGS) -c -o $@ $<