aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorRandy Palamar <palamar@ualberta.ca>2023-08-17 15:13:14 -0600
committerRandy Palamar <palamar@ualberta.ca>2023-08-17 15:20:30 -0600
commit4ca711941423a9bdd206b3efb298aa9793682f10 (patch)
tree316c7bd53dbd0ecd3f92d0729e048e790a2fd58a /Makefile
parent3134de122dedb2523879e1506162b2513eaf1e1d (diff)
downloadvis-4ca711941423a9bdd206b3efb298aa9793682f10.tar.gz
vis-4ca711941423a9bdd206b3efb298aa9793682f10.tar.xz
build: don't pollute base dir with .o and .d files
some users were (rightfully) annoyed by this
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile18
1 files changed, 10 insertions, 8 deletions
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