# Makefile for building ModuleManager

KSPDIR  := ${HOME}/.local/share/Steam/SteamApps/common/Kerbal\ Space\ Program
MANAGED := KSP_Data/Managed/

INCLUDEFILES := $(wildcard *.cs) \
	$(wildcard Properties/*.cs)

RESGEN2 := resgen2
GMCS    := /usr/bin/gmcs
GIT     := /usr/bin/git
TAR     := /usr/bin/tar
ZIP     := /usr/bin/zip

all: build

info:
	@echo "== ModuleManager Build Information =="
	@echo "  gmcs:    ${GMCS}"
	@echo "  git:     ${GIT}"
	@echo "  tar:     ${TAR}"
	@echo "  zip:     ${ZIP}"
	@echo "  KSP Data: ${KSPDIR}"
	@echo "====================================="

build: info
	mkdir -p build
	${RESGEN2} -usesourcepath Properties/Resources.resx build/Resources.resources
	${GMCS} -t:library -lib:${KSPDIR}/${MANAGED} \
		-r:Assembly-CSharp,Assembly-CSharp-firstpass,UnityEngine \
		-out:build/ModuleManager.dll \
		-resource:build/Resources.resources,ModuleManager.Properties.Resources.resources \
		${INCLUDEFILES}

tar.gz: build
	${TAR} zcf ModuleManager-0.$(shell ${GIT} rev-list --count HEAD).g$(shell ${GIT} log -1 --format="%h").tar.gz build/ModuleManager.dll

zip: build
	${ZIP} -9 -r ModuleManager-0.$(shell ${GIT} rev-list --count HEAD).g$(shell ${GIT} log -1 --format="%h").zip build/ModuleManager.dll

clean:
	@echo "Cleaning up build and package directories..."
	rm -rf build/ package/

install: build
	mkdir -p ${KSPDIR}/GameData/
	cp build/ModuleManager.dll ${KSPDIR}/GameData/

uninstall: info
	rm -f ${KSPDIR}/GameData/ModuleManager.dll


.PHONY : all info build tar.gz zip clean install uninstall
