Safari和Chrome的内核都是webkit,无论是打算自己开发个浏览器还是在程序里集成完整的HTML解析功能,webkit都是为数不多的选择。特别是webkit分支中的jsc,可以命令行下解释执行javascript,真是想想就让人亢奋的玩物。编译环境选择的是Ubuntu 15.04 x86_64,由于玩心太重,所以首先考虑把jsc编译出来。
下载代码
有大概三种途径弄到代码,git,svn和直接下载tar.xz,我只试了后面两种
svn checkout https://svn.webkit.org/repository/webkit/trunk webkit
或者从webkitgtk直接下载tar.xz
准备编译环境
执行webkit/Tools/gtk/install-dependencies可以安装大部分缺失的库代码,另外再手动补下刀
sudo apt-get install libgstreamer*
其余的库要是还缺,apt-cache search+apt-get install 缺啥补啥吧
编译
如果下载的tar.xz的话,参考linuxfromscratch进入webkit目录执行以下代码,编译好的jsc位于./build/bin/jsc
sed -e 's/“/"/' -e 's/”/"/' -i Source/WebCore/xml/XMLViewer.{css,js} && mkdir -vp build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_SKIP_RPATH=ON -DENABLE_GEOLOCATION=OFF -DPORT=GTK -DLIB_INSTALL_DIR=/usr/lib -DUSE_LIBHYPHEN=OFF -DSHARED_CORE=OFF -DCMAKE_C_COMPILER=/home/jack/afl/afl-gcc -DCMAKE_CXX_COMPILER=/home/jack/afl/afl-g++ -DBUILD_SHARED_LIBS=OFF -DENABLE_MINIBROWSER=ON -Wno-dev .. && make -j10
如果是svn得到的代码,进入webkit目录后执行编译脚本得到./WebKitBuild/Release/bin/jsc
./Tools/Scripts/build-jsc --gtk --makeargs="-j10"