foreign-c/Makefile

111 lines
3.3 KiB
Makefile

TEST_PACKAGES_APT="libcurl4-openssl-dev libuv1"
SCHEME_RUNNER=PACKAGES=${TEST_PACKAGES_APT} ./scheme_runner
TESTFILES=$(shell ls tests/*.scm)
SRFI_BUNDLE_VERSION=v0-1-0
build: retropikzel/r7rs-pffi/version/*.scm
cp retropikzel/r7rs-pffi/version/main.scm retropikzel/r7rs-pffi/version/main.sld
echo "#lang r7rs" > retropikzel/r7rs-pffi/version/main.rkt
cat retropikzel/r7rs-pffi/version/main.scm >> retropikzel/r7rs-pffi/version/main.rkt
install:
schubert install
test-tier1: \
test-chicken\
test-guile \
test-kawa \
test-sagittarius \
test-racket
test-tier2: \
test-cyclone \
test-gambit \
test-stklos
CHICKEN_LIB=csc -X r7rs -R r7rs -s -J
build-chicken-libs:
cp retropikzel/r7rs-pffi/version/chicken.scm retropikzel.r7rs-pffi.version.chicken.scm
${SCHEME_RUNNER} chicken "${CHICKEN_LIB} retropikzel.r7rs-pffi.version.chicken.scm"
cp retropikzel/r7rs-pffi/version/main.scm retropikzel.r7rs-pffi.version.main.scm
${SCHEME_RUNNER} chicken "${CHICKEN_LIB} retropikzel.r7rs-pffi.version.main.scm"
CHICKEN=csc -X r7rs -R r7rs -L -lcurl
test-chicken: clean build build-chicken-libs
${SCHEME_RUNNER} chicken "${CHICKEN} test.scm"
${SCHEME_RUNNER} chicken "./test"
CYCLONE=cyclone -A . -A ./schubert
build-cyclone-libs:
${SCHEME_RUNNER} cyclone "${CYCLONE} retropikzel/r7rs-pffi/version/cyclone.sld"
${SCHEME_RUNNER} cyclone "${CYCLONE} retropikzel/r7rs-pffi/version/main.sld"
CYCLONE=cyclone -A . -A ./schubert
test-cyclone: clean build build-cyclone-libs
${SCHEME_RUNNER} cyclone "${CYCLONE} test.scm && icyc -s test.scm"
GAMBIT_LIB=gsc -:r7rs -dynamic
build-gambit-libs:
${SCHEME_RUNNER} gambit "${GAMBIT_LIB} retropikzel/r7rs-pffi/version/gambit.scm"
${SCHEME_RUNNER} gambit "${GAMBIT_LIB} retropikzel/r7rs-pffi/version/main.scm"
GAMBIT=gsc -:r7rs,search=.:./schubert -ld-options -lcurl -exe
test-gambit: clean build
#${SCHEME_RUNNER} gambit "${GAMBIT} test.scm && ./test"
${GAMBIT} test.scm && ./test
GUILE=guile -L . -L ./schubert
test-guile: build
#${SCHEME_RUNNER} guile "${GUILE} test.scm"
${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=.:./schubert
test-kawa: build
#${SCHEME_RUNNER} kawa "${KAWA} test.scm"
${KAWA} test.scm
SASH=sash -L . -L ./schubert
test-sagittarius: build
${SCHEME_RUNNER} sagittarius "${SASH} test.scm"
RACKET=racket -I r7rs -S . -S ./schubert --script
test-racket: build
${SCHEME_RUNNER} racket "${RACKET} test.scm"
#${RACKET} test.scm
STKLOS=stklos -A . -A ./schubert -f
test-stklos: build
${SCHEME_RUNNER} stklos "${STKLOS} test.scm"
documentation:
cat README.md > docs/index.md
mkdocs build
tmp:
mkdir -p tmp
clean:
@rm -rf docutmp
@rm -rf retropikzel/r7rs-pffi/version/*.c
@rm -rf retropikzel/r7rs-pffi/version/*.o*
@rm -rf retropikzel/r7rs-pffi/version/*.so
@rm -rf retropikzel/r7rs-pffi/version/*.meta
@rm -rf retropikzel/r7rs-pffi/version/retropikzel.*
@rm -rf retropikzel/r7rs-pffi/version/compiled
@rm -rf retropikzel.*
@rm -rf test/*.c
@rm -rf test/*.o*
@rm -rf test/*.so
@rm -rf test/*.meta
@rm -rf test/pffi-define
@rm -rf test/*gambit*
@rm -rf test/*.link
@rm -rf *.c
@rm -rf *.o
@rm -rf *.so
@rm -rf *.a
@rm -rf test
@rm -rf tmp