CC = gcc CFLAGS = -Wall -Wextra -std=c11 -g -O2 -fwrapv -I.. LDFLAGS = -lz TARGET = controller OBJDIR = obj .PHONY: all clean .SUFFIXES: all: $(TARGET) clean: @echo "Cleaning" @rm -f $(TARGET) @rm -rf $(OBJDIR) $(OBJDIR)/%.o: %.c $(wildcard *.h) @mkdir -p $(OBJDIR) @echo "CC $<" @$(CC) $(CFLAGS) -c -o $@ $< $(TARGET): $(patsubst %.c,$(OBJDIR)/%.o,$(wildcard *.c)) @make -q -C .. || make -C .. --no-print-directory @echo "LD -o $@" @$(CC) -o $@ $^ $(wildcard ../$(OBJDIR)/*.o) $(LDFLAGS)