Re: 超軽速BTSのStarbug1をamalgamation版Sqlite3で半生静的ビルドのメモ
@fm021さんに、Starbug1をstaticビルトする方法を紹介して頂けました。ありがとうございます。
Starbug1 Official WebSite – start
http://starbug1.sourceforge.jp/start
でもsqliteは既に入っていたりして動的リンクだと競合しそうで試せない人もいるかもしれないので、手軽に利用するためにSqlite3とcgicを静的ビルド化して、ついでにSqlite3に10%程度高速らしいというamalgamation版を使ってみたメモです。
マキノ式ブログ » 超軽速BTSのStarbug1をamalgamation版Sqlite3で半生静的ビルドのメモ
sqlite3のamalgamation版というものを知らなかったので、調べてみると、ソースを、sqlite3.h と sqlite3.c にまとめたものだそうです。
amalgamation版についてのわかりやすい説明がありました。
sqlite 3.3.14 が公開されました。今回の目玉は amalgamation と排他アクセスモードの追加だそうです。
sqlite: sqlite 3.3.14 公開! amalgamation とは? – seclan のほえほえルーム
このパッチを適応すると、Starbug1の実行ファイルにsqlite3のオブジェクトファイルが含まれるようになるため、実行時に、sqlite.soを参照しないで動作できるようになります。その分、実行ファイルサイズが、大きくなります(Ubuntuの場合200Kbから638Kbに、でも、想像してた程大きくない)が、インストールが簡単になってライブラリ依存が無くなるので、嬉しい人は多いと思います。
@fm021さんのパッチを取り込んで、ついでに、sqlite3とcgicのダウンロードから一気にstatic版のコンパイルまで行なう、staticターゲットを追加しました。つまり、Starbug1のソースをダウンロードして展開した後、以下のコマンドで実行モジュールを準備できてしまうということです。
make INITIAL_LOCALE=ja_JP static webapp
注意:Starbug1 1.3.10では、上記のコマンドは動作しません。次のリリース以降で、上記コマンドを使ってコンパイルができるようになります。
現在Starbug1のデザインを変更中です。 そのため、今リリース作業をすることができないのですが、そのデザイン修正が終わったら、リリースしたいと思います。