私はconfigure
とすべての関連ファイル(私はautoreconf
コマンドを使ってこれらのすべてを作る)を作るためにautomakeを使うプロジェクトを持っています。だから、プロジェクトがMacOS(OS X)、Windows、またはLinux用にコンパイルされているときに、コンパイルするためにいくつかの条件付きファイルを設定しようとしています。しかし、それは次のように失敗します。OSをautomakeでチェックする方法
$ autoreconf -i ..
src/Makefile.am:30: error: LINUX does not appear in AM_CONDITIONAL
autoreconf: automake failed with exit status: 1
そして、そのMakefile.am
でエラーを含む部分は以下の通りです:
if OSX
butt_SOURCES += CurrentTrackOSX.h CurrentTrackOSX.m
endif
if LINUX
butt_SOURCES += currentTrack.h currentTrackLinux.cpp
endif
if WINDOWS
butt_SOURCES += currentTrack.h currentTrack.cpp
endif
私の質問は、OSがLinuxの場合、私がチェックする方法、ありますか?それが可能ならば、automakeのOSをチェックする良い方法はありますか?
ペダンティカル(そして、オートツールを扱うときには大括弧が必要です)、 'automake'は' configure'を作成せず、まったく何もしません。 'automake'はテンプレート' Makefile.am'に基づいて 'Makefile.in'を作成します。 –
OSがLinuxであるかどうかを確認する方法はありますが、気にしないでください。気にしないでください。あなたは、システムの特徴ではなく、システムの特定の特徴を気にします。必要な機能を特定し、それらの機能をテストし、Linux、OS X、Windowsのどちらであるか心配しないでください。とにかく、すべてのLinuxが同じであると仮定するべきではないので、これはより堅牢になります。 –
@William Pursell automakeについての説明をいただきありがとうございます。私は 'autoreconf'を使ってすべてのものを作っています。正確な名前はわかりません。特別なこのファイルのためには、標準のCライブラリのみが必要です。 OS XではAppleScriptが必要です.AppleScriptはそこでしか利用できません。また、Windowsでは直接サポートされていません(スタブ関数)。ですから、CライブラリはすべてのLinuxに共通しているので、Linuxだけであるかどうかを確認する必要があります。 – melchor629