#!/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: $(OUTDIR)/connect4_$(UI_TARGET).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 @echo $(MSG_LINKING) $@ mkdir -p $(@D) $(CC) $(FLAGS) -lncursesw -o $@ $^ $(OUTDIR)/connect4_%.elf: $(addprefix $(OBJDIR)/,ui_%.o logic.o connect4.o) @echo @echo $(MSG_LINKING) $@ mkdir -p $(@D) $(CC) $(FLAGS) -o $@ $^ $(OBJDIR)/%.o: %.c @echo @echo $(MSG_COMPILING) $^ mkdir -p $(@D) $(CC) -c $(FLAGS) -o $@ $^ clean: @echo @echo $(MSG_CLEANING) @echo $(MSG_CLEANING_OBJ) rm -f $(OBJDIR)/*.o @echo $(MSG_CLEANING_OUT) rm -f $(OUTDIR)/*.elf