2013年4月24日水曜日

Windows7 64bitでgimp2.8.4、gimp2.9~、gimp-painterをビルド(その6)

いくつかバージョンあげ。
あげた後、
gtkが不安定だったのが安定した気がする。
gimpの起動時のsplashが表示されないのが解決。
あと、gtk-demoをいじっていたらたまに落ちたのが、
落ちなくなった。


・libpng
cd $LOCALBUILDDIR && \
cd libpng-1.5.15 && \
make clean

cd $LOCALBUILDDIR && \
tar xzf libpng-1.5.15.tar.gz && \
cd libpng-1.5.15 && \
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR && \
make && \
make install

・libffi
cd $LOCALBUILDDIR && \
cd libffi-3.0.13 && \
make clean

cd $LOCALBUILDDIR && \
tar xzf libffi-3.0.13.tar.gz && \
cd libffi-3.0.13 && \
./configure --prefix=$LOCALDESTDIR --host=x86_64-w64-mingw32 && \
make && \
make install

・glib
cd $LOCALBUILDDIR && \
cd glib-2.36.1 && \
make clean

cd $LOCALBUILDDIR && \
tar -jxf glib-2.36.1.tar.bz2 && \
cd glib-2.36.1 && \
./autogen.sh --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR --with-pcre=internal --enable-debug=no --disable-gtk-doc && \
make && \
make install

・fontconfig
cd $LOCALBUILDDIR && \
cd fontconfig-2.10.92 && \
make clean

cd $LOCALBUILDDIR && \
tar xzf fontconfig-2.10.92.tar.gz && \
cd fontconfig-2.10.92 && \
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR --enable-libxml2 --disable-docs && \
make && \
make install

・pango
cd $LOCALBUILDDIR && \
cd pango-1.34.0 && \
make clean

cd $LOCALBUILDDIR && \
tar xf pango-1.34.0.tar.xz && \
cd pango-1.34.0 && \
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR --with-included-modules=yes --disable-debug --disable-gtk-doc && \
make && \
make install

・atk
cd $LOCALBUILDDIR && \
cd atk-2.8.0 && \
make clean

cd $LOCALBUILDDIR && \
tar xf atk-2.8.0.tar.xz && \
cd atk-2.8.0 && \
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR && \
make && \
make install

・gdk-pixbuf
cd $LOCALBUILDDIR && \
cd gdk-pixbuf-2.28.1 && \
make clean

cd $LOCALBUILDDIR && \
tar xf gdk-pixbuf-2.28.1.tar.xz && \
cd gdk-pixbuf-2.28.1 && \
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR --with-included-loaders=yes --without-libjasper --disable-debug && \
make && \
make install

・gtk+
cd $LOCALBUILDDIR && \
cd gtk+-2.24.17 && \
make clean

cd $LOCALBUILDDIR && \
tar xf gtk+-2.24.17.tar.xz && \
cd gtk+-2.24.17 && \
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR --with-gdktarget=win32 --with-included-immodules=ime --disable-debug --disable-gtk-doc && \
rm gtk/gtk.def && \
make && \
make install

cd demos
./pixbuf-demo

cd gtk-demo
gtk-demo

・libexif
cd $LOCALBUILDDIR && \
cd libexif-0.6.21 && \
make clean

cd $LOCALBUILDDIR && \
tar -jxf libexif-0.6.21.tar.bz2 && \
cd libexif-0.6.21 && \
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR && \
make && \
make install

・librsvg

cd $LOCALBUILDDIR && \
cd librsvg-2.37.0 && \
make clean

cd $LOCALBUILDDIR && \
tar xf librsvg-2.37.0.tar.xz && \
cd librsvg-2.37.0

パッチは前に使ったやつをそのまま使う
librsvg-2.32.0-gtk3.patch

patch -p1 < librsvg-2.32.0-gtk3.patch

./configure --prefix=$LOCALDESTDIR --build=x86_64-w64-mingw32 --disable-introspection --enable-gtk-theme --disable-pixbuf-loader --enable-shared --disable-static

make
make install

・poppler

cd $LOCALBUILDDIR && \
cd poppler-0.22.3 && \
make clean

cd $LOCALBUILDDIR && \
tar xzf poppler-0.22.3.tar.gz && \
cd poppler-0.22.3

./configure --prefix=$LOCALDESTDIR --build=x86_64-w64-mingw32 --enable-shared --disable-static --enable-xpdf-headers GLIB_MKENUMS=/local64/bin/glib-mkenums

C:\MinGW\build64\poppler-0.22.3\test
perf-test.cc

下記のように修正

void strcpy_s(char* dst, size_t dst_size, const char* src)

errno_t strcpy_s(char* dst, size_t dst_size, const char* src)

make
make install

・gimpを再度ビルド

2013年4月15日月曜日

Windows7 64bitでgimp2.8.4、gimp2.9~、gimp-painterをビルド(その5)


放置していたgimp依存パッケージに対応します。


・wmf

http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_Factory/src/mingw64-libwmf-0.2.8.4-5.257.src.rpm

cd $LOCALBUILDDIR
tar xzf libwmf-0.2.8.4.tar.gz
cd libwmf-0.2.8.4

各種パッチ
https://github.com/drawoc/windows-gimp-jhbuild/tree/master/patches/libwmf

patch -p1 < libwmf-0.2.8.3-nodocs.patch
patch -p1 < libwmf-0.2.8.3-relocatablefonts.patch
patch -p1 < libwmf-0.2.8.4-deps.patch
patch -p1 < libwmf-0.2.8.4-fallbackfont.patch
patch -p1 < libwmf-0.2.8.4-intoverflow.patch
patch -p1 < libwmf-0.2.8.4-libpng-1.5.patch
patch -p1 < libwmf-0.2.8.4-multiarchdevel.patch
patch -p1 < libwmf-0.2.8.4-reducesymbols.patch
patch -p1 < libwmf-0.2.8.4-useafterfree.patch

./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR --enable-shared --disable-static --without-x

make
make install

・mng

http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_12.3/src/mingw64-libmng-1.0.10-2.5.src.rpm

cd $LOCALBUILDDIR
tar -jxf libmng-1.0.10.tar.bz2
cd libmng-1.0.10

libmng-1.0.10-mingw.patch
libmng-1.0.9-dont-leak-zlib-streams.diff

patch -p1 < libmng-1.0.10-mingw.patch
patch -p0 < libmng-1.0.9-dont-leak-zlib-streams.diff

C:\MinGW\build64\libmng-1.0.10\makefiles
makefile.mingwdll
の下記箇所を変更

INSTALL_PREFIX = /local64
ZLIBLIB=-L/local64/lib -lz
JPEGLIB=-L/local64/lib -ljpeg
LCMSLIB=-L/local64/lib -llcms
LCMSINC=-I/local64/include

make -f makefiles/makefile.mingwdll
make -f makefiles/makefile.mingwdll INSTALL_PREFIX=/local64/ install

・poppler

cd $LOCALBUILDDIR
tar xzf poppler-0.22.2.tar.gz
cd poppler-0.22.2

./configure --prefix=$LOCALDESTDIR --build=x86_64-w64-mingw32 --enable-shared --disable-static --enable-xpdf-headers GLIB_MKENUMS=/local64/bin/glib-mkenums

C:\MinGW\build64\poppler-0.22.2\test
perf-test.cc

下記のように修正

void strcpy_s(char* dst, size_t dst_size, const char* src)

errno_t strcpy_s(char* dst, size_t dst_size, const char* src)

make
make install


・参考:windows向けビルドのパッチたち
こんなのがありました。
https://github.com/drawoc/windows-gimp-jhbuild/tree/master/patches


=====

windowsでのpkg依存解決状況
WebKitをやりたいけどいろいろはまって進んでない。。

Extra Binaries:
  gimp-console:        yes

Optional Features:
  D-Bus service:       no
  Language selection:  yes

Optional Plug-Ins:
  Ascii Art:           no (AA library not found)
  Compressor:          yes
  Ghostscript:         no (Ghostscript library not found)
  Help Browser:        no (WebKit not found)
  LCMS:                yes
  JPEG:                yes
  JPEG 2000:           yes
  MNG:                 yes
  PDF (import):        yes
  PDF (export):        yes
  PNG:                 yes
  Print:               yes
  PSP:                 yes
  Python:              yes
  Script-Fu:           yes
  SVG:                 yes
  TIFF:                yes
  TWAIN (MacOS X):     no
  TWAIN (Win32):       yes
  URI:                 yes (using libcurl)
  Webpage:             no (WebKit not found)
  Windows ICO:         yes
  WMF:                 yes
  XJT:                 no (not built on Windows)
  X11 Mouse Cursor:    no (libXcursor not found)
  XPM:                 no (XPM library not found)

Plug-In Features:
  EXIF support:        yes

Optional Modules:
  ALSA (MIDI Input):   no (libasound not found or unusable)
  Linux Input:         no (linux input support disabled) (GUdev support: no)
  DirectInput (Win32): no
  Color Correction:    yes
  Soft Proof:          yes

Tests:
  Use xvfb-run         no (not found)

2013年4月9日火曜日

Windows7 64bitでgimp2.8.4、gimp2.9~、gimp-painterをビルド(その4)


msys・gccのバージョンアップ

これまでの手順だと、
gccは4.7.0なのでバージョンをあげてみる。
4.8.0はvirtualメソッドの不具合?でうまくコンパイルできないパッケージがあった。

msysはインストールするタイミングで
最新がとられると思うので、
あがらないかも。
確認したmsysCOREのバージョンは1.0.18でした。


(1)バックアップ

C:\MinGW\msys\1.0\etc\profile
が上書きされるようなので、
バックアップする。

C:\MinGW\mingw64\bin\.gdbinit
もバックアップする。


(2)msysアップデート

msysから
mingw-get update
mingw-get upgrade

upgradeで、
32bit関連のgccが入ったりするが
そのあたりは使わないように注意する。

C:\MinGW\msys\1.0\etc\profile
を元に戻す。

msysコンソールを閉じる。


(3)GCCアップデート

C:\MinGW\mingw64
の中身を適当なバックアップフォルダへ移動。

4.7.2をダウンロード
http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/rubenvb/gcc-4.7-release/x86_64-w64-mingw32-gcc-4.7.2-release-win64_rubenvb.7z/download

x86_64-w64-mingw32-gcc-4.7.2-release-win64_rubenvb.7z
をC:\MinGW\mingw64に展開して、
msysを起動する。

gcc --version

gcc.exe (rubenvb-4.7.2-release) 4.7.2
になっていることを確認する。

C:\MinGW\mingw64\bin\.gdbinit
を元に戻す。


(4)コンパイルオプション見直し

デフォルトで使うコンパイルオプションもいじってみた。

C:\MinGW\local64\etc\profile.local
CFLAGS="-I/local64/include -mms-bitfields -mthreads -O2 -mtune=athlon64 -mfpmath=sse -msse"
CXXFLAGS="-I/local64/include -mms-bitfields -mthreads -O2 -mtune=athlon64 -mfpmath=sse -msse"

よく使いそうな下記も追記した。
C:\MinGW\local64\etc\profile.local
export PYTHON_INCLUDES="-I/c/Python27/include/"
export PYTHON_LIBS="-L/c/Python27/libs -lpython27"
export PYTHON_LIB_LOC="/c/Python27/libs/"
export ACLOCAL_FLAGS="-I/local64/share/aclocal -I/c/MinGW/opt/share/aclocal"


(5)再コンパイル(半日コース・・・)

「Windows7 64bitでgimp2.8.4、gimp2.9~、gimp-painterをビルド(その1)」の
intltool以降を流しなおしてみる。

全てのパッケージについて、
以下のように、make cleanしてから再度ソースを展開しなおして、make。
パッチがあるのは適用してから、make。

cd $LOCALBUILDDIR
cd intltool-0.50.2
make clean

cd $LOCALBUILDDIR
tar xzf intltool-0.50.2.tar.gz
cd intltool-0.50.2
./configure --prefix=/opt
make
make install

pkg-configだけ、make clean後に、下記ファイルを削除する。
C:\MinGW\local64\bin\pkg-config.exe
C:\MinGW\local64\bin\x86_64-w64-mingw32-pkg-config.exe

C:\MinGW\local64\etc\profile.localでデフォルトを-O2としたので、
gimpのビルドをdebugでやる場合は、

export CFLAGS="$CFLAGS -O0"
export CXXFLAGS="$CXXFLAGS -O0"

を行ってからconfigure、make、make installする。

4.7.2でも特に問題なくビルドできました。

Windows7 64bitでgimp2.8.4、gimp2.9~、gimp-painterをビルド(その3)


openSUSEの場合と同様にeclipseと連携していきます。

(1)OSの環境変数設定
PATHに下記を追加。

C:\MinGW\mingw64\bin
C:\MinGW\msys\1.0\bin

(2)eclipseのインストール

eclipse-cpp-juno-SR2-win32-x86_64.zip
をダウンロードしてきて、
展開して、下記となるように配置しました。

C:\eclipse_cdt\eclipse.exe

eclipse.exeを起動

ワークスペースは下記にした。
C:\eclipse_cdt\workspace

使いそうなパースペクティブは
Window/Open Perspective
から開いておく。

とりあえず、下記3つ。

Debug
Git Repository Exploring
Team Synchronizing

(3)eclipseプロジェクト作成(git-gimp-2.8用)

C/C++パースペクティブを選択。
ProjectExplorerで右クリックして、import。
C/C++/Exisiting Code as Makefile Projectを選択して、Next。

Project Name : git-gimp-2.8
Existing Code Location : C:\work\git\gimp-2.8
Toolchain for Indexer Settings : MinGW GCC

としてFinish。

Project/Propertiesを選択。
C/C++ General/Paths and Symbols

のIncludeタブでGNU CとGNU C++に下記をAdd。

C:\MinGW\local64\include
C:\MinGW\local64\include\freetype2
C:\MinGW\local64\include\cairo
C:\MinGW\local64\include\pango-1.0
C:\MinGW\local64\include\glib-2.0
C:\MinGW\local64\include\gdk-pixbuf-2.0
C:\MinGW\local64\include\gtk-2.0
C:\MinGW\local64\include\babl-0.1
C:\MinGW\local64\include\gegl-0.2

SymbolタブでGNU CとGNU C++に下記をAdd。
G_OS_WIN32 : 1

(4)debug configuration

まず下記ファイルを作成。
(ドット始まりのファイルはexplorerから作れないので、コマンド等でやってください。)
C:\MinGW\mingw64\bin\.gdbinit
中身は空のまま。

Run/Debug Configurationsを選択。
C/C++ Applicationを追加。

Mainタブ
Name : git-gimp-2.8 Debug
C/C++ Application : C:\work\gimpbin\git-gimp-2.8\bin\gimp-2.8.exe
Project : git-gimp-2.8
Build before launching : Disable auto build

Environmentタブ
下記3つの変数を追加
rem gtk+-2.24.16では、LANG設定する必要なしでした
rem LANG=de
HOME=C:\work\gimphome\git-gimp-2.8
PATH=C:\work\gimpbin\git-gimp-2.8;C:\work\gimpbin\git-gimp-2.8\bin;C:\MinGW\local64;C:\MinGW\local64\bin;C:\MinGW\mingw64\bin

Debuggerタブ
GDB debugger : C:\MinGW\mingw64\bin\gdb.exe
GDB command file : C:\MinGW\mingw64\bin\.gdbinit

debug実行すると、debugできます。

(5)eclipseプロジェクト作成(git-gimp-painter-2.7_postprocess用)

C/C++パースペクティブを選択。
ProjectExplorerで右クリックして、import。
C/C++/Exisiting Code as Makefile Projectを選択して、Next。

Project Name : git-gimp-painter-2.7_postprocess
Existing Code Location : C:\work\git\git-gimp-painter-2.7_postprocess
Toolchain for Indexer Settings : MinGW GCC

としてFinish。

Project/Propertiesを選択。
C/C++ General/Paths and Symbols

のIncludeタブでGNU CとGNU C++に下記をAdd。

C:\MinGW\local64\include
C:\MinGW\local64\include\freetype2
C:\MinGW\local64\include\cairo
C:\MinGW\local64\include\pango-1.0
C:\MinGW\local64\include\glib-2.0
C:\MinGW\local64\include\gdk-pixbuf-2.0
C:\MinGW\local64\include\gtk-2.0
C:\MinGW\local64\include\babl-0.1
C:\MinGW\local64\include\gegl-0.2

SymbolタブでGNU CとGNU C++に下記をAdd。
G_OS_WIN32 : 1

(6)debug configuration

Run/Debug Configurationsを選択。
C/C++ Applicationを追加。

Mainタブ
Name : git-gimp-painter-2.7_postprocess Debug
C/C++ Application : C:\work\gimpbin\git-gimp-painter-2.7_postprocess\bin\gimp-2.8.exe
Project : git-gimp-painter-2.7_postprocess
Build before launching : Disable auto build

Environmentタブ
下記3つの変数を追加
rem gtk+-2.24.16では、LANG設定する必要なし
rem LANG=de
HOME=C:\work\gimphome\git-gimp-painter-2.7_postprocess
PATH=C:\work\gimpbin\git-gimp-painter-2.7_postprocess;C:\work\gimpbin\git-gimp-painter-2.7_postprocess\bin;C:\MinGW\local64;C:\MinGW\local64\bin;C:\MinGW\mingw64\bin

Debuggerタブ
GDB debugger : C:\MinGW\mingw64\bin\gdb.exe
GDB command file : C:\MinGW\mingw64\bin\.gdbinit

debug実行すると、debugできます。

2013年4月7日日曜日

Windows7 64bitでgimp2.8.4、gimp2.9~、gimp-painterをビルド(その2)


前回の続き。

いろいろやっていた気づいたことは、
ビルド失敗時に必要なパッチを探すのが大変ってこと。

今は下記のように調査・対応してます(大体これでいけるような?)。
openSUSEのOBSの検索(http://software.opensuse.org/search)で
パッケージを検索する。
同一パッケージでも、いろいろなソースが出てくるので、
mingw64のところのソース(rpm)を落としてくる。
rpmの中のcpioの中にソース、パッチとspecファイルが入っているので、
パッチは中身をさらっと確認して、適用。
specファイルを参考にして、configure、make、make install。

それでは、ビルドが続きます。


(1)gimpが使用している他パッケージ(以外もあるけど)

・libopenjpeg

cd $LOCALBUILDDIR
tar xzf openjpeg-1.5.1.tar.gz
cd openjpeg-1.5.1
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR
make
make install

・JasPer

http://software.opensuse.org/download.html?project=windows:mingw:win64&package=mingw64-jasper

mingw64-jasper-1.900.1-6.231.src.rpm

cd $LOCALBUILDDIR
unzip -o jasper-1.900.1.zip
cd jasper-1.900.1

パッチ配置($LOCALBUILDDIR/jasper-1.900.1に配置)

jasper-1.900.1-canonical-target.patch
jasper-1.900.1-enable-shared.patch
jasper-1.900.1-mingw64.patch
jasper-1.900.1-sleep.patch
patch-libjasper-stepsizes-overflow.diff

パッチ適用

patch -p1 < jasper-1.900.1-sleep.patch
patch -p1 < jasper-1.900.1-mingw64.patch
patch -p1 < jasper-1.900.1-enable-shared.patch
patch -p1 < patch-libjasper-stepsizes-overflow.diff
patch -p1 < jasper-1.900.1-canonical-target.patch

libtoolize --copy --force
aclocal
automake --add-missing
autoconf
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR --enable-shared --disable-opengl --enable-libjpeg
make
make install

・lcms

cd $LOCALBUILDDIR
tar xzf lcms-1.19.tar.gz
cd lcms-1.19
./configure --prefix=$LOCALDESTDIR --build=x86_64-w64-mingw32 CPPFLAGS="-I/opt/include -I/c/Python27/include" LIBS="-L/opt/lib -L/c/Python27/Lib"
make
make install

・babl

cd $LOCALBUILDDIR
tar -jxf babl-0.1.10.tar.bz2
cd babl-0.1.10
./configure --prefix=$LOCALDESTDIR --build=x86_64-w64-mingw32 CPPFLAGS="-I/usr/include -I/c/Python27/include" LIBS="-L/usr/lib -L/c/Python27/Lib" --enable-shared --disable-static

C:\MinGW\build64\babl-0.1.10\babl\babl-palette.c
下記を削除する。
#include <values.h>

make
make install

・gegl

cd $LOCALBUILDDIR
tar -jxf gegl-0.2.0.tar.bz2
cd gegl-0.2.0
./configure --prefix=$LOCALDESTDIR --build=x86_64-w64-mingw32 CPPFLAGS="-I/usr/include -I/c/Python27/include -I/local64/include" LIBS="-L/usr/lib -L/c/Python27/Lib" --enable-shared --disable-static --without-sdl --disable-docs
make
make install

・python連携用?ファイル準備

partha先生(http://www.partha.com/articles/buildinggimp.html)を真似。
「pygtk-codegen-2.0」ファイルを
C:\Python27に作成。

「pygtk-codegen-2.0」
----
#! /bin/sh
prefix=c:/Python27
exec_prefix=${prefix}
pygobject_script=${exec_prefix}/pygobject-codegen-2.0
echo "note: pygtk-codegen-2.0 is deprecated, use pygobject-codegen-2.0 instead" > /dev/stderr
echo "note: I will now try to invoke pygobject-codegen-2.0 in the same directory" > /dev/stderr
exec $pygobject_script "$@"
----

「pygobject-codegen-2.0」ファイルを
C:\Python27に作成。

「pygobject-codegen-2.0」
----
#!/bin/sh
prefix=@prefix@
datarootdir=@datarootdir@
datadir=c:/Python27
codegendir=${datadir}/site-packages/gtk-2.0/codegen
PYTHONPATH=$codegendir
export PYTHONPATH
exec c:/Python27/python.exe c:/Python27/Lib/site-packages/gtk-2.0/codegen/codegen.py "$@"
----

・pygtkのdef

下記フォルダを作成
C:\Python27\share\pygtk\2.0\defs

pygtk-2.24.0.tar.bz2を展開して、
pygtk-2.24.0\gtk\gtk-base-types.defs
↓リネームしてコピー
C:\Python27\share\pygtk\2.0\defs\gtk-types.defs

pygtk-2.24.0\gtk\gdk-base-types.defs
↓リネームしてコピー
C:\Python27\share\pygtk\2.0\defs\gdk-types.defs

・python27.a作成

msysから、
mingw-get install mingw32-pexports
を実行。

C:\Windows\system32\python27.dll

C:\Python27
へコピー。

pexports /c/python27/python27.dll > /c/python27/python27.def

/mingw64/bin/dlltool -v --dllname /c/python27/python27.dll --def /c/python27/python27.def --output-lib /c/python27/libs/libpython27.a

python周りいろいろやったけど、
結局プラグイン認識できてない・・・。
次回以降解決したい。

・libxslt

cd $LOCALBUILDDIR
tar xzf libxslt-1.1.28.tar.gz
cd libxslt-1.1.28
./configure --prefix=$LOCALDESTDIR --build=x86_64-w64-mingw32 CPPFLAGS="-I/usr/include -I/c/Python27/include" LIBS="-L/usr/lib -L/c/Python27/Lib"

windows向けに下記を修正

C:\MinGW\build64\libxslt-1.1.28\libxslt\security.c
line:346
- ret = mkdir(directory, 0755);
+ ret = mkdir(directory);

make
make install

・iso-codes

cd $LOCALBUILDDIR
tar xf iso-codes-3.41.tar.xz
cd iso-codes-3.41
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR
make
make install

・libexif

cd $LOCALBUILDDIR
tar xzf libexif-0.6.20.tar.gz
cd libexif-0.6.20
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR
make
make install

・bz2

http://software.opensuse.org/download.html?project=windows:mingw:win64&package=mingw64-bzip2

mingw64-bzip2-1.0.6-3.218.src.rpm

cd $LOCALBUILDDIR
tar xzf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6

bzip2-1.0.4-bzip2recover.patch
bzip2-1.0.5-slash.patch
bzip2-1.0.6-dll.patch

patch -p1 < bzip2-1.0.4-bzip2recover.patch
patch -p1 < bzip2-1.0.5-slash.patch
patch -p1 < bzip2-1.0.6-dll.patch

make -f Makefile-libbz2_so
make clean
make

C:\MinGW\build64\bzip2-1.0.6\Makefile
の下記を修正(「.exe」を追記)
(参考:http://mingw.doorblog.jp/archives/22758238.html

chmod a+x $(PREFIX)/bin/bzip2.exe
chmod a+x $(PREFIX)/bin/bunzip2.exe
chmod a+x $(PREFIX)/bin/bzcat.exe
chmod a+x $(PREFIX)/bin/bzip2recover.exe

make install PREFIX=$LOCALDESTDIR

cp ./bz2-1.dll $LOCALDESTDIR/bin
cp ./libbz2.dll.a $LOCALDESTDIR/lib

・libcroco

cd $LOCALBUILDDIR
tar xf libcroco-0.6.8.tar.xz
cd libcroco-0.6.8
./configure --prefix=$LOCALDESTDIR --build=x86_64-w64-mingw32
make
make install

・librsvg

http://software.opensuse.org/download.html?project=windows:mingw:win64&package=mingw64-librsvg

mingw64-librsvg-2.36.3-2.75.src.rpm

cd $LOCALBUILDDIR
tar xf librsvg-2.36.4.tar.xz
cd librsvg-2.36.4

※ここではlibrsvg-2.36.4.tar.xzを使用するが、patchはそのまま使える
librsvg-2.32.0-gtk3.patch

patch -p1 < librsvg-2.32.0-gtk3.patch

./configure --prefix=$LOCALDESTDIR --build=x86_64-w64-mingw32 --disable-introspection --enable-gtk-theme --disable-pixbuf-loader --enable-shared --disable-static

make
make install


(2)gimp

いよいよgimpです。

・gimp-2.8.4

まずはtarボールを使ってやってみます。

cd $LOCALBUILDDIR
tar -jxf gimp-2.8.4.tar.bz2
cd gimp-2.8.4
export PYTHON_LIBS="-L/c/Python27/libs -lpython27"

./configure --prefix=/c/work/gimpbin/gimp-2.8.4 --build=x86_64-w64-mingw32 CPPFLAGS="-I/usr/include -I/c/Python27/include -I/local64/include" LIBS="-L/usr/lib -L/c/Python27/Lib" CFLAGS="-DMS_WIN64" --enable-debug --without-gvfs

※1の修正を行う。

make
make install

起動用batを作成して、batから実行。

gimp-2.8.4_start.bat
---
rem gtk+-2.24.16では、LANG設定する必要なし
rem set LANG=de
set HOME=C:\work\gimphome\gimp-2.8.4
if not exist %HOME% mkdir %HOME% > nul
set PATH=C:\work\gimpbin\gimp-2.8.4;C:\work\gimpbin\gimp-2.8.4\bin;C:\MinGW\local64;C:\MinGW\local64\bin;C:\MinGW\mingw64\bin;%PATH%
start C:\work\gimpbin\gimp-2.8.4\bin\gimp-2.8.exe
---


次はgitのソースでやってみます。
まずは2.8系。

c:/work/git/gimpに
git clone
git://git.gnome.org/gimp

・git-gimp-2.8

2.8系も次の2.8.6?リリースに向けて修正が日々入るので、
windowsでビルドができないコミットが入ることがあります。

解決したい場合は、
gimp-2.8系に関するbug検索
http://www.google.com/custom?hl=ja&domains=mail.gnome.org&hq=inurl%3A%2Farchives%2F&q=gimp%2Fgimp-2-8+Bug
で探すと出てくることがあります。
gimp最新系(2.9)からのフィードバックもあるので、
gimp全般
http://www.google.com/custom?hl=ja&domains=mail.gnome.org&hq=inurl%3A%2Farchives%2F&q=gimp+Bug&as_qdr=y
から検索してもよいかも。


openSUSEの時と同様に、
c:/work/git/gimp

c:/work/git/gimp-2.8
にまるごとコピーして、
2.8系用のブランチにスイッチする。


cd /c/work/git/gimp-2.8
export PYTHON_INCLUDES="-I/c/Python27/include/"
export PYTHON_LIBS="-L/c/Python27/libs -lpython27"
export PYTHON_LIB_LOC="/c/Python27/libs/"
export ACLOCAL_FLAGS="-I/local64/share/aclocal -I/c/MinGW/opt/share/aclocal"

./autogen.sh --prefix=/c/work/gimpbin/git-gimp-2.8 --build=x86_64-w64-mingw32 CPPFLAGS="-I/usr/include -I/c/Python27/include -I/local64/include" LIBS="-L/usr/lib -L/c/Python27/Lib" CFLAGS="-DMS_WIN64" --enable-debug --without-gvfs --disable-gtk-doc


※1の修正

※2の修正
 Bug 593167 - Support Windows in gimp_get_default_unit()
 2013/3/18のコミットでwindowsエラーがでるようになった。

※3の修正
 たぶんmsysからgitコマンドが使えない場合にエラーとなるので、

 app/git-version.hを手動で作成。
 tarボールでとってきたソースにはもともと入っているので問題ない。

make
make install

起動用batを作成して、batから実行。

git-gimp-2.8_start.bat
---
rem gtk+-2.24.16では、LANG設定する必要なし
rem set LANG=de
set HOME=C:\work\gimphome\git-gimp-2.8
if not exist %HOME% mkdir %HOME% > nul
set PATH=C:\work\gimpbin\git-gimp-2.8;C:\work\gimpbin\git-gimp-2.8\bin;C:\MinGW\local64;C:\MinGW\local64\bin;C:\MinGW\mingw64\bin;%PATH%
start C:\work\gimpbin\git-gimp-2.8\bin\gimp-2.8.exe
---

・git-gimp-painter-2.7_postprocess

openSUSEの時と同様に、
c:/work/git/gimp-painter-2.7

c:/work/git/gimp-painter-2.7_postprocess
にまるごとコピーして、
postprocess用のブランチにスイッチする。

cd /c/work/git/gimp-painter-2.7_postprocess
export PYTHON_INCLUDES="-I/c/Python27/include/"
export PYTHON_LIBS="-L/c/Python27/libs -lpython27"
export PYTHON_LIB_LOC="/c/Python27/libs/"
export ACLOCAL_FLAGS="-I/local64/share/aclocal -I/c/MinGW/opt/share/aclocal"

./autogen.sh --prefix=/c/work/gimpbin/git-gimp-painter-2.7_postprocess --build=x86_64-w64-mingw32 CPPFLAGS="-I/usr/include -I/c/Python27/include -I/local64/include" LIBS="-L/usr/lib -L/c/Python27/Lib" CFLAGS="-DMS_WIN64" --enable-debug --without-gvfs --disable-gtk-doc

※3の修正

※4の修正

make
make install

起動用batを作成して、batから実行。

git-gimp-painter-2.7_postprocess_start.bat
---
rem gtk+-2.24.16では、LANG設定する必要なし
rem set LANG=de
set HOME=C:\work\gimphome\git-gimp-painter-2.7_postprocess
if not exist %HOME% mkdir %HOME% > nul
set PATH=C:\work\gimpbin\git-gimp-painter-2.7_postprocess;C:\work\gimpbin\git-gimp-painter-2.7_postprocess\bin;C:\MinGW\local64;C:\MinGW\local64\bin;C:\MinGW\mingw64\bin;%PATH%
start C:\work\gimpbin\git-gimp-painter-2.7_postprocess\bin\gimp-2.8.exe
---

やっとwindowsで起動できた。。。
rotate、mypaintブラシが動くのと、
処理がpostprocess(ペン操作後少し遅れて効果が表示?)されるようです。



・git-gimp-2.9

次は、gitの最新コードでビルドと思ったけど、
windowsではうまくビルドができなかったのでとりあえずしばらく放置。


eclipseでのdebugは次回。


=============

(※1)windows向けビルドでいつも修正が必要な箇所。

gimp起動時に、Gimp-Text-ERROR pangoほにゃららダイアログが出る。

修正内容

app\text\gimpfontlist.c

fontmap = pango_cairo_font_map_new_for_font_type (CAIRO_FONT_TYPE_FT);
if (! fontmap)
g_error ("You are using a Pango that has been built against a cairo "
"that lacks the Freetype font backend");



fontmap = pango_cairo_font_map_new_for_font_type (CAIRO_FONT_TYPE_FT);
if (! fontmap)
fontmap = pango_cairo_font_map_get_default ();
if (! fontmap)
g_error ("You are using a Pango that has been built against a cairo "
"that lacks the Freetype font backend");


下記も同様に更新しておく。
app/text/gimptext-compat.c
app/text/gimptextlayout.c


(※2)make時、下記エラーになる場合。

make[4]: Entering directory `/c/work/git/gimp-2.8/app/core'
  CC     gimp-utils.o
gimp-utils.c: In function 'gimp_get_default_language':
gimp-utils.c:299:10: warning: unused variable 'cat' [-Wunused-variable]
gimp-utils.c: In function 'gimp_get_default_unit':
gimp-utils.c:363:3: error: unknown type name 'DWORD'
gimp-utils.c:366:3: warning: implicit declaration of function 'GetLocaleInfo' [-
Wimplicit-function-declaration]
gimp-utils.c:366:23: error: 'LOCALE_USER_DEFAULT' undeclared (first use in this
function)
gimp-utils.c:366:23: note: each undeclared identifier is reported only once for
each function it appears in
gimp-utils.c:367:23: error: 'LOCALE_IMEASURE' undeclared (first use in this func
tion)
gimp-utils.c:367:41: error: 'LOCALE_RETURN_NUMBER' undeclared (first use in this
 function)
gimp-utils.c:368:24: error: 'LPTSTR' undeclared (first use in this function)
gimp-utils.c:369:52: error: 'TCHAR' undeclared (first use in this function)
gimp-utils.c: In function 'gimp_value_array_truncate':
gimp-utils.c:490:5: warning: 'g_value_array_remove' is deprecated (declared at C
:/MinGW/local64/include/glib-2.0/gobject/gvaluearray.h:91): Use 'g_array_remove_
index' instead [-Wdeprecated-declarations]
make[4]: *** [gimp-utils.o] Error 1
make[4]: Leaving directory `/c/work/git/gimp-2.8/app/core'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/c/work/git/gimp-2.8/app'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/c/work/git/gimp-2.8/app'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/c/work/git/gimp-2.8'
make: *** [all] Error 2

修正内容

app/core/gimp-utils.c

Bug593167.patch
を作成して、コミットされた修正をreverseして戻す。

下記サイトから全てコピーして、Bug593167.patchを作成して、
C:\work\git\gimp-2.8に配置。

https://mail.gnome.org/archives/commits-list/2013-March/msg21051.html

commit 194ef70d7446a627c274135c54498d3092c9b356
から
return GIMP_UNIT_MM;
までコピー。

パッチ適用を戻す。
cd /c/work/git/gimp-2.8
patch -p1 -R < Bug593167.patch

(※3)make時、下記エラーになる場合。

about-dialog.c:36:25: fatal error: git-version.h: No such file or directory

make cleanで消えるので注意。

追加内容

何かそれっぽいのをてきとーに。。

app/git-version.h
---
#ifndef __GIT_VERSION_H__
#define __GIT_VERSION_H__
#define GIMP_GIT_VERSION "GIMP_2_8"
#define GIMP_GIT_LAST_COMMIT_YEAR "2013"
#endif /* __GIT_VERSION_H__ */
---

(※4)gimp-painter-2.7向けdiff

gimp-painter-2.7_postprocess.diff
https://sites.google.com/site/gimpbuilder/files/gimp-painter-2.7_postprocess.diff?attredirects=0&d=1

windowsでせめて起動できるように
なんとか自力でgtkのエラーがでないようにしただけ。。。
ちょっと画面を動かすとエラーがでまくります><

2013年4月3日水曜日

Windows7 64bitでgimp2.8.4、gimp2.9~、gimp-painterをビルド(その1)

Windowsでgimp-painter-2.7(mypaint組み込み版)
とりあえず、すでにやってた。さすがpartha先生。
がんばってうちでもビルドしたいなー。
Onkel_Hatti先生も、やってらした。
http://sourceforge.net/projects/gimp-packagers/files/Onkel_Hatti/
のgimp-painter-2.8_Onkel_Hatti_x64.zip

gimp-painter-2.7のgitのコードを
debugで動作させてわかった問題は
gtk周りでcriticalなエラーが出ている点。
widnows7だとこれでクラッシュする様子。
linuxでも出ているが動くw

いくつかは修正できたけど、
まだまだ勉強不足&実装残部分が多いので
どう対応したらいいのかわからないとこが多い。

ということで、、、?
まず、openSUSEと同じようにWindows上に
gimpのベースとなるパッケージ群を入れるところから
違う点は自分でビルドするパッケージがいろいろあるところ。
&ものすごく時間がかかるところ><

では構築手順。
まずはmsys、mingw、各種pkg、gtk+2まで。


(1)python

ここからダウンロードしたpython2.7.3をインストール。

python-2.7.3.amd64.msi 
インストール先は、
C:\Python27
とした。

たぶん下記はおかしい(32bitなので)と
思ってるけど入れてみた。(とりあえず放置・・・)
pycairo-1.8.10.win32-py2.7.msi
pygobject-2.28.3.win32-py2.7.msi
pygtk-2.24.0.win32-py2.7.msi
インストール先は、
C:\Python27
とした。


(2)perl
perlmsysにデフォルトで入っていた5.8.8を使用する。
(msysは手順(3)で入れる。)

※新しいバージョンを追加する場合は、下記を入れて、
ActivePerl-5.16.2.1602-MSWin32-x64-296513.msi
インストール先は、
C:\Perl64
などとする。動作確認はしてない。

C:\MinGW\local64\etc\profile.local (後の手順で出てくるファイル)
のPATHを設定する。(msysより前にすること)


(3)msys・mingwインストール&パッケージ各種

msys+mingwを入れて、
いろいろ64bitでビルドをしていきます。

ダウンロードにものすごい時間がかかるけど、
手順どおり構築して
build64(ソースをおいてここでビルド)、
local64(ビルドした後のインストール先)側だけを使う。
コマンドもコピペでいけました。
バージョンはここで無理してあげない。
明らかに32bit向けっぽい手順の部分は、
やらないでいける。

(32bitビルドをしたい人は、
 手順で出てくるbulid32、local32に
 インストールしていくとできると思われる。)

まずこの手順。
http://ingar.satgnu.net/devenv/mingw32/base.html
vimの手順はスキップした。
zlib.pcの手動作成を忘れずに(後から見直して忘れてることに気づいた・・・)。

zlib.pc

---
prefix=/local64
exec_prefix=${prefix}
libdir=${prefix}/lib
sharedlibdir=${prefix}/bin
includedir=${prefix}/include

Name: zlib
Description: zlib compression library
Version: 1.2.7

Requires:
Libs: -L${libdir} -L${sharedlibdir} -lz
Cflags: -I${includedir}
---

次にこの手順。OpenALで自分がよくわからなかった点だけ補足。

後から見直すと英語のままだった感じ。
OpenALの手順で出てくる、
cmakeって何?って自分からすると
意味がわかりませんでしたorz

After cmake, run cmake-gui .., disable MMDEVAPI and click the Configure button followed by the Generate button.

cd ~ cmakeコマンド(最後の「..」も必要)まで実行後、

cd $LOCALBUILDDIR && \
wget -c http://kcat.strangesoft.net/openal-releases/openal-soft-1.14.tar.bz2 && \
tar xjf openal-soft-1.14.tar.bz2 && \
cd openal-soft-1.14 && \
cd build && \
cmake -DCMAKE_INSTALL_PREFIX:PATH=$LOCALDESTDIR -G "MSYS Makefiles" ..

cmake-gui.exe
を起動する。

「Where is the source code」に下記を入力。
C:/MinGW/build64/openal-soft-1.14
「Where to build the binaries」に下記を入力。
C:/MinGW/build64/openal-soft-1.14/build


MMDEVAPIのチェックをはずして、Generate。


Configure。


最後に、

make && \
make install

で完了。

次にこの手順でgtkをビルド・インストール。手順どおりでOK。

64bitしからやらない予定なのでprofileを固定で設定する。

C:\MinGW\msys\1.0\etc\profile

下記のようにコメントして、
#if [ -f /local32/etc/profile.local ]; then
# source /local32/etc/profile.local
#fi

下記を追加。
source /local64/etc/profile.local

msys起動時のデフォルトの環境設定は以降、
C:\MinGW\local64\etc\profile.local
に記述していく。

C:\MinGW\msys\1.0\etc\fstabに下記を追記。
perlは別途インストールした場合だけ。

C:/Perl64 /opt/perl
C:/Python27 /usr/python

C:\MinGW\local64\etc\profile.local
に下記を追記。

export PATH="$PATH:/usr/python"
export PYTHONPATH=/usr/python
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/lib/pkgconfig:/usr/python/Lib/pkgconfig

C:\MinGW\msys\1.0\msys.bat
を再起動。

以降、各種tarをgnuなどから落として入れていきます。
tarは全て、

$LOCALBUILDDIR、つまり、C:\MinGW\build64

に配置します。


(4)intltool

cd $LOCALBUILDDIR
tar xzf intltool-0.50.2.tar.gz
cd intltool-0.50.2
./configure --prefix=/opt
make
make install

※手順(2)でperlの新しいバージョンを入れた場合は、
下記4ファイルの先頭を

C:\MinGW\opt\bin\intltool-extract
C:\MinGW\opt\bin\intltool-merge
C:\MinGW\opt\bin\intltool-prepare
C:\MinGW\opt\bin\intltool-update

下記のようにパスが通るようにする
#!/c/Perl64/bin/perl -w


(5)local packagesバージョンアップ

・nasm
cd $LOCALBUILDDIR
tar xzf nasm-2.10.07.tar.gz
cd nasm-2.10.07
./configure --prefix=$LOCALDESTDIR --build=x86_64-w64-mingw32
make
make install

・libpng
cd $LOCALBUILDDIR
tar xzf libpng-1.5.14.tar.gz
cd libpng-1.5.14
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR
make
make install

・libjpeg
cd $LOCALBUILDDIR
tar zxf jpegsrc.v9.tar.gz
cd jpeg-9
./configure --prefix=$LOCALDESTDIR --enable-shared --enable-static --build=x86_64-w64-mingw32
make
make install

・libtiff
cd $LOCALBUILDDIR
tar xzf tiff-4.0.3.tar.gz
cd tiff-4.0.3
./configure --prefix=$LOCALDESTDIR --build=x86_64-w64-mingw32
make
make install

・smpeg
cd $LOCALBUILDDIR
svn co -r 399 svn://svn.icculus.org/smpeg/tags/release_0_4_5 smpeg-399
cd smpeg-399
./autogen.sh
./configure --prefix=$LOCALDESTDIR --build=x86_64-w64-mingw32 --enable-mmx --disable-gtk-player --disable-opengl-player --disable-gtktest
make CXXLD='$(CXX) -no-undefined'
make install

・bullet
cd $LOCALBUILDDIR
tar xzf bullet-2.81-rev2613.tgz
cd bullet-2.81-rev2613
./autogen.sh
./configure --prefix=$LOCALDESTDIR --build=x86_64-w64-mingw32 --disable-demos
make
make install


(6)gtk+のバージョンアップ
(たまにmsysを再起動しているけどバックアップをとるためにやったので、必須ではないかも。)

・gettext
cd $LOCALBUILDDIR
tar xzf gettext-0.18.2.tar.gz
mv gettext-0.18.2 gettext-0.18.2-runtime
cd gettext-0.18.2-runtime

cat gettext-tools/woe32dll/gettextlib-exports.c | grep -v rpl_opt > gettext-tools/woe32dll/gettextlib-exports.c.new
mv gettext-tools/woe32dll/gettextlib-exports.c.new gettext-tools/woe32dll/gettextlib-exports.c

export CFLAGS="$CFLAGS -O2"
export CXXFLAGS="$CXXFLAGS -O2"

./configure --prefix=$LOCALDESTDIR --build=x86_64-w64-mingw32 --enable-threads=win32 --enable-relocatable
cd gettext-runtime
make
make install

cd $LOCALBUILDDIR
tar xzf gettext-0.18.2.tar.gz
mv gettext-0.18.2 gettext-0.18.2-static
cd gettext-0.18.2-static

export CFLAGS="$CFLAGS -O2"
export CXXFLAGS="$CXXFLAGS -O2"

./configure --prefix=$LOCALDESTDIR --build=x86_64-w64-mingw32 --enable-threads=win32 --enable-relocatable --disable-shared
make
install gettext-tools/src/msgfmt.exe $LOCALDESTDIR/bin
install gettext-tools/src/msgmerge.exe $LOCALDESTDIR/bin
install gettext-tools/src/xgettext.exe $LOCALDESTDIR/bin

msysを再起動。

・libffi
cd $LOCALBUILDDIR
tar xzf libffi-3.0.12.tar.gz
cd libffi-3.0.12
./configure --prefix=$LOCALDESTDIR --host=x86_64-w64-mingw32
make
make install

・glib : (2.35.8はエラー解決できなかった・・・)
cd $LOCALBUILDDIR
tar xf glib-2.34.3.tar.xz
cd glib-2.34.3
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR --with-pcre=internal --enable-debug=no --disable-gtk-doc
make
make install

・pkg-config
cd $LOCALBUILDDIR
tar xzf pkg-config-0.28.tar.gz
cd pkg-config-0.28
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR
make
make install

・freetype
cd $LOCALBUILDDIR
tar zxf freetype-2.4.11.tar.gz
cd freetype-2.4.11
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR
make
make install

・libxml2
cd $LOCALBUILDDIR
tar zxf libxml2-2.9.0.tar.gz
cd libxml2-2.9.0
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR --with-zlib=$LOCALDESTDIR
make
make install

・fontconfig
cd $LOCALBUILDDIR
tar xzf fontconfig-2.10.91.tar.gz
cd fontconfig-2.10.91
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR --enable-libxml2 --disable-docs
make
make install

・pixman
cd $LOCALBUILDDIR
tar xzf pixman-0.28.2.tar.gz
cd pixman-0.28.2
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR
make
make install

・cario
cd $LOCALBUILDDIR
xz -d -c cairo-1.12.14.tar.xz | tar xv
cd cairo-1.12.14
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR
make
make install

・pango
cd $LOCALBUILDDIR
tar xf pango-1.33.7.tar.xz
cd pango-1.33.7
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR --with-included-modules=yes --disable-debug --disable-gtk-doc
make
make install

・atk
cd $LOCALBUILDDIR
tar xf atk-2.7.91.tar.xz
cd atk-2.7.91
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR
make
make install

・gdk-pixbuf
cd $LOCALBUILDDIR
tar xf gdk-pixbuf-2.27.1.tar.xz
cd gdk-pixbuf-2.27.1
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR --with-included-loaders=yes --without-libjasper --disable-debug
make
make install

msysを再起動。

・gtk+
cd $LOCALBUILDDIR
tar xf gtk+-2.24.16.tar.xz
cd gtk+-2.24.16
./configure --build=x86_64-w64-mingw32 --prefix=$LOCALDESTDIR --with-gdktarget=win32 --with-included-immodules=ime --disable-debug --disable-gtk-doc
rm gtk/gtk.def
make
make install

cd demos
./pixbuf-demo

cd gtk-demo
gtk-demo

これでデモ画面がでればgtkがバージョンあがったはず。

2013年4月1日月曜日

mypaintのビルド


gimp-painterに組み込まれ中のmypaintとはなんぞや?
と思ったので、ビルド&実行。
pythonのコードが結構ある。
pydev入れると、
eclipseでのdebugができるのかな。

環境はgimpビルドと同じでやってみた。
openSUSE12.3 64bit(VirtualBox on Windows7)
openSUSE12.3 64bit(VirtualBox on Windows7)でgimp2.8.4、gimp2.9~、gimp-painterをビルド(その2)(※)を実行した後に試しています。

ソース
git://gitorious.org/mypaint/mypaint.git

/home/admin/git/mypaint
にcloneしました。

下記パッケージをインストール
(これで足りない場合は※の手順のパッケージを参照して・・・)
scons
libjson-devel
swig
python-numpy-devel
python3-gobject-devel

ビルドとインストール
cd /home/admin/git/mypaint
scons
scons prefix=/home/admin/testbin/mypaint install

起動(dolphinなどから起動)
/home/admin/testbin/mypaint/bin/mypaint

gimpもmypaintも日々更新が入るので、
差分を見ながら勉強中。

2013年3月30日土曜日

ゲストOS(VirtualBox)側でWacomのペンタブを使用する


Vmwareでもそうだったが、
intuos 5 mediumをホストOS(Windows7)側でUSB3.0接続していると、
うまくゲスト側に切り替えられなかった。
ホスト側をUSB2.0にするとうまくいった。

あと、VirtualBOXでは
「マウス統合の無効化」設定をしないとペンのカーソルが変。

ペンタブの情報量はよくわからないけど、
ホスト側でUSB3で使ったほうが
書き味パフォーマンスはいいのかな・・・。

それにしても、openSUSEにデフォルトで
wacomのドライバパッケージ(wacomが作っているわけではないみたいだが)が
入ってるってのはすごいな。。
linux全般入っているのだろうか。

2013年3月20日水曜日

シングルウィンドウモードでツールボックスを右側に表示(gimp2.8)


・シングルウィンドウモードで右側にツールボックスを持ってくる


そっこーブログタイトルからそれたけど、、
(Windowsビルド手順評価中のつなぎ・・・)

partha先生(※)の
gimp画面を見ていたら、
できるんだなーと思ったんだけど、
ドッキング可能なダイアログについては、直感的に操作できるけど、
ツールボックスの移動については、手順がよくわからん。

四苦八苦しながらやっとできた・・・。
まず分割モード?(シングルウィンドウモードじゃないやつ)で、
「ツールボックス」ウィンドウを
「GIMP (GNU Image Manipulation Program)」ウィンドウより右側に持っていく。
シングルウィンドウモードにする。
以上。

これが



こうなる。

(※)
手順は素人にはなかなか難解ですが・・・、
Windowsでのgimpビルド手順(2.7だけど)を紹介してくれている人。
2.9のビルドイメージも公開してくれてたりする。

2013年3月15日金曜日

openSUSE12.3 64bit(VirtualBox on Windows7)でgimp2.8.4、gimp2.9~、gimp-painterをビルド(その2)

eclipse周りの設定~debug実行まで。
下記のような構成。





(1)eclipse CDTのインストール

下記tarをダウンロードしてきて展開。
eclipse-cpp-juno-SR2-linux-gtk-x86_64.tar.gz

/home/admin/eclipse
配下に実行ファイル「eclipse」
がくるように配置。

git cloneソース置き場として、下記フォルダを作成。
/home/admin/git/


(2)eclipseからgit clone・プロジェクト作成

/home/admin/eclipse/eclipse
を起動。

/home/admin/eclipse/workspace
をworkspaceとした。

・gimpのソース。


「Window」/「Open Perspective」から「Git Repository Exploring」を起動
「Clone a Git repository」
uriに「git://git.gnome.org/gimp」を入れて、
「Next」。
「Next」。
Directoryを「/home/admin/git/gimp」として、
「Finish」

gimp-painterも同じように追加する。
git://git.sourceforge.jp/gitroot/gimp-painter/gimp-painter-2.7.git

eclipse上でcloneが終わったら、
/home/admin/git/gimp/
を丸ごと、
/home/admin/git/gimp-2.8/
としてコピーする。

コピーが完了したら、
eclipse上で、
「Add an existing local Git Repository to this view」
「/home/admin/git/gimp-2.8/.git」
を追加する。


gimp-2.8/Branches/Remote Tracking/origin/gimp-2-8
をダブルクリックしてチェックアウトする。


「C/C++」パースペクティブで、
importして、プロジェクト「gimp」を追加する。




同じように、「gimp-2.8」を追加。


同じように、「gimp-painter-2.7」を追加。 


gimp-painter-2.7/Branches/Remote Tracking/origin/postprocess
をダブルクリックしてチェックアウトする。
ちなみにpostprocessだと、書いた後にぬるっと後から効果が出てくる感じ。
ブランチのorigin/gimp-2.8なら、書きと同時に表示されます。
postprocessはすばやい書き重視の上級者やlowスペック向け?
2.9で実装中のprecisionで遅くなるかもしれない?対応?




 追加後イメージ。




gitなので、それぞれのプロジェクトで、
右クリックでteam/share projectsしておく。

gimp2.9以上用の追加リポジトリとして、下記bablとgeglを追加。
プロジェクトは作らない(eclipseでコードを参照したければ作ってもよい)。
基本的にこの2つは、gimp最新をビルドする前に、
取得してビルド・インストールしておく。

git://git.gnome.org/babl




git://git.gnome.org/gegl






追加した後。


  



(3)gimp2.9以上用のbabl・geglビルド

 ※YaSTでバージョン確認してバージョンが古い場合のみ



・babl(0.1.11以上)

※-j4の4はCPUコア数。自分の環境に合わせて適切な数値をあわせる。
※できれば「-----」の区切りごとにコンソールを再起動すること。
(exportとか評価していないので・・・
 exportのある次のやつだけ再起動でよいかも)。

-----
cd /home/admin/git/babl
./autogen.sh --prefix=/home/admin/testopt/gimp-2.9
make -j4
make install -j4
-----

・gegl(0.2.1以上)

-----
cd /home/admin/git/gegl
export LANG="en_US.UTF-8"
./autogen.sh --prefix=/home/admin/testopt/gimp-2.9 --disable-gtk-doc
make -j4
make install -j4
-----



(4)gimpビルド・インストール


・gimp(最新)

-----
cd /home/admin/git/gimp
export CFLAGS="$CFLAGS -O0"
export CXXFLAGS="$CXXFLAGS -O0"
export XVFB_RUN=/usr/bin/xvfb-run.sh
export PKG_CONFIG_PATH=/home/admin/testopt/gimp-2.9/lib64/pkgconfig:$PKG_CONFIG_PATH
./autogen.sh --prefix=/home/admin/testbin/gimp-2.9 --with-gimpdir=/testhome/gimp-2.9 --enable-debug
make -j4
make install -j4
-----

・gimp(2.8系)

-----
cd /home/admin/git/gimp-2.8
export CFLAGS="$CFLAGS -O0"
export CXXFLAGS="$CXXFLAGS -O0"
export XVFB_RUN=/usr/bin/xvfb-run.sh
./autogen.sh --prefix=/home/admin/testbin/gimp-2.8 --with-gimpdir=/testhome/gimp-2.8 --enable-debug
make -j4
make install -j4
-----


・gimp-painter

gimp-painterの下記コードを一部修正
gimp-painter-2.7/autogen.sh

ACLOCAL=${ACLOCAL-aclocal-1.11}
AUTOMAKE=${AUTOMAKE-automake-1.11}

↓下記のように12にする

ACLOCAL=${ACLOCAL-aclocal-1.12}
AUTOMAKE=${AUTOMAKE-automake-1.12}

-----
cd /home/admin/git/gimp-painter-2.7
export CFLAGS="$CFLAGS -O0"
export CXXFLAGS="$CXXFLAGS -O0"
export XVFB_RUN=/usr/bin/xvfb-run.sh
./autogen.sh --prefix=/home/admin/testbin/gimp-painter-2.7 --with-gimpdir=/testhome/gimp-painter-2.7 --enable-debug
make -j4
make install -j4
-----

eclipse上で3つのプロジェクトをF5でリフレッシュ

フォルダ構成はこんな感じ。



(5)eclipseプロジェクトのinclude設定

「Paths and Symbols」からincludesを設定

「gimp」プロジェクトは下記のように設定
「GNU C」、「GNU C++」に設定


「gimp-2.8」、「gimp-painter-2.7」プロジェクトは下記のように設定
「GNU C」、「GNU C++」に設定






(6)eclipseプロジェクトのdebugger設定

「Debug Configurations」から「C/C++ Application設定」で
3つのプロジェクトについて設定

「gimp-2.8」




「gimp-painter-2.7」。Debugger設定は「gimp-2.8」と同じ。


「gimp-2.9」。Debugger設定は「gimp-2.8」と同じ。


「gimp-2.9」だけ、下記environment設定を追加。



(7)gdb用設定ファイル

/usr/bin/.gdbinit
を空で作成する。
ここだけ、sudoが必要。

-----
sudo vi
esc
:w /usr/bin/.gdbinit
esc
:q
-----


(8)起動

gimp-painter-2.7をeclipseから起動すると、こんな感じ。
3つのプロジェクトを同時には起動できないけど、
それぞれ独立したフォルダ管理になっているはずなので、
環境が上書きされたりしないはず。。?




※gimp-painter-2.7を停止時に、
/home/admin/testhome/gimp-painter-2.7/mypaint-brushes/
がないエラーになるので手動で作成してください。


(9)参考になるかもしれないサイト

なんかそっくりなことをやっているのを見つけたので。。
同時起動できるみたい。
http://ninedegreesbelow.com/photography/build-gimp-in-prefix.html