From 8b5a22e9f81651c94bdbcf7007eec5d043a41c38 Mon Sep 17 00:00:00 2001 From: Greg Richardson Date: Tue, 20 Feb 2024 11:40:54 -0700 Subject: [PATCH] feat: better makefile dependency management --- Makefile | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 8d933d7..3442806 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,8 @@ WASM_OUT_DIR := wasm WASM_OUT_NAME := libpg-query WASM_MODULE_NAME := PgQueryModule -LIBPG_QUERY_REPO := https://github.com/gregnr/libpg_query.git -LIBPG_QUERY_BRANCH := fix/ar-command-in-makefile +LIBPG_QUERY_REPO := https://github.com/pganalyze/libpg_query.git +LIBPG_QUERY_BRANCH := 15-latest CACHE_DIR := .cache OS ?= $(shell uname -s) @@ -24,7 +24,9 @@ endif PLATFORM_ARCH := $(PLATFORM)-$(ARCH) SRC_FILES := $(wildcard src/*.cc) -LIBPG_QUERY_DIR := $(CACHE_DIR)/$(PLATFORM_ARCH)/libpg_query +LIBPG_QUERY_DIR := $(CACHE_DIR)/$(PLATFORM_ARCH)/libpg_query/$(LIBPG_QUERY_BRANCH) +LIBPG_QUERY_ARCHIVE := $(LIBPG_QUERY_DIR)/libpg_query.a +LIBPG_QUERY_HEADER := $(LIBPG_QUERY_DIR)/pg_query.h CXXFLAGS := -O3 ifdef EMSCRIPTEN @@ -47,12 +49,19 @@ clean: clean-cache: -@ rm -rf $(LIBPG_QUERY_DIR) +# Clone libpg_query source (lives in CACHE_DIR) $(LIBPG_QUERY_DIR): mkdir -p $(CACHE_DIR) git clone -b $(LIBPG_QUERY_BRANCH) --single-branch $(LIBPG_QUERY_REPO) $(LIBPG_QUERY_DIR) + +$(LIBPG_QUERY_HEADER): $(LIBPG_QUERY_DIR) + +# Build libpg_query +$(LIBPG_QUERY_ARCHIVE): $(LIBPG_QUERY_DIR) cd $(LIBPG_QUERY_DIR); $(MAKE) build -$(OUT_FILES): $(LIBPG_QUERY_DIR) $(SRC_FILES) +# Build libpg-query-node (based on platform) +$(OUT_FILES): $(LIBPG_QUERY_ARCHIVE) $(LIBPG_QUERY_HEADER) $(SRC_FILES) ifdef EMSCRIPTEN @ $(CXX) \ $(CXXFLAGS) \