#!/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 = ncurses CC = cc 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 clean_run: clean run run: $(OUTDIR)/connect4_$(UI_TARGET).elf ./$< $(OUTDIR)/connect4_ncurses.elf: $(OBJDIR)/ui_ncurses.o $(OBJDIR)/logic.o $(OBJDIR)/connect4.o @echo @echo $(MSG_LINKING) $@ mkdir -p $(@D) $(CC) $(FLAGS) -lncursesw -o $@ $^ $(OUTDIR)/connect4_%.elf: $(OBJDIR)/ui_%.o $(OBJDIR)/logic.o $(OBJDIR)/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 $(OBJDIR)/*.o @echo $(MSG_CLEANING_OUT) rm $(OUTDIR)/*.elf