diff options
| -rw-r--r-- | Makefile | 31 | ||||
| -rw-r--r-- | README.org | 8 | ||||
| -rw-r--r-- | TODO.org | 5 | ||||
| -rw-r--r-- | downstroke.egg | 2 |
4 files changed, 22 insertions, 24 deletions
@@ -1,5 +1,8 @@ .DEFAULT_GOAL := engine +CSI ?= csi +CSI_FLAGS := -I $(CURDIR) -I $(CURDIR)/bin + # Canonical release string for the tree — keep in sync with downstroke.egg and # README v… markers (see bump-version). VERSION := 1.0.0rc1 @@ -63,18 +66,18 @@ clean: test: @echo "Running unit tests..." - @csi -s tests/entity-test.scm - @csi -s tests/world-test.scm - @csi -s tests/tilemap-test.scm - @csi -s tests/physics-test.scm - @csi -s tests/input-test.scm - @csi -s tests/renderer-test.scm - @csi -s tests/assets-test.scm - @csi -s tests/engine-test.scm - @csi -s tests/animation-test.scm - @csi -s tests/prefabs-test.scm - @csi -s tests/scene-loader-test.scm - @csi -s tests/tween-test.scm + @$(CSI) $(CSI_FLAGS) -s tests/entity-test.scm + @$(CSI) $(CSI_FLAGS) -s tests/world-test.scm + @$(CSI) $(CSI_FLAGS) -s tests/tilemap-test.scm + @$(CSI) $(CSI_FLAGS) -s tests/physics-test.scm + @$(CSI) $(CSI_FLAGS) -s tests/input-test.scm + @$(CSI) $(CSI_FLAGS) -s tests/renderer-test.scm + @$(CSI) $(CSI_FLAGS) -s tests/assets-test.scm + @$(CSI) $(CSI_FLAGS) -s tests/engine-test.scm + @$(CSI) $(CSI_FLAGS) -s tests/animation-test.scm + @$(CSI) $(CSI_FLAGS) -s tests/prefabs-test.scm + @$(CSI) $(CSI_FLAGS) -s tests/scene-loader-test.scm + @$(CSI) $(CSI_FLAGS) -s tests/tween-test.scm # Run a single test file with optional name/group filtering (pytest -k style). # make filter FILE=tests/physics-test.scm # whole file @@ -82,10 +85,10 @@ test: # make filter FILE=tests/physics-test.scm G=apply # groups matching regex # Note: combining K/G with TEST_QUIET=1 hits a known bug in the `test` egg # (modulo error in summary timing), so this target intentionally doesn't -# expose Q. Use `TEST_QUIET=1 csi -s <file>` directly when you want quiet. +# expose Q. Use `TEST_QUIET=1 $(CSI) $(CSI_FLAGS) -s <file>` when you want quiet. filter: @if [ -z "$(FILE)" ]; then echo "usage: make filter FILE=<test.scm> [K=name-regex] [G=group-regex]"; exit 2; fi - @$(if $(K),TEST_FILTER='$(K)') $(if $(G),TEST_GROUP_FILTER='$(G)') csi -s $(FILE) + @$(if $(K),TEST_FILTER='$(K)') $(if $(G),TEST_GROUP_FILTER='$(G)') $(CSI) $(CSI_FLAGS) -s $(FILE) demos: engine $(DEMO_BINS) @@ -45,7 +45,7 @@ The engine lives in this repository as modular Chicken units, with demos, docs, | 11 | Package as Chicken egg (v1.0.0rc1) | rc | | 12 | Macroknight ported to use the egg | pending | -Milestones 1–6 were pure refactoring. Milestone 7 was the API pivot (=make-game=, =game-run!=, pipeline). Milestones 11–12 are packaging and proving the egg against macroknight. Finer-grained planning may live outside this repo (=CLAUDE.md= points to the extraction notes). +Milestones 1–6 were pure refactoring. Milestone 7 was the API pivot (=make-game=, =game-run!=, pipeline). Milestones 11–12 are packaging and proving the egg against macroknight. Finer-grained planning may live outside this repo (for example in =downstroke.org= or macroknight's historical =TODO-engine.org=). ** Dependencies @@ -70,9 +70,9 @@ make demos # build demo games (verifies they compile) make clean # remove bin/ #+end_src -Single test module: +Single test module (from repo root; space after each =-I= is required by =csi=): #+begin_src sh -csi -s tests/physics-test.scm +csi -I "$(pwd)" -I "$(pwd)/bin" -s tests/physics-test.scm #+end_src The canonical version string is =VERSION= at the top of the =Makefile=; it must match =((version "…")= in =downstroke.egg= and the =v…= marker in the milestone table. Bump all three with =make bump-version NEW=1.2.3= (POSIX =sed=; =NEW= must not contain =&=, backslash, or =#=). @@ -85,7 +85,7 @@ Modules live at the project root. Each compiles as a Chicken unit (=csc -c -J -u | Module | Responsibility | |----------------+---------------------------------------------------| -| =entity= | Plist accessors: =entity-ref=, =entity-set= | +| =entity= | Alist accessors: =entity-ref=, =entity-set= | | =tilemap= | TMX/TSX parsing (expat), tileset loading | | =world= | Scene struct, entity list ops, camera | | =physics= | Gravity, velocity, AABB tile + entity collisions | diff --git a/TODO.org b/TODO.org deleted file mode 100644 index c09e063..0000000 --- a/TODO.org +++ /dev/null @@ -1,5 +0,0 @@ -#+SEQ_TODO: TODO(t) DOING(o) | DONE(d) -* Downstroke TODO - -** TODO change exports so that imports follow the chicken convention: =(import (downstroke engine))= -** DOING Debug flattening prefabs and mixins with things like compose-prefab that result in duplicate keys diff --git a/downstroke.egg b/downstroke.egg index 7327924..0f66bcd 100644 --- a/downstroke.egg +++ b/downstroke.egg @@ -32,7 +32,7 @@ (component-dependencies downstroke.entity downstroke.world)) (extension downstroke.engine (source "engine.scm") - (component-dependencies downstroke.renderer downstroke.world downstroke.input downstroke.assets downstroke.animation)) + (component-dependencies downstroke.renderer downstroke.world downstroke.input downstroke.assets downstroke.physics downstroke.tween downstroke.animation)) ;; Link SDL2_mixer explicitly so downstroke.mixer.so lists libSDL2_mixer in ;; DT_NEEDED; otherwise Mix_* symbols can be undefined at dlopen time. ;; csc requires "-L" before "-l..." so the flag is passed through to the linker. |
