らんだむな記憶

blogというものを体験してみようか!的なー

fontforge(2)

まぁ、一応ビルドするかということで。
頭は使わない。心を無にしてINSTALL-git.mdに従う。
「autoreconf -i」時にちょっとwarningというかかなり気になる内容が出るが、もう気にしない!

$ git clone https://github.com/fontforge/fontforge.git;
$ sudo apt-get install packaging-dev pkg-config python-dev libpango1.0-dev libglib2.0-dev libxml2-dev giflib-dbg libjpeg-dev libtiff-dev uthash-dev libspiro-dev build-essential automake flex bison;
$ sudo apt-get install unifont;

$ git clone https://github.com/fontforge/libspiro.git
$ cd libspiro
$ autoreconf -i
$ automake --foreign -Wall
$ ./configure
$ make
$ sudo make install
$ cd ..

$ git clone https://github.com/fontforge/libuninameslist.git
$ cd libuninameslist
$ autoreconf -i
$ automake --foreign
$ ./configure
$ make
$ sudo make install
$ cd ..

$ cd fontforge;
$ ./bootstrap;
$ ./configure;
$ make;

でビルドはできた。TrueTypeのヒンティングLOVEなら「./configure --with-freetype-source」にしろと書いてあるが、やったら freetypeソースコードはどこやねん?とか言われて(アタリマエだろ!)面倒なのでやめた。今はいいや。

インストールしてもいいけど、安定状態なんか知らんし、やめとく。代わりにランチャーを作る。
Mac OSX だったら、.command でシェルスクリプトを書けばダブルクリックでシェルスクリプトを実行できると思うけど、Ubuntuだとよく分からんから実行形式をビルドしちゃえ。

[Makefile]

TARGET=ff_launcher

OBJS = ff_launcher.o

INC += -I.

CXXFLAGS += $(INC) -O3

################################################################################

.PHONY: all
all: $(TARGET)

$(TARGET): $(OBJS)
	$(CXX) $(LDFLAGS) -o $@ $^

.cpp.o:
	$(CXX) $(CXXFLAGS) -c $<

.PHONY: clean
clean:
	rm -rf $(TARGET) $(OBJS)

[ff_launcher.cpp]

#include <cstdlib>
#include <sstream>

const char MY_BUILT_FF_EXE_DIR[] = "/home/xxx/fontforge/fontforgeexe";
const char FF_CMD_OPTIONS[] = "-nosplash";

int main(void)
{
    std::stringstream cmd;
    cmd << "cd " << MY_BUILT_FF_EXE_DIR << " && ./fontforge " << FF_CMD_OPTIONS;

    system(cmd.str().c_str());
    return 0;
}

でビルドできたランチャーをデスクトップにでも置いたらしあわせウサギ。
あと、もうC++開発は無理だと悟りを開いた。

Ubuntu日本語フォーラム / ダブルクリックで即スクリプトを実行したいによると、シェルスクリプトをELFバイナリにするツールがあるんだな。まぁ、今さら。てか、結局実行形式にせないかんのなら、自分でビルドでもいいよ。
ターミナル上でもCtrl+Cでコピーできて、Ctrl+Vでペーストできたりするし、.command でダブルクリックでシェルスクリプトが実行できたりと、微妙にMac OSXが便利で腹が立ってきた。くそっ、レインボーカーソルばかりくるくるするくせにっ!とかイチャモンつけておこう。
あと、アレを持参したままだとスターバックスに入れないし、絶対窓際に座れないという制約ができるから良くない。自分の中ではとてもイメージが悪い。どこかの厨二の発言を借りると「ひどく気の進まない、かなりイメージの悪い」になってしまったのだ。
実際には、bootcampでうぃんうぃんもできるし、林檎だけに限っても優れた武器なのだが、外に持ち歩くのはイメージが悪い。聞かれてもいないのに「私の戦闘力は53万です(ドヤッ)」とか言いだしちゃう勢いだゎ。