GNU+Linux システムのソースからソフトウェアをビルドするとき、./configure
この段階でしばしば次の行が表示されます。
checking for suffix of executables...
Bashスクリプトでこれらのチェックをどのように作成できますか?
私がこれを知りたいのは、Cygwinではサフィックス.exeでコンパイルされますが、実際のGNU + Linuxではサフィックスなしでコンパイルされるmakefileを作成したいからです。
答え1
テストは、小さなダミーCプログラムをコンパイルし、コンパイラが出力ファイルの名前を指定する方法を確認することによって実行されます。
次の例は簡単にconfigure
実行中のタスクのバージョン
#!/bin/sh
cat << EOT > dummy.c
int main(int argc, char ** argv) {
return 0;
}
EOT
gcc -o dummy dummy.c
if [ -f dummy.exe ] ; then
# exe
fi
autoconfを使用して構成スクリプトを生成し、目的に合わせて使用することをお勧めします。
答え2
これにより、ファイル拡張子が提供されます。
FILENAME=/tmp/testfile.exe
echo "${FILENAME##*.}"
結果:
exe