.POSIX: # Just kidding, use GNU Make # OVERRIDE ME # PREFIX := . PROGN := probotic CC := cc CFLAGS := -std=c99 -Wall -Wextra -Wpedantic CPPFLAGS := -I/usr/bin/ircclient/ -Iinclude LDFLAGS := -lircclient SRC.DIR := src OBJ.DIR := $(PREFIX)/obj INC.DIR := include OBJ := $(addprefix $(OBJ.DIR)/,fetch.o main.o parse.o) HDR := config.h utils.h parse.h VPATH := $(INC.DIR) $(SRC.DIR) $(OBJ.DIR) ifeq ($(DEBUG),1) CFLAGS += -Og -g3 else CFLAGS += -O3 -flto=auto -fomit-frame-pointer endif ifdef SAN CFLAGS += -fsanitize=$(SAN) endif CPPFLAGS += -DPROGN="\"$(PROGN)\"" $(OBJ.DIR)/%.o: $(SRC.DIR)/%.c $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< $(PREFIX)/$(PROGN): $(VPATH) $(PREFIX) $(HDR) | $(OBJ) $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $| $(LDFLAGS) include/config.h: include/config.mk.h cp -f $< $@ $(VPATH) $(PREFIX): mkdir -p $@ clean: $(RM) $(OBJ) $(PROGN)