aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile20
1 files changed, 17 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index d43d192..161352c 100644
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,15 @@
.DEFAULT_GOAL := engine
# Modules listed in dependency order
-MODULE_NAMES := entity tilemap world input physics renderer assets engine
+MODULE_NAMES := entity tilemap world input physics renderer assets engine mixer sound animation ai
OBJECT_FILES := $(patsubst %,bin/%.o,$(MODULE_NAMES))
+DEMO_NAMES := platformer shmup topdown audio sandbox
+DEMO_BINS := $(patsubst %,bin/demo-%,$(DEMO_NAMES))
+
+UNIT_NAMES := $(patsubst %,downstroke/%,$(MODULE_NAMES))
+USES_FLAGS := $(patsubst %,-uses %,$(UNIT_NAMES))
+
# Build all engine modules
engine: $(OBJECT_FILES)
@@ -22,6 +28,10 @@ bin/physics.o: bin/entity.o bin/world.o bin/tilemap.o
bin/renderer.o: bin/entity.o bin/tilemap.o bin/world.o
bin/assets.o:
bin/engine.o: bin/renderer.o bin/world.o bin/input.o bin/assets.o
+bin/mixer.o:
+bin/sound.o: bin/mixer.o
+bin/animation.o: bin/entity.o bin/world.o
+bin/ai.o: bin/entity.o bin/world.o
# Pattern rule: compile each module as a library unit
bin/%.o: %.scm | bin downstroke
@@ -45,6 +55,10 @@ test:
@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/ai-test.scm
+
+demos: engine $(DEMO_BINS)
-demos:
- @echo "No demos yet."
+bin/demo-%: demo/%.scm $(OBJECT_FILES) | bin
+ csc demo/$*.scm $(OBJECT_FILES) -o bin/demo-$* -I bin $(USES_FLAGS) -L -lSDL2_mixer