Makefile.am
파일에 xxx_SOURCES = ...
부분에 많은 파일을 포함하고 싶습니다. 거기에 일반적인 셸 확장을 사용할 수있는 방법이 있습니까? 내가 찾고위한 작업 동일합니다 : 그것은 최선의 방법인지 모르겠어요Automake 패턴 확장
xxx_SOURCES = xxx.c $(top_builddir)/src/{aaa,bbb,ccc}.c
Makefile.am
파일에 xxx_SOURCES = ...
부분에 많은 파일을 포함하고 싶습니다. 거기에 일반적인 셸 확장을 사용할 수있는 방법이 있습니까? 내가 찾고위한 작업 동일합니다 : 그것은 최선의 방법인지 모르겠어요Automake 패턴 확장
xxx_SOURCES = xxx.c $(top_builddir)/src/{aaa,bbb,ccc}.c
1)이 이식성있는 구문으로 할 수있는 방법이 없다. (ephemient의 대답은 GNU Make에서만 가능하다.) 2) Automake를 사용하는 방법은 없다.
가 개인적으로 정말
foo_SOURCES = \ subdir/foo.c \ subdir/bar.c \ subdir/baz.c
이상
foo_SOURCES = subdir/{foo,bar,baz}.c
을 사용하는 이점을 볼 수 없습니다 (하지만이 기능은 ... 필요한 사람에 의해 구현하기 위해 너무 열심히 안) 나는 전자가 더 비밀스럽고 grepable하지 않다는 것을 안다. (예를 들어, "Makefile
은 foo.c
을 언급한다."라는 질문에 답하는 것).
, 그러나 이것은 내가 항상 무슨 짓을했는지 있습니다 :
xxx_SOURCES = xxx.c $(shell echo $(top_builddir)/src/{aaa,bbb,ccc}.c)
멋지지만 추한 해킹처럼 보입니다. 누군가가 더 나은 해결책을 알고 있기를 바랍니다. – viraptor
이 솔루션은 GNU Make에서만 작동하며 automake의 메커니즘을 완전히 우회합니다. Automake는 확장되는 파일 이름에 대해 아무 것도 모릅니다 (그래서 모든 경우에 적절한 규칙을 생성 할 수 없습니다). – adl