From b369cd66b92b3589b7b17f8a57a884a987c7084b Mon Sep 17 00:00:00 2001 From: orbea Date: Tue, 7 Jan 2025 08:25:45 -0800 Subject: [PATCH] build: improve the clean target * Uses a sentinel file for the obj directory. * Removes the binary with 'make clean'. * Uses 'rm -f` to ensure the clean target always succeeds. --- Makefile | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index b3880f3..b506123 100644 --- a/Makefile +++ b/Makefile @@ -21,6 +21,8 @@ PKG_CONFIG ?= pkg-config XFILES := +OBJDIR := obj + SOURCES := $(SRCDIR)/*.cpp PREFIX ?= /usr @@ -83,15 +85,19 @@ ifeq ($(TARGET),gtk) endif all: $(FNAME_$(TARGET)) -obj: - mkdir obj -clean: | obj - rm obj/* || true + +$(OBJDIR)/.tag: + @mkdir -p $(OBJDIR) + @touch $@ + +clean: + rm -rf $(OBJDIR) + rm -f $(FNAME_$(TARGET)) ifeq ($(TARGET),windows) - XFILES += obj/rc.o -obj/rc.o: flips.rc flips.h | obj - windres flips.rc obj/rc.o + XFILES += $(OBJDIR)/rc.o +$(OBJDIR)/rc.o: flips.rc flips.h $(OBJDIR)/.tag + windres flips.rc $(OBJDIR)/rc.o endif MOREFLAGS := $(CFLAGS_$(TARGET))