# Modify these appropriately for your Java installation

JDK_BASE = /usr
J2ME_BASE = $(HOME)/lib/WTK2.5.2

# Modifiy these appropriately for your project

NAME = HelloWorld  # should also be the name of your MIDlet subclass
SRC = HelloWorld.java
OTHER = Manifest icon.png

# Paths to standard system programs

ECHO = echo
MKDIR = mkdir
STAT = stat
RM = rm
UNZIP = unzip

# Paths to Java-specific programs

JAVAC = $(JDK_BASE)/bin/javac
JAR = $(JDK_BASE)/bin/jar
EMULATOR = $(J2ME_BASE)/bin/emulator
PREVERIFY = $(J2ME_BASE)/bin/preverify

# Options passed to Java-specific programs

CLASSPATH = "$(J2ME_BASE)/lib/midpapi20.jar:$(J2ME_BASE)/lib/cldcapi10.jar"
JAVA_CFLAGS = -bootclasspath $(CLASSPATH) -target 1.3 -source 1.3 \
	-d compiled -classpath compiled -sourcepath . -g
PREVERIFY_CLASSPATH = $(CLASSPATH)


all: $(NAME:%=%.jar) $(NAME:%=$.jad)

run: $(NAME:%=%.jad)
	$(EMULATOR) -Xdescriptor:$<

compiled:
	$(MKDIR) -p compiled

verified:
	$(MKDIR) -p verified

compiled/%.class: %.java compiled
	$(JAVAC) $(JAVA_CFLAGS) $<

verified/%.class: compiled/%.class verified
	$(PREVERIFY) -classpath $(PREVERIFY_CLASSPATH):compiled -d verified $(NAME)

$(NAME:%=%.jar): $(OTHER) $(SRC:%.java=verified/%.class)
	$(JAR) cfm $@ $(OTHER) -C verified $(SRC:%.java=%.class)

%.jad: %.jar
	$(UNZIP) -aa -j -p $< "META-INF/MANIFEST.MF" > $@
	$(ECHO) "MIDlet-Jar-URL: $<" >> $@
	$(ECHO) "MIDlet-Jar-Size: " $(shell $(STAT) -c%s $<) >> $@

clean:
	rm -rf compiled verified
	rm -f *.jar *.jad

.PHONY: clean all run
