WTK=/opt/java-wtk
PROGUARD=$(WTK)/bin/
MICROEMU=/opt/microemulator
PATH += :$(WTK)/bin

MIDP=10
CLDC=10
NAME=OTPGen
HOST=mene.za.net
ROOT=/srv/www
SOURCES := $(wildcard src/net/za/mene/util/*.java) $(wildcard src/net/za/mene/otp/*.java)
MAIN = net.za.mene.otp.OTPMidlet

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
URL=http://$(HOST)/$(LNAME)/download
DIR=$(ROOT)/$(HOST)/$(LNAME)/download

all: jad

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

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 $(MAIN) extends javax.microedition.midlet.MIDlet

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

source:
	bzr export build/$(SOURCE)

upload: jad source
	cd build && scp $(JAD) $(JAR) $(SOURCE) $(HOST):$(DIR)

emulate: jar
	java -jar $(MICROEMU)/microemulator.jar build/$(JAR)

clean:
	rm -rf build
