コンパイルジャンキー入門 「ねっ!今夜は徹夜でナイトリービルドしよっ!!」

さて、今回はコンパイルについてです。

Gentoo Linuxを使用していると、毎日のコンパイルのおかずには事欠くことはありません。

もちろん、紳士淑女の嗜みですから"emerge --sync"を打つのは1shot/1dayLANは守ってますよね。 一つのLAN内からのemergeは一台のGentooから一日一回。 他のGentooは、shotした一台のportageをrsyncで参照しましょう。

──はい。おっと、これは失礼

諸兄方は、"emerge --sync"をeix-syncに置き換えてると。 いやぁさすがですね。 敬服致します。

おや? なんですか? はぁ──。足りない? 足りないのですか? 何が? コンパイル? なになに……。

  • もっとHDDの鳴き声を聞きたい
  • CPUファンの高鳴りを感じたい
  • autotoolsやcmakeが通せなくて悶絶したい
  • makeやgccはちょっと……。ninjaやclangを楽しみたい

解ります。 ええ、私にもそんな時期がありました。 アップデートのためのemergeが、コンパイルのためのソレに変わっていた時期が。 いやぁ懐かしい。 nvidia-driverが吐く、赤字。 あのエラーは何度味わってもいいものです……。 chromiumやfirefoxやlibreoffice……。 あの壮大さは語り尽くせない。"-bin"付きなんかもっての他です。 bashが3日連続で攻めて来た日には、「ああ、いよいよ私も天に昇る時が来たのだ」と覚悟しました。 halとudevが交互に降って沸いたときもありましたっけ。眩暈がしましたね。ええ、もちろん歓喜で。 gccが3.3から3.4に変わったときなんか、ABIが代わりましたからね。"emerge -e"ですよ。全コンパイル。 あの頃はGentoo機が5匹おりましたから、それは壮観でした。 今は2匹です、いやぁ寄る年波には勝てませんよ。 ああでも、今は仮想のGentooが3匹とArch2匹,Cent1匹、そうそうWin7も1匹おります。Qemu on Gentooの中に。 wattとlubuntuもいますが、こやつらは大人しいですから物足りないですね……。 その点Sabayonは飼いきれなかったですな。 大きいですから、迫力が違いま……。

おっと、失礼。 emergeは堪能しつくされたのですね。 いやいや、ご心配には及びません。 とっておきがございます。

紳士淑女の皆々様方におすすめ。 重厚で芳醇。 真のコンパイルジャンキーにふさわしい、死の難関コンパイル。その名も──。











Blender

Blender

OSSの3Dグラフィックス統合ソフトウェア。 モデリング・アニメーション・レンダリング、ビデオ編集を一手に賄う。 歴史の長い、非常に優秀なソフトウェア。

2014/11/29現在、下記の用にportage内では"~"付き、つまり、マスク(テスト段階につき非推奨)されている。


# x86 3.16.5-gentoo
 eix blender 
* media-gfx/blender
     Available versions:  ~2.69-r1 ~2.71-r2 ~2.72-r1 ~2.72b {+boost +bullet collada colorio cycles +dds debug doc +elbeem ffmpeg fftw +game-engine jack jpeg2k ndof nls openal +openexr openimageio openmp +opennl player redcode sdl sndfile sse sse2 tiff PYTHON_TARGETS="python3_3 python3_4"}
     Homepage:            http://www.blender.org
     Description:         3D Creation/Animation/Publishing System

cmake化されているとはいえ、CyclesというレンダーエンジンをGPUで用いる場合、最新のグラフィックスドライバに依存するNvidiaCUDAを要求していること。 内部スクリプトのために最新のPythonインタープリタを要求していること。 Colladaを含む多様な3Dファイルフォーマット群、ならびOpenImageIOに始まりEXRにすら対応する画像フォーマット群。 OpenGLは当然として、GLEW,OpenGLES,OpenAL,SDLすら参照し、boost,LLVM、そしてなんと、OpenMPまでもサポート対象としていること。 これらから、言わばまさにライブラリ依存関係のモンスター。

それが──。











Blender

このBlenderをソースコードから独力で野良ビルドする。

──もはやこれは『Blender Compile Battle(BCB)』と言えよう。

BCB入門 1.レギュレーション

  • Blender公式から最新のソースコードを取得しビルドする
  • その他のライブラリ、ツールは可能ならパッケージシステムの提供するものを使用できる
  • 環境や習熟度によって、機能の削減は許される。ただし当然高機能なBlenderに仕上げたものが優秀とされる
  • 必要なライブラリがパッケージシステムにない。もしくは動かない場合、対象ライブラリを野良ビルドすることも許される。もちろん高い評価につながる

環境依存性を全て解消して、全機能をコンパイルしたとき、完全無欠なる絶対のBlenderを手にするという栄誉が得られる。健闘を祈る。

BCB入門 2.必要なパッケージ

必須だがportage内で済むもの
  • git
  • cmake
おそらく最新を要求されるため、maskを外す羽目になるもの
  • python
機能選択によって、なくてもかまわないもの
  • nvidia-cuda-toolkit
  • nvidia-cuda-sdk
  • opencollada
  • jack...etc.etc.etc.etc.割愛

参考記録

x86機の現在です。 OpenColladaもGPUも(=CUDAも)切っている低燃費Blenderです。 CPUでCyclesすると遅くて悲鳴を上げます。

いや、amd64の方ではCUDA通せたんですよ。本当ですよ。


# blender v2.72.2
# grep WITH CMakeCache.txt | grep =ON

WITH_AUDASPACE:BOOL=ON
WITH_BLENDER:BOOL=ON
WITH_BOOL_COMPAT:BOOL=ON
WITH_BOOST:BOOL=ON
WITH_BUILDINFO:BOOL=ON
WITH_BULLET:BOOL=ON
WITH_CODEC_AVI:BOOL=ON
WITH_COMPOSITOR:BOOL=ON
WITH_CPU_SSE:BOOL=ON
WITH_CYCLES:BOOL=ON
WITH_FFTW3:BOOL=ON
WITH_FREESTYLE:BOOL=ON
WITH_GAMEENGINE:BOOL=ON
WITH_GHOST_XDND:BOOL=ON
WITH_GL_PROFILE_COMPAT:BOOL=ON
WITH_GUARDEDALLOC:BOOL=ON
WITH_IK_ITASC:BOOL=ON
WITH_IK_SOLVER:BOOL=ON
WITH_IMAGE_CINEON:BOOL=ON
WITH_IMAGE_DDS:BOOL=ON
WITH_IMAGE_FRAMESERVER:BOOL=ON
WITH_IMAGE_HDR:BOOL=ON
WITH_IMAGE_OPENEXR:BOOL=ON
WITH_IMAGE_OPENJPEG:BOOL=ON
WITH_IMAGE_TIFF:BOOL=ON
WITH_INPUT_NDOF:BOOL=ON
WITH_INSTALL_PORTABLE:BOOL=ON
WITH_INTERNATIONAL:BOOL=ON
WITH_LIBMV:BOOL=ON
WITH_LIBMV_SCHUR_SPECIALIZATIONS:BOOL=ON
WITH_LZMA:BOOL=ON
WITH_LZO:BOOL=ON
WITH_MOD_BOOLEAN:BOOL=ON
WITH_MOD_FLUID:BOOL=ON
WITH_MOD_REMESH:BOOL=ON
WITH_MOD_SMOKE:BOOL=ON
WITH_OPENAL:BOOL=ON
WITH_OPENCOLORIO:BOOL=ON
WITH_OPENIMAGEIO:BOOL=ON
WITH_OPENMP:BOOL=ON
WITH_OPENNL:BOOL=ON
WITH_PYTHON:BOOL=ON
WITH_PYTHON_MODULE:BOOL=ON
WITH_PYTHON_SECURITY:BOOL=ON
WITH_RAYOPTIMIZATION:BOOL=ON
WITH_SDL:BOOL=ON
WITH_SYSTEM_GLES:BOOL=ON
WITH_SYSTEM_GLEW:BOOL=ON
WITH_SYSTEM_OPENJPEG:BOOL=ON
WITH_X11_XF86VMODE:BOOL=ON
WITH_X11_XINPUT:BOOL=ON

おわりに

はい。すいません。ご笑覧いただければ幸いの悪ふざけです。

ということで──。 Gentooネタの方が受けがよいことに日和って、半端なネタ記事を書き散らし、 人格も口調も方向性も迷走しはじめてしまいました。 どうしたらいいんだ。

ネタにはしましたが、Blenderは大変有用です。 開発者の努力には頭が下がります。 日々改善されているので、もしかしたら既にものすごく簡単にコンパイル出来てしまうかもしれません。 だとしたら、今回のネタは大外しです。そのほうがいいですね。

blender.org http://www.blender.org/

ともあれ、 gentooは元より、OSのinstallが済んだ全ての方、 コンパイルジャンキー入門として「Blender Compile Battle」。 挑戦者をお待ちしております。 コンパイル手順については、公式サポート等をご参照ください。当然のように丸投げとさせていただきます。

クリアーできたら、そうですね。 ナイトリーでやるとよいと思います。

つまり毎晩

※ 当方はblender.org様とは一切の関係はございません。 皆様にはBlenderの関係者さまにご迷惑のかからないよう、ご配慮いただけますようお願い致します。

※ また、#gentoocompilebattleからネーミングを真似させていただきましたが、こちらも当方は一切の関係はございません。 皆様には#gentoocompilebattleの関係者さまにご迷惑のかからないよう、ご配慮いただけますようお願い致します。

0 件のコメント:

コメントを投稿