64 lines
1.5 KiB
Makefile
64 lines
1.5 KiB
Makefile
SCHEME=chibi
|
|
RNRS=r7rs
|
|
SRFI=170
|
|
AUTHOR=Retropikzel
|
|
|
|
SRFI_FILE=srfi/${SRFI}.sld
|
|
VERSION=$(shell cat srfi/${SRFI}/VERSION)
|
|
DESCRIPTION=$(shell head -n1 srfi/${SRFI}/README.md)
|
|
README=srfi/${SRFI}/README.html
|
|
TESTFILE=srfi/${SRFI}/test.scm
|
|
TMPDIR=.tmp/${SCHEME}
|
|
|
|
PKG=srfi-${SRFI}-${VERSION}.tgz
|
|
|
|
SFX=scm
|
|
ifeq "${RNRS}" "r6rs"
|
|
SFX=sps
|
|
endif
|
|
|
|
DOCKER_TAG=head
|
|
ifeq "${SCHEME}" "chicken"
|
|
DOCKER_TAG=5
|
|
endif
|
|
|
|
all: package
|
|
|
|
package: srfi/${SRFI}/LICENSE srfi/${SRFI}/VERSION
|
|
echo "<pre>$$(cat srfi/${SRFI}/README.md)</pre>" > ${README}
|
|
snow-chibi package \
|
|
--version=${VERSION} \
|
|
--authors=${AUTHOR} \
|
|
--doc=${README} \
|
|
--description="${DESCRIPTION}" \
|
|
${SRFI_FILE}
|
|
|
|
install:
|
|
snow-chibi install --impls=${SCHEME} ${PKG}
|
|
|
|
uninstall:
|
|
-snow-chibi remove --impls=${SCHEME} ${PKG}
|
|
|
|
testfiles:
|
|
rm -rf .tmp
|
|
mkdir -p .tmp
|
|
cp ${PKG} .tmp
|
|
cp -r srfi .tmp/
|
|
cat test-headers.${SFX} ${TESTFILE} | sed 's/SRFI/${SRFI}/' > .tmp/test.${SFX}
|
|
cat ${TESTFILE} >> run-test.${SFX}
|
|
if [ "${RNRS}" = "r6rs" ]; then if [ -d ../foreign-c ]; then cp -r ../foreign-c/foreign .tmp/; fi; fi
|
|
|
|
test: testfiles package
|
|
cd .tmp && COMPILE_R7RS=${SCHEME} compile-r7rs -o test-program test.${SFX}
|
|
cd .tmp && ./test-program
|
|
|
|
test-docker: testfiles package
|
|
cd .tmp && \
|
|
DOCKER_TAG=${DOCKER_TAG} \
|
|
SNOW_PACKAGES="srfi.64 srfi.60 srfi.145 srfi.180 retropikzel.mouth foreign.c ${PKG}" \
|
|
APT_PACKAGES="libcurl4-openssl-dev" \
|
|
COMPILE_R7RS=${SCHEME} \
|
|
TEST_R7RS_DEBUG=1 \
|
|
CSC_OPIONS="-L -lcurl" \
|
|
test-r7rs -o test-program test.${SFX}
|