CC = gcc CFLAGS += -g -Wall -O3 CPPFLAGS += -MMD LDFLAGS += -pthread -lm PP_BOLD := $(shell tput bold) PP_RESET := $(shell tput sgr0) PP_CC := $(PP_BOLD)$(shell tput setf 6)CC$(PP_RESET) PP_LD := $(PP_BOLD)$(shell tput setf 2)LD$(PP_RESET) PP_RM := $(PP_BOLD)$(shell tput setf 4)RM$(PP_RESET) SRC := src/e2e.c \ src/main.c OBJ := $(SRC:src/%.c=obj/%.o) OUT := e2e all: $(OUT) -include $(OBJ:.o=.d) obj/%.o : src/%.c @echo "$(PP_CC) src/$*.c" @mkdir -p $(@D) @$(CC) $(CFLAGS) $(CPPFLAGS) -c src/$*.c -o obj/$*.o $(OUT): $(OBJ) @echo "$(PP_LD) $(OUT)" @$(CC) $(OBJ) -o $(OUT) $(LDFLAGS) clean: @echo "${PP_RM} obj" @rm -rf obj @echo "${PP_RM} ${OUT}" @rm -rf ${OUT} .PHONY: clean