당신은 왜 메이크 규칙 나를 설명 할 수 없습니다 :. 메이크 및 RM -f 파일 {EXT1, EXT2, EXT3} 문제
clean:
rm -f foo.{bar1,bar2,bar3}
파일을 제거 발생하지 않습니다 : foo.bar1의 foo.bar2 및 foo는. bar3? 여러 Makefile에서 그 패턴을 여러 번 보았지만, 현재 내 자신의 Makefile을 작성 중이며이 규칙이 올바르게 작동하지 않을 수 있습니다 (파일이 제거되지 않음).
내가 사용하고 있습니다 :
$ echo test.{a,b,c}
test.a test.b test.c
감사 :
- GNU는 3.81 나는 의심으로 패턴
- GNU bash는 4.1.5
배쉬 evals을! 다윗의 힌트에
UPDATE
감사합니다 내가 위에서 설명한 문제에 대한 해결책을 발견했다. gnu make는 기본적으로/bin/sh를 사용하기 때문에 a. {1,2,3}은 a.1 a.2 a.3으로 평가되지 않습니다.
만들 당신의 메이크에 행 다음에 쉬 추가 대신 사용 bash는 'make'를하려면. 지금부터
SHELL=/bin/bash
{1,2,3} A.1의 A.2 A와 간주됩니다 .3
@ Ak91 : 일반적으로 자기 대답 *을 답으로 쓰십시오. 자신의 질문에 답하는 것이 허용되고 권장됩니다. 그러나 자신의 답변을 수락하기 전에 며칠이 걸리며 그에 대한 포인트는 없습니다. – dmckee
@dmckee : 죄송합니다, Stackoverflow 사이트를 처음 사용했습니다. 나는 그 규칙을 배워야 만한다. – user360872
@ AK91 : 오리엔테이션을 통해서만이 문제를 언급 했으므로 나는 올바른 자기 대답을 투표하게되어 기쁩니다. – dmckee