CC := gcc TARGET := player SRC_DIR := src BUILD := build SRCS := $(wildcard $(SRC_DIR)/*.c) OBJS := $(patsubst $(SRC_DIR)/%.c,$(BUILD)/%.o,$(SRCS)) CFLAGS := -Wall -Wextra -O3 CFLAGS += $(shell pkg-config --cflags libavformat libavcodec libavutil libswresample alsa) LDFLAGS := $(shell pkg-config --libs libavformat libavcodec libavutil libswresample alsa) all: $(TARGET) $(TARGET): $(OBJS) $(CC) -o $@ $^ $(LDFLAGS) $(BUILD)/%.o: $(SRC_DIR)/%.c | $(BUILD) $(CC) $(CFLAGS) -c $< -o $@ $(BUILD): mkdir -p $(BUILD) clean: rm -rf $(BUILD) $(TARGET) .PHONY: all clean