2012-03-05 3 views
2

나는 네이티브 코드와 관련된 안드로이드 프로젝트에서 작업 중이며 NDK로 키스 FFT 라이브러리를 사용하려고합니다. 그러나 키스 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 

어떤 도움을 크게 감상 할 수 이해가 안 돼요!

+0

대괄호는 테스트를 나타냅니다. 'man test'는 'test'명령에 대해 배울 수있는 곳입니다. && 및 || '및'및 '또는'연산자; 조건에 따라 다른 명령을 실행하는 데 사용하는 것은 일반적인 스크립트 관용구입니다. 2 번 줄은 '.s 파일이 존재하면 테스트하고, 백업으로 이동하면 .s ~ else continue ('true ')로 표시됩니다. 라인 5는 bkup .s ~가 존재하면 현재와 현재 사이의 차이점을 보여줍니다. &&는 'if then'과 ||를 수행합니다. 그 밖에. –

답변

3

라인 2.은 어셈블리 파일 (kiss_fft.s)이있는 경우 백업 파일로 이동하고, 그렇지 않으면 true 상태를 반환하므로 다음 행이 실행됩니다.

Line 5.은 gcc의 이전 어셈블러 출력과 이전 출력 (kiss_fft.s ~ 단계로 2.으로 이동 한 경우) 간의 차이점을 보여줍니다.

+1

+1 : 그리고'|| true '부분은 전체 커맨드가 성공하도록 보장합니다. 예를 들어 2 행이 실행될 때'kiss_fft.s'라는 파일이 없다면'make'는 처리를 멈추지 않습니다. –