include ../build/Makefile-vars # See https://github.com/openssl/openssl/tags VERSION = 3.0.7 URL = https://github.com/openssl/openssl/archive/refs/tags/openssl-${VERSION}.tar.gz TARBALL = ${UPSTREAM}/openssl-${VERSION}.tar.gz POSIX_WASM = $(shell cowasm-package-path @cowasm/posix-wasm) all: deps wasm include ../build/Makefile-rules ## Native ${DIST_NATIVE}/.built: ${BUILD_NATIVE}/.build cd ../build && make zig cd ${BUILD_NATIVE} \ && CC="zig cc ${ZIG_NATIVE_CFLAGS} " \ AR="zig ar" \ LDFLAGS="-shared" \ ./Configure --prefix=${DIST_NATIVE} -no-tests -no-asm -static -no-afalgeng \ && make -j8 build_sw\ && make -j8 install_sw touch ${DIST_NATIVE}/.built ## WASM # Somebody else built openssl for webassembly once here # https://github.com/DigitalArsenal/openssl.js/tree/master/packages/openssl ${BUILD_WASM}/.patched:: ${BUILD_WASM}/.build cd ${BUILD_WASM} \ && patch --strip 1 < ${SRC}/patches/00-af-unix.patch \ && patch --strip 1 < ${SRC}/patches/01-cleanup-hack.patch \ && echo '#include "posix-wasm.h"' >> e_os.h \ && echo '#include "posix-wasm.h"' >> include/openssl/crypto.h \ && echo "#undef AF_UNIX" >> e_os.h \ && echo "#undef AF_UNIX" >> include/internal/thread_once.h touch ${BUILD_WASM}/.patched DEBUG = "" # Uncomment for debugging symbols: # DEBUG="-g" # make -j12, since openssl is structured as huge number of tiny files. ${DIST_WASM}/.built: node_modules ${BUILD_WASM}/.patched cd ../build && make zig cd ${BUILD_WASM} \ && CC="cowasm-cc" \ CFLAGS="-Oz ${DEBUG} -fvisibility-main -I${POSIX_WASM}" \ AR="zig ar" \ RANLIB="zig ranlib" \ ./Configure --prefix=${DIST_WASM} gcc no-async no-threads no-shared no-tests no-asm no-afalgeng \ && make -j12 build_sw \ && make -j12 install_sw touch ${DIST_WASM}/.built test: node_modules ${DIST_WASM}/.built test x"`echo "foo" | cowasm dist/wasm/bin/openssl md5`" = x"MD5(stdin)= d3b07384d113edec49eaa6238ad5ff00"