Skip to main content

CDC+FP+JSR172 build passed without using jump javacall basis qte midp etc

No replies
meng_xx
Offline
Joined: 2005-08-17
Points: 0

my intention is to build CDC+FP+JSR172 without JUMP basis QTE midp javacall etc, because i only need cdc+fp+jsr172. i don't use gui, and my OS is linux.

issue: jsr172 depends on JUMP, JUMP depends on basis, basis depends on QTE ... endless dependency in a mess. in order to add jsr172, we have to add so many gui modules, it is not reasonable.

i noticed some previous threads discussing on this topic, most of them finally had to turn on basis profile in order to use JSR172.
http://forums.java.net/jive/thread.jspa?messageID=240448&#240448
http://forums.java.net/jive/thread.jspa?messageID=210499&#210499

so i plan to remove above un-reasonable dependencies by change makefile only. here is my note. i did it on phoneme_advanced_mr2_b34.

target: remove jsr172 dependency on JUMP (if ok, basis dependency is automatically removed as well)
reason: even midp does NOT depend on jump, why jsr172 depends on it?

change makefile, removed the build check of JUMP when USE_JSR_172=true.
change one line, cdc/build/share/defs_op.gmk line 111
build cmdline: make USE_JSR_172=true J2ME_CLASSLIB=foundation USE_JUMP=false
i met the following 3 compile problems:
1) a com.sun.j2me.main.Configuration class is missing. it is only available in abstractions/jump_application folder
solve it: copy it to abstractions/cdc_share folder, add one line in abstrations/build/cdc_share/module.gmk (line 49) to include Configuration.java in build
note: there is a native method in Configuration.java. lucky, i found the jni impl in cdc_share folder, so i guess Configuration was in cdc_share before, when sun remove it, they forget to remove the jni impl. so far, temply solved Configuration.java issue
2) cannot solve symbol: MIDPConfig
solve it: MIDPConfig is required by rms. i add "ifeq ($(USE_MIDP), true)" in abstraction/build/share/module.gmk line 64 to remove rms src code from my build
3) jsrop_kni.h and kni_utils.c under abstractions compile failed. they depends on javacall.
solve it: just remove kni_utils.c from makefile, it is not used at all.

summary what i changed:
copy/paste one src file, didn't modify any src code. modified 3 makefiles:
cdc/build/share/defs_op.mk
cdc/build/share/top.mk
abstractions/build/cdc_share/module.gmk

finally, i made it. the following compile works
/home/me/phoneme_advanced_mr2/cdc/build/linux-x86-generic$ make USE_JSR_172=true USE_JUMP=false J2ME_CLASSLIB=foundation

i think the dependency among phoneme advanced modules is really a bit complicated. hopefully sun could do more tests such as "make USE_JSR_XXX" in phoneme advanced project in phoneme advanced mr3 release, and make the jsr configuration be more flexible.

Message was edited by: meng_xx

Message was edited by: meng_xx