CC = gcc CFLAGS = -Wall -Wextra -O3 -g -Isrc -march=native -flto -s LDFLAGS = -lX11 SRC_DIR = src SRC = $(wildcard $(SRC_DIR)/*.c) OBJ = $(SRC:.c=.o) BIN = sxwm PREFIX = /usr/local all: $(BIN) $(BIN): $(OBJ) $(CC) -o $@ $^ $(LDFLAGS) $(SRC_DIR)/%.o: $(SRC_DIR)/%.c $(CC) $(CFLAGS) -c -o $@ $< clean: rm -f $(SRC_DIR)/*.o $(BIN) install: all @echo "Installing $(BIN) to $(DESTDIR)$(PREFIX)/bin..." @mkdir -p $(DESTDIR)$(PREFIX)/bin @install -m 755 $(BIN) $(DESTDIR)$(PREFIX)/bin/$(BIN) @echo "Installation complete." uninstall: @echo "Uninstalling $(BIN) from $(DESTDIR)$(PREFIX)/bin..." @rm -f $(DESTDIR)$(PREFIX)/bin/$(BIN) @echo "Uninstallation complete." clean-install: clean install .PHONY: all clean install uninstall clean-install