I'm working on an android project that involves native code and I'm trying to use the Kiss FFT library with the NDK. However, I'm having difficulty understanding the portion listed below of a makefile used by Kiss FFT. Can someone explain this to me?

I know that the first line defines the target kiss_fft.s and its prerequisites and that the next four lines are the recipe, of which line 3. and 4. are compiler commands. But I don't understand lines 2. and 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

Any help would be greatly appreciated!

有帮助吗?

解决方案

Line 2. moves the assembly code (kiss_fft.s) to a backup file if it exists, otherwise returns a true status, so the next line will execute.

Line 5. shows you the differences between the previous assembler output from gcc and the current output, if there was previous output (moved into kiss_fft.s~ by step 2.).

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top