2015年3月6日金曜日

glew の make で忘れてるとナンジャコリャとなること

glewmake しようとして「ナンジャコリャ」となったのでメモ。

手順

git clone https://github.com/nigels-com/glew
cd glew
make extensions
mkdir build.gcc
cd build.gcc
cmake \
  -G Ninja \
  ../build/cmake \
  -DCMAKE_C_COMPILER=gcc \
  -DCMAKE_CXX_COMPILER=g++ \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_INSTALL_PREFIX=$HOME
ninja
ninja install

(※glew は tag/releases 版の更新がやや古いので HEAD を使ったほうが良いと思われる。)

気をつけるところ

はい、 make extensions しろと readme.txt にも書いてあるんですが、リポジトリーの構造を見て脳内ビルドエンジンが「 make せよ@w@」と語りかけた直後 make して悲しみを覚えました。

make: * No rule to make target ‘src/glew.c’, needed by ‘tmp/linux/default/shared/glew.o’. Stop.

Linux で GLFW を使っていると GLEW 要らないので久しぶりにビルドするにあたり忘れていた模様(´・ω:;.:…

おまけ

glew のビルドに make make install は使わないほうがいい

sudo make install DESTDIR=$HOME GLEW_DEST=
  • DESTDIR だけだと、直下に usr/ を作られる
  • GLEW_DESTusr/ の部分を変更できるが…
    • $HOME/lib を期待しても $HOME/lib64 とかに入れてくれる(それでいいひとはいいけど、multilibいらん管理だと管理dir増えていや・w・)

と、いうわけで、こういう独自仕様の Makefile に疲れる事なくインストールまでできるし、ビルドエンジンにも Ninja その他お好みにできる cmake を使うのがおすすめ。

しかしこのための CMakeLists.txt はマージされた時にはちゃんとリポジトリールートに居たのに、その後なぜか build/cmake/CMakeLists.txt に移動されているので Issues とか見てなかった人は追加されていることにも気づかないと思う。

特定ツールではなしにメタビルドシステムの定義ファイルなんだから
リポジトリールートに置きなさいよ!とか思ったり。めんどくさい・w・

0 件のコメント:

コメントを投稿