58 lines
1 KiB
Makefile
58 lines
1 KiB
Makefile
#!/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
|