tuxanci2
Top down shooter
Log | Files | Refs | Submodules | README | LICENSE

Makefile (943B)


      1 BUILD_DIR := $(CURDIR)/build
      2 ENGINE := ../../engine
      3 PLATFORM_FILE := $(BUILD_DIR)/platform
      4 PLATFORMS := $(notdir $(wildcard runtimes/*))
      5 EMBED_PLATFORMS := xbox n64 dreamcast ps1 saturn
      6 
      7 .DEFAULT_GOAL := help
      8 
      9 help:
     10 	@echo "Usage: make <platform>"
     11 	@echo "Platforms: $(PLATFORMS)"
     12 
     13 $(PLATFORMS):
     14 	if [ -d "$(BUILD_DIR)" ]; then \
     15 		if [ -f "$(PLATFORM_FILE)" ]; then \
     16 			if [ "$$(cat "$(PLATFORM_FILE)")" != "$@" ]; then \
     17 				rm -rf "$(BUILD_DIR)"; \
     18 			fi; \
     19 		elif [ -n "$$(ls -A "$(BUILD_DIR)" 2>/dev/null)" ]; then \
     20 			rm -rf "$(BUILD_DIR)"; \
     21 		fi; \
     22 	fi
     23 	mkdir -p "$(BUILD_DIR)"
     24 	printf '%s\n' '$@' > "$(PLATFORM_FILE)"
     25 	$(MAKE) -C game BUILD="$(BUILD_DIR)/game"
     26 	$(MAKE) -C runtimes/$@ ENGINE="$(ENGINE)" BUILD_DIR="$(BUILD_DIR)" EMBED_GAME="$(if $(filter undefined,$(origin EMBED_GAME)),$(if $(filter $@,$(EMBED_PLATFORMS)),1,0),$(EMBED_GAME))"
     27 
     28 clean:
     29 	rm -rf "$(BUILD_DIR)"
     30 	$(MAKE) -C game clean
     31 
     32 .PHONY: help clean $(PLATFORMS)