# Gifsicle 1.98 → WebAssembly (public/wasm/gifsicle.mjs + gifsicle.wasm).
# Gifsicle GPL-2 lisanslı: bu dosya + gifsicle kaynak arşivi, uygulamadaki derlemenin
# "tam karşılık gelen kaynağı"dır (nexmecra.com/kaynak). Değiştirilmemiş kaynak.
#
# Derleme (bu klasörde):  docker buildx build -o out .
# Çıktı: out/gifsicle.mjs, out/gifsicle.wasm → public/wasm/
FROM emscripten/emsdk:3.1.74 AS build
ENV GIFSICLE_VERSION=1.98
ENV GIFSICLE_SHA256=e9d4cc0816db95c64d32e79f778836db0f1f7eb15868490bd330104e5146b66e
WORKDIR /src
RUN curl -fsSL -o gifsicle.tar.gz https://www.lcdf.org/gifsicle/gifsicle-${GIFSICLE_VERSION}.tar.gz \
 && echo "${GIFSICLE_SHA256}  gifsicle.tar.gz" | sha256sum -c - \
 && tar xzf gifsicle.tar.gz --strip-components=1
# gifview (X11) ve gifdiff gerekmiyor; sadece gifsicle.
RUN emconfigure ./configure --disable-gifview --disable-gifdiff --disable-threads \
 && emmake make -C src gifsicle CFLAGS="-O3"
# Her çalıştırma yeni bir örnek: çıkışta (exit) durum sıfırlanır. FS üzerinden dosya alıp verir.
RUN mkdir -p /out && emcc -O3 src/*.o -o /out/gifsicle.mjs \
      -sMODULARIZE -sEXPORT_ES6 -sEXPORT_NAME=createGifsicle \
      -sINVOKE_RUN=0 -sEXIT_RUNTIME=1 -sALLOW_MEMORY_GROWTH \
      -sENVIRONMENT=web,worker,node \
      -sEXPORTED_RUNTIME_METHODS=callMain,FS

FROM scratch AS export
COPY --from=build /out /
