私はネイティブコードを含むアンドロイドプロジェクトに取り組んでいます。私はNDKでKiss FFTライブラリを使用しようとしています。しかし、私はKiss FFTで使われているmakefileの以下の部分を理解するのが難しいです。誰かが私にこれを説明することはできますか?メイクファイルレシピを理解する
最初の行はターゲットkiss_fft.s
とその前提条件を定義しており、次の4行はレシピであることがわかります。3.
と4.
はコンパイラコマンドです。しかし、私はライン2.
と5.
1. kiss_fft.s: kiss_fft.c kiss_fft.h _kiss_fft_guts.h
2. [ -e kiss_fft.s ] && mv kiss_fft.s kiss_fft.s~ || true
3. gcc -S kiss_fft.c -O3 -mtune=native -ffast-math -fomit-frame-pointer -unroll-loops -dA -fverbose-asm
4. gcc -o kiss_fft_short.s -S kiss_fft.c -O3 -mtune=native -ffast-math -fomit-frame-pointer -dA -fverbose-asm -DFIXED_POINT
5. [ -e kiss_fft.s~ ] && diff kiss_fft.s~ kiss_fft.s || true
を理解していない任意の助けいただければ幸いです!
角括弧はテストを表します。 'man test'は 'test'コマンドについて学ぶ場所です。 &&と|| 'and'と 'or'演算子です。条件付きで別のコマンドを実行するのに共通のスクリプトイディオムを使用します。 2行目は.sファイルが存在すればテストして、そうであればバックアップに移動します.s〜else continue( 'true')。 5行目は、bkup .s〜が存在する場合、それと現在の.s elseの間にdiffを表示し続けます。 &&はif thenと||を行います。もう一人です。 –