# using libavif from https://github.com/AOMediaCodec/libavif CODEC_URL = https://github.com/AOMediaCodec/libavif/archive/refs/tags/v1.0.1.tar.gz CODEC_PACKAGE = node_modules/libavif.tar.gz # Take from libavif/ext/libsharpyuv.cmd WEBP_URL = https://chromium.googlesource.com/webm/libwebp WEBP_COMMIT = e2c85878f6a33f29948b43d3492d9cdaf801aa54 # using libaom from https://aomedia.googlesource.com/aom LIBAOM_URL = https://aomedia.googlesource.com/aom/+archive/v3.7.0.tar.gz LIBAOM_PACKAGE = node_modules/libaom.tar.gz export CODEC_DIR = node_modules/libavif export BUILD_DIR = node_modules/build export LIBAOM_DIR = node_modules/libaom export LIBSHARPYUV_DIR = node_modules/libavif/ext/libwebp override CFLAGS += "-Wno-unused-macros" OUT_ENC_JS = enc/avif_enc.js OUT_NODE_ENC_JS = enc/avif_node_enc.js OUT_ENC_MT_JS = enc/avif_enc_mt.js OUT_NODE_ENC_MT_JS = enc/avif_node_enc_mt.js OUT_DEC_JS = dec/avif_dec.js OUT_NODE_DEC_JS = dec/avif_node_dec.js OUT_ENC_CPP = enc/avif_enc.cpp OUT_DEC_CPP = dec/avif_dec.cpp ENVIRONMENT = worker HELPER_MAKEFLAGS := -f helper.Makefile .PHONY: buildsharp all clean all: $(OUT_ENC_JS) $(OUT_DEC_JS) $(OUT_ENC_MT_JS) $(OUT_ENC_JS): $(OUT_ENC_CPP) $(CODEC_DIR)/CMakeLists.txt $(LIBAOM_DIR)/CMakeLists.txt $(MAKE) \ $(HELPER_MAKEFLAGS) \ OUT_JS=$@ \ OUT_CPP=$< \ LIBAOM_FLAGS="\ -DCONFIG_AV1_DECODER=0 \ -DCONFIG_MULTITHREAD=0 \ -DCONFIG_AV1_HIGHBITDEPTH=0 \ " \ ENVIRONMENT=$(ENVIRONMENT) \ LIBAVIF_FLAGS="-DAVIF_CODEC_AOM_DECODE=0 -DAVIF_CHROMA_DOWNSAMPLING_SHARP_YUV=ON" $(OUT_ENC_MT_JS): $(OUT_ENC_CPP) $(CODEC_DIR)/CMakeLists.txt $(LIBAOM_DIR)/CMakeLists.txt $(MAKE) \ $(HELPER_MAKEFLAGS) \ OUT_JS=$@ \ OUT_CPP=$< \ LIBAOM_FLAGS="\ -DCONFIG_AV1_DECODER=0 \ -DCONFIG_AV1_HIGHBITDEPTH=0 \ " \ ENVIRONMENT=$(ENVIRONMENT) \ LIBAVIF_FLAGS="-DAVIF_CODEC_AOM_DECODE=0 -DAVIF_CHROMA_DOWNSAMPLING_SHARP_YUV=ON" \ OUT_FLAGS="-pthread" $(OUT_DEC_JS): $(OUT_DEC_CPP) $(CODEC_DIR)/CMakeLists.txt $(LIBAOM_DIR)/CMakeLists.txt $(MAKE) \ $(HELPER_MAKEFLAGS) \ OUT_JS=$@ \ OUT_CPP=$< \ LIBAOM_FLAGS="\ -DCONFIG_AV1_ENCODER=0 \ -DCONFIG_MULTITHREAD=0 \ " \ ENVIRONMENT=$(ENVIRONMENT) \ LIBAVIF_FLAGS="-DAVIF_CODEC_AOM_ENCODE=0 -DAVIF_LOCAL_LIBSHARPYUV=ON" $(CODEC_PACKAGE): mkdir -p $(@D) curl -sL $(CODEC_URL) -o $@ $(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) OUT_JS=$(OUT_ENC_JS) clean $(MAKE) $(HELPER_MAKEFLAGS) OUT_JS=$(OUT_ENC_MT_JS) clean $(MAKE) $(HELPER_MAKEFLAGS) OUT_JS=$(OUT_ENC_NODE_JS) clean $(MAKE) $(HELPER_MAKEFLAGS) OUT_JS=$(OUT_ENC_NODE_MT_JS) clean $(MAKE) $(HELPER_MAKEFLAGS) OUT_JS=$(OUT_DEC_JS) clean $(MAKE) $(HELPER_MAKEFLAGS) OUT_JS=$(OUT_DEV_NODE_JS) clean