Skip to main content

Building Basis without QT?

57 replies [Last post]
glachac
Offline
Joined: 2007-01-05

If I attempt to build make J2ME_CLASSLIB=basis on a Linux system without QT, I get errors relating to requiring the qt.h header. Is QT a hard requirement? I only want the ability to use xlet's but I don't need any graphics.

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
anu_1977
Offline
Joined: 2007-06-26

Now i compiled peer based java files with javac and create .class files of
peer.similarly i compiled gtk java files with javac and create .class files .Now i have reduce packages form PP code Package Spefication Avaibale in Sun.java.com links.then create two make files defs_basis_gtk.mk &rules_basis_gtk.mk Provide Native and Java ClassPath According to Basis. Then Compile make CVM_DEBUG=true J2ME_CLASSLIB=basis AWT_IMPLEMENTATION=gtk .I will try this monday morning .Then Update Results on Monday Evening.
Regards
Anurag

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> Thanks for the reply,
> I am very new in CDC related fields. I don't know how can i write the stub functions and where " to remove these errors". If you help me to provide a little bit guidance that will really matter a lot to me.
>

Hi Rajesh,

To stub out a function means to add the function as a skeleton without
any body (just returns without doing anything).

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

anu_1977
Offline
Joined: 2007-06-26

take help for neeraj (captain)

anu_1977
Offline
Joined: 2007-06-26

Hello Hinkmond
i hope drop mail to Eming.Saung[at]Sun.COM for more information for CDC-PBP1.1 Tool kit porting on GTKwith Linux.Right Now the Size of CDC-PBP1.1 is 2.5 MB+GTK2.10.12 is 1.00 MB.when i include all dependcies all of GTK+CDC-PBP1.1+DFB the size of my Application is going increase.i am using microwindows support.i have Query

(1) How i can reduce the Application size (CDC-PBP1.1+GTK-DFB) upto 1 MB.

(2) or i have write my own make file.

(3)or i can modify in makefiles in microwindows /basis in cdc file

#
# @(#)defs_cdc.mk 1.17 05/11/17
#
# Copyright © 2005 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#

#
# CDC library platform classes
#
CLASSLIB_CLASSES += \
java.io.UnixFileSystem \
java.lang.UNIXProcess

#
# Things to build for CDC
#
CVM_TARGETOBJS_SPACE += \
Runtime_md.o \
UnixFileSystem_md.o \
UNIXProcess_md.o \
FileSystem_md.o \
InetAddressImpl_md.o \
PlainDatagramSocketImpl_md.o \
timezone_md.o \
net_util_md.o

#
# We would be including the ansi_timestamps.o when the
# the CVM is build with CVM_TIMESTAMPING=true
#
ifeq ($(CVM_TIMESTAMPING), true)
CVM_TARGETOBJS_SPACE += \
ansi_timestamps_md.o
endif

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> Hello Hinkmond
> i hope drop mail to Eming.Saung[at]Sun.COM for more information for CDC-PBP1.1 Tool kit porting on GTKwith Linux.Right Now the Size of CDC-PBP1.1 is 2.5 MB+GTK2.10.12 is 1.00 MB.when i include all dependcies all of GTK+CDC-PBP1.1+DFB the size of my Application is going increase.i am using microwindows support.i have Query
>
> (1) How i can reduce the Application size (CDC-PBP1.1+GTK-DFB) upto 1 MB.

I don't think you can.

> (2) or i have write my own make file.

There is minimal functionality that you will need in the CDC/PBP stack
that adds up to more than 1MB.

> (3)or i can modify in makefiles in microwindows /basis in cdc file

This probably will not work, since if you make modifications to take out
code to reduce the size to 1MB, the CDC/PBP stack will not function
properly.

Hinkmond

> #
> # @(#)defs_cdc.mk 1.17 05/11/17
> #
> # Copyright © 2005 Sun Microsystems, Inc. All rights reserved.
> # Use is subject to license terms.
> #
> #
>
> #
> # CDC library platform classes
> #
> CLASSLIB_CLASSES += \
> java.io.UnixFileSystem \
> java.lang.UNIXProcess
>
> #
> # Things to build for CDC
> #
> CVM_TARGETOBJS_SPACE += \
> Runtime_md.o \
> UnixFileSystem_md.o \
> UNIXProcess_md.o \
> FileSystem_md.o \
> InetAddressImpl_md.o \
> PlainDatagramSocketImpl_md.o \
> timezone_md.o \
> net_util_md.o
>
> #
> # We would be including the ansi_timestamps.o when the
> # the CVM is build with CVM_TIMESTAMPING=true
> #
> ifeq ($(CVM_TIMESTAMPING), true)
> CVM_TARGETOBJS_SPACE += \
> ansi_timestamps_md.o
> endif
> [Message sent by forum member 'anu_1977' (anu_1977)]
>
> http://forums.java.net/jive/thread.jspa?messageID=224140
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
> For additional commands, e-mail: advanced-help@phoneme.dev.java.net
>

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

anu_1977
Offline
Joined: 2007-06-26

Hello Sir
I have Installed phoneME Advanced MR2 to be the complete code basis of CDC with QT Support. Right Now i am try for Port GTK Support on PhoneME AdvanceMR2.So i need little suggestion.
(1)i have to modified PBP Code According to GTK.
(2) Run GTK-PBP Sample Application for Testing.
is their any reference or kink i there? have to modified PBP Code According to GTK.

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> Hello Sir
> I have Installed phoneME Advanced MR2 to be the complete code basis of CDC with QT Support. Right Now i am try for Port GTK Support on PhoneME AdvanceMR2.So i need little suggestion.
> (1)i have to modified PBP Code According to GTK.
> (2) Run GTK-PBP Sample Application for Testing.
> is their any reference or kink i there? have to modified PBP Code According to GTK.
>

I'm not sure what your question is. Are you asking for a reference
pointer as to how you port PBP to GTK? Or, are you asking if there is
any problem in the way you are approaching the goal of porting PBP to GTK?

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

anu_1977
Offline
Joined: 2007-06-26

Thanks for mail. i am asking for reference pointer as to how you port PBP to GTK?

soberg
Offline
Joined: 2007-02-12

> Thanks for mail. i am asking for reference pointer
> as to how you port PBP to GTK?

According to Darrly_M Mar 28, 2007 10:19 AM:
"the GTK code is currently at Personal Profile v1.0"

And I belive that is for GTK 1.X api.

The previous version of the Personal profile v1.0 builds with gtk 1.X. So it's more of a matter of porting to compile against a newer gtk (2.X).

Here's a pointer to gtk changes and developer porting guides.
GTK Changes from 1.2 to 2.0
http://www.gtk.org/api/2.6/gtk/gtk-changes-2-0.html

Scott

anu_1977
Offline
Joined: 2007-06-26

Hello Scott
i am asking for followup the steps for Porting GTK with basis Phone MEAdvance mr-2 Software. the linux provide by you http://www.gtk.org/api/2.6/gtk/gtk-changes-2-0.html is realated to GTK. I need some references like this porting GTK with PP
https://phoneme.dev.java.net/svn/phoneme/components/cdc/branches/hinkmon....
and what are the steps are like
(1)Prerequriments like modification of make files
(2)What java Package are needed to compile sample GTK program.

anu_1977
Offline
Joined: 2007-06-26

HI Neeraj
am trying to build the Personal Basis Profile(PBP) with GTK in linux. After that i will return back.then you have a give party to Me and Rajesh.

Thanks&Regards
Anurag

lorenzopallara
Offline
Joined: 2007-05-03

glachac, Darryl

I was able to build pbp 1.1 with microwindows from http://www.experimentalstuff.com/Technologies/mwpbp/download.html, I just needed to apply some small fixes to current svn andI would like them to be included in the repository.

You can get them because they are included into our project: http://www.cineca.tv/labs/jtv/ you can download it here: http://www.cineca.tv/labs/jtv/soft/ after leaving the e-mail here: http://www.cineca.tv/labs/jtv/register.html

Microwindows worked without any problem also with x11 emulation so you can try the changes even on your linux pc.

A limit I am trying to overcome is that microwindows on framebuffer has currently no double buffering support so I am adding it but there is a tricky part and I can't get rid of it: in Component.java in cdc/src/share/basis/classes/common/java/awt at dispatchEventImpl before calling paint there is a call to clearReact with an if guard statement checking if the component is an instance of window.... I am not so sure this is a nice behaviour to have.

The four lines comment about it doesn't make too much sense to me, so I am even more confused, shouldn't be the paint method of the window to take care of that clear react? any other idea?

bye,
Lorenzo

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> glachac, Darryl
>
> I was able to build pbp 1.1 with microwindows from http://www.experimentalstuff.com/Technologies/mwpbp/download.html, I just needed to apply some small fixes to current svn andI would like them to be included in the repository.
>
> You can get them because they are included into our project: http://www.cineca.tv/labs/jtv/ you can download it here: http://www.cineca.tv/labs/jtv/soft/ after leaving the e-mail here: http://www.cineca.tv/labs/jtv/register.html

Hi Lorenzo,

It would be great if you could sign the SCA for this code change so that
we can get your changes into the main trunk of the repository (saves you
from constant resyncing) and give you recognition for contributing to
our project:
https://mobileandembedded.dev.java.net/content/sca.html

After signing, just follow these simple instructions to submit this code
to contribute to the project:
https://mobileandembedded.dev.java.net/content/contribute.html#submit

Let me know if you have questions.

Thanks,
Hinkmond

> Microwindows worked without any problem also with x11 emulation so you can try the changes even on your linux pc.
>
> A limit I am trying to overcome is that microwindows on framebuffer has currently no double buffering support so I am adding it but there is a tricky part and I can't get rid of it: in Component.java in cdc/src/share/basis/classes/common/java/awt at dispatchEventImpl before calling paint there is a call to clearReact with an if guard statement checking if the component is an instance of window.... I am not so sure this is a nice behaviour to have.
>
> The four lines comment about it doesn't make too much sense to me, so I am even more confused, shouldn't be the paint method of the window to take care of that clear react? any other idea?
>
> bye,
> Lorenzo
> [Message sent by forum member 'lorenzopallara' (lorenzopallara)]
>
> http://forums.java.net/jive/thread.jspa?messageID=224165
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
> For additional commands, e-mail: advanced-help@phoneme.dev.java.net
>

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

lorenzopallara
Offline
Joined: 2007-05-03

Hi!
the SCA has been signed and sent, I just submitted the changes.

thanks,
Lorenzo

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> Hi!
> the SCA has been signed and sent, I just submitted the changes.
>
> thanks,
> Lorenzo
> [Message sent by forum member 'lorenzopallara' (lorenzopallara)]
>
> http://forums.java.net/jive/thread.jspa?messageID=22675

Thank you, Lorenzo! You have become our third phoneME Advanced open
source developer to sign and submit the Sun Contributors Agreement for
the phoneME project:

http://www.sun.com/software/opensource/sca.pdf

Looking forward to integrating your source code changes soon!

For all you others out there who are still thinking about contributing
to this project, please click on the URL above, sign, and submit the SCA
so that your source code changes will be committed to the phoneME open
source repository (with your name in the acknowledgments!) also. We
could use your help making open source Java ME technology better.

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

anu_1977
Offline
Joined: 2007-06-26

Hello Sir
I can download Sun java ToolKit for CDC. where i can get Sun Java Toolkit for CDC tool kit for linux. Kindly provide me link.

Regards
Anurag

Hinkmond Wong

Hi Anurag,

phonemeadvanced@mobileandembedded.org wrote:
> Hello Sir
> I can download Sun java ToolKit for CDC. where i can get Sun Java Toolkit for CDC tool kit for linux. Kindly provide me link.

There are plans to eventually port Sun Java Toolkit for CDC to Linux,
but unfortunately Sun Java Toolkit for CDC is not open sourced currently.

If you need more information, please contact Eming.Saung[at]Sun.COM, our
product marketing manager of Sun Java Toolkit for CDC.

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

anu_1977
Offline
Joined: 2007-06-26

Hello Hinkmond
i hope drop mail to Eming.Saung[at]Sun.COM for more information for CDC-PBP1.1 Tool kit porting on GTKwith Linux.Right Now the Size of CDC-PBP1.1 is 2.5 MB+GTK2.10.12 is 1.00 MB.when i include all dependcies all of GTK+CDC-PBP1.1+DFB the size of my Application is going increase.i am using microwindows support.i have Query

(1) How i can reduce the Application size (CDC-PBP1.1+GTK-DFB) upto 1 MB.

Johannes Eickhold

On Wed, 2007-01-10 at 09:54 -0800, darryl_m wrote:
> It would be good if you could give me the details as to what your
> looking for.

I'm evaluating phoneME Advanced for the 770. That means I'm looking how
far (as in how many features) I can get by just compiling existing
source code of MR1 and MR2 for the 770. If it turns out that no GUI is
possible on the 770 from within Java, I want to identify the spots which
have to be modified and post to the maemo-developers mailinglist those
findings in order to motivate some people there (including myself) to
join this effort and eventually get a Java on the 770 with working GUI.

> I was under the impression, from your previous post, that you were
> looking for just Personal Profile with GTK.

I assumed PP has the most features (more than BP). So you were right in
that this would be the goal I would like to reach most.

> The phoneME Advanced MR2 product (which includes the AMS) has been
> built and tested on top of Basis, not Personal.

I assumed phoneME Advanced MR2 to be the complete code basis of CDC with
all its possible profiles. Why can it be build on top of one of its own
parts?

> I'm guessing you "just want to see some graphics on the screen"? If
> this is the case, I think just a Personal Profile build (without the
> AMS) is your best option.

Do you say 'just' because of 'without the AMS'?

> BTW, building Personal Profile with GTK results in a Personal
> Profile v1.0 spec product. Personal Profile is currently at version
> 1.1. So there will probably be build errors because the GTK code is
> 1.0 compliant but the shared PP code is 1.1 compliant. The best
> thing to do is make the GTK code 1.1 compliant.

How much work is this?

> This is the make command you should use: make J2ME_CLASSLIB=personal
> AWT_IMPLEMENTATION=gtk

OK. I'll try.

> I'll give you more details in a future post as to the PBP-PP differences.

That would be nice!

Bye, Jonek.

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

anu_1977
Offline
Joined: 2007-06-26

Hello Sir
i am searching CDC-PBP1.1 Tool Kit for Linux Version. The only Avaiable Tool Kit Avaliable with Windows version is 1.0. Where and How can download CDC-PBP1.1 Tool Kit for Linux Version

Thanks&Regards
Anurag

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> Hello Sir
> i am searching CDC-PBP1.1 Tool Kit for Linux Version. The only Avaiable Tool Kit Avaliable with Windows version is 1.0. Where and How can download CDC-PBP1.1 Tool Kit for Linux Version

There is currently an effort to finish the small amount of work left on
the Linux/GTK port of the cdc (pbp) component trunk of this phoneME
Advanced open source project.

Since this is an open source project, we are looking for contributors to
help finish the Linux/GTK port. Are you willing to help with the
project so that you can have a CDC/PBP 1.1 version that runs on
Linux/GTK and contribute to the community?

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

anu_1977
Offline
Joined: 2007-06-26

Hello Sir
My Approach Regarding porting GTK with PBP1.1 on PhoneMe Advance MR2 Software is
i am changing following this.

Related (PBP + AWT + GTK) code in Java phoneMe Advanced MR2:
- native part:(C Files)
move gtk of the personal to

src/share/basis /native/awt/gtk of Phone ME Advanced MR2
-
java part:
for Peer_based Java files
src/share/basis/classes/awt/peer_based/java/awt
Edit
src/share/personal/classes/awt/peer_based/sun/awt/PeerBasedToolkit.java
- make files
build/share/defs_basis_gtk.mk
build/share/defs_personal_peer_based.mk

Then Modify the peer_based gtk (java files) According to GTK Support of basis profile.

and then make CVM_PRELOAD=true J2ME_CLASSLIB=basis AWT_IMPLEMENTATION=gtk.
i am getting compile Errors.

Kindly tell me i am approach in right direction.some thing i am missing regarding for porting GTK on PBP1.1 using PhoneME MR2.

Regards
Anurag

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> Hello Sir
> My Approach Regarding porting GTK with PBP1.1 on PhoneMe Advance MR2 Software is
> i am changing following this.
>
...
> Then Modify the peer_based gtk (java files) According to GTK Support of basis profile.
>
> and then make CVM_PRELOAD=true J2ME_CLASSLIB=basis AWT_IMPLEMENTATION=gtk.
> i am getting compile Errors.
>
>
> Kindly tell me i am approach in right direction.some thing i am missing regarding for porting GTK on PBP1.1 using PhoneME MR2.
>

That looks in general to be not totally correct, since Personal Profile
is a superset of Personal Basis Profile. It is not a 1-to-1 matching of
required source files, since Personal Profile has more source files for
the GTK port than Personal Basis Profile needs.

What is the compilation error message that you see?

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

anu_1977
Offline
Joined: 2007-06-26

i think According to me regarding porting GTK with PBP.
i am modifying java code(peer_based GTK folder GTK files ) &native code of PP1.1 According to PBP of PhoneMEAdvance MR2.. After modify All files and Complile with make CVM_PRELOAD=true J2ME_CLASSLIB=basis AWT_IMPLEMENTATION=gtk.Kindly give suggestion.

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> i think According to me regarding porting GTK with PBP.
> i am modifying java code(peer_based GTK folder GTK files ) &native code of PP1.1 According to PBP of PhoneMEAdvance MR2.. After modify All files and Complile with make CVM_PRELOAD=true J2ME_CLASSLIB=basis AWT_IMPLEMENTATION=gtk.Kindly give suggestion.
>

Are you seeing any errors? What are the error messages if you see
compilation or run-time errors?

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

anu_1977
Offline
Joined: 2007-06-26

Hello Sir
i am also try for Basis using GTK.Kindly guide me

decentdude
Offline
Joined: 2007-05-31

Hi Darryl.

I am trying to build the Personal Basis Profile(PBP) with GTK in linux. Currently I have the source of PBP with Microwindows. I also have source of PP with GTK in linux. But i am not getting the complete idea of how to build PBP with GTK in linux.
Can you tell me the required steps to build PBP with GTK in linux?

It will be much helpful to me.

Thanks and Greets,
Neeraj

soberg
Offline
Joined: 2007-02-12

Hi Neeraj,

I'm trying to build the personal profile for gtk+ linux too. If you read further down on this forum's topic you'll find that the Personal Profile code ( v1.1) will not build for gtk+ linux (at least as of svn rev 5544, I haven't checked recently).

Here are some patches.

cdc-gtk-dev1.patch
Patches cdc java src code from svn rev 5544:
Allows the gtk+ java classes to build.
http://projects.openmoko.org/plugins/scmsvn/viewcvs.php/oe/packages/phon...

cdc-gtk-dev2.patch
Patches cdc 'c' src code from svn rev 5544:
Allows some c source to build with gtk+2.6 headers. Definately a work in progress, It would be nice to find a gtk+ devleoper to help port the gtk+1.X code to 2.X :)
http://projects.openmoko.org/plugins/scmsvn/viewcvs.php/oe/packages/phon...

Scott

anu_1977
Offline
Joined: 2007-06-26

Hello Sir

These links are not open. Kindly Tell me How i can Port GTK in PhoneMEMR2 Sofware Without QT Support. Is their any Installation Guide is their.i need 1 sample example also support GTK-PBP1.1.

Allows the gtk+ java classes to build.
http://projects.openmoko.org/plugins/scmsvn/viewcvs.php/oe/packages/phon...

cdc-gtk-dev2.patch
Patches cdc 'c' src code from svn rev 5544:
Allows some c source to build with gtk+2.6 headers. Definately a work in progress, It would be nice to find a gtk+ devleoper to help port the gtk+1.X code to 2.X
http://projects.openmoko.org/plugins/scmsvn/viewcvs.php/oe/packages/phon...

Anurag

soberg
Offline
Joined: 2007-02-12

> Hello Sir
>
> These links are not open.
Humm, they worked for me this morning, I suppose the server could have been down when you checked.

FYI - they are not direct download links, just a page that shows the SCM log and contains a download link.

>Kindly Tell me How i can
> Port GTK in PhoneMEMR2 Sofware Without QT Support.

I'm sorry, porting (or adding support) is not a simple task. It might be simple if you are a gtk+ framework developer or are quite familiar with the PBP code (I am not). The work required is to add code to fix the PBP build to compile against gtk+ headers (at least gtk+ >= 2.6 perferrably).
The links to patches contain some compilation fixes, but is certainly not close to being done. I haven't had time to work on it lately.

Scott

> Is
> their any Installation Guide is their.i need 1 sample
> example also support GTK-PBP1.1.
>
> Allows the gtk+ java classes to build.
> http://projects.openmoko.org/plugins/scmsvn/viewcvs.ph
> p/oe/packages/phoneme-advanced/files/cdc-gtk-dev1.patc
> h?rev=10&root=java-pkg&view=log
>
> cdc-gtk-dev2.patch
> Patches cdc 'c' src code from svn rev 5544:
> Allows some c source to build with gtk+2.6 headers.
> Definately a work in progress, It would be nice to
> find a gtk+ devleoper to help port the gtk+1.X code
> to 2.X
> http://projects.openmoko.org/plugins/scmsvn/viewcvs.ph
> p/oe/packages/phoneme-advanced/files/cdc-gtk-dev2.patc
> h?rev=10&root=java-pkg&view=log
>
> Anurag

glachac
Offline
Joined: 2007-01-05

The basis CDC code for microwindows also looks like it relies on a modified version of microwindows. That is found here:

http://www.experimentalstuff.com/Technologies/mwpbp/download.html

That version looks like it sits on top of X only and the file naming in this package (header files called HardwareInterface.h and GraphicEngine.h) doesn't seem to exist any version of code I can find on www.microwindows.org.

Those header files are the names in the phoneme awt.h as well as the experimentalstuff.com version of microwindows.

I'm not sure if this microwindows code right now is useful for anything other than an example. It certainly doesn't build, unless I'm missing something.

alyssonbrito
Offline
Joined: 2007-03-02

Hello

I am facing the same problem, and it seems like this link (http://www.experimentalstuff.com/Technologies/mwpbp/download.html) does not exit anymore.

Would anyone know where I can get this modified version of microwindows ?

glachac
Offline
Joined: 2007-01-05

Microwindows is definitely not working with Basis. It looks like the classes are out of date and not implementing all the abstract functions in the base classes:

Compiling CDC/FP/PBP classes...
| ../../src/share/basis/classes/awt/microwindows/java/awt/MWGraphics.java:41: java.awt.MWGraphics is not abstract and does not override abstract method setStroke(java.awt.Stroke) in java.awt.Graphics2D
| class MWGraphics extends Graphics2D implements ConstrainableGraphics {
| ^
| ../../src/share/basis/classes/awt/microwindows/java/awt/MWGraphicsDevice.java:34: java.awt.MWGraphicsDevice is not abstract and does not override abstract method getAvailableAcceleratedMemory() in java.awt.GraphicsDevice
| class MWGraphicsDevice extends GraphicsDevice {
| ^
| ../../src/share/basis/classes/awt/microwindows/java/awt/MWDefaultGraphicsConfiguration.java:36: java.awt.MWDefaultGraphicsConfiguration is not abstract and does not override abstract method createCompatibleVolatileImage(int,int) in java.awt.GraphicsConfiguration
| class MWDefaultGraphicsConfiguration extends MWGraphicsConfiguration {
| ^
| ../../src/share/basis/classes/awt/microwindows/java/awt/MWARGBGraphicsConfiguration.java:36: java.awt.MWARGBGraphicsConfiguration is not abstract and does not override abstract method createCompatibleVolatileImage(int,int) in java.awt.GraphicsConfiguration
| class MWARGBGraphicsConfiguration extends MWGraphicsConfiguration {
| ^

Message was edited by: glachac
Fixed spelling

jitesh12
Offline
Joined: 2008-12-19

i have downloaded and compiled microwindows-0.88pre11.tar.gz, also i have downloaded phone me from svn repository. I am compiling from linux-x86-generic folder,and was able to build CDC and FP but when i tried to compile PBP with microwindows it is giving error.

make[1]: Leaving directory `
/phone_test/JVM/cdc/build/linux-x86-generic'
Compiling phoneME Advanced classes...
/phone_test/JVM/cdc/src/share/basis/classes/awt/microwindows/java/awt/MWGraphics.java:41: java.awt.MWGraphics is not abstract and does not override abstract method setStroke(java.awt.Stroke) in java.awt.Graphics2D
class MWGraphics extends Graphics2D implements ConstrainableGraphics {
^
/phone_test/JVM/cdc/src/share/basis/classes/awt/microwindows/java/awt/MWGraphicsDevice.java:34: java.awt.MWGraphicsDevice is not abstract and does not override abstract method getAvailableAcceleratedMemory() in java.awt.GraphicsDevice
class MWGraphicsDevice extends GraphicsDevice {
^
/phone_test/JVM/cdc/src/share/basis/classes/awt/microwindows/java/awt/MWDefaultGraphicsConfiguration.java:36: java.awt.MWDefaultGraphicsConfiguration is not abstract and does not override abstract method createCompatibleVolatileImage(int,int) in java.awt.GraphicsConfiguration
class MWDefaultGraphicsConfiguration extends MWGraphicsConfiguration {
^
/phone_test/JVM/cdc/src/share/basis/classes/awt/microwindows/java/awt/MWARGBGraphicsConfiguration.java:36: java.awt.MWARGBGraphicsConfiguration is not abstract and does not override abstract method createCompatibleVolatileImage(int,int) in java.awt.GraphicsConfiguration
class MWARGBGraphicsConfiguration extends MWGraphicsConfiguration {
^
Note: Some input files use or override a deprecated API.
Note: Recompile with -deprecation for details.
4 errors
make: *** [.compile.libclasses] Error 1

Please help me on downloading or choosing the correct microwindows version (i was not able to download from http://www.experimentalstuff.com/Technologies/mwpbp/). and also on how to resolve the error mentioned above.

robertkrikke
Offline
Joined: 2008-07-30

http://www.experimentalstuff.com/Technologies/mwpbp/ site is back, do you have the PBP 1.0 RI from Sun, because I can not download it anymore. I can only download PBP 1.1

sharmarajesh
Offline
Joined: 2007-07-04

Hi Hinkmond,
I tried with stub function again it is giving same type of errors.
when i tried to build using without CVM_PRELOAD_LIB=true option i.e.

CVM_TERSEOUTPUT=false CVM_DEBUG=true JDK_HOME=/root/CDC_DFB/j2sdk 1.4.2_14 CVM_J2ME_CLASSLIB=personal CVM_GNU_TOOLS_PATH=/usr/bin

no error is generated and CVM is build and linked properly but when i tried to run any program using native library

NullPointerException in the native method is generated

when i tried to build using

I am in the build directry linux_i686/make CVM_TERSEOUTPUT=false CVM_DEBUG=true JDK_HOME=/root/CDC_DFB/j2sdk 1.4.2_14 CVM_PRELOAD_LIB=true J2ME_CLASSLIB=personal CVM_GNU_TOOLS_PATH=/usr/bin

where =/root/CDC_DFB/j2sdk 1.4.2_14 is the path for the jdk
CVM_GNU_TOOLS_PATH=/usr/bin is for gcc and other GNU tools

during CVM linking the following errors are generated
llect2: ld returned 1 exit status
make: *** [../../build/linux-i686/bin/cvm] Error 1../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x1cd10): undefined reference to `Java_sun_awt_image_GifImageDecoder_parseImage'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x1cd40): undefined reference to `Java_sun_awt_image_GifImageDecoder_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x2d070): undefined reference to `Java_sun_awt_gtk_GMenuBarPeer_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x2d0a0): undefined reference to `Java_sun_awt_gtk_GMenuBarPeer_create'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x2d0b0): undefined reference to `Java_sun_awt_gtk_GMenuBarPeer_dispose'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x2d0c0): undefined reference to `Java_sun_awt_gtk_GMenuBarPeer_add'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x2e6d0): undefined reference to `Java_sun_awt_gtk_GMenuItemPeer_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x2e700): undefined reference to `Java_sun_awt_gtk_GMenuItemPeer_create'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x2e710): undefined reference to `Java_sun_awt_gtk_GMenuItemPeer_dispose'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x2e730): undefined reference to `Java_sun_awt_gtk_GMenuItemPeer_setLabelNative'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x2e740): undefined reference to `Java_sun_awt_gtk_GMenuItemPeer_setEnabled'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x2e750): undefined reference to `Java_sun_awt_gtk_GMenuItemPeer_setFont'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x86870): undefined reference to `Java_sun_awt_gtk_GToolkit_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x86880): undefined reference to `Java_sun_awt_gtk_GToolkit_run'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x868a0): undefined reference to `Java_sun_awt_gtk_GToolkit_getBufferedImagePeer'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x868b0): undefined reference to `Java_sun_awt_gtk_GToolkit_createBufferedImage'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x86a30): undefined reference to `Java_sun_awt_gtk_GToolkit_getScreenWidth'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x86a40): undefined reference to `Java_sun_awt_gtk_GToolkit_getScreenHeight'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x86a60): undefined reference to `Java_sun_awt_gtk_GToolkit_getColorModel'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x86a80): undefined reference to `Java_sun_awt_gtk_GToolkit_sync'../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x86ae0): undefined reference to `Java_sun_awt_gtk_GToolkit_beep'../../build/linux-i686/obj/libromjava.a(
romjava0.o)(.rodata+0x8d490): undefined reference to `Java_sun_awt_gtk_GdkGraphics_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x8d4a0): undefined reference to `Java_sun_awt_gtk_GdkGraphics_createFromComponentNative'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x8d4c0): undefined reference to `Java_sun_awt_gtk_GdkGraphics_createFromGraphics'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x8d4d0): undefined reference to `Java_sun_awt_gtk_GdkGraphics_createFromImage'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x8d4e0): undefined reference to `Java_sun_awt_gtk_GdkGraphics_setForegroundNative'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x8d540): undefined reference to `Java_sun_awt_gtk_GdkGraphics_dispose'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x8d5f0): undefined reference to `Java_sun_awt_gtk_GdkGraphics_setPaintMode'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x8d600): undefined reference to `Java_sun_awt_gtk_GdkGraphics_setXORMode'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x8d640): undefined reference to `Java_sun_awt_gtk_GdkGraphics_setClipNative'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x8d650): undefined reference to `Java_sun_awt_gtk_GdkGraphics_removeClip'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x8d6a0): undefined reference to `Java_sun_awt_gtk_GdkGraphics_clearRect'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x8d6d0): undefined reference to `Java_sun_awt_gtk_GdkGraphics_drawRectNative'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x8d6f0): undefined reference to `Java_sun_awt_gtk_GdkGraphics_drawStringNative'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x8d720): undefined reference to `Java_sun_awt_gtk_GdkGraphics_drawLineNative'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x8d7a0): undefined reference to `Java_sun_awt_gtk_GdkGraphics_copyArea'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x8d7b0): undefined reference to `Java_sun_awt_gtk_GdkGraphics_drawRoundRectNative'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x8d7c0): undefined reference to `Java_sun_awt_gtk_GdkGraphics_fillRoundRectNative'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x8d7f0): undefined reference to `Java_sun_awt_gtk_GdkGraphics_drawPolygonNative'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x8d870): undefined reference to `Java_sun_awt_gtk_GdkGraphics_drawArcNative'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0x8d880): undefined reference to `Java_sun_awt_gtk_GdkGraphics_fillArcNative'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0xc6810): undefined reference to `Java_sun_awt_gtk_GComponentPeer_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0xc6860): undefined reference to `Java_sun_awt_gtk_GComponentPeer_disposeNative'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0xc6880): undefined reference to `Java_sun_awt_gtk_GComponentPeer_setEnabled'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0xc68e0): undefined reference to `Java_sun_awt_gtk_GComponentPeer_setBoundsNative'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0xc6900): undefined reference to `Java_sun_awt_gtk_GComponentPeer_postMouseEventToGtk'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0xc6910): undefined reference to `Java_sun_awt_gtk_GComponentPeer_postKeyEventToGtk'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0xc6950): undefined reference to `Java_sun_awt_gtk_GComponentPeer_getLocationOnScreen'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0xc6960): undefined reference to `Java_sun_awt_gtk_GComponentPeer_getPreferredSize'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0xc69b0): undefined reference to `Java_sun_awt_gtk_GComponentPeer_updateWidgetStyle'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0xc6a10): undefined reference to `Java_sun_awt_gtk_GComponentPeer_setCursorNative'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0xc6a20): undefined reference to `Java_sun_awt_gtk_GComponentPeer_requestFocus'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0xc6a80): undefined reference to `Java_sun_awt_gtk_GComponentPeer_show'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0xc6a90): undefined reference to `Java_sun_awt_gtk_GComponentPeer_hide'
../../build/linux-i686/obj/libromjava.a(romjava0.o)(.rodata+0xc6ab0): undefined reference to `Java_sun_awt_gtk_GComponentPeer_setNativeEvent'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0xb0d0): undefined reference to `Java_sun_awt_gtk_GScrollPanePeer_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0xb0e0): undefined reference to `Java_sun_awt_gtk_GScrollPanePeer_calculateHScrollbarHeight'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0xb0f0): undefined reference to `Java_sun_awt_gtk_GScrollPanePeer_calculateVScrollbarWidth'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0xb100): undefined reference to `Java_sun_awt_gtk_GScrollPanePeer_enableScrollbarsNative'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0xb120): undefined reference to `Java_sun_awt_gtk_GScrollPanePeer_create'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0xb130): undefined reference to `Java_sun_awt_gtk_GScrollPanePeer_add'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0xb1a0): undefined reference to `Java_sun_awt_gtk_GScrollPanePeer_setUnitIncrementNative'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0xb1e0): undefined reference to `Java_sun_awt_gtk_GScrollPanePeer_setAdjusterNative'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0xb1f0): undefined reference to `Java_sun_awt_gtk_GScrollPanePeer_connectAdjuster'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0xb200): undefined reference to `Java_sun_awt_gtk_GScrollPanePeer_scrollbarVisible'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x31df0): undefined reference to `Java_sun_awt_gtk_GWindowPeer_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x31e10): undefined reference to `Java_sun_awt_gtk_GWindowPeer_create'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x31e20): undefined reference to `Java_sun_awt_gtk_GWindowPeer_toFront'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x31e30): undefined reference to `Java_sun_awt_gtk_GWindowPeer_toBack'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x31e40): undefined reference to `Java_sun_awt_gtk_GWindowPeer_setResizable'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x31e60): undefined reference to `Java_sun_awt_gtk_GWindowPeer_setBoundsNative'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x31ef0): undefined reference to `Java_sun_awt_gtk_GWindowPeer_requestFocus'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x31f50): undefined reference to `Java_sun_awt_gtk_GWindowPeer_setOwner'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x32170): undefined reference to `Java_sun_awt_gtk_GdkImageRepresentation_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x32190): undefined reference to `Java_sun_awt_gtk_GdkImageRepresentation_offscreenInit'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x321a0): undefined reference to `Java_sun_awt_gtk_GdkImageRepresentation_setBytePixels'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x321b0): undefined reference to `Java_sun_awt_gtk_GdkImageRepresentation_setIntPixels'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x321c0): undefined reference to `Java_sun_awt_gtk_GdkImageRepresentation_finish'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x321d0): undefined reference to `Java_sun_awt_gtk_GdkImageRepresentation_imageDraw'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x321e0): undefined reference to `Java_sun_awt_gtk_GdkImageRepresentation_imageStretch'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x321f0): undefined reference to `Java_sun_awt_gtk_GdkImageRepresentation_disposeImage'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x32200): undefined reference to `Java_sun_awt_gtk_GdkImageRepresentation_getRGB'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x32210): undefined reference to `Java_sun_awt_gtk_GdkImageRepresentation_getRGBs'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x32770): undefined reference to `Java_sun_awt_gtk_GFontPeer_areFontsTheSame'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x32780): undefined reference to `Java_sun_awt_gtk_GFontPeer_createFont'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x32790): undefined reference to `Java_sun_awt_gtk_GFontPeer_init'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x327f0): undefined reference to `Java_sun_awt_gtk_GFontPeer_asciiCharWidth'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x32810): undefined reference to `Java_sun_awt_gtk_GFontPeer_stringWidthNative'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x32820): undefined reference to `Java_sun_awt_gtk_GFontPeer_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x5cb10): undefined reference to `Java_sun_awt_gtk_GMenuPeer_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x5cb30): undefined reference to `Java_sun_awt_gtk_GMenuPeer_create'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x5cb40): undefined reference to `Java_sun_awt_gtk_GMenuPeer_add'../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x72aa0): undefined reference to `Java_sun_awt_gtk_GLabelPeer_create'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x73390): undefined reference to `Java_sun_awt_gtk_GCheckboxMenuItemPeer_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x733b0): undefined reference to `Java_sun_awt_gtk_GCheckboxMenuItemPeer_create'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x733c0): undefined reference to `Java_sun_awt_gtk_GCheckboxMenuItemPeer_setState'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x7dbf0): undefined reference to `Java_sun_awt_image_OffScreenImageSource_sendPixels'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x943c0): undefined reference to `Java_sun_awt_gtk_GPanelPeer_create'
../../build/linux-i686/obj/libromjava.a(romjava1.o)(.rodata+0x943f0): undefined reference to `Java_sun_awt_gtk_GPanelPeer_insert'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x1d000): undefined reference to `Java_sun_awt_gtk_GtkClipboard_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x1d010): undefined reference to `Java_sun_awt_gtk_GtkClipboard_createWidget'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x1d020): undefined reference to `Java_sun_awt_gtk_GtkClipboard_destroyWidget'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x1d030): undefined reference to `Java_sun_awt_gtk_GtkClipboard_setNativeClipboard'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x1d040): undefined reference to `Java_sun_awt_gtk_GtkClipboard_getNativeClipboard'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x2a9a0): undefined reference to `Java_sun_awt_gtk_GCanvasPeer_create'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x45230): undefined reference to `Java_sun_awt_gtk_GTextComponentPeer_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x45260): undefined reference to `Java_sun_awt_gtk_GTextComponentPeer_setEditable'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x45270): undefined reference to `Java_sun_awt_gtk_GTextComponentPeer_getTextNative'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x45290): undefined reference to `Java_sun_awt_gtk_GTextComponentPeer_setTextNative'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x452d0): undefined reference to `Java_sun_awt_gtk_GTextComponentPeer_getSelectionStart'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x452e0): undefined reference to `Java_sun_awt_gtk_GTextComponentPeer_getSelectionEnd'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x452f0): undefined reference to `Java_sun_awt_gtk_GTextComponentPeer_select'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x45300): undefined reference to `Java_sun_awt_gtk_GTextComponentPeer_setCaretPosition'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x45310): undefined reference to `Java_sun_awt_gtk_GTextComponentPeer_getCaretPosition'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x5c010): undefined reference to `Java_sun_awt_EmbeddedFrame_setPeer'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x61130): undefined reference to `Java_sun_awt_image_JPEGImageDecoder_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x61140): undefined reference to `Java_sun_awt_image_JPEGImageDecoder_readImage'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x66020): undefined reference to `Java_sun_awt_gtk_GPopupMenuPeer_create'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x66030): undefined reference to `Java_sun_awt_gtk_GPopupMenuPeer_show'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x748d0): undefined reference to `Java_sun_awt_gtk_GFramePeer_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x748f0): undefined reference to `Java_sun_awt_gtk_GFramePeer_create'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x74900): undefined reference to `Java_sun_awt_gtk_GFramePeer_setTitleNative'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x74930): undefined reference to `Java_sun_awt_gtk_GFramePeer_setStateNative'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x74950): undefined reference to `Java_sun_awt_gtk_GFramePeer_setIconImageNative'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x74980): undefined reference to `Java_sun_awt_gtk_GFramePeer_setMenuBarNative'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x749a0): undefined reference to `Java_sun_awt_gtk_GFramePeer_setWMStateHints'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x75ef0): undefined reference to `Java_sun_awt_PeerBasedToolkit_getComponentPeer'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x75f00): undefined reference to `Java_sun_awt_PeerBasedToolkit_getMenuComponentPeer'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x76610): undefined reference to `Java_sun_awt_gtk_GListPeer_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x76630): undefined reference to `Java_sun_awt_gtk_GListPeer_createNative'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x76660): undefined reference to `Java_sun_awt_gtk_GListPeer_getSelectedIndexes'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x76680): undefined reference to `Java_sun_awt_gtk_GListPeer_setRowHeight'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x766a0): undefined reference to `Java_sun_awt_gtk_GListPeer_addNative'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x766b0): undefined reference to `Java_sun_awt_gtk_GListPeer_delItems'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x766c0): undefined reference to `Java_sun_awt_gtk_GListPeer_removeAll'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x766d0): undefined reference to `Java_sun_awt_gtk_GListPeer_select'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x766e0): undefined reference to `Java_sun_awt_gtk_GListPeer_deselect'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x766f0): undefined reference to `Java_sun_awt_gtk_GListPeer_makeVisible'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x76700): undefined reference to `Java_sun_awt_gtk_GListPeer_setMultipleMode'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x7a010): undefined reference to `Java_sun_awt_gtk_GChoicePeer_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x7a030): undefined reference to `Java_sun_awt_gtk_GChoicePeer_create'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x7a050): undefined reference to `Java_sun_awt_gtk_GChoicePeer_addNative'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x7a070): undefined reference to `Java_sun_awt_gtk_GChoicePeer_removeNative'
../../build/linux-i686/obj/libromjava.a(romjava2.o)(.rodata+0x7a090): undefined reference to `Java_sun_awt_gtk_GChoicePeer_select'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x1760): undefined reference to `Java_sun_awt_gtk_GDialogPeer_create'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x1780): undefined reference to `Java_sun_awt_gtk_GDialogPeer_setTitleNative'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x1790): undefined reference to `Java_sun_awt_gtk_GDialogPeer_setModal'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x1b30): undefined reference to `Java_sun_awt_gtk_GFileDialogPeer_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x1b50): undefined reference to `Java_sun_awt_gtk_GFileDialogPeer_create'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x1b60): undefined reference to `Java_sun_awt_gtk_GFileDialogPeer_setFileNative'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x3110): undefined reference to `Java_sun_awt_gtk_ShutdownHook_gtkMainQuit'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0xa650): undefined reference to `Java_sun_awt_gtk_GButtonPeer_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0xa680): undefined reference to `Java_sun_awt_gtk_GButtonPeer_create'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0xa690): undefined reference to `Java_sun_awt_gtk_GButtonPeer_setLabelNative'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x112b0): undefined reference to `Java_sun_awt_gtk_GCheckboxPeer_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x112e0): undefined reference to `Java_sun_awt_gtk_GCheckboxPeer_create'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x11300): undefined reference to `Java_sun_awt_gtk_GCheckboxPeer_setState'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x11330): undefined reference to `Java_sun_awt_gtk_GCheckboxPeer_setLabelNative'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x23d10): undefined reference to `Java_sun_awt_gtk_GTextFieldPeer_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x23d30): undefined reference to `Java_sun_awt_gtk_GTextFieldPeer_create'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x23d40): undefined reference to `Java_sun_awt_gtk_GTextFieldPeer_setEchoChar'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x2e3b0): undefined reference to `Java_sun_awt_gtk_GScrollbarPeer_initIDs'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x2e3e0): undefined reference to `Java_sun_awt_gtk_GScrollbarPeer_createScrollbar'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x2e3f0): undefined reference to `Java_sun_awt_gtk_GScrollbarPeer_setValues'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x2e400): undefined reference to `Java_sun_awt_gtk_GScrollbarPeer_setLineIncrement'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x2e410): undefined reference to `Java_sun_awt_gtk_GScrollbarPeer_setPageIncrement'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x37a50): undefined reference to `Java_sun_awt_gtk_GTextAreaPeer_createTextArea'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x37a60): undefined reference to `Java_sun_awt_gtk_GTextAreaPeer_insertNative'
../../build/linux-i686/obj/libromjava.a(romjava3.o)(.rodata+0x37a80): undefined reference to `Java_sun_awt_gtk_GTextAreaPeer_replaceRangeNative'
collect2: ld returned 1 exit status
make: *** [../../build/linux-i686/bin/cvm] Error 1

i.e. without CVM_PRELOAD_LIB=true cvm is created but no program with native method is executed with CVM_PRELOAD_LIB=true cvm is not build and udefined reference error is generated

Thanks & Kind Regards,

Rajesh Sharma

sharmarajesh
Offline
Joined: 2007-07-04

Thanks for the reply,
I am very new in CDC related fields. I don't know how can i write the stub functions and where " to remove these errors". If you help me to provide a little bit guidance that will really matter a lot to me.

Thanks in Advance
Kind Regards,
Rajesh Sharma

sharmarajesh
Offline
Joined: 2007-07-04

Hi,
I tried after commenting the body JNI functions in the .c files used in for GTK library but it still generate the same errors. when i execute the make command with CVM_PRELOAD_LIB=false then evrything work fine as well as CVM is created also the libgtkawt_g.so is created while i tried to run the PPDemoFrame.class again some native methods related erros are generated as NULLPointerException is also generated.

Thanks in Advance for you kind help

Best Regards,

anu_1977
Offline
Joined: 2007-06-26

take help form neeraj

sharmarajesh
Offline
Joined: 2007-07-04

Hi Hinkmond,
That error was removed yesterday by changing in the make file. the changes applied are
in defs.foundation.mk file it was searching for protocol class in http folder but i have only datagram folder so i create another folder http folder and copy the protocol file over there and next time the error is not coming.

Now another new error is coming while linking with CVM in libromjava class file the error is undefine reference in Java_sun_awt_gtk_GButtonPeer in method initIDs
i.e. in all the native methods this error is generated and total number of errors are upto 100. these are generate while linking with CVM

i am using linux-i686 as a build directory

Regards

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> Hi Hinkmond,
> That error was removed yesterday by changing in the make file. the changes applied are
> in defs.foundation.mk file it was searching for protocol class in http folder but i have only datagram folder so i create another folder http folder and copy the protocol file over there and next time the error is not coming.
>
> Now another new error is coming while linking with CVM in libromjava class file the error is undefine reference in Java_sun_awt_gtk_GButtonPeer in method initIDs
> i.e. in all the native methods this error is generated and total number of errors are upto 100. these are generate while linking with CVM
>
> i am using linux-i686 as a build directory
>
>

I see. So you should put stub functions in for all the undefined
references for now (later fill them in with proper functionality) just
so that you can get a clean build.

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

sharmarajesh
Offline
Joined: 2007-07-04

Hi All,
I am installing CDC PP with GTK support on Red Hat linux 7.0 when i gave the following option :- make CVM_BUILD=true CVM_PRELOAD_LIB=true J2ME_CLASSLIB=personal during installation following error is generated:-

CDC_PP Installation error com_sun_cdc_io_j2me_http_protocol_tt in romjavao.c[/b][/b] file varaible is undeclared or not used.

Thanks in Advance for any kind help.

Kind Regards,

Rajesh Sharma

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> Hi All,
> I am installing CDC PP with GTK support on Red Hat linux 7.0 when i gave the following option :- make CVM_BUILD=true CVM_PRELOAD_LIB=true J2ME_CLASSLIB=personal during installation following error is generated:-
>
> CDC_PP Installation error com_sun_cdc_io_j2me_http_protocol_tt in romjavao.c[/b][/b] file varaible is undeclared or not used.
>
> Thanks in Advance for any kind help.
>

Which build subdirectory do you build from? Are you building from
build/linux-x86-generic?

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

darryl_m
Offline
Joined: 2006-10-16

glahac,

microwindows (along with GTK and pocketpc for Personal Profile) were written to the 1.0 specification. For microwindows to work with Basis 1.1, it needs to be modified to work with the Basis 1.1 shared code. For example, setStroke is one of the methods added to java.awt.Graphics2D in Basis 1.1, which is why you're seeing the failure. Look in src/share/basis/classes/common/java/awt and you'll find the shared Basis code.

-Darryl

soberg
Offline
Joined: 2007-02-12

Hi Darryl,

I'm working on building phoneme for the openmoko phone (FIC Neo1973)
At the moment I'm trying to build phoneme-advanced MR2 from svn (r3878).

Before I found this thread, I started to try to get the latest phoneme (basis profile) to build using the latest microwindows code. I just copied common code from the Qt port, throwing UnsupportedOperationExceptions where I didn't see a native impl yet, the volitile image stuff seemed like all I had to do was refactor the class names..., so that the microwindows java classes will build.
So my question is, does the Basis 1.1 shared code depend on these new features for it's core functionality? If so, my approach of throw now and fix later won't work at all!

I'll probably just switch to trying to build the personal profile (since the openmoko UI is supposed to be based on GTK) and switch to J2ME_CLASSLIB=personal AWT_PEERSET=gtk

Scott

darryl_m
Offline
Joined: 2006-10-16

Hi Scott.

You're taking the right approach for bringing microwindows up to version 1.1 of Basis. The new features added to 1.1 are mainly volatile image, the input method framework, and focus management from J2SE 1.4.2. The input method framework is mostly Java code. If you want to implement you're own native intput method you can add that, but it is not required. The focus management code is Java code and it brought the Basis 1.1 code up to the J2SE 1.4.2 codebase. Stubbing out VolatileImage shouldn't cause a problem. Just don't use volatile images in any applications you write.

If you go the Personal/GTK route, the GTK code is currently at Personal Profile v1.0 while the shared Personal Profile code is a v1.1. So there will be build errors and you will have to go through the same process of updating the Personal GTK code to the v1.1 codebase.

-Darryl

darryl_m
Offline
Joined: 2006-10-16

Johannes,

please see my comments inline.

-Darryl

Johannes Eickhold wrote:
> On Thu, 2007-01-11 at 09:33 -0800, phonemeadvanced@mobileandembedded.org
> wrote:
>
>>>I assumed phoneME Advanced MR2 to be the complete code basis of CDC with
>>>all its possible profiles. Why can it be build on top of one of its own
>>>parts?
>>
>>In the world of mobile devices, more is not always better. Basis
>>provides less functionality then Personal, but the footprint is
>>smaller.
>
>
> I know but thought that difference in footprint doesn't matter on the
> 770.

If it doesn't matter to you on the 770, then that's OK. When working with device manufacturers, a small difference in footprint can make a big difference in the manufacturing cost. Spread over thousands or millions of devices, this can be a big thing. I used to work on telematics technologies for cars, some of the cars cost over $30,000 U.S. dollars yet pennies made a difference to the manufacturer.

>
>
>>You could certainly build a version of the AMS using Personal with
>>additional features which Personal provides, but that is not the
>>current goal of phoneME Advanced and it requires additional work.
>
>
> What exactly has the AMS to do with PBP or PP? As I understand from
> http://java.sun.com/j2me/docs/cdc_appmgmt_wp.pdf the AMS is there to
> handle multiple standalone Java applications which is something you
> probably want on the 770.

It really depends upon the AMS implementation. If the AMS uses API's which are in internal packages (e.g. com.sun), then they might not work under a different implementation. For what you want to do, run main applications, I would not deal with the AMS at this point. Focus on PP.

>
>
>>If your goal is to have a build of Java on the 770 which lets you
>>create a graphical UI of some sort, then you'll need, at a minimum,
>>Basis or Personal. We don't currently have a version of Basis using
>>GTK, only Personal...and MR2 uses Basis. So your choices are: to get
>>Personal working, which means no MR2/AMS, or to build a version of
>>Basis using GTK, which we currently do not have. Since we already
>>have a 1.0 version of Personal which works with GTK, I think your
>>quickest route is to update the Personal GTK code to 1.1.
>
>
> Ok then I'll try to take this route assuming that MR2/AMS is not of
> major importance for me until you show me the opposite :).

Yes.

>
>
>>Are you looking for specific features which Personal provides or are
>>you interested in Personal because there is a GTK version? Could you
>>provide more details as to why you're more interested in Personal?
>
>
> Yes, I'm interested in Personal because of the GTK version. The Nokia
> 770 uses a Gnome/GTK+ based UI called hildon [0] which is specialized
> for stylus usage and text input through a virtual keyboard. No other
> widget set is available on the 770 by default for various good reasons.
> It seems at least difficult to get another widget set completely
> functional on the 770.
>
> My goals:
> 1. I want phoneME on the 770 to use as much of the available native GTK+
> widgets as possible
> and have it using the hildonized versions of the important basic
> widgets (Window,
> Manubar,... - have a closer look at [1]).
> 2. I want to access bluetooth on the 770 from within Java.

I don't know what AvetanaBluetooth is about. If you want to access bluetooth from the 770, a good option right now is to use JNI and to call the native 770 API's.

> 3. The app should be a regular Java application not an applet.
> (midlet/xlet are of minor priority)

FP, PBP, and PP all support main applications. PBP adds Xlet support and PP adds Applet support.

>
> Regarding 1. I would like to try fixing the peer GTK implementation for
> Personal and see how far I come and how much work this is. For that I
> need more precise info how to start and what exactly has to be done. As
> far as I understand

See below.

> - the API of the current GTK peer implementation complies to version
> 1.0 of the PP (JSR 62)

Yes.

> - it is a peer implementation which means it is heavyweight
> - because phoneME Advanced MR2 provides PP 1.1.2 (JSR 216) it has to be
> updated

Yes.

> - that update has to fill the gap (the API differences) between PP 1.0
> and PP 1.1.2

Yes.

>
> I had a quick look at the related code (see end of mail for
> orientation).

You can find the specification for PP 1.0 (JSR 62) here: http://jcp.org/en/jsr/detail?id=62 and PP 1.1 (JSR 216) here: http://jcp.org/en/jsr/detail?id=216. 1.1 adds support for FP 1.1 (JSR 219): http://jcp.org/en/jsr/detail?id=219, update to the Java SE 1.4 codebase (PP 1.0 is based on 1.3.1), 1.1 uses the 1.4 focus management system), support for wide-line rendering, support for the input method framework, and volatile images. See the PP 1.1 specification for more details.

The good news is that the bulk of the 1.1 changes is not in the peer code, but in the shared code. It should be a relatively easy thing to update the GTK peerset code to support PP 1.1. In fact, look at the Jan 16, 2007 4:52 AM post of the phoneME Advanced Forum thread entitled "Building and running on Windows Mobile 5.0 (Pocket PC) iPAQ" (http://forums.java.net/jive/thread.jspa?threadID=21524&tstart=0). davyp wanted to do the same thing for pocketpc, but the pocketpc peerset was also at 1.0. Following his link (http://www.cs.kuleuven.be/~davy/phoneme.php), you find a section named '3.3 Personal Profile'. He has included diffs of what he did to get it to compile and run for pocketpc (although not all issues are fixed...some are stubbed). I think this is a good starting point.

>
> The following questions remain:
> - What exactly are the changes between PP 1.0 and PP 1.1.2 regarding
> AWT?

See above.

> - Where can I find API doc and specification of package sun.awt.gtk?
>
> In [2] I found a quite good introduction in different UI implementations
> for Java. I've also read your blog post about the 'phoneME Advanced Peer
> File Structure' [3], had a look in the CDC White Paper [4] (chapter 6 -
> GUI) and at the JSR 216 request description [5] (it seems this is mainly
> concerned with AWT and and the different methods how it can be
> implemented - Sections). See that as my background knowledge.
>
> If it turns out that bringing the GTK peer for AWT in Personal to 1.1 is
> too difficult, I see two possible alternatives to get a Java GUI on the
> 770:
> - Using SWT (GTK version) together with Foundation.
> - Have a look at the AWT implementation in GNU Classpath [6].
>
> Regarding 2. What is the status JSR 82 in phoneME Advanced? It seems
> this [7] implementation of JSR 82 would fit the 770 quite well (Linux
> +BlueZ on the 770).

The current version of JSR 82 is focused on CLDC.

>
>
>>Use
>>
>>make J2ME_CLASSLIB=personal AWT_PEERSET=gtk
>>
>>as Chris suggested
>
>
> I tried that and it failed as expected. See the [8] for a build.log.
>
> Jonek
>
> [0] http://maemo.org/community/hildon_ui.html
> [1]
> https://stage.maemo.org/svn/maemo/projects/haf/doc/api/hildon-libs/index...
> [2] http://www.inf.uos.de/elmar/projects/java-gtk/thread-ui.pdf
> [3]
> http://weblogs.java.net/blog/darryl_m/archive/2006/12/phoneme_advance_1....
> [4] http://java.sun.com/products/cdc/wp/cdc-whitepaper.pdf
> [5] http://jcp.org/en/jsr/detail?id=216
> [6] http://www.gnu.org/software/classpath
> [7] http://sourceforge.net/projects/avetanabt
> [8]
> http://i30www.ira.uka.de/p2p/ambicomp/phoneME_Nokia770/mr2-logs/build-PP...

Without going through the entire list, one thing I see is that GTK's GComponentPeer does not implement all of the methods in the ComponentPeer interface. For example, the requestFocus method in GComponentPeer takes no parameters, but the requestFocus declaration in the ComponentPeer interface which GComponentPeer implements takes 5 parameters. There is also no setFocusable method implemented in GComponentPeer and no createVolatileImage method implemented. These are all 1.1 features (see list above).

>
> Related (PP + AWT + GTK) code in Java phoneMe Advanced MR2:
> - native part:
> src/share/personal/native/awt/gtk
> src/share/personal/native/sun/awt
> - java part:
> src/share/personal/classes/awt/peer_based/java/awt
>
> src/share/personal/classes/awt/peer_based/sun/awt/PeerBasedToolkit.java
> src/share/personal/classes/awt/peer_based/sun/awt/gtk
> src/share/personal/classes/awt/peer_based/sun/awt/peer
> src/share/personal/classes/common/java/awt
> - make files
> build/share/defs_personal_gtk.mk
> build/share/defs_personal_peer_based.mk
>
>

darryl_m
Offline
Joined: 2006-10-16

Johannes,

> I'm evaluating phoneME Advanced for the 770. That means I'm looking how
> far (as in how many features) I can get by just compiling existing
> source code of MR1 and MR2 for the 770. If it turns out that no GUI is
> possible on the 770 from within Java, I want to identify the spots which
> have to be modified and post to the maemo-developers mailinglist those
> findings in order to motivate some people there (including myself) to
> join this effort and eventually get a Java on the 770 with working GUI.

It would be great to see it running on the 770.

> I assumed phoneME Advanced MR2 to be the complete code basis of CDC with
> all its possible profiles. Why can it be build on top of one of its own
> parts?

In the world of mobile devices, more is not always better. Basis provides less functionality then Personal, but the footprint is smaller. You could certainly build a version of the AMS using Personal with additional features which Personal provides, but that is not the current goal of phoneME Advanced and it requires additional work.

> Do you say 'just' because of 'without the AMS'?

Yes. If your goal is to have a build of Java on the 770 which lets you create a graphical UI of some sort, then you'll need, at a minimum, Basis or Personal. We don't currently have a version of Basis using GTK, only Personal...and MR2 uses Basis. So your choices are: to get Personal working, which means no MR2/AMS, or to build a version of Basis using GTK, which we currently do not have. Since we already have a 1.0 version of Personal which works with GTK, I think your quickest route is to update the Personal GTK code to 1.1.

Are you looking for specific features which Personal provides or are you interested in Personal because there is a GTK version? Could you provide more details as to why you're more interested in Personal?

> OK. I'll try.

Use

make J2ME_CLASSLIB=personal AWT_PEERSET=gtk

as Chris suggested

-Darryl

Johannes Eickhold

On Thu, 2007-01-11 at 09:33 -0800, phonemeadvanced@mobileandembedded.org
wrote:
> > I assumed phoneME Advanced MR2 to be the complete code basis of CDC with
> > all its possible profiles. Why can it be build on top of one of its own
> > parts?
>
> In the world of mobile devices, more is not always better. Basis
> provides less functionality then Personal, but the footprint is
> smaller.

I know but thought that difference in footprint doesn't matter on the
770.

> You could certainly build a version of the AMS using Personal with
> additional features which Personal provides, but that is not the
> current goal of phoneME Advanced and it requires additional work.

What exactly has the AMS to do with PBP or PP? As I understand from
http://java.sun.com/j2me/docs/cdc_appmgmt_wp.pdf the AMS is there to
handle multiple standalone Java applications which is something you
probably want on the 770.

> If your goal is to have a build of Java on the 770 which lets you
> create a graphical UI of some sort, then you'll need, at a minimum,
> Basis or Personal. We don't currently have a version of Basis using
> GTK, only Personal...and MR2 uses Basis. So your choices are: to get
> Personal working, which means no MR2/AMS, or to build a version of
> Basis using GTK, which we currently do not have. Since we already
> have a 1.0 version of Personal which works with GTK, I think your
> quickest route is to update the Personal GTK code to 1.1.

Ok then I'll try to take this route assuming that MR2/AMS is not of
major importance for me until you show me the opposite :).

> Are you looking for specific features which Personal provides or are
> you interested in Personal because there is a GTK version? Could you
> provide more details as to why you're more interested in Personal?

Yes, I'm interested in Personal because of the GTK version. The Nokia
770 uses a Gnome/GTK+ based UI called hildon [0] which is specialized
for stylus usage and text input through a virtual keyboard. No other
widget set is available on the 770 by default for various good reasons.
It seems at least difficult to get another widget set completely
functional on the 770.

My goals:
1. I want phoneME on the 770 to use as much of the available native GTK+
widgets as possible
and have it using the hildonized versions of the important basic
widgets (Window,
Manubar,... - have a closer look at [1]).
2. I want to access bluetooth on the 770 from within Java.
3. The app should be a regular Java application not an applet.
(midlet/xlet are of minor priority)

Regarding 1. I would like to try fixing the peer GTK implementation for
Personal and see how far I come and how much work this is. For that I
need more precise info how to start and what exactly has to be done. As
far as I understand
- the API of the current GTK peer implementation complies to version
1.0 of the PP (JSR 62)
- it is a peer implementation which means it is heavyweight
- because phoneME Advanced MR2 provides PP 1.1.2 (JSR 216) it has to be
updated
- that update has to fill the gap (the API differences) between PP 1.0
and PP 1.1.2

I had a quick look at the related code (see end of mail for
orientation).

The following questions remain:
- What exactly are the changes between PP 1.0 and PP 1.1.2 regarding
AWT?
- Where can I find API doc and specification of package sun.awt.gtk?

In [2] I found a quite good introduction in different UI implementations
for Java. I've also read your blog post about the 'phoneME Advanced Peer
File Structure' [3], had a look in the CDC White Paper [4] (chapter 6 -
GUI) and at the JSR 216 request description [5] (it seems this is mainly
concerned with AWT and and the different methods how it can be
implemented - Sections). See that as my background knowledge.

If it turns out that bringing the GTK peer for AWT in Personal to 1.1 is
too difficult, I see two possible alternatives to get a Java GUI on the
770:
- Using SWT (GTK version) together with Foundation.
- Have a look at the AWT implementation in GNU Classpath [6].

Regarding 2. What is the status JSR 82 in phoneME Advanced? It seems
this [7] implementation of JSR 82 would fit the 770 quite well (Linux
+BlueZ on the 770).

> Use
>
> make J2ME_CLASSLIB=personal AWT_PEERSET=gtk
>
> as Chris suggested

I tried that and it failed as expected. See the [8] for a build.log.

Jonek

[0] http://maemo.org/community/hildon_ui.html
[1]
https://stage.maemo.org/svn/maemo/projects/haf/doc/api/hildon-libs/index...
[2] http://www.inf.uos.de/elmar/projects/java-gtk/thread-ui.pdf
[3]
http://weblogs.java.net/blog/darryl_m/archive/2006/12/phoneme_advance_1....
[4] http://java.sun.com/products/cdc/wp/cdc-whitepaper.pdf
[5] http://jcp.org/en/jsr/detail?id=216
[6] http://www.gnu.org/software/classpath
[7] http://sourceforge.net/projects/avetanabt
[8]
http://i30www.ira.uka.de/p2p/ambicomp/phoneME_Nokia770/mr2-logs/build-PP...

Related (PP + AWT + GTK) code in Java phoneMe Advanced MR2:
- native part:
src/share/personal/native/awt/gtk
src/share/personal/native/sun/awt
- java part:
src/share/personal/classes/awt/peer_based/java/awt

src/share/personal/classes/awt/peer_based/sun/awt/PeerBasedToolkit.java
src/share/personal/classes/awt/peer_based/sun/awt/gtk
src/share/personal/classes/awt/peer_based/sun/awt/peer
src/share/personal/classes/common/java/awt
- make files
build/share/defs_personal_gtk.mk
build/share/defs_personal_peer_based.mk

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

cjplummer
Offline
Joined: 2006-10-16

> On Thu, 2007-01-11 at 09:33 -0800,
> phonemeadvanced@mobileandembedded.org
> wrote:
>>> I assumed phoneME Advanced MR2 to be the complete code basis of CDC with
>>> all its possible profiles. Why can it be build on top of one of its own
>>> parts?
>>
>> In the world of mobile devices, more is not always better. Basis
>> provides less functionality then Personal, but the footprint is
>> smaller.
>
> I know but thought that difference in footprint
> doesn't matter on the
> 770.
>

Gary is really referring to the priorities of the CDC team at the moment. We need to prioritize the application models that the AMS will support: MIDP, xlet (PBP), applet (PP), application (PP), etc. Currently PP is not a high priority, but that does not mean in cannot be made to work withing the AMS, and does not mean that it won't eventually be given some attention by the CDC team.

So, right now PP (within the AMS or otherwise) is not really being given much attention. However, I can tell you that the version of PP currently in MR2 (on the trunk) does build and run with the QT peerset. However, I don't believe any AMS work has been done to support PP.

>> You could certainly build a version of the AMS using Personal with
>> additional features which Personal provides, but that is not the
>> current goal of phoneME Advanced and it requires additional work.
>
> What exactly has the AMS to do with PBP or PP? As I understand from
> http://java.sun.com/j2me/docs/cdc_appmgmt_wp.pdf the AMS is there to
> handle multiple standalone Java applications which is something you
> probably want on the 770.
>
Using the AMS really has two benefits. (1) An application manager to handle the launching of installed applications. The Nokia 770 already comes with an appliation manager, so you can do without this part. (2) The ability to share resources between JVM instances. The AMS in MR1 makes use of the CDC MTask support, which allows one running JVM to spawn another using "copy on write" fork. This allows most of the resources associated with a running JVM to be shared. It also greatly speeds up application launch time because the JVM doesn't need to be initialized every time.

>> If your goal is to have a build of Java on the 770 which lets you
>> create a graphical UI of some sort, then you'll need, at a minimum,
>> Basis or Personal. We don't currently have a version of Basis using
>> GTK, only Personal...and MR2 uses Basis. So your choices are: to get
>> Personal working, which means no MR2/AMS, or to build a version of
>> Basis using GTK, which we currently do not have. Since we already
>> have a 1.0 version of Personal which works with GTK, I think your
>> quickest route is to update the Personal GTK code to 1.1.
>
> Ok then I'll try to take this route assuming that MR2/AMS is not of
> major importance for me until you show me the opposite :).
>
I think that is a good approach for now, because the MR2/AMS is a complete redesign of what is in MR1, and is still in its early stages. If you really want the CDC AMS support, you should stick with MR1 for now, unless you want to be really active in (and on the cutting edge of) the MR2 AMS development.

BTW, for reasons I don't want to go into, MR1 only contains source that was tested and "supported", whereas MR2 (in terms of the source base) contains everything we have that is not legally encumbered. For this reason, MR1 does not contain the broken GTK peerset implementation. However, I'm pretty sure the MR2 version of GTK will just drop into MR1, so you should be able to get GTK working in either MR1 or MR2, and move the implementation between the two without any problems.

> My goals:
> 1. I want phoneME on the 770 to use as much of the
> available native GTK+ widgets as possible
> and have it using the hildonized versions of the
> the important basic widgets (Window,
> Manubar,... - have a closer look at [1]).
> 2. I want to access bluetooth on the 770 from within Java.
> 3. The app should be a regular Java application not an applet.
> (midlet/xlet are of minor priority)
>
> Regarding 1. I would like to try fixing the peer GTK implementation for
> Personal and see how far I come and how much work this is. For that I
> need more precise info how to start and what exactly has to be done. As
> far as I understand
> - the API of the current GTK peer implementation complies to version
> 1.0 of the PP (JSR 62)
> - it is a peer implementation which means it is heavyweight
> - because phoneME Advanced MR2 provides PP 1.1.2
> 2 (JSR 216) it has to be updated
> - that update has to fill the gap (the API I differences) between PP 1.0
> and PP 1.1.2
>
I'm not a GUI guy, so I don't know the details. What I can tell you is that most of the PP implementation is shared, and there is a plugin part called the peerset. Of course there is an interface between the shared part and the peerset implementation (probably only documented in the implementation itself). Currently there are QT and GTK peerset implementations, but as you know the GTK version is dated. I imagine most of the work will updating the GTK peerset implementation to conform to the interface changes. So, your task may not involve understanding the PP spec changes, but just figuring out the interface changes between the peerset and the shared code.

> I had a quick look at the related code (see end of mail for
> orientation).
>
> The following questions remain:
> - What exactly are the changes between PP 1.0 and PP 1.1.2 regarding
> AWT?
> - Where can I find API doc and specification of package sun.awt.gtk?
>
Hopefully Gary can help here.

>> make J2ME_CLASSLIB=personal AWT_PEERSET=gtk
>>
>> as Chris suggested
>
And the failure of the type of would expect.

best regards,

Chris