2
私のC++アプリケーションをdebianとubuntuで交互に開発し、informixデータベースのライブラリルートディレクトリは両方のディストリビューションで異なります。Makefileではパスが存在すればパス変数を割り当てます
私はそれを毎回手動で変更する必要はないので、Makefileでそれを扱う素晴らしい方法は何ですか? ディレクトリの存在をテストすることを考えたので、unameまたはlsb-releaseまたはhostnameを確認するのが一般的です。
条件での割り当ての構文はどのようになっていますか?私は、try#2
// prepare
INFORMIXDIR_DEB=/usr/informix
INFORMIXDIR_UBU=/opt/IBM/informix
// tried #1
$(INFORMIXDIR_DEB):
if [ -d $(INFORMIXDIR_DEB) ]; then INFORMIXDIR=$INFORMIXDIR_DEB; fi;
// tried #2
$(INFORMIXDIR_DEB):
INFORMIXDIR=$(INFORMIXDIR_DEB)
// tried #3
if [ -d $(INFORMIXDIR_UBU) ] ;
then INFORMIXDIR=$INFORMIXDIR_UBU;
fi;
より正確には:「結果を変数に割り当てる」?どのようにテストcond。後にそれを書くか? – groovehunter
@groovehunter:$(シェル)もの。完全な情報については、gmakeのマニュアルを参照してください。私はシェルに渡された完全なロジックのようなものを意味します:$(shell test -d blabla && echo blablaexists)。 –
今、私はそれを得ました。 'INFORMIXDIR = $(シェルテスト-d/opt/IBM/informix && echo/opt/IBM/informix)' 「シェル」の前に空白はありません! :) – groovehunter