@@ -27,6 +27,7 @@ BOTAN_PKG ?= $(call pkg-select-ab,botan-3,botan-2)
2727CAPSTONE_PKG ?= capstone
2828JANSSON_PKG ?= jansson
2929LUA_PKG ?= $(call pkg-select-ab,lua5.3,lua)
30+ JQ ?= jq
3031
3132EXE ?= rehex
3233EMBED_EXE ?= ./tools/embed
@@ -717,17 +718,17 @@ wxLua/%.cpp: $(WXLUA_BINDINGS)
717718# The compile_commands.json fragment for each file is written out under .cc/ and then merged into
718719# the top-level compile_commands.json, all are rebuilt when the Makefile(s) are changed.
719720
720- COMPILE_COMMAND_DEPENDENCIES := $(wildcard Makefile Makefile.* )
721+ COMPILE_COMMAND_DEPENDENCIES := $(wildcard Makefile Makefile.* ) $( JQ )
721722COMPILE_COMMAND_INTERMEDIATE_DIR := .cc
722723
723724.PHONY : compile_commands.json
724725compile_commands.json : $(addprefix $(COMPILE_COMMAND_INTERMEDIATE_DIR ) /,$(addsuffix .compile_command.json,$(APP_OBJS ) $(TEST_OBJS ) ) )
725- cat $^ | jq -s . > $@
726+ cat $^ | $( JQ ) -s . > $@
726727
727728# $(call emit-compile-command,$(COMPILE_COMMAND_INTERMEDIATE_DIR)/foo.o.compile_command.json,foo.c,$(CC) $(CFLAGS))
728729define emit-compile-command
729730 @mkdir -p $(dir $(1 ) )
730- echo "{ \"directory\": $$(pwd | jq -R . ) , \"file\": $$(echo "$(patsubst $(COMPILE_COMMAND_INTERMEDIATE_DIR ) /% ,% ,$(patsubst % .compile_command.json,% ,$(2 ) ) ) " | jq -R . ) , \"command\": $$(echo "$(3 ) -o $(2 ) $(patsubst $(COMPILE_COMMAND_INTERMEDIATE_DIR ) /% ,% ,$(patsubst % .compile_command.json,% ,$(2 ) ) ) " | jq -R . ) }" > $(1 )
731+ echo "{ \"directory\": $$(pwd | $( JQ ) -R . ) , \"file\": $$(echo "$(patsubst $(COMPILE_COMMAND_INTERMEDIATE_DIR ) /% ,% ,$(patsubst % .compile_command.json,% ,$(2 ) ) ) " | $( JQ ) -R . ) , \"command\": $$(echo "$(3 ) -o $(2 ) $(patsubst $(COMPILE_COMMAND_INTERMEDIATE_DIR ) /% ,% ,$(patsubst % .compile_command.json,% ,$(2 ) ) ) " | $( JQ ) -R . ) }" > $(1 )
731732endef
732733
733734$(COMPILE_COMMAND_INTERMEDIATE_DIR ) /googletest/src/% .o.compile_command.json : googletest/src/% .cc $(GTKCONFIG_EXE ) $(COMPILE_COMMAND_DEPENDENCIES )
@@ -751,6 +752,9 @@ $(COMPILE_COMMAND_INTERMEDIATE_DIR)/%.o.compile_command.json: %.cpp $(GTKCONFIG_
751752$(COMPILE_COMMAND_INTERMEDIATE_DIR ) /% .$(BUILD_TYPE ) .o.compile_command.json : % .cpp $(GTKCONFIG_EXE ) $(COMPILE_COMMAND_DEPENDENCIES )
752753 $(call emit-compile-command,$@ ,$< ,$(CXX ) $(CXXFLAGS ) )
753754
755+ # Dummy rule for jq on platforms where we rely on a system-provided binary.
756+ jq :
757+
754758.PHONY : help/rehex.chm
755759help/rehex.chm :
756760 $(MAKE ) -C help/ rehex.chm
0 commit comments