mirror of
https://github.com/GoogleChromeLabs/squoosh.git
synced 2025-11-19 12:08:57 +00:00
87 lines
2.1 KiB
Makefile
87 lines
2.1 KiB
Makefile
CODEC_URL := https://github.com/BinomialLLC/basis_universal/archive/refs/tags/v1.15_rel2.tar.gz
|
|
CODEC_DIR := node_modules/basis
|
|
CODEC_BUILD_DIR := $(CODEC_DIR)/build
|
|
CODEC_LIB := $(CODEC_BUILD_DIR)/basis.a
|
|
ENVIRONMENT = worker
|
|
|
|
OUT_JS := enc/basis_enc.js dec/basis_dec.js
|
|
OUT_WASM := $(OUT_JS:.js=.wasm)
|
|
|
|
# TODO: Go back to -O3
|
|
COMMON_FLAGS := -O0 -g -fno-strict-aliasing
|
|
|
|
override CXXFLAGS += $(COMMON_FLAGS)
|
|
override CFLAGS += $(COMMAN_FLAGS)
|
|
|
|
CODEC_CPP_SOURCE_FILES := \
|
|
encoder/basisu_comp.cpp \
|
|
encoder/basisu_enc.cpp \
|
|
encoder/basisu_backend.cpp \
|
|
encoder/basisu_basis_file.cpp \
|
|
encoder/basisu_etc.cpp \
|
|
encoder/basisu_uastc_enc.cpp \
|
|
encoder/basisu_gpu_texture.cpp \
|
|
encoder/basisu_frontend.cpp \
|
|
encoder/basisu_bc7enc.cpp \
|
|
encoder/basisu_pvrtc1_4.cpp \
|
|
encoder/basisu_astc_decomp.cpp \
|
|
encoder/basisu_global_selector_palette_helpers.cpp \
|
|
encoder/basisu_resampler.cpp \
|
|
encoder/basisu_kernels_sse.cpp \
|
|
encoder/jpgd.cpp \
|
|
encoder/lodepng.cpp \
|
|
transcoder/basisu_transcoder.cpp
|
|
|
|
CODEC_C_SOURCE_FILES := \
|
|
encoder/apg_bmp.c \
|
|
zstd/zstd.c
|
|
|
|
# TODO: Remove me
|
|
override CXXFLAGS += -DBASISU_FORCE_DEVEL_MESSAGES=1
|
|
|
|
.PHONY: all clean
|
|
|
|
all: $(CODEC_DIR) $(OUT_JS)
|
|
|
|
# Define dependencies for all variations of build artifacts.
|
|
$(filter enc/%,$(OUT_JS)): enc/basis_enc.cpp
|
|
$(filter dec/%,$(OUT_JS)): dec/basis_dec.cpp
|
|
|
|
# TODO: Make it build for node
|
|
# enc/mozjpeg_node_enc.js dec/mozjpeg_node_dec.js: ENVIRONMENT = node
|
|
|
|
%.js: $(CODEC_LIB)
|
|
$(CXX) \
|
|
-I $(CODEC_DIR)/encoder \
|
|
-I $(CODEC_DIR)/transcoder \
|
|
${CXXFLAGS} \
|
|
${LDFLAGS} \
|
|
--closure 1 \
|
|
--bind \
|
|
-s ALLOW_MEMORY_GROWTH=1 \
|
|
-s MODULARIZE=1 \
|
|
-s TEXTDECODER=2 \
|
|
-s ENVIRONMENT=$(ENVIRONMENT) \
|
|
-s EXPORT_ES6=1 \
|
|
-o $@ \
|
|
$+
|
|
|
|
$(CODEC_LIB): $(CODEC_DIR)
|
|
mkdir -p $(CODEC_BUILD_DIR)
|
|
cd $(CODEC_BUILD_DIR) && \
|
|
$(CXX) \
|
|
${CXXFLAGS} \
|
|
-c $(addprefix ../, $(CODEC_CPP_SOURCE_FILES))
|
|
cd $(CODEC_BUILD_DIR) && \
|
|
$(CC) \
|
|
${CFLAGS} \
|
|
-c $(addprefix ../, $(CODEC_C_SOURCE_FILES))
|
|
$(AR) rc $(CODEC_LIB) $(CODEC_BUILD_DIR)/*.o
|
|
|
|
$(CODEC_DIR):
|
|
mkdir -p $@
|
|
curl -sL $(CODEC_URL) | tar xz --strip 1 -C $@
|
|
|
|
clean:
|
|
$(RM) -r $(OUT_JS) $(OUT_WASM) $(CODEC_BUILD_DIR)
|