| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- # m2SDL — GNU Modula-2 bindings for SDL2
- GM2 ?= gm2
- SDLCONF := $(shell pkg-config --cflags sdl2 2>/dev/null)
- SDLLIBS := $(shell pkg-config --libs sdl2 2>/dev/null || echo -lSDL2)
- GM2FLAGS ?=
- SRC_DIR := src
- LIB_DIR := lib
- BLD := build
- OBJDIR := $(BLD)/objs
- OBJS := $(OBJDIR)/SDLRect.o $(OBJDIR)/SDLUtils.o $(OBJDIR)/SDLKey.o
- INCLUDES := -I$(SRC_DIR) -I$(LIB_DIR)
- TESTS := test_init test_version test_rect test_window test_key
- EXAMPLES := hello_window version event_loop
- SHOWCASES := showcase_clear showcase_rectangles showcase_primitives showcase_snake
- .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)/SDLRect.o: $(SRC_DIR)/SDLRect.mod $(SRC_DIR)/SDLRect.def | $(OBJDIR)
- $(GM2) $(INCLUDES) $(GM2FLAGS) -c $< -o $@
- $(OBJDIR)/SDLUtils.o: $(LIB_DIR)/SDLUtils.mod $(LIB_DIR)/SDLUtils.def | $(OBJDIR)
- $(GM2) $(INCLUDES) $(GM2FLAGS) -c $< -o $@
- $(OBJDIR)/SDLKey.o: $(SRC_DIR)/SDLKey.mod $(SRC_DIR)/SDLKey.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) $(SDLCONF) $< $(OBJS) -o $@ $(SDLLIBS)
- examples: $(BLD)/examples $(OBJS) $(addprefix $(BLD)/examples/,$(EXAMPLES))
- $(BLD)/examples/%: examples/%.mod $(OBJS) | $(BLD)/examples
- $(GM2) $(INCLUDES) $(GM2FLAGS) $(SDLCONF) $< $(OBJS) -o $@ $(SDLLIBS)
- $(BLD)/showcases:
- mkdir -p $(BLD)/showcases
- showcases: $(BLD)/showcases $(OBJS) $(addprefix $(BLD)/showcases/,$(SHOWCASES))
- $(BLD)/showcases/%: showcases/%.mod $(OBJS) | $(BLD)/showcases
- $(GM2) $(INCLUDES) $(GM2FLAGS) $(SDLCONF) $< $(OBJS) -o $@ $(SDLLIBS)
- check: tests
- ./tests/run_tests.sh
- clean:
- rm -rf $(BLD)
|