From 4ca711941423a9bdd206b3efb298aa9793682f10 Mon Sep 17 00:00:00 2001 From: Randy Palamar Date: Thu, 17 Aug 2023 15:13:14 -0600 Subject: build: don't pollute base dir with .o and .d files some users were (rightfully) annoyed by this --- .gitignore | 2 +- Makefile | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 950e4d8..9b114f2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ /config.h /config.mk /dependency +/obj /vis /vis-menu /vis-single @@ -11,5 +12,4 @@ *.gcno *.gcov *.html -*.o *.d diff --git a/Makefile b/Makefile index 13fa0ea..16a630a 100644 --- a/Makefile +++ b/Makefile @@ -27,7 +27,7 @@ SRC = array.c \ vis-registers.c \ vis-text-objects.c \ $(REGEX_SRC) -OBJ = $(SRC:.c=.o) +OBJ = $(SRC:%.c=obj/%.o) ELF = vis vis-menu vis-digraph EXECUTABLES = $(ELF) vis-clipboard vis-complete vis-open @@ -74,20 +74,21 @@ DOCKER?=docker all: $(ELF) -.c.o: - ${CC} ${CFLAGS} ${CFLAGS_VIS} ${CFLAGS_EXTRA} -o $@ -c $< - config.h: cp config.def.h config.h config.mk: @touch $@ -main.o: config.h +obj: + mkdir obj + +obj/main.o: config.h | obj -$(OBJ): config.mk +$(OBJ): config.mk | obj + ${CC} ${CFLAGS} ${CFLAGS_VIS} ${CFLAGS_EXTRA} -o $@ -c $(@:obj/%.o=%.c) --include *.d +-include obj/*.d vis: ${OBJ} ${CC} -o $@ ${OBJ} ${LDFLAGS} ${LDFLAGS_VIS} ${LDFLAGS_EXTRA} @@ -158,7 +159,8 @@ testclean: clean: @echo cleaning - @rm -f $(ELF) $(OBJ) vis-single vis-single-payload.inc vis-*.tar.gz *.gcov *.gcda *.gcno *.d + @rm -rf obj + @rm -f $(ELF) vis-single vis-single-payload.inc vis-*.tar.gz *.gcov *.gcda *.gcno *.d distclean: clean testclean @echo cleaning build configuration -- cgit v1.2.3