From ffbc2d641e94552b0bbabd42d8407f4ad6bcff1b Mon Sep 17 00:00:00 2001 From: Noah Metz Date: Sun, 7 Jan 2024 01:24:20 -0700 Subject: [PATCH] Added compile_commands.json to Makefile --- .gitignore | 3 +++ Makefile | 36 +++++++++++++++++++++++++++++++++--- 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index da4cb90..85d4b89 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ spacegame *.o +.compdb +compile_commands.json +.cache diff --git a/Makefile b/Makefile index 4dfbc4e..cab4578 100644 --- a/Makefile +++ b/Makefile @@ -2,10 +2,40 @@ CFLAGS = -I/opt/homebrew/include -O2 -Wall -Wextra LDFLAGS = -L/opt/homebrew/lib -lglfw -lvulkan -ldl CC = gcc -SOURCES = $(wildcard $(SRC)/*.c) +SOURCES = $(wildcard src/*.c) + +OBJECTS = $(addsuffix .o, $(basename $(SOURCES))) + +spacegame: $(OBJECTS) + $(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS) + +.compdb/%.compdb_entry: %.c + @mkdir -p $(shell dirname $@) + @echo " {" > $@ + @echo " \"command\": \"$(CC) $(CFLAGS) -c $<\"," >> $@ + @echo " \"directory\": \"$(CURDIR)\"," >> $@ + @echo " \"file\": \"$<\"" >> $@ + @echo " }," >> $@ + +COMPDB_ENTRIES = $(addprefix .compdb/, $(addsuffix .compdb_entry, $(basename $(SOURCES)))) + +compile_commands.json: $(COMPDB_ENTRIES) + @echo "[" > $@.tmp + @cat $^ >> $@.tmp + @sed '$$d' < $@.tmp > $@ + @echo " }" >> $@ + @echo "]" >> $@ + @rm $@.tmp %.o: %.c $(CC) -c -o $@ $< $(CFLAGS) -spacegame: src/main.o - $(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS) +.PHONY: clean clean_compdb + +clean: + rm $(OBJECTS) + rm spacegame + +clean_compdb: + rm -rf .compdb + rm compile_commands.json