foreign-c/Makefile

101 lines
4.1 KiB
Makefile

TEST_PACKAGES_APT="libcurl4-openssl-dev libuv1"
DOCKER_INIT=apt update && apt install libcurl4-openssl-dev libuv1 && cd /workdir
SCHEME_RUNNER=PACKAGES=${TEST_PACKAGES_APT} ./scheme_runner
TESTFILES=$(shell ls tests/*.scm)
test-tier1: \
test-chicken\
test-guile \
test-kawa \
test-sagittarius \
test-racket
test-tier2: \
test-cyclone \
test-gambit \
test-stklos
CHICKEN=csc -X r7rs -R r7rs
CHICKEN_LIB=csc -X r7rs -R r7rs -include-path ./retropikzel -s -J
test-chicken: clean
docker build . --build-arg IMPLEMENTATION=chicken -f Dockerfile --tag=r7rs-pffi-chicken
cp retropikzel/r7rs-pffi.sld retropikzel.r7rs-pffi.sld
docker run -it -v ${PWD}:/workdir r7rs-pffi-chicken bash -c "cd /workdir && ${CHICKEN_LIB} retropikzel.r7rs-pffi.sld"
docker run -it -v ${PWD}:/workdir r7rs-pffi-chicken bash -c "cd /workdir && ${CHICKEN} test.scm && ./test"
CYCLONE=cyclone -A .
test-cyclone: clean
docker build . --build-arg IMPLEMENTATION=cyclone -f Dockerfile --tag=r7rs-pffi-cyclone
docker run -it -v ${PWD}:/workdir r7rs-pffi-cyclone bash -c "cd /workdir && ${CYCLONE} retropikzel/r7rs-pffi.sld"
docker run -it -v ${PWD}:/workdir r7rs-pffi-cyclone bash -c "cd /workdir && ${CYCLONE} test.scm && ./test"
GAMBIT_LIB=gsc . retropikzel/r7rs-pffi
GAMBIT_CC=gsc -exe . -nopreload
test-gambit: clean
docker build . --build-arg IMPLEMENTATION=gambit -f Dockerfile --tag=r7rs-pffi-gambit
docker run -it -v ${PWD}:/workdir r7rs-pffi-gambit bash -c "cd /workdir && ${GAMBIT_LIB} retropikzel/r7rs-pffi.sld; echo $$?"
docker run -it -v ${PWD}:/workdir r7rs-pffi-gambit bash -c "cd /workdir && ${GAMBIT_CC} test.scm; echo $$?"
docker run -it -v ${PWD}:/workdir r7rs-pffi-gambit bash -c "cd /workdir && ./test -:search=.; echo $$?"
GUILE=guile --r7rs --fresh-auto-compile -L .
test-guile:
docker build . --build-arg IMPLEMENTATION=guile -f Dockerfile --tag=r7rs-pffi-guile
docker run -it -v ${PWD}:/workdir r7rs-pffi-guile bash -c "cd /workdir && ${GUILE} test.scm"
KAWA=java --add-exports java.base/jdk.internal.foreign.abi=ALL-UNNAMED --add-exports java.base/jdk.internal.foreign.layout=ALL-UNNAMED --add-exports java.base/jdk.internal.foreign=ALL-UNNAMED --enable-native-access=ALL-UNNAMED --enable-preview -jar kawa.jar --r7rs --full-tailcalls -Dkawa.import.path=.:*.sld
test-kawa:
docker build . --build-arg IMPLEMENTATION=kawa -f Dockerfile --tag=r7rs-pffi-kawa
docker run -it -v ${PWD}:/workdir r7rs-pffi-kawa bash -c "cd /workdir && ${KAWA} test.scm"
SASH=sash -r7 -L . -L ./schubert
test-sagittarius:
docker build . --build-arg IMPLEMENTATION=sagittarius -f Dockerfile --tag=r7rs-pffi-sagittarius
docker run -it -v ${PWD}:/workdir r7rs-pffi-sagittarius bash -c "cd /workdir && ${SASH} test.scm"
RACKET=racket -I r7rs -S . -S ./schubert --script
test-racket:
docker build . --build-arg IMPLEMENTATION=racket -f Dockerfile --tag=r7rs-pffi-racket
docker run -it -v ${PWD}:/workdir r7rs-pffi-racket bash -c "cd /workdir && ${RACKET} test.scm"
STKLOS=stklos -A . -f
test-stklos:
docker build . --build-arg IMPLEMENTATION=stklos -f Dockerfile --tag=r7rs-pffi-stklos
docker run -it -v ${PWD}:/workdir r7rs-pffi-stklos bash -c "cd /workdir && ${STKLOS} test.scm"
CHIBI=chibi-scheme
CHIBI_STUB=chibi-ffi
test-chibi:
docker build . --build-arg IMPLEMENTATION=chibi -f Dockerfile --tag=r7rs-pffi-chibi
docker run -it -v ${PWD}:/workdir r7rs-pffi-chibi bash -c "cd /workdir && ${CHIBI_STUB} retropikzel/r7rs-pffi/chibi.stub"
documentation:
cat README.md > docs/index.md
mkdocs build
tmp:
mkdir -p tmp
clean:
@rm -rf docutmp
@rm -rf retropikzel/r7rs-pffi/*.c
@rm -rf retropikzel/r7rs-pffi/*.o*
@rm -rf retropikzel/r7rs-pffi/*.so
@rm -rf retropikzel/r7rs-pffi/*.meta
@rm -rf retropikzel/r7rs-pffi/retropikzel.*
@rm -rf retropikzel/r7rs-pffi/compiled
@rm -rf retropikzel.*
find . -name "*.meta" -delete
@rm -rf test/pffi-define
@rm -rf test/*gambit*
find . -name "*.link" -delete
find . -name "*.c" -delete
find . -name "*.o" -delete
find . -name "*.o[1-9]" -delete
find . -name "*.so" -delete
find . -name "*.a" -delete
@rm -rf test
@rm -rf tmp
find . -name "core.1" -delete
find . -name "test@gambit*" -delete