http://www.webtoolkit.eu/wt/
http://www.emweb.be/
http://www.boost.org/
I thought it might be great to have that toolkit running on the NGW because of the rich interface components you can use on the client. Of course this demanded for the porting of all the C++ libraries to AVR32 which isn't an easy thing todo because the boost project uses the bjam make tool and wt the cmake. I'm still busy with it as we speak. The compilation for boost is done by making symbolik links to the avr32 tool chain to bypass the bjam stuff. I'm not sure if this is the right way to go. The cmake for wt is easier for cross compilation and went smoothly. Nevertheless there're still problems in finding (C++) library functions on the target after installing the libs in the LD export directory. I even had to remake the buildroot with wchar support. But this is also a good exercise to learn the possible linux library configurations. So I will continue this in parallel with my proof of concept. But the WT project has started me thinking on the possible other ways to build my browser interface like using JavaScript / Ajax and DOM. I will buy a few books on these concepts because they are all hot topics now a days. From O-Reilly:
- JavaScript: The Definitive Guide, 5th Edition (David Flanagan)
- Ajax: The Definitive Guide (Anthony Holdener)
Meanwhile I started with the proof of concept in building a shared object library for the I2C stuff.
I made a i2c_func.so library. Still not sure on the versioning stuff in respect with ldconfig. Will investigate and read more on that subject. What with multiple so versions and their symbolic links?
I already learned the 3 sorts of lib :
- Static library (extension .a) -> code becomes part of final exec
- Shared Object (extension .so) -> code stays in lib automatically loaded with exec startup (depends on LD conf where to find)
- Dynamic Link Lib ( extension .so) -> code stays in lib linking when needed at runtime (get func/sym with API)
I also played a bit around with tooling like NM , OBJDUMP , READELF , LDD , LDCONFIG to name a few. All very practical command line programs to investigate objects and libraries more in-depth. Cumming up are the summer months lets hope on good weather but if not I know what todo ;-)