From 81c183b0d6085aa550e210d2affe0e2baff82b13 Mon Sep 17 00:00:00 2001 From: Ingvar Stepanyan Date: Sat, 31 Oct 2020 00:22:51 +0000 Subject: [PATCH] Restructure the AVIF directories Change the way AVIF finds AOM from default ([avif source]/ext/aom) to custom paths. This allows us to avoid unpacking same archives into duplicate folders, and instead make multiple builds from the same source. --- codecs/avif/Makefile | 35 ++++++++++++++++++++--------------- codecs/avif/helper.Makefile | 15 +++++---------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/codecs/avif/Makefile b/codecs/avif/Makefile index 8d47d6fc..fd3fc88b 100644 --- a/codecs/avif/Makefile +++ b/codecs/avif/Makefile @@ -4,9 +4,11 @@ CODEC_PACKAGE = node_modules/libavif.tar.gz LIBAOM_URL = https://aomedia.googlesource.com/aom/+archive/v2.0.0.tar.gz LIBAOM_PACKAGE = node_modules/libaom.tar.gz -CODEC_ENC_DIR = node_modules/libavif-enc -CODEC_ENC_MT_DIR = node_modules/libavif-enc-mt -CODEC_DEC_DIR = node_modules/libavif-dec +CODEC_DIR = node_modules/libavif +BUILD_DIR := node_modules/build +ENC_BUILD_DIR := $(BUILD_DIR)/enc +ENC_MT_BUILD_DIR := $(BUILD_DIR)/enc-mt +DEC_BUILD_DIR := $(BUILD_DIR)/dec LIBAOM_DIR = node_modules/libaom OUT_ENC_JS = enc/avif_enc.js @@ -17,18 +19,17 @@ OUT_ENC_CPP = enc/avif_enc.cpp OUT_DEC_CPP = dec/avif_dec.cpp HELPER_MAKEFLAGS := -f helper.Makefile \ - LIBAOM_DIR=$(LIBAOM_DIR) \ - CODEC_PACKAGE=$(CODEC_PACKAGE) \ - LIBAOM_PACKAGE=$(LIBAOM_PACKAGE) + CODEC_DIR=$(CODEC_DIR) \ + LIBAOM_DIR=$(LIBAOM_DIR) .PHONY: all clean all: $(OUT_ENC_JS) $(OUT_DEC_JS) $(OUT_ENC_MT_JS) -$(OUT_ENC_JS): $(OUT_ENC_CPP) $(CODEC_PACKAGE) $(LIBAOM_DIR)/CMakeLists.txt +$(OUT_ENC_JS): $(OUT_ENC_CPP) $(CODEC_DIR)/CMakeLists.txt $(LIBAOM_DIR)/CMakeLists.txt $(MAKE) \ $(HELPER_MAKEFLAGS) \ - CODEC_DIR=$(CODEC_ENC_DIR) \ + BUILD_DIR=$(ENC_BUILD_DIR) \ OUT_JS=$@ \ OUT_CPP=$< \ LIBAOM_FLAGS="\ @@ -38,10 +39,10 @@ $(OUT_ENC_JS): $(OUT_ENC_CPP) $(CODEC_PACKAGE) $(LIBAOM_DIR)/CMakeLists.txt " \ LIBAVIF_FLAGS="-DAVIF_CODEC_AOM_DECODE=0" -$(OUT_ENC_MT_JS): $(OUT_ENC_CPP) $(CODEC_PACKAGE) $(LIBAOM_DIR)/CMakeLists.txt +$(OUT_ENC_MT_JS): $(OUT_ENC_CPP) $(CODEC_DIR)/CMakeLists.txt $(LIBAOM_DIR)/CMakeLists.txt $(MAKE) \ $(HELPER_MAKEFLAGS) \ - CODEC_DIR=$(CODEC_ENC_MT_DIR) \ + BUILD_DIR=$(ENC_MT_BUILD_DIR) \ OUT_JS=$@ \ OUT_CPP=$< \ LIBAOM_FLAGS="\ @@ -51,10 +52,10 @@ $(OUT_ENC_MT_JS): $(OUT_ENC_CPP) $(CODEC_PACKAGE) $(LIBAOM_DIR)/CMakeLists.txt LIBAVIF_FLAGS="-DAVIF_CODEC_AOM_DECODE=0" \ OUT_FLAGS="-pthread" -$(OUT_DEC_JS): $(OUT_DEC_CPP) $(CODEC_PACKAGE) $(LIBAOM_DIR)/CMakeLists.txt +$(OUT_DEC_JS): $(OUT_DEC_CPP) $(CODEC_DIR)/CMakeLists.txt $(LIBAOM_DIR)/CMakeLists.txt $(MAKE) \ $(HELPER_MAKEFLAGS) \ - CODEC_DIR=$(CODEC_DEC_DIR) \ + BUILD_DIR=$(DEC_BUILD_DIR) \ OUT_JS=$@ \ OUT_CPP=$< \ LIBAOM_FLAGS="\ @@ -71,11 +72,15 @@ $(LIBAOM_PACKAGE): mkdir -p $(@D) curl -sL $(LIBAOM_URL) -o $@ +$(CODEC_DIR)/CMakeLists.txt: $(CODEC_PACKAGE) + mkdir -p $(@D) + tar xzm --strip 1 -C $(@D) -f $(CODEC_PACKAGE) + $(LIBAOM_DIR)/CMakeLists.txt: $(LIBAOM_PACKAGE) mkdir -p $(@D) tar xzm -C $(@D) -f $(LIBAOM_PACKAGE) clean: - $(MAKE) $(HELPER_MAKEFLAGS) CODEC_DIR=$(CODEC_ENC_DIR) OUT_JS=$(OUT_ENC_JS) clean - $(MAKE) $(HELPER_MAKEFLAGS) CODEC_DIR=$(CODEC_ENC_MT_DIR) OUT_JS=$(OUT_ENC_MT_JS) clean - $(MAKE) $(HELPER_MAKEFLAGS) CODEC_DIR=$(CODEC_DEC_DIR) OUT_JS=$(OUT_DEC_JS) clean + $(MAKE) $(HELPER_MAKEFLAGS) BUILD_DIR=$(ENC_BUILD_DIR) OUT_JS=$(OUT_ENC_JS) clean + $(MAKE) $(HELPER_MAKEFLAGS) BUILD_DIR=$(ENC_MT_BUILD_DIR) OUT_JS=$(OUT_ENC_MT_JS) clean + $(MAKE) $(HELPER_MAKEFLAGS) BUILD_DIR=$(DEC_BUILD_DIR) OUT_JS=$(OUT_DEC_JS) clean diff --git a/codecs/avif/helper.Makefile b/codecs/avif/helper.Makefile index 852dd473..e582dcfb 100644 --- a/codecs/avif/helper.Makefile +++ b/codecs/avif/helper.Makefile @@ -3,17 +3,16 @@ # Params that must be supplied by the caller: # $(CODEC_DIR) # $(LIBAOM_DIR) +# $(BUILD_DIR) # $(OUT_JS) # $(OUT_CPP) # $(LIBAOM_FLAGS) # $(LIBAVIF_FLAGS) -# $(CODEC_PACKAGE) -# $(LIBAOM_PACKAGE) -CODEC_BUILD_DIR := $(CODEC_DIR)/build +CODEC_BUILD_DIR := $(BUILD_DIR)/libavif CODEC_OUT := $(CODEC_BUILD_DIR)/libavif.a -LIBAOM_BUILD_DIR := $(CODEC_DIR)/ext/aom/build.libavif +LIBAOM_BUILD_DIR := $(BUILD_DIR)/libaom LIBAOM_OUT := $(LIBAOM_BUILD_DIR)/libaom.a OUT_WASM = $(OUT_JS:.js=.wasm) @@ -42,8 +41,8 @@ $(CODEC_OUT): $(CODEC_DIR)/CMakeLists.txt $(LIBAOM_OUT) -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS=0 \ -DAVIF_CODEC_AOM=1 \ - -DAVIF_LOCAL_AOM=1 \ - -DAVIF_CODEC_INCLUDES=$(abspath $(LIBAOM_DIR)) \ + -DAOM_LIBRARY=$(LIBAOM_OUT) \ + -DAOM_INCLUDE_DIR=$(LIBAOM_DIR) \ $(LIBAVIF_FLAGS) \ -B $(CODEC_BUILD_DIR) \ $(CODEC_DIR) && \ @@ -67,10 +66,6 @@ $(LIBAOM_OUT): $(LIBAOM_DIR)/CMakeLists.txt $(LIBAOM_DIR) && \ $(MAKE) -C $(LIBAOM_BUILD_DIR) -$(CODEC_DIR)/CMakeLists.txt: $(CODEC_PACKAGE) - mkdir -p $(@D) - tar xzm --strip 1 -C $(@D) -f $(CODEC_PACKAGE) - clean: $(RM) $(OUT_JS) $(OUT_WASM) $(OUT_WORKER) $(MAKE) -C $(CODEC_BUILD_DIR) clean