CC = gcc CFLAGS = -Wall -Wextra -O2 -Iinclude LDFLAGS = -lm SRCDIR = src INCDIR = include OBJDIR = obj BINDIR = . SOURCES = $(wildcard $(SRCDIR)/*.c) OBJECTS = $(patsubst $(SRCDIR)/%.c,$(OBJDIR)/%.o,$(SOURCES)) TARGET = $(BINDIR)/webcam_ascii .PHONY: all clean all: $(TARGET) $(TARGET): $(OBJECTS) $(CC) $^ -o $@ $(LDFLAGS) $(OBJDIR)/%.o: $(SRCDIR)/%.c | $(OBJDIR) $(CC) $(CFLAGS) -c $< -o $@ $(OBJDIR): mkdir -p $(OBJDIR) clean: rm -rf $(OBJDIR) $(TARGET)