Created
November 30, 2020 04:24
-
-
Save jjmontesl/60e20dc231e46d218a781f7a8f9cc679 to your computer and use it in GitHub Desktop.
Makefile for Godot projects
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# MyGameProject | |
# Makefile | |
APPNAME := MyGameProject | |
APPNAME_LC := mygameproject | |
#APPVER := 0.8.2 | |
APPVER := $(shell grep 'string ApplicationVersion' scripts/nc/app/GameApplication.cs | cut -d '"' -f 2 ) | |
#echo $(APPVER) | |
GODOT := ~/apps/godot/Godot_v3.2.3-stable_mono_x11_64/Godot_v3.2.3-stable_mono_x11.64 | |
BUTLER := export/butler/butler | |
ifndef APPVER | |
$(error APPVER is not set) | |
endif | |
$(info Version is: $(APPVER)) | |
.PHONY: def | |
def: | |
$(info No target defined) | |
build-linux: | |
GODOT_MAKE_CONSTANTS="GODOT_BUILD_PROD" \ | |
$(GODOT) --path . --export "Linux/X11" export/linux/mygameproject.x86_64 --no-window | |
build-linux-demo: | |
GODOT_MAKE_CONSTANTS="GODOT_BUILD_PROD;GODOT_BUILD_DEMO" \ | |
$(GODOT) --path . --export "Linux/X11 DEMO" export/linux-demo/mygameproject-DEMO.x86_64 --no-window | |
build-linux-devel: | |
GODOT_MAKE_CONSTANTS="GODOT_BUILD_DEVEL" \ | |
$(GODOT) --path . --export "Linux/X11 DEVEL" export/linux-devel/mygameproject-DEVEL.x86_64 --no-window | |
build-win: | |
GODOT_MAKE_CONSTANTS="GODOT_BUILD_PROD" \ | |
$(GODOT) --path . --export "Windows Desktop" export/win/MyGameProject.exe --no-window | |
build-win-demo: | |
#mkdir -p export/win-demo | |
GODOT_MAKE_CONSTANTS="GODOT_BUILD_PROD;GODOT_BUILD_DEMO" \ | |
$(GODOT) --path . --export "Windows Desktop DEMO" export/win-demo/MyGameProject-DEMO.exe --no-window | |
build-win-devel: | |
GODOT_MAKE_CONSTANTS="GODOT_BUILD_DEVEL" \ | |
$(GODOT) --path . --export "Windows Desktop DEVEL" export/win-devel/MyGameProject-DEVEL.exe --no-window | |
build-osx: | |
mkdir -p export/osx | |
rm -rf ~/.local/share/Trash/files/MyGameProject* | true | |
rm -rf ~/.local/share/Trash/files/mygameproject.app | true | |
GODOT_MAKE_CONSTANTS="GODOT_BUILD_PROD" \ | |
$(GODOT) --path . --export "Mac OSX" export/osx/MyGameProject.zip --no-window | |
build-html5-demo: | |
touch export/.gdignore || true | |
mkdir -p export/html5-demo | |
GODOT_MAKE_CONSTANTS="GODOT_BUILD_PROD;GODOT_BUILD_DEMO" \ | |
$(GODOT) --path . --export "HTML5 DEMO" export/html5-demo/index.html --no-window | |
package-linux: | |
rm -rf /tmp/${APPNAME} || true | |
cp -r export/linux /tmp/${APPNAME} | |
cd /tmp && tar cvzf ${APPNAME}-linux-${APPVER}.tgz ${APPNAME} | |
mv /tmp/${APPNAME}-linux-${APPVER}.tgz export/ | |
package-linux-demo: | |
rm -rf /tmp/${APPNAME}-DEMO || true | |
cp -r export/linux-demo /tmp/${APPNAME}-DEMO | |
cd /tmp && tar cvzf ${APPNAME}-DEMO-linux-${APPVER}.tgz ${APPNAME}-DEMO | |
mv /tmp/${APPNAME}-DEMO-linux-${APPVER}.tgz export/ | |
package-linux-devel: | |
rm -rf /tmp/${APPNAME}-DEVEL || true | |
cp -r export/linux-devel /tmp/${APPNAME}-DEVEL | |
cd /tmp && tar cvzf ${APPNAME}-DEVEL-linux-${APPVER}.tgz ${APPNAME}-DEVEL | |
mv /tmp/${APPNAME}-DEVEL-linux-${APPVER}.tgz export/ | |
package-win: | |
rm -rf /tmp/${APPNAME} || true | |
cp -r export/win /tmp/${APPNAME} | |
cd /tmp && zip -r ${APPNAME}-win-${APPVER}.zip ${APPNAME} | |
mv /tmp/${APPNAME}-win-${APPVER}.zip export/ | |
package-win-demo: | |
rm -rf /tmp/${APPNAME}-DEMO || true | |
cp -r export/win-demo /tmp/${APPNAME}-DEMO | |
cd /tmp && zip -r ${APPNAME}-DEMO-win-${APPVER}.zip ${APPNAME}-DEMO | |
mv /tmp/${APPNAME}-DEMO-win-${APPVER}.zip export/ | |
package-win-devel: | |
rm -rf /tmp/${APPNAME}-DEVEL || true | |
cp -r export/win-devel /tmp/${APPNAME}-DEVEL | |
cd /tmp && zip -r ${APPNAME}-DEVEL-win-${APPVER}.zip ${APPNAME}-DEVEL | |
mv /tmp/${APPNAME}-DEVEL-win-${APPVER}.zip export/ | |
package-osx: | |
rm -rf /tmp/${APPNAME} || true | |
cp -r export/osx/ /tmp/${APPNAME} | |
#cd /tmp && zip -r ${APPNAME}-DEVEL-win-${APPVER}.zip ${APPNAME}-DEVEL | |
mv /tmp/${APPNAME}/MyGameProject.zip export/MyGameProject-osx-${APPVER}.zip | |
package-html5-demo-itchio: | |
rm -rf /tmp/${APPNAME} || true | |
cp -r export/html5-demo /tmp/${APPNAME} | |
cd /tmp/${APPNAME} && zip -r ../${APPNAME}-DEMO-html5-${APPVER}.zip * | |
mv /tmp/${APPNAME}-DEMO-html5-${APPVER}.zip export/ | |
clean: | |
rm -rf export/linux || true | |
rm -rf export/linux-demo || true | |
rm -rf export/linux-devel || true | |
rm -rf export/win || true | |
rm -rf export/win-demo || true | |
rm -rf export/win-devel || true | |
rm -rf export/osx || true | |
rm -rf export/html5-demo || true | |
touch export/.gdignore || true | |
build-all-full: build-linux build-win build-osx | |
build-all-demo: build-linux-demo build-win-demo build-html5-demo | |
build-all-devel: build-linux-devel build-win-devel | |
package-all-full: package-linux package-win package-osx | |
package-all-demo: package-linux-demo package-win-demo package-html5-demo-itchio | |
package-all-devel: package-linux-devel package-win-devel | |
build-all: build-all-full build-all-demo build-all-devel | |
package-all: package-all-full package-all-demo package-all-devel | |
all: build-all package-all | |
linux: build-linux package-linux | |
linux-demo: build-linux-demo package-linux-demo | |
linux-devel: build-linux-devel package-linux-devel | |
win: build-win package-win | |
win-demo: build-win-demo package-win-demo | |
win-devel: build-win-devel package-win-devel | |
html5-demo: build-html5-demo package-html5-demo-itchio | |
upload: | |
rsync -av export/*${APPVER}*.tgz myhost.local:/srv/mygameproject/static-game/mygameproject | |
rsync -av export/*${APPVER}*.zip myhost.local:/srv/mygameproject/static-game/mygameproject | |
upload-devel: | |
if [ -e export/${APPNAME}-DEVEL-linux-${APPVER}.tgz ] ; then rsync -av export/${APPNAME}-DEVEL-linux-${APPVER}.tgz myhost.local:/srv/mygameproject/static-game/mygameproject ; fi | |
if [ -e export/${APPNAME}-DEVEL-win-${APPVER}.zip ] ; then rsync -av export/${APPNAME}-DEVEL-win-${APPVER}.zip myhost.local:/srv/mygameproject/static-game/mygameproject ; fi | |
upload-osx: | |
if [ -e export/${APPNAME}-osx-${APPVER}.zip ] ; then rsync -av export/${APPNAME}-osx-${APPVER}.zip myhost.local:/srv/mygameproject/static-game/mygameproject ; fi | |
upload-itchio-butler: | |
rm export/html5-demo/*.import || true | |
$(BUTLER) push export/html5-demo myitchusername/mygameproject:html5-demo --userversion ${APPVER} | |
butler-install: | |
curl -L -o /tmp/butler.zip https://broth.itch.ovh/butler/linux-amd64/LATEST/archive/default | |
mkdir -p export/butler | |
cd export/butler && unzip /tmp/butler.zip | |
chmod +x export/butler/butler | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment