| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- # m2SDL3 — GNU Modula-2 bindings for SDL3
- GM2 ?= gm2
- GM2FLAGS ?=
- SRC_DIR := src
- LIB_DIR := lib
- BLD := build
- OBJDIR := $(BLD)/objs
- OBJS := $(OBJDIR)/SDL3Rect.o $(OBJDIR)/SDL3Utils.o $(OBJDIR)/SDL3Key.o
- # SDL3 sources shipped alongside (read-only, see README): headers in
- # SDL-release-3.4.16/include, prebuilt shared lib in .../build.
- SDL_SRC := SDL-release-3.4.16
- SDL_BLD := $(SDL_SRC)/build
- SDL_INC := -I$(SDL_SRC)/include
- SDL_LIB := -L$(SDL_BLD) -lSDL3 -Wl,-rpath,$(abspath $(SDL_BLD))
- INCLUDES := -I$(SRC_DIR) -I$(LIB_DIR) $(SDL_INC)
- TESTS := test_init test_version test_rect test_window test_key test_sysinfo test_clipboard
- EXAMPLES := hello_window version event_loop renderer_demo
- SHOWCASES := showcase_clear showcase_rectangles showcase_primitives showcase_snake showcase_lines showcase_points showcase_debug_text
- .PHONY: all tests examples showcases clean check
- all: tests examples showcases
- $(OBJDIR):
- mkdir -p $(OBJDIR)
- $(BLD)/tests:
- mkdir -p $(BLD)/tests
- $(BLD)/examples:
- mkdir -p $(BLD)/examples
- $(OBJDIR)/SDL3Rect.o: $(SRC_DIR)/SDL3Rect.mod $(SRC_DIR)/SDL3Rect.def | $(OBJDIR)
- $(GM2) $(INCLUDES) $(GM2FLAGS) -c $< -o $@
- $(OBJDIR)/SDL3Utils.o: $(LIB_DIR)/SDL3Utils.mod $(LIB_DIR)/SDL3Utils.def | $(OBJDIR)
- $(GM2) $(INCLUDES) $(GM2FLAGS) -c $< -o $@
- $(OBJDIR)/SDL3Key.o: $(SRC_DIR)/SDL3Key.mod $(SRC_DIR)/SDL3Key.def | $(OBJDIR)
- $(GM2) $(INCLUDES) $(GM2FLAGS) -c $< -o $@
- tests: $(BLD)/tests $(OBJS) $(addprefix $(BLD)/tests/,$(TESTS))
- $(BLD)/tests/%: tests/%.mod $(OBJS) | $(BLD)/tests
- $(GM2) $(INCLUDES) $(GM2FLAGS) $< $(OBJS) -o $@ $(SDL_LIB)
- examples: $(BLD)/examples $(OBJS) $(addprefix $(BLD)/examples/,$(EXAMPLES))
- $(BLD)/examples/%: examples/%.mod $(OBJS) | $(BLD)/examples
- $(GM2) $(INCLUDES) $(GM2FLAGS) $< $(OBJS) -o $@ $(SDL_LIB)
- $(BLD)/showcases:
- mkdir -p $(BLD)/showcases
- showcases: $(BLD)/showcases $(OBJS) $(addprefix $(BLD)/showcases/,$(SHOWCASES))
- $(BLD)/showcases/%: showcases/%.mod $(OBJS) | $(BLD)/showcases
- $(GM2) $(INCLUDES) $(GM2FLAGS) $< $(OBJS) -o $@ $(SDL_LIB)
- check: tests
- ./tests/run_tests.sh
- clean:
- rm -rf $(BLD)
|