XEIJ_VERSION = 0150129

JAVA_VERSION = 1.8.0_31
CYG_JDK = /cygdrive/c/Program" "Files/Java/jdk$(JAVA_VERSION)
WIN_JDK = C:/Program" "Files/Java/jdk$(JAVA_VERSION)
WIN_JRE = C:/Program" "Files/Java/jre$(JAVA_VERSION)

# examples
# make test
# make test BOOT=HUMAN302.XDF CLOCK=100 SOUND=off
# make test BOOT=jong.xdf
# make test BOOT=OTOKO100.2HD
# make test BOOT=greversi.hdf MODEL=EXPERT
# make test BOOT=/x
ifeq ($(BOOT),)
BOOT = HUMAN302.XDF
endif
PARAM += -boot $(BOOT)
ifneq ($(CLOCK),)
PARAM += -clock $(CLOCK)
endif
ifneq ($(SOUND),)
PARAM += -sound $(SOUND)
endif
ifneq ($(ROM),)
PARAM += -rom $(ROM)
endif
ifneq ($(MODEL),)
PARAM += -model $(MODEL)
endif

all: XEiJ.jar XEiJ.ico XEiJ_$(XEIJ_VERSION).zip

test: XEiJ.jar
	$(CYG_JDK)/bin/java -jar $< $(PARAM)

XEiJ.jar: Makefile class/XEiJ.class \
		IPLROM.DAT IPLROMXV.DAT IPLROMCO.DAT IPLROM30.DAT CGROM_XEiJ.DAT HUMAN.SYS COMMAND.X \
		license_XEiJ.txt license_FSHARP.txt license_MAME.txt
	rm -f $@
	$(CYG_JDK)/bin/jar cfe $@ XEiJ -C class . -C . \
		IPLROM.DAT IPLROMXV.DAT IPLROMCO.DAT IPLROM30.DAT CGROM_XEiJ.DAT HUMAN.SYS COMMAND.X \
		license_XEiJ.txt license_FSHARP.txt license_MAME.txt

XEiJ.ico: XEiJ.jar
	$(CYG_JDK)/bin/java -jar $< -saveicon $@

XEiJ_$(XEIJ_VERSION).zip: index.htm XEiJ.css XEiJ.ico \
		human.png otoko.png jong.png greversi.png soundmonitor.png \
		XEiJ.jar \
		Makefile XEiJ.java \
		license_XEiJ.txt license_FSHARP.txt license_MAME.txt
	rm -f $@
	zip $@ $^

IPLROM.DAT IPLROMXV.DAT IPLROMCO.DAT IPLROM30.DAT CGROM_XEiJ.DAT HUMAN.SYS COMMAND.X:
	$(CYG_JDK)/bin/jar xf XEiJ.jar $@

class/XEiJ.class: XEiJ.java
	-mkdir class
	rm -f class/*.class
	$(CYG_JDK)/bin/javac -d class -encoding UTF-8 $^ -extdirs "" \
		-cp $(WIN_JRE)/lib/plugin.jar";"$(WIN_JRE)/lib/javaws.jar";"$(WIN_JRE)/lib/deploy.jar \
		-Xlint:all -Xlint:-serial -Xlint:-fallthrough -Xdiags:verbose

clean:
	rm -f class/*.class
