mirror of
https://github.com/GoogleChromeLabs/squoosh.git
synced 2025-11-19 03:59:09 +00:00
76 lines
1.9 KiB
Makefile
76 lines
1.9 KiB
Makefile
ROOT_DIR = node_modules
|
|
|
|
CODEC_DIR = $(ROOT_DIR)/libavif
|
|
CODEC_BUILD_DIR = build
|
|
CODEC_OUT := $(CODEC_DIR)/$(CODEC_BUILD_DIR)/libavif.a
|
|
|
|
CODEC_URL = "https://github.com/AOMediaCodec/libavif"
|
|
CODEC_VERSION = "v0.8.0"
|
|
|
|
LIBAOM_DIR := $(CODEC_DIR)/ext/aom
|
|
LIBAOM_BUILD_DIR = build.libavif
|
|
LIBAOM_OUT := $(LIBAOM_DIR)/$(LIBAOM_BUILD_DIR)/libaom.a
|
|
|
|
LIBAOM_URL = "https://aomedia.googlesource.com/aom/"
|
|
LIBAOM_VERSION = "v2.0.0"
|
|
|
|
OUT_JS = enc/avif_enc.js dec/avif_dec.js
|
|
OUT_WASM = $(OUT_JS:.js=.wasm)
|
|
|
|
.PHONY: all clean
|
|
|
|
all: $(OUT_JS)
|
|
|
|
%.js: %.cpp $(LIBAOM_OUT) $(CODEC_OUT)
|
|
$(CXX) \
|
|
-I $(CODEC_DIR)/include \
|
|
${CXXFLAGS} \
|
|
${LDFLAGS} \
|
|
--bind \
|
|
--closure 1 \
|
|
-s ALLOW_MEMORY_GROWTH=1 \
|
|
-s MODULARIZE=1 \ -s 'EXPORT_NAME="$(basename $(@F))"' \
|
|
-o $@ \
|
|
$+
|
|
|
|
$(LIBAOM_OUT): $(LIBAOM_DIR)/CMakeLists.txt
|
|
mkdir -p $(LIBAOM_DIR)/$(LIBAOM_BUILD_DIR) && \
|
|
cd $(LIBAOM_DIR)/$(LIBAOM_BUILD_DIR) && \
|
|
emcmake cmake \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DENABLE_CCACHE=0 \
|
|
-DAOM_TARGET_CPU=generic \
|
|
-DENABLE_DOCS=0 \
|
|
-DENABLE_TESTS=0 \
|
|
-DENABLE_EXAMPLES=0 \
|
|
-DCONFIG_ACCOUNTING=1 \
|
|
-DCONFIG_INSPECTION=0 \
|
|
-DCONFIG_MULTITHREAD=0 \
|
|
-DCONFIG_RUNTIME_CPU_DETECT=0 \
|
|
-DCONFIG_WEBM_IO=0 \
|
|
../ && \
|
|
$(MAKE)
|
|
|
|
$(LIBAOM_DIR)/CMakeLists.txt: $(CODEC_DIR)/CMakeLists.txt
|
|
mkdir -p $(LIBAOM_DIR)
|
|
curl -L $(LIBAOM_URL)/+archive/$(LIBAOM_VERSION).tar.gz | tar -xzf - -C $(LIBAOM_DIR)
|
|
|
|
$(CODEC_OUT): $(LIBAOM_OUT)
|
|
mkdir -p $(CODEC_DIR)/$(CODEC_BUILD_DIR) && \
|
|
cd $(CODEC_DIR)/$(CODEC_BUILD_DIR) && \
|
|
emcmake cmake \
|
|
DCMAKE_BUILD_TYPE=Release \
|
|
-DAVIF_CODEC_AOM=1 \
|
|
-DAVIF_LOCAL_AOM=1 \
|
|
../ && \
|
|
$(MAKE)
|
|
|
|
$(CODEC_DIR)/CMakeLists.txt:
|
|
mkdir -p $(CODEC_DIR)
|
|
curl -L $(CODEC_URL)/archive/$(CODEC_VERSION).tar.gz | tar -xzf - --strip 1 -C $(CODEC_DIR)
|
|
|
|
clean:
|
|
$(RM) $(OUT_JS) $(OUT_WASM)
|
|
$(MAKE) -C $(CODEC_DIR)/$(CODEC_BUILD_DIR) clean
|
|
$(MAKE) -C $(LIBAOM_DIR)/$(LIBAOM_BUILD_DIR) clean
|