R に .edf ファイルをインポートするためのサードパーティ (クローズド ソース) API を使用する R パッケージを作成しています (SR Research Eyelink アイ トラッカーから)。これを Linux で動作させた人がコードを共有してくれたので、Mac でも動作させることができました。Mac にインストールされている API を指すように src/Makevars ファイルを変更するだけの問題でした。
PKG_LIBS=-framework edfapi -F/Library/Frameworks/
Linux で動作させるには、Makevars に次のものが必要です。
PKG_LIBS=-L/usr/local/lib -ledfapi -lm
Windows 固有のオプションについては、Makevars.win ファイルを作成する必要があることはわかっていますが、Mac と Linux でビルド オプションを変更するにはどうすればよいですか? 私は次のようなことをしたいと思います:
if [[ `uname` -eq Darwin ]] ; then
PKG_LIBS=-framework edfapi -F/Library/Frameworks/
fi
if [[ `uname` -eq Linux ]] ;then
PKG_LIBS=-L/usr/local/lib -ledfapi -lm
fi
しかし、これを Makevars に入れてもうまくいきません。configure
これを調査したところ、との設定オプションの組み合わせが必要なようですが、Makevars
よくわかりませんでした。私は R プログラミングに慣れており、いくつかの基本的な関数を作成するのに十分な C++ を知っていますが、構築プロセスに含まれるすべてのニュアンスをまだ理解していません。誰かがconfigure/configure.ac
対の主な目的を説明できれば、Makevars/Makevars.in
それも役に立ちます。
理想的には、API を R パッケージと一緒にバンドルし、プラットフォーム固有のフォルダーにさまざまなバージョンを配置したいと考えています。API は、わずか 3 つのヘッダー ファイルと 1 つのバイナリで構成されています (ほとんど変更されません)。これにより、パッケージをCRANに配置できなくなることはわかっていますが、それで問題ありません。別のフォルダーにある API ファイルを使用してパッケージを正常にビルドできましたが、実行時には標準の場所 (/Library/Frameworks) でパッケージを検索します。これはより負荷の高い質問であり、別の投稿を作成することもできます.