メインコンテンツに移動

GSL

GSLは,C++, Cのライブラリーで、多項式の解,線形代数,常微分方程式や数値積分,種々の特殊関数など,様々な数値計算のライブラリーです.

パッケージの利用方法

これgsl-あたらしげなやつをダウンロードして使います

XCodeで使うやり方は、BOOSTと類似しているので省略。CMakeを使う手もある.

XCodeやCMake以外で使う変人さんたちへ

今やプログラムのビルドは人間には複雑すぎる.それを手動でやるとは殊勝を通り越して暇人とおもうが,まあコマンドラインで使うには,~/.bashrc に次の設定が必要である

export PATH=$PATH:/opt/gtk/bin:/usr/local/bin
export PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig:/opt/gtk/share/pkgconfig:/usr/local/li
b/pkgconfig:/opt/X11/lib/pkgconfig:/opt/X11/share/pkgconfig:/usr/lib/pkgconfig

この設定の下では,コンパイルに必要なパスは次のようにして得られる:

pkg-config --cflags gsl      (コンパイルのオプションが表示される)
pkg-config --libs gsl        (リンカーのオプションが表示される)

再配布パッケージの作成方法

UNIVERSAL 台湾積体電路製造

X86ビルド

X86ターミナルで実行する.

cd gsl-2.6
./configure --prefix=/usr/local CC=clang CXX=clang++
make
lipo -info .libs/*dylib cblas/.libs/*dylib
Non-fat file: .libs/libgsl.25.dylib is architecture: x86_64
Non-fat file: .libs/libgsl.dylib is architecture: x86_64
Non-fat file: cblas/.libs/libgslcblas.0.dylib is architecture: x86_64
Non-fat file: cblas/.libs/libgslcblas.dylib is architecture: x86_64

なるほど.

ARM64ビルド

ARM64ターミナルで実行する..

cd gsl-2.6
./configure --prefix=/usr/local CC=clang CXX=clang++
make
lipo -info .libs/*dylib cblas/.libs/*dylib
Non-fat file: .libs/libgsl.25.dylib is architecture: arm64
Non-fat file: .libs/libgsl.dylib is architecture: arm64
Non-fat file: cblas/.libs/libgslcblas.0.dylib is architecture: arm64
Non-fat file: cblas/.libs/libgslcblas.dylib is architecture: arm64

なるほど.

fswatch -x /usr/local/ > files.log &
sudo make install

豚りんご

それでは豚に変更しよう.

mkdir ../universal
find . -name libgsl\*dylib -o -name libgslcblas.a -o -name libgsl.a | fatty_apple.sh . ../../x86_64/gsl-2.6/ ../universal/
Architectures in the fat file: ../universal//./cblas/.libs/libgslcblas.a are: x86_64 arm64
Architectures in the fat file: ../universal//./cblas/.libs/libgslcblas.0.dylib are: x86_64 arm64
Architectures in the fat file: ../universal//./cblas/.libs/libgslcblas.dylib are: x86_64 arm64
Architectures in the fat file: ../universal//./.libs/libgsl.dylib are: x86_64 arm64
Architectures in the fat file: ../universal//./.libs/libgsl.25.dylib are: x86_64 arm64
Architectures in the fat file: ../universal//./.libs/libgsl.a are: x86_64 arm64
sudo cp ../universal/cblas/.libs/* /usr/local/lib/
sudo cp ../universal/.libs/* /usr/local/lib/
sudo cp ../universal/.libs/* /usr/local/lib/
kill %1
fswatch_analyze.sh -c _binary files.log
pkgbuild --identifier gsl --root _binary gsl-2.6-osx11.2.pkg

INTEL専用

  1. ダウンロードします.
  2. tar xf gsl-X.X.tar
    cd gsl-X.X
    export LDFLAGS=-Wl,-headerpad_max_install_names
    ./configure --prefix=/usr/local CC=clang CXX=clang++
    make
    fswatch -x /usr/local > files.log &
    sudo make install
    kill %1
    fswatch_analyze.sh -c _binary files.log
    mkdir _binary/usr/local/share/gsl-1.16
    cp files.log _binary/usr/local/share/gsl-1.16/
    pkgbuild --identifier gsl --root _binary gsl-1.16-osx10.9.pkg