Difference between revisions of "NetSurf Source"
(→Compilation instructions) |
(→Compilation instructions) |
||
Line 6: | Line 6: | ||
#setup environment (install cross compiler) | #setup environment (install cross compiler) | ||
#compile and <code>make install</code> required dependency libraries: | #compile and <code>make install</code> required dependency libraries: | ||
− | + | #*libiconv | |
− | + | #*zlib | |
− | + | #*libjpeg | |
− | + | #*libpng | |
− | + | #*libxml2 | |
− | + | #*libidn | |
− | + | #*(openssl) | |
− | + | #*curl | |
− | + | #*SamyGO libSDL | |
#setup environment for netsurf compilation | #setup environment for netsurf compilation | ||
− | < | + | #:<code>#!/bin/sh</code> |
− | #!/bin/sh | + | #:<code>#export PATH=/usr/local/arm-linux-gnueabi/bin:$PATH</code> |
− | #export PATH=/usr/local/arm-linux-gnueabi/bin:$PATH | + | #:<code>export PKGCONFIG=arm-linux-gnueabi-pkg-config</code> |
− | export PKGCONFIG=arm-linux-gnueabi-pkg-config | + | #:<code>export PKG_CONFIG=arm-linux-gnueabi-pkg-config</code> |
− | export PKG_CONFIG=arm-linux-gnueabi-pkg-config | + | #:<code>export XML2_CONFIG=/usr/local/arm-linux-gnueabi/bin/xml2-config</code> |
− | export XML2_CONFIG=/usr/local/arm-linux-gnueabi/bin/xml2-config | + | #:<code>export CC=arm-linux-gnueabi-gcc</code> |
− | export CC=arm-linux-gnueabi-gcc | + | #:<code>export CXX=arm-linux-gnueabi-g++</code> |
− | export CXX=arm-linux-gnueabi-g++ | + | #:<code>export LD=arm-linux-gnueabi-ld</code> |
− | export LD=arm-linux-gnueabi-ld | + | #:<code>export STRIP=arm-linux-gnueabi-strip</code> |
− | export STRIP=arm-linux-gnueabi-strip | + | #:<code>export AR=arm-linux-gnueabi-ar</code> |
− | export AR=arm-linux-gnueabi-ar | + | #:<code>export HOST_CC=/usr/bin/gcc</code> |
− | export HOST_CC=/usr/bin/gcc | + | #:<code>export CFLAGS="-fPIC -O2 -D_REENTRANT"</code> |
− | export CFLAGS="-fPIC -O2 -D_REENTRANT" | + | #:<code>export CXXFLAGS="-fPIC -O2 -D_REENTRANT"</code> |
− | export CXXFLAGS="-fPIC -O2 -D_REENTRANT" | + | #:<code>export PREFIX=/usr/local/arm-linux-gnueabi</code> |
− | export PREFIX=/usr/local/arm-linux-gnueabi | + | #:<code># turns off silencing of compiler commands in netsurf compilation</code> |
− | # turns off silencing of compiler commands in netsurf compilation | + | #:<code>export Q=</code> |
− | export Q= | ||
− | </ | ||
#compile and <code>make install</code> netsurf member libraries | #compile and <code>make install</code> netsurf member libraries | ||
− | (each time: <code>make HOST=SamsungDTV; make HOST=SamsungDTV install</code>) | + | #:(each time: <code>make HOST=SamsungDTV; make HOST=SamsungDTV install</code>) |
− | + | #*libparserutils | |
− | + | #*libwapcaplet | |
− | + | #*libnsbmp | |
− | + | #*libnsgif | |
− | + | #*libnsfb | |
− | + | #*libcss | |
− | + | #*hubbub | |
#compile netsurf | #compile netsurf | ||
− | <code>make HOST=SamsungDTV TARGET=framebuffer</code> | + | #:<code>make HOST=SamsungDTV TARGET=framebuffer</code> |
==Hacking guide== | ==Hacking guide== |
Revision as of 21:20, 21 August 2010
The NetSurf_Web_Browser is Open Source and licensed under the GPL. Of course, the source code is available. Get it here.
Compilation instructions
- setup environment (install cross compiler)
- compile and
make install
required dependency libraries:- libiconv
- zlib
- libjpeg
- libpng
- libxml2
- libidn
- (openssl)
- curl
- SamyGO libSDL
- setup environment for netsurf compilation
#!/bin/sh
#export PATH=/usr/local/arm-linux-gnueabi/bin:$PATH
export PKGCONFIG=arm-linux-gnueabi-pkg-config
export PKG_CONFIG=arm-linux-gnueabi-pkg-config
export XML2_CONFIG=/usr/local/arm-linux-gnueabi/bin/xml2-config
export CC=arm-linux-gnueabi-gcc
export CXX=arm-linux-gnueabi-g++
export LD=arm-linux-gnueabi-ld
export STRIP=arm-linux-gnueabi-strip
export AR=arm-linux-gnueabi-ar
export HOST_CC=/usr/bin/gcc
export CFLAGS="-fPIC -O2 -D_REENTRANT"
export CXXFLAGS="-fPIC -O2 -D_REENTRANT"
export PREFIX=/usr/local/arm-linux-gnueabi
# turns off silencing of compiler commands in netsurf compilation
export Q=
- compile and
make install
netsurf member libraries- (each time:
make HOST=SamsungDTV; make HOST=SamsungDTV install
)
- libparserutils
- libwapcaplet
- libnsbmp
- libnsgif
- libnsfb
- libcss
- hubbub
- (each time:
- compile netsurf
make HOST=SamsungDTV TARGET=framebuffer
Hacking guide
The browser core is in the 'content', 'css,' 'desktop', 'render', and 'image' subdirectories of the project. I have avoided touching it (if possible) while porting the browser for SamyGO.
The GUI and frontend code is in the framebuffer subdirectory. Unfortunately, compared to the other NetSurf ports (see the 'gtk', 'amiga' or 'riscos' subdirs, for example) it's quite incomplete and missing lots of useful features.
I have worked on implementing some of them, but a lot remains to be done (e.g. file downloads and bookmarks).
A good starting point would be the empty functions at the bottom of fb_gui.c
.
If you have anything useful, please make a patch towards the latest released source code version (see top of page) and send it to florianfischer at gmx.de.