Понимание рецепта make-файла - PullRequest
2 голосов
/ 05 марта 2012

Я работаю над проектом Android, который включает нативный код, и я пытаюсь использовать библиотеку Kiss FFT с NDK. Тем не менее, я испытываю трудности с пониманием перечисленной ниже части make-файла, используемого Kiss FFT. Может кто-нибудь объяснить мне это?

Я знаю, что первая строка определяет цель kiss_fft.s и ее предпосылки, и что следующие четыре строки - это рецепт, из которых строки 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

Любая помощь будет принята с благодарностью!

1 Ответ

3 голосов
/ 05 марта 2012

Строка 2. перемещает код сборки (kiss_fft.s) в файл резервной копии, если он существует, в противном случае возвращает истинное состояние, поэтому выполняется следующая строка.

Строка 5. показывает разницу между предыдущим выводом ассемблера из gcc и текущим выходом, если был предыдущий вывод (перемещен в kiss_fft.s ~ на шаг 2.).

...