From a2142a48b5fb596fb7c48e4ae5761df07ba4ec9c Mon Sep 17 00:00:00 2001 From: AnnaSnoeijs Date: Fri, 6 Jun 2025 21:31:59 +0200 Subject: [PATCH] Improved makefile --- .gitignore | 2 ++ makefile | 55 ++++++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 51 insertions(+), 6 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..38e34c6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +obj/ +out/ diff --git a/makefile b/makefile index 911332f..104db08 100644 --- a/makefile +++ b/makefile @@ -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