Ipe7 on Leopard
cgal ipelet についての覚書を残そうとしていたところ Ipe7 がリリースされました。それに伴い ipelet の作り方も変わりましたので、今回は Mac で Ipe7 の ipelet を作成するための準備をしたいと思います。
まだちょっと不格好ですが、なんとかMac で Ipe7 が使えることが確かめられましたので、覚書を残しておきます。
準備
- cairo と lua のインストール
MacPorts でインストールしました。
- pdflatex のバージョンアップ
文字を扱うには、pdflatex のバージョンをあげないといけないみたいです。今のところ1.21a が入っていますが、1.4x にしないとダメみたいです。今回は、特に対応しませんでした。以前は、MacPorts で teTeX を入れたんだと思いますが、teTeX はメンテがとまっているようです。pdflatex のソースからのコンパイルはやだな。
- ソースのダウンロード
Ipe のソースファイルが置いてある場所は、luaforge っていうところからsourceforge になりました。今回は、ipe-7.0.7-src.tar.gz をダウンロードしました。
- 設定ファイルとMakefileの書き換え
次のようなシェルスクリプトを用意しました。このスクリプトは、個人的に逐次的に暫定的に書いたもの(ほぼ全部コピペ)なので、いろいろアレです。読める人は適宜修正してみて下さい。よろしくお願いします。基本的には、Linux系 と BSD系 の install オプションの違いを直そうとしているものです。実行すると/opt/ipe7 というディレクトリにファイルをインストールしようとします。
#!/bin/sh tar xfz ipe-7.0.7-src.tar.gz cd ipe-7.0.7/src ###### compile #<common.mak> cat common.mak | sed 's/-shared/-dynamiclib/g' \ | sed 's/\-t//g' > tmp if [ ! -f common.mak.dist ] ; then mv common.mak common.mak.dist fi mv tmp common.mak #<config.mak> cat config.mak | sed 's/\$(shell pkg\-config \-\-cflags lua5.1)/-I\/opt\/local\/include/g' \ | sed 's/\$(shell pkg\-config \-\-libs lua5.1)/-L\/opt\/local\/lib -llua/g' \ | sed 's/\$(shell pkg\-config \-\-cflags QtGui QtCore)/-I\/usr\/local\/Qt4\.5\/mkspecs\/macx\-g\+\+ \-I\. \-I\/Library\/Frameworks\/QtCore\.framework\/Versions\/4\/Headers \-I\/usr\/include\/QtCore \-I\/Library\/Frameworks\/QtGui\.framework\/Versions\/4\/Headers \-I\/usr\/include\/QtGui/g' \ | sed 's/\$(shell pkg\-config \-\-libs QtGui QtCore)/-F\/Library\/Frameworks -L\/Library\/Frameworks -framework QtGui -framework Carbon -framework AppKit -framework QtCore -framework ApplicationServices/g' \ | sed '55s/^#//' > tmp if [ ! -f config.mak.dist ] ; then mv config.mak config.mak.dist fi mv tmp config.mak ####### install subdirs="ipelib ipelets/image ipelets/lua ipetoipe ipe6upgrade \ ipeextract ipecairo iperender ipeqtcanvas ipeview ipelua ipeui ipe" for i in $subdirs ; do cat $i/Makefile | sed 's/\$(INSTALL_ROOT)\$(IPELIBDIR)\ \$(TARGET)/\$(TARGET)\ \$(INSTALL_ROOT)\$(IPELIBDIR)/g' > tmp if [ ! -f $i/Makefile.dist ] ; then mv $i/Makefile $i/Makefile.dist fi mv tmp $i/Makefile done # ipelib cat ipelib/Makefile | sed 's/\$(INSTALL_ROOT)\$(IPEHEADERDIR)\ \.\.\/include\/\*\.h/..\/include\/*.h \$(INSTALL_ROOT)\$(IPEHEADERDIR)/g' > tmp mv tmp ipelib/Makefile # ipelets/image cat ipelets/image/Makefile | sed 's/\$(INSTALL_ROOT)\$(IPELETDIR)\ \$(TARGET)/\$(TARGET) \$(INSTALL_ROOT)\$(IPELETDIR)/g' \ | sed 's/\$(INSTALL_ROOT)\$(IPELETDIR)\ \$(LUASCRIPT)/\$(LUASCRIPT) \$(INSTALL_ROOT)\$(IPELETDIR)/g' > tmp mv tmp ipelets/image/Makefile # ipelets/lua cat ipelets/lua/Makefile | sed 's/\$(INSTALL_ROOT)\$(IPELETDIR)\ \$(LUASCRIPTS)/\$(LUASCRIPTS) \$(INSTALL_ROOT)\$(IPELETDIR)/g' > tmp mv tmp ipelets/lua/Makefile # ipetoipe / ipe6upgrade bind="ipetoipe ipe6upgrade ipeextract iperender ipeview" for i in $bind ; do cat $i/Makefile | sed 's/\$(INSTALL_ROOT)\$(IPEBINDIR)\ \$(TARGET)/\$(TARGET) \$(INSTALL_ROOT)\$(IPEBINDIR)/g' > tmp.1 mv tmp.1 $i/Makefile done # ipe/ cat ipe/Makefile | sed 's/\$(INSTALL_ROOT)\$(IPEBINDIR)\ \$(TARGET)/\$(TARGET)\ \$(INSTALL_ROOT)\$(IPEBINDIR)/g' \ | sed 's/\$(INSTALL_ROOT)\$(IPEMANDIR)\ \.\.\/\.\.\/man\/\*\.1/..\/..\/man\/*.1 \$(INSTALL_ROOT)\$(IPEMANDIR)/g' \ | sed 's/\$(INSTALL_ROOT)\$(IPEDOCDIR)\ \.\.\/\.\.\/build\/doc\/\*/..\/..\/build\/doc\/* \$(INSTALL_ROOT)\$(IPEMANDIR)/g' \ | sed 's/\$(INSTALL_ROOT)\$(IPELUADIR)\ lua\/\*\.lua/lua\/*.lua \$(INSTALL_ROOT)\$(IPELUADIR)/g' \ | sed 's/\$(INSTALL_ROOT)\$(IPESTYLES)\ \.\.\/\.\.\/styles\/basic.isy/..\/..\/styles\/basic.isy \$(INSTALL_ROOT)\$(IPESTYLES)/g' \ | sed 's/\$(INSTALL_ROOT)\$(IPESTYLES)\ \.\.\/\.\.\/styles\/colors.isy/..\/..\/styles\/colors.isy \$(INSTALL_ROOT)\$(IPESTYLES)/g' \ | sed 's/\$(INSTALL_ROOT)\$(IPESTYLES)\ \.\.\/\.\.\/styles\/presentation.isy/..\/..\/styles\/presentation.isy \$(INSTALL_ROOT)\$(IPESTYLES)/g' \ | sed 's/\$(INSTALL_ROOT)\$(IPEICONDIR)\ icons\/\*\.png/icons\/*.png \$(INSTALL_ROOT)\$(IPEICONDIR)/g' > tmp mv tmp ipe/Makefile exit 0;