#-------------------------------------------------------------------------------
#
#   Greg's Prospecting - Makefile
#
#-------------------------------------------------------------------------------

MODNAME := GregsProspecting
MODPKG := gcewing/prospecting

MODVER := 1.4.2
MC := 1.4.6
#MCP := /Local/Games/Minecraft/Modding/MCP/mcp721-mc1.4.4
MCP := /Local/Games/Minecraft/Modding/MCP/mcp725-mc1.4.6
#PROFILE := /Local/Games/Minecraft/Profiles/1.4.4-Forge-6.3.0.372
PROFILE := /Local/Games/Minecraft/Profiles/1.4.6-Forge-6.5.0.471

PROJECT := $(MODNAME)
BACKUP_VOL := /Volumes/GREGTHUMB5
BACKUP_SUBDIR := ProjectsD/Minecraft/$(PROJECT)
BACKUP_DIR := $(BACKUP_VOL)/$(BACKUP_SUBDIR)
BACKUP_EXCLUDE := --exclude build --exclude jars --exclude Releases --exclude Test

DOTMC := /Users/greg/Library/Application\ Support/minecraft
WEBSUBDIR :=

SRC_INCLUDE := doc Makefile README.html resources src

CPATH := $(MCP)/bin/minecraft:$(MCP)/jars/bin/lwjgl.jar
SPATH := src
CDEST := build/$(MC)
RDEST := $(MCP)/bin/minecraft/$(MODPKG)/resources

RELJAR := $(MODNAME).jar
RELZIP := $(MODNAME)-$(MODVER)-mc$(MC).zip
RELSRC := $(MODNAME)-$(MODVER)-mc$(MC)-Source.zip
WEBDIR := web/minecraft/mods/$(MODNAME)/$(WEBSUBDIR)

#JFLAGS = -Xlint:deprecation
MCUSER = gcewing

JC := javac $(JFLAGS)

#----------------------------------------------------------------------------------

test: compile install run

test_jar: compile install jar install_jar run_jar

release: relzip relsrc

upload:
	rsync --progress --times $(RELZIP) $(RELSRC) $(COSC):$(WEBDIR)
	ssh $(COSC) 'cd $(WEBDIR); unzip -o $(RELZIP)'

backup: backup_subdir
	DATE=`date +%Y-%m-%d`; \
	TARFILE=$(BACKUP_DIR)/$(PROJECT)-$$DATE-mc$(MC).tar.gz; \
	tar zcvf $$TARFILE $(BACKUP_EXCLUDE) *; \
	ls -l $$TARFILE

#----------------------------------------------------------------------------------

compile: $(CDEST)
	rm -rf $(CDEST)/*
	$(JC) -classpath $(CPATH) -sourcepath $(SPATH) -d $(CDEST) \
    `find src -name '*.java'`

install:
	rm -rf $(MCP)/bin/minecraft/$(MODPKG)
	cp -r build/$(MC)/gcewing $(MCP)/bin/minecraft
	mkdir -p $(RDEST)
	cp -r resources/* $(RDEST)

run:
	cd $(MCP); ./startclient.sh $(MCUSER)

jar:
	cd $(MCP); ./reobfuscate.sh --client
	mkdir -p jars
	jar cf jars/$(RELJAR) \
    -C $(MCP)/reobf/minecraft $(MODPKG) \
    -C $(MCP)/bin/minecraft $(MODPKG)/resources

install_jar:
	cp jars/$(MODNAME).jar $(PROFILE)/mods

run_jar:
	rm -f $(DOTMC)
	ln -s $(PROFILE) $(DOTMC)
	cd $(PROFILE); \
		java -Xincgc -Xms1024M -Xmx1024M \
			-cp bin/minecraft.jar:bin/jinput.jar:bin/lwjgl_util.jar:bin/lwjgl.jar \
			-Djava.library.path=bin/natives \
			net.minecraft.client.Minecraft $(MCUSER)

relzip:
	rm -f $(RELZIP)
	cd jars; zip -r ../$(RELZIP) $(RELJAR)
	zip -r $(RELZIP) README.html CHANGES.txt doc

relsrc:
	rm -f $(RELSRC)
	zip -r $(RELSRC) $(SRC_INCLUDE)
	
$(CDEST):
	mkdir -p $(CDEST)

#----------------------------------------------------------------------------------

backup_subdir:
	cd $(BACKUP_VOL); mkdir -p $(BACKUP_SUBDIR)
