include ../build/Makefile-vars # See https://github.com/sagemathinc/zlib/releases ZLIB_VERSION = 1.2.13 # https://stackoverflow.com/questions/18136918/how-to-get-current-relative-directory-of-your-makefile all: deps wasm URL = https://github.com/sagemathinc/zlib/archive/refs/tags/${ZLIB_VERSION}.tar.gz TARBALL = ${UPSTREAM}/zlib-${ZLIB_VERSION}.tar.xz include ../build/Makefile-rules # NATIVE ${DIST_NATIVE}/.built: ${BUILD_NATIVE}/.build cd ../build && make zig cd ${BUILD_NATIVE} \ && AR="zig ar" \ CC="zig cc ${ZIG_NATIVE_CFLAGS_GNU} " \ ./configure --static --prefix=${DIST_NATIVE} \ && make install -j8 touch ${DIST_NATIVE}/.built # WASM ${DIST_WASM}/.built: ${BUILD_WASM}/.build cd ../build && make zig cd ${BUILD_WASM} \ && CHOST=none \ AR="zig ar" \ CC="cowasm-cc" \ CFLAGS="-Oz -fvisibility-main" \ ./configure --static --prefix=${DIST_WASM} \ && make -j8 install # Strangely the libz.a that gets built is mangled, e.g., "nm -a libz.a" # says "LLVM ERROR: malformed uleb128, extends past end" # so we just rebuild the archive from scratch from all of the .o files. # This happens both with and without -fPIC. cd ${BUILD_WASM} && \ rm libz.a && \ zig ar rc libz.a *.o && \ cp libz.a ${DIST_WASM}/lib touch ${DIST_WASM}/.built test: ${DIST_WASM}/.built cd ${BUILD_WASM} \ && make example \ && ${BIN}/cowasm ./example