.SILENT: SCHEME=chibi DOCKER_TAG=latest RNRS=r7rs LIBRARY=system AUTHOR=Retropikzel tmpdir=.tmp/${SCHEME}/${LIBRARY} SFX=scm LIB_PATHS= ifeq "${RNRS}" "r6rs" SFX=sps LIB_PATHS=-I .akku/lib endif VERSION != cat retropikzel/${LIBRARY}/VERSION PACKAGE_ARGS != cat retropikzel/${LIBRARY}/PACKAGE_ARGS 2> /dev/null || echo "" CSC_OPTIONS != cat retropikzel/${LIBRARY}/CSC_OPTIONS 2> /dev/null || echo "" APT_PACKAGES != cat retropikzel/${LIBRARY}/APT_PACKAGES 2> /dev/null || echo "" LIBRARY_FILE=retropikzel/${LIBRARY}.sld DESCRIPTION != head -n1 retropikzel/${LIBRARY}/README.md README=retropikzel/${LIBRARY}/README.html TESTFILE=retropikzel/${LIBRARY}/test.scm PKG=retropikzel-${LIBRARY}-${VERSION}.tgz ifeq "${SCHEME}" "capyscheme" DOCKER_TAG=head endif ifeq "${SCHEME}" "chibi" DOCKER_TAG=head endif ifeq "${SCHEME}" "chicken" DOCKER_TAG=head endif ifeq "${SCHEME}" "gauche" DOCKER_TAG=head endif all: package package: retropikzel/${LIBRARY}/VERSION retropikzel/${LIBRARY}/README.md retropikzel/${LIBRARY}/LICENSE echo "
$$(cat retropikzel/${LIBRARY}/README.md)
" > ${README} snow-chibi package \ --always-yes \ ${PACKAGE_ARGS} \ --version=${VERSION} \ --authors=${AUTHOR} \ --doc=${README} \ --description="${DESCRIPTION}" \ ${LIBRARY_FILE} ${PKG}: package install: snow-chibi install --impls=${SCHEME} --always-yes ${PKG} testfiles: ${PKG} rm -rf ${tmpdir} mkdir -p ${tmpdir} cp -r test-resources ${tmpdir} # R6RS testfiles printf "#!r6rs\n(import (except (rnrs) remove) (srfi :64) (foreign c) (retropikzel ${LIBRARY}))" > ${tmpdir}/test.sps cat ${TESTFILE} >> ${tmpdir}/test.sps # R7RS testfiles echo "(import (scheme base) (scheme write) (scheme read) (scheme char) (scheme file) (scheme process-context) (srfi 64) (foreign c) (retropikzel ${LIBRARY}))" > ${tmpdir}/test.scm cat ${TESTFILE} >> ${tmpdir}/test.scm cp ${PKG} ${tmpdir} test: testfiles cd ${tmpdir} && \ COMPILE_R7RS_DEBUG=1 \ COMPILE_R7RS=${SCHEME} \ CSC_OPTIONS="${CSC_OPTIONS}" \ compile-r7rs ${LIB_PATHS} -o test-program test.${SFX} cd ${tmpdir} && ./test-program test-docker: testfiles cd ${tmpdir} && \ TEST_R7RS_DEBUG=1 \ DOCKER_TAG=${DOCKER_TAG} \ COMPILE_R7RS=${SCHEME} \ CSC_OPTIONS="${CSC_OPTIONS}" \ SNOW_PACKAGES="srfi.64 ${PKG}" \ AKKU_PACKAGES="akku-r7rs" \ APT_PACKAGES="${APT_PACKAGES}" \ PASS_ENV_VARS="CSC_OPTIONS" \ test-r7rs ${LIB_PATHS} -o test-program test.${SFX} clean: git clean -X -f