VERSION=0.2.0 LOVE_VERSION=11.5 NAME=escape-the-crash ITCH_ACCOUNT=vagabondazulien URL=https://forge.niblock.tech/vagabond/escape-the-crash AUTHOR="Bill Niblock" DESCRIPTION="Navigate a forsaken city to the evacuation tower and escape certain doom!" GITHUB_USERNAME := $(shell grep GITHUB_USERNAME credentials.private | cut -d= -f2) GITHUB_PAT := $(shell grep GITHUB_PAT credentials.private | cut -d= -f2) LIBS := $(wildcard lib/*) LUA := $(wildcard *.lua) SRC := $(wildcard *.fnl) run: ; love . count: ; cloc *.fnl clean: ; rm -rf releases/* LOVEFILE=releases/$(NAME)-$(VERSION).love $(LOVEFILE): $(LUA) $(SRC) $(LIBS) assets mkdir -p releases/ find $^ -type f | LC_ALL=C sort | env TZ=UTC zip -r -q -9 -X $@ -@ love: $(LOVEFILE) # platform-specific distributables REL=$(PWD)/buildtools/love-release.sh # https://p.hagelb.org/love-release.sh FLAGS=-a "$(AUTHOR)" --description $(DESCRIPTION) \ --love $(LOVE_VERSION) --url $(URL) --version $(VERSION) --lovefile $(LOVEFILE) releases/$(NAME)-$(VERSION)-x86_64.AppImage: $(LOVEFILE) cd buildtools/appimage && \ ./build.sh $(LOVE_VERSION) $(PWD)/$(LOVEFILE) $(GITHUB_USERNAME) $(GITHUB_PAT) mv buildtools/appimage/game-x86_64.AppImage $@ releases/$(NAME)-$(VERSION)-macos.zip: $(LOVEFILE) $(REL) $(FLAGS) -M mv releases/$(NAME)-macos.zip $@ releases/$(NAME)-$(VERSION)-win.zip: $(LOVEFILE) $(REL) $(FLAGS) -W32 mv releases/$(NAME)-win32.zip $@ releases/$(NAME)-$(VERSION)-web.zip: $(LOVEFILE) buildtools/love-js/love-js.sh releases/$(NAME)-$(VERSION).love $(NAME) -v=$(VERSION) -a=$(AUTHOR) -o=releases releases/$(NAME)-$(VERSION)-source.zip: zip -r releases/$(NAME)-$(VERSION)-source.zip $(PWD) -x "$(PWD)/.git/*" -x "$(PWD)/releases/*" linux: releases/$(NAME)-$(VERSION)-x86_64.AppImage mac: releases/$(NAME)-$(VERSION)-macos.zip windows: releases/$(NAME)-$(VERSION)-win.zip web: releases/$(NAME)-$(VERSION)-web.zip source: releases/$(NAME)-$(VERSION)-source.zip runweb: $(LOVEFILE) buildtools/love-js/love-js.sh $(LOVEFILE) $(NAME) -v=$(VERSION) -a=$(AUTHOR) -o=releases -r -n -d # If you release on itch.io, you should install butler: # https://itch.io/docs/butler/installing.html uploadlinux: releases/$(NAME)-$(VERSION)-x86_64.AppImage butler push $^ $(ITCH_ACCOUNT)/$(NAME):linux --userversion $(VERSION) uploadmac: releases/$(NAME)-$(VERSION)-macos.zip butler push $^ $(ITCH_ACCOUNT)/$(NAME):mac --userversion $(VERSION) uploadwindows: releases/$(NAME)-$(VERSION)-win.zip butler push $^ $(ITCH_ACCOUNT)/$(NAME):windows --userversion $(VERSION) uploadweb: releases/$(NAME)-$(VERSION)-web.zip butler push $^ $(ITCH_ACCOUNT)/$(NAME):web --userversion $(VERSION) uploadsource: releases/$(NAME)-$(VERSION)-source.zip butler push $^ $(ITCH_ACCOUNT)/$(NAME):source --userversion $(VERSION) upload: uploadlinux uploadwindows uploadmac uploadweb uploadsource release: linux mac windows web upload clean