include ../build/Makefile-vars all: deps wasm ${BIN}/cython # See https://github.com/cython/cython/releases VERSION = 0.29.33 URL = https://github.com/cython/cython/releases/download/${VERSION}/Cython-${VERSION}.tar.gz TARBALL = ${UPSTREAM}/cython-${VERSION}.tar.gz include ../build/Makefile-rules ${BUILD_WASM}/.built: ${BUILD_WASM}/.build cd ../build && make zig cd ${BUILD_WASM} \ && PYTHONPATH=${PIP} pnpm-exec cpython setup.py build touch ${BUILD_WASM}/.built ${DIST_WASM}/.built: ${BUILD_WASM}/.built rm -rf ${DIST_WASM} && mkdir -p ${DIST_WASM} # NOTE: there's a lot of files in Cython that are NOT .so, not .pyc, but do # need to get included. They are also not in some special "data" location. cd ${BUILD_WASM}/build/lib* \ && pnpm-exec cpython -m cowasm_bundler Cython cython.py Cython/Utility Cython/Includes \ && pnpm-exec cpython -m cowasm_bundler pyximport rm -rf ${DIST_WASM} mkdir -p ${DIST_WASM} cp ${BUILD_WASM}/cython.py ${DIST_WASM}/ cd ${DIST_WASM} && tar xf ${BUILD_WASM}/build/lib*/Cython.tar.xz cd ${DIST_WASM} && tar xf ${BUILD_WASM}/build/lib*/pyximport.tar.xz touch ${DIST_WASM}/.built ${BIN}/cython: bin/cython ln -sf ${CWD}/bin/cython ${BIN}/cython # This is NOT the cython test suite, which is difficult to run due to using threads # and probably doesn't work. But we at least test something, which is building and # running some of the demos. # We touch numpy.py below is a little hack to disable the numpy test. # That test fails since there's a bunch # we need to do regarding disabling setjmp, etc., to get this stuff to build. test: wasm # Test that importing from the bundle works: PYTHONPATH=${DIST_WASM} pnpm-exec cpython -c 'import Cython' # Run an actual demo test suite cd ${BUILD_WASM}/Demos \ && rm -f *.so *.c \ && touch numpy.py \ && pnpm-exec cpython setup.py build_ext --inplace \ && pnpm-exec cpython run_primes.py 20 \ && pnpm-exec cpython run_spam.py \ && pnpm-exec cpython integrate_timing.py