From 9289b9c1448401fd5c5f7059a852dbf7452245ae Mon Sep 17 00:00:00 2001 From: retropikzel Date: Thu, 23 Apr 2026 08:41:49 +0300 Subject: [PATCH] Make spite work on R6RS implementations. Improve the makefile --- Makefile | 24 ++++++++++-------------- retropikzel/gi-repository/APT_PACKAGES | 1 + retropikzel/gi-repository/CSC_OPTIONS | 1 + retropikzel/spite.scm | 14 +++++++------- retropikzel/spite/APT_PACKAGES | 1 + retropikzel/spite/CSC_OPTIONS | 1 + retropikzel/spite/PACKAGE_ARGS | 1 + 7 files changed, 22 insertions(+), 21 deletions(-) create mode 100644 retropikzel/gi-repository/APT_PACKAGES create mode 100644 retropikzel/gi-repository/CSC_OPTIONS create mode 100644 retropikzel/spite/APT_PACKAGES create mode 100644 retropikzel/spite/CSC_OPTIONS create mode 100644 retropikzel/spite/PACKAGE_ARGS diff --git a/Makefile b/Makefile index 2032efa..620987d 100644 --- a/Makefile +++ b/Makefile @@ -12,23 +12,15 @@ VERSION=$(shell cat retropikzel/${LIBRARY}/VERSION) DESCRIPTION=$(shell head -n1 retropikzel/${LIBRARY}/README.md) README=retropikzel/${LIBRARY}/README.html TESTFILE=retropikzel/${LIBRARY}/test.scm +PACKAGE_ARGS=$(shell cat retropikzel/${LIBRARY}/PACKAGE_ARGS || echo "") +CSC_OPTIONS=$(shell cat retropikzel/${LIBRARY}/CSC_OPTIONS || echo "") +APTPACKAGES=$(shell cat retropikzel/${LIBRARY}/APT_PACKAGES || echo "") PKG=retropikzel-${LIBRARY}-${VERSION}.tgz -SFX=scm -SNOW=snow-chibi --impls=${SCHEME} install --always-yes -LIB_PATHS= -ifeq "${RNRS}" "r6rs" -SNOW=snow-chibi --impls=${SCHEME} install --always-yes --install-source-dir=. --install-library-dir=. SFX=sps -LIB_PATHS=-I .akku/lib -endif - -APT_PACKAGES= -CSC_OPTIONS= -ifeq "${LIBRARY}" "gi-repository" -APT_PACKAGES=libgirepository-2.0-dev -CSC_OPTIONS=-L -lgirepository-2.0 -L -lgobject-2.0 -L -lglib-2.0 +ifeq "${RNRS}" "r7rs" +SFX=scm endif all: package @@ -37,6 +29,7 @@ package: retropikzel/${LIBRARY}/LICENSE retropikzel/${LIBRARY}/VERSION echo "
$$(cat retropikzel/${LIBRARY}/README.md)
" > ${README} snow-chibi package \ --always-yes \ + ${PACKAGE_ARGS} \ --version=${VERSION} \ --authors=${AUTHOR} \ --doc=${README} \ @@ -51,13 +44,16 @@ testfiles: package mkdir -p .tmp cp -r test-resources .tmp/ cp -r retropikzel .tmp/ - cp ${PKG} .tmp/ # R6RS testfiles printf "#!r6rs\n(import (except (rnrs) remove) (srfi :64) (foreign c) (retropikzel ${LIBRARY}))" > .tmp/test.sps cat ${TESTFILE} >> .tmp/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}))" > .tmp/test.scm cat ${TESTFILE} >> .tmp/test.scm + cp -r ../foreign-c/foreign .tmp/ + cp -r ../generated-foreign-c-libraries/c2foreign-c .tmp/ + cp ${PKG} .tmp/ + cd .tmp && if [ "${RNRS}" = "r6rs" ]; then snow-chibi --impls=generic install --always-yes --install-source-dir=. --install-library-dir=. ${PKG}; fi cd .tmp && if [ "${RNRS}" = "r6rs" ]; then akku install akku-r7rs; fi test: testfiles diff --git a/retropikzel/gi-repository/APT_PACKAGES b/retropikzel/gi-repository/APT_PACKAGES new file mode 100644 index 0000000..25d6579 --- /dev/null +++ b/retropikzel/gi-repository/APT_PACKAGES @@ -0,0 +1 @@ +libgirepository-2.0-dev diff --git a/retropikzel/gi-repository/CSC_OPTIONS b/retropikzel/gi-repository/CSC_OPTIONS new file mode 100644 index 0000000..3fd5b00 --- /dev/null +++ b/retropikzel/gi-repository/CSC_OPTIONS @@ -0,0 +1 @@ +-L -lgirepository-2.0 -L -lgobject-2.0 -L -lglib-2.0 diff --git a/retropikzel/spite.scm b/retropikzel/spite.scm index 610e24c..51aab36 100644 --- a/retropikzel/spite.scm +++ b/retropikzel/spite.scm @@ -15,17 +15,14 @@ (define event* (make-c-bytevector 4000)) (define draw-rect* (make-c-bytevector (* (c-type-size 'int) 4))) (define draw-slice-rect* (make-c-bytevector (* (c-type-size 'int) 4))) -(define fill-triangle-vertex-size (+ (* (c-type-size 'int) 6) (* (c-type-size 'float) 2))) +(define fill-triangle-vertex-size 1024 + ;; FIXME + ;(+ (* (c-type-size 'int) 6) (* (c-type-size 'float) 2)) + ) (define fill-triangle-vertex1* (make-c-bytevector fill-triangle-vertex-size 0)) (define fill-triangle-vertex2* (make-c-bytevector fill-triangle-vertex-size 0)) (define fill-triangle-vertex3* (make-c-bytevector fill-triangle-vertex-size 0)) (define fill-triangle-vertexes* (make-c-bytevector (* fill-triangle-vertex-size 3 0))) -(c-bytevector-set! - fill-triangle-vertexes* 'pointer (* fill-triangle-vertex-size 0) fill-triangle-vertex1*) -(c-bytevector-set! - fill-triangle-vertexes* 'pointer (* fill-triangle-vertex-size 1) fill-triangle-vertex2*) -(c-bytevector-set! - fill-triangle-vertexes* 'pointer (* fill-triangle-vertex-size 2) fill-triangle-vertex3*) (define main-loop-start-time 0) (define delta-time 0) @@ -259,6 +256,9 @@ (define spite-start (lambda (update-procedure draw-procedure) + (c-bytevector-set! fill-triangle-vertexes* 'pointer (* fill-triangle-vertex-size 0) fill-triangle-vertex1*) + (c-bytevector-set! fill-triangle-vertexes* 'pointer (* fill-triangle-vertex-size 1) fill-triangle-vertex2*) + (c-bytevector-set! fill-triangle-vertexes* 'pointer (* fill-triangle-vertex-size 2) fill-triangle-vertex3*) (cond ((not started?) (set! started? #t) diff --git a/retropikzel/spite/APT_PACKAGES b/retropikzel/spite/APT_PACKAGES new file mode 100644 index 0000000..8c335f0 --- /dev/null +++ b/retropikzel/spite/APT_PACKAGES @@ -0,0 +1 @@ +libsdl2-dev libsdl2-image-dev diff --git a/retropikzel/spite/CSC_OPTIONS b/retropikzel/spite/CSC_OPTIONS new file mode 100644 index 0000000..fda77aa --- /dev/null +++ b/retropikzel/spite/CSC_OPTIONS @@ -0,0 +1 @@ +-L -lSDL2_image -L -lSDL2 diff --git a/retropikzel/spite/PACKAGE_ARGS b/retropikzel/spite/PACKAGE_ARGS new file mode 100644 index 0000000..8e5b7ab --- /dev/null +++ b/retropikzel/spite/PACKAGE_ARGS @@ -0,0 +1 @@ +--foreign-depends SDL2_image,sdl2