CC = gcc # pkg-config gives correct flags on both Linux and macOS/Homebrew. # Fallback covers systems where pkg-config isn't available. PKG_XFT_C := $(shell pkg-config --cflags xft x11 2>/dev/null) PKG_XFT_L := $(shell pkg-config --libs xft x11 2>/dev/null) ifeq ($(PKG_XFT_C),) # macOS Homebrew fallback PKG_XFT_C := -I/opt/homebrew/include PKG_XFT_L := -L/opt/homebrew/lib -lXft -lfontconfig endif CFLAGS = -Wall -Wextra -O2 -Iinclude $(PKG_XFT_C) LDFLAGS = $(PKG_XFT_L) SRC = src/wm.c src/client.c src/events.c src/draw.c src/color.c src/menu.c src/switcher.c OBJ = $(SRC:.c=.o) BIN = orionwm .PHONY: all clean install all: $(BIN) $(BIN): $(OBJ) $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) %.o: %.c $(CC) $(CFLAGS) -c -o $@ $< install: $(BIN) install -Dm755 $(BIN) /usr/local/bin/$(BIN) clean: rm -f $(OBJ) $(BIN)