DESCRIPTION := MIDP demo VENDOR := jcomeau.com MIDLET := Demo APPNAME := $(shell echo $(MIDLET) | tr 'A-Z' 'a-z') PACKAGE := $(shell grep '^package ' $(MIDLET).java | \ tr ';' ' ' | awk '{print $$2}') CLASSDIR := $(subst .,/,$(PACKAGE)) COMPILEDIR := $(shell echo $(CLASSDIR) | sed 's/[0-9a-z]\+/../g') MIDPVERSION := 2.0 MIDPVER := $(subst .,,$(MIDPVERSION)) CLDCVERSION := 1.1 CLDCVER := $(subst .,,$(CLDCVERSION)) JAVAVER := 1.5.0_06 J2ME := /cygdrive/c/WTK22 J9 := /cygdrive/c/Program\ Files/IBM/WEME/571/PalmOS50/Tools/bin PALMSDK := /cygdrive/c/Program\ Files/PalmSDK T5SIM := $(PALMSDK)/Simulators/Tungsten_T5_Update_Simulator_Rel_Build_6 BOOTCLASSDIR := $(J2ME)/lib MIDPCLASS := $(BOOTCLASSDIR)/midpapi$(MIDPVER).jar CLDCCLASS := $(BOOTCLASSDIR)/cldcapi$(CLDCVER).jar # add standard runtime jarfile so compiler can find NoClassDefFoundError JRE := /cygdrive/c/Program\ Files/Java/jdk$(JAVAVER)/jre/lib/rt.jar # if $(JRE) has comments it will cause an error; # use jar x $(JRE) to extract it in /tmp/rt, and recreate it using # zip -r ../rt ., then rename it to /tmp/rt.jar JRECLEAN := /tmp/rt.jar BOOTCLASSPATH := $(MIDPCLASS):$(CLDCCLASS):$(JRECLEAN) WINBOOTCLASSPATH := $(shell cygpath -pw $(BOOTCLASSPATH)) JAVAC := gcj -C --bootclasspath=$(BOOTCLASSPATH) SOURCES := $(addprefix $(CLASSDIR)/, $(wildcard *.java)) EMULATOR := $(J2ME)/bin/emulator export classes: *.java mkdir -p tmp cd $(COMPILEDIR) && $(JAVAC) -d $(CLASSDIR)/tmp $(SOURCES) cd $(COMPILEDIR) && $(J2ME)/bin/preverify \ -classpath "$(WINBOOTCLASSPATH)" \ -d $(CLASSDIR) $(CLASSDIR)/tmp touch $@ test: $(APPNAME).jad cd $(COMPILEDIR) && \ $(EMULATOR) -Xdescriptor:$(CLASSDIR)/$(APPNAME).jad checkenv: set %: %.template template=$$(< $<) && \ eval "echo \"$$template\"" > $@ %.jad: %.jar MIDlet.jad.template JARSIZE=$$(wc -c "$<" | awk '{print $$1}') && \ JARNAME="$$(basename "$<")" && \ template=$$(< MIDlet.jad.template) && \ eval "echo \"$$template\"" > "$@" $(APPNAME).jar: classes MANIFEST.MF jar cfm $(APPNAME).jar \ MANIFEST.MF $(CLASSDIR) \ # add any resources before this line clean: rm -f *.jar *.jad classes MANIFEST.MF rm -rf tmp $(CLASSDIR) %.test: $(APPNAME).jar @echo to change default args use: make ARGS=\"some new args\" $@ java -classpath $(APPNAME).jar $(PACKAGE).$* "$$ARGS" utils: $(J2ME)/bin/utils ktoolbar: cp *.java $(J2ME)/apps/junio/src cp NoClassDefFoundError.java.wtk \ $(J2ME)/apps/junio/src/NoClassDefFoundError.java $(J2ME)/bin/ktoolbar %.prc: %.jad $(APPNAME)22x22.bmp $(APPNAME)15x9.bmp $(J9)/jartoprc \ -jad:$(APPNAME).jad \ -name:"$(DESCRIPTION)" \ -id:ICTX \ -lgicon:$(APPNAME)22x22.bmp \ -smicon:$(APPNAME)15x9.bmp \ -highRes \ ; mv -f "$(DESCRIPTION).prc" "$@" deploy: $(APPNAME).prc scp $? www.jcomeau.com:www/www/products/testing/ touch $@ t5sim: $(APPNAME).prc $ cp -f $? $(T5SIM)/AutoLoad/ cd $(T5SIM) && PalmSim.exe t5errors: cat $(T5SIM)/j9stderr.txt t5clean: rm $(T5SIM)/j9std*.txt