EngineersDecor/1.12/Makefile

107 lines
2.9 KiB
Makefile

# @file Makefile
# @author Stefan Wilhelm (wile)
# @license MIT
#
# GNU Make makefile based build relay.
# Note for reviewers/clones: This file is a auxiliary script for my setup.
# It's not needed to build the mod.
#
MOD_JAR_PREFIX=engineersdecor-
MOD_JAR=$(filter-out %-sources.jar,$(wildcard build/libs/${MOD_JAR_PREFIX}*.jar))
ifeq ($(OS),Windows_NT)
GRADLE=gradlew.bat --no-daemon
GRADLE_STOP=gradlew.bat --stop
INSTALL_DIR=$(realpath ${APPDATA}/.minecraft)
SERVER_INSTALL_DIR=$(realpath ${APPDATA}/minecraft-server-forge-1.12.2-14.23.5.2768)
DJS=djs
else
GRADLE=./gradlew --no-daemon
GRADLE_STOP=./gradlew --stop
INSTALL_DIR=~/.minecraft
SERVER_INSTALL_DIR=~/.minecraft-server-forge-1.12.2-14.23.5.2768
DJS=djs
endif
wildcardr=$(foreach d,$(wildcard $1*),$(call wildcardr,$d/,$2) $(filter $(subst *,%,$2),$d))
#
# Targets
#
.PHONY: default mod init clean clean-all mrproper all run install sanatize dist-check dist dist-files start-server port-languages
default: mod
all: clean clean-all mod | install
mod:
@echo "[1.12] Building mod using gradle ..."
@$(GRADLE) build $(GRADLE_OPTS)
clean:
@echo "[1.12] Cleaning ..."
@rm -f build/libs/*
@$(GRADLE) clean
clean-all: clean
@echo "[1.12] Cleaning using gradle ..."
@rm -f dist/*
@rm -rf run/logs/
@rm -rf run/crash-reports/
@$(GRADLE) clean cleanCache
mrproper: clean-all
@rm -f meta/*.*
@rm -rf run/
@rm -rf out/
@rm -f .project
@rm -f .classpath
init:
@echo "[1.12] Initialising eclipse workspace using gradle ..."
@$(GRADLE) setupDecompWorkspace
run:
@echo "[1.12] Running client ..."
@$(GRADLE) runClient
install: $(MOD_JAR) |
@sleep 2s
@if [ ! -d "$(INSTALL_DIR)" ]; then echo "Cannot find installation minecraft directory."; false; fi
@echo "[1.12] Installing '$(MOD_JAR)' to '$(INSTALL_DIR)/mods' ..."
@[ -d "$(INSTALL_DIR)/mods" ] || mkdir "$(INSTALL_DIR)/mods"
@rm -f "$(INSTALL_DIR)/mods/${MOD_JAR_PREFIX}"*.jar
@cp -f "$(MOD_JAR)" "$(INSTALL_DIR)/mods/"
@echo "[1.12] Installing '$(MOD_JAR)' to '$(SERVER_INSTALL_DIR)/mods' ..."
@rm -f "$(SERVER_INSTALL_DIR)/mods/${MOD_JAR_PREFIX}"*.jar
@[ -d "$(SERVER_INSTALL_DIR)/mods" ] && cp -f "$(MOD_JAR)" "$(SERVER_INSTALL_DIR)/mods/"
start-server:
-@make -s install
@echo "[1.12] Starting local dedicated server ..."
@cd "$(SERVER_INSTALL_DIR)" && java -jar forge-1.12.2-14.23.5.2768-universal.jar nogui
sanatize:
@echo "[1.12] Running sanatising tasks ..."
@djs tasks.js trailing-whitespaces
@djs tasks.js tabs-to-spaces
@djs tasks.js sync-languages
@djs tasks.js version-check
@djs tasks.js update-json
@git status -s .
dist-check:
@echo "[1.12] Running dist checks ..."
@djs tasks.js dist-check
dist-files: clean-all init mod
@echo "[1.12] Distribution files ..."
@mkdir -p dist
@cp build/libs/$(MOD_JAR_PREFIX)* dist/
@djs tasks.js dist
dist: sanatize dist-check dist-files
port-languages:
@echo "[1.12] Porting language files to 1.14 ..."
@djs tasks.js port-languages