#!/usr/bin/make -f FLAGS = -O3 FLAGS += -pedantic FLAGS += -Wall FLAGS += -Wextra FLAGS += -Werror OBJDIR = obj OUTDIR = out OBJ = $(SRC:%.c=$(OBJDIR)/%.o) #UI_TARGET = vt100 UI_TARGET = ncurses CC = cc .NOTINTERMEDIATE: MSG_LINKING = Linking: MSG_COMPILING = Compiling C: MSG_CLEANING = Cleaning: MSG_CLEANING_OBJ = Cleaning $(OBJDIR): MSG_CLEANING_OUT = Cleaning $(OUTDIR): all: $(addprefix $(OUTDIR)/connect4_,ncurses.elf vt100.elf) run: $(OUTDIR)/connect4_$(UI_TARGET).elf ./$< run_%: $(OUTDIR)/connect4_%.elf ./$< $(OUTDIR)/connect4_ncurses.elf: $(addprefix $(OBJDIR)/,ui_ncurses.o logic.o connect4.o) @echo $(MSG_LINKING) $@ @mkdir -p $(@D) $(CC) $(FLAGS) -lncursesw -o $@ $^ $(OUTDIR)/connect4_%.elf: $(addprefix $(OBJDIR)/,ui_%.o logic.o connect4.o) @echo $(MSG_LINKING) $@ @mkdir -p $(@D) $(CC) $(FLAGS) -o $@ $^ $(OBJDIR)/%.o: %.c @echo $(MSG_COMPILING) $^ @mkdir -p $(@D) $(CC) -c $(FLAGS) -o $@ $^ clean: @echo $(MSG_CLEANING) @echo $(MSG_CLEANING_OBJ) rm -f $(OBJDIR)/*.o @echo $(MSG_CLEANING_OUT) rm -f $(OUTDIR)/*.elf