WTK=/opt/java-wtk
MIDP=10
CLDC=10
NAME=PassComp
URL=http://mene.za.net
DIR=passcomp/download
SOURCES=src/PassComp.java src/MD5.java src/MD5State.java

MANIFEST=MANIFEST.MF
CLASSPATH=$(WTK)/lib/midpapi$(MIDP).jar:$(WTK)/lib/cldcapi$(CLDC).jar
VERSION := $(shell grep '^MIDlet-Version:' $(MANIFEST) | sed 's/^.*: *//')
LNAME := $(shell echo '$(NAME)' | tr '[:upper:]' '[:lower:]')
JAD=$(NAME)-$(VERSION).jad
JAR=$(NAME)-$(VERSION).jar
SOURCE=$(NAME)-$(VERSION).zip
PROGUARD=$(WTK)/bin/
PATH += :$(WTK)/bin

all: jad

build: $(SOURCES)
	rm -rf build/tmpclasses && mkdir -p build/tmpclasses
	javac -bootclasspath $(CLASSPATH) -source 1.3 -target 1.1 -d build/tmpclasses src/*.java

preverify: build
	rm -rf build/classes && mkdir -p build/classes
	preverify -classpath $(CLASSPATH) -d build/classes build/tmpclasses

jar: preverify
	jar cfvm build/$(JAR) $(MANIFEST) -C build/classes .

obfuscate: jar
	mv build/$(JAR) build/unobf-$(JAR)
	java -jar $(PROGUARD)/proguard.jar -injars build/unobf-$(JAR) -outjars build/$(JAR) -libraryjars $(CLASSPATH) -microedition -overloadaggressively -keep public class $(NAME) extends javax.microedition.midlet.MIDlet

jad: obfuscate
	cp $(MANIFEST) build/$(JAD)
	echo "MIDlet-Jar-Size: $$(stat -c '%s' build/$(JAR))" >> build/$(JAD)
	cp build/$(JAD) build/$(LNAME).jad
	echo "MIDlet-Jar-URL: $(URL)/$(DIR)/$(JAR)" >> build/$(JAD)
	echo "MIDlet-Jar-URL: $(URL)/$(LNAME).jar" >> build/$(LNAME).jad

source:
	bzr export build/$(SOURCE)

clean:
	rm -rf build
