Improved makefile

This commit is contained in:
AnnaSnoeijs 2025-06-06 21:31:59 +02:00
parent 5379f50802
commit a2142a48b5
2 changed files with 51 additions and 6 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
obj/
out/

View file

@ -1,11 +1,54 @@
#!/usr/bin/make -f
FLAGS = -O3 -pedantic -Wall -Wextra -Werror -lncursesw
FLAGS = -O3
FLAGS += -pedantic
FLAGS += -Wall
FLAGS += -Wextra
FLAGS += -Werror
AnnaConnect: connect4.c
cc $(FLAGS) -o connect4 ui_ncurses.c logic.c connect4.c
OBJDIR = obj
OUTDIR = out
run: AnnaConnect
./connect4
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:
rm connect4
@echo
@echo $(MSG_CLEANING)
@echo $(MSG_CLEANING_OBJ)
rm $(OBJDIR)/*.o
@echo $(MSG_CLEANING_OUT)
rm $(OUTDIR)/*.elf