우리는 다중 패키지 소프트웨어를 구축하기 위해 automake
& autoconf
을 사용하고 있습니다. 변수의 값을 어떻게 출력하는지 궁금합니다. 쉘 스크립트를 한 번 사용한 다음 다시 사용하십시오. :=
대신 =
의 사용 등이 필요 DIRSautomake 변수를 한 번만 평가하십시오
INCLUDES := -I`some-ext-config --incdir`
여기이 변수가 너무 some-ext-config
만 (AFAIK이 일반 make
에서 제공)를 한 번 호출됩니다 한 번 작성합니다. 물론 INCLUDES
은 희박한 사촌 인 AM_CPPFLAGS
이지만 그 대신에 셸 스크립트가 각 컴파일에 대해 호출되었을 것입니다.
AM_CPPFLAGS
대신 을 사용하면 나를 수용할만한 해결책이 될 수 있습니다 (그러나 이식성 문제가있을 수 있다고 생각하지만). libtool이 라이브러리
libmylib_la_LDFLAGS := `some-ext-config --ldflags` # will always be evaluated
나는 이러한 외부 도구를 여러 번 호출되지 않습니다 있는지 확인하려면 automake
내부의 일반적인 솔루션은 무엇인가에 대한 LDFLAGS? 나는 우리 패키지가 서브 디렉토리 (일부는 configure.ac
)에서 빌드 될 수 있고 최상위 레벨에서 재귀적인 make와 함께 configure.ac
을 빌드 할 수 있어야하므로 configure.ac
에 명백한 AC_SUBST
을 사용하지 않기를 원합니다. 서로 다른 하위 프로젝트에 대해 너무 많이 알 필요가 없습니다.
흠, 필자는 몇 가지 외부적인 이유 때문에 이것을'configure.ac'에 넣는 것을 멀리하고 싶다고 썼다. –
@honk : 그러면 이러한 외부적인 이유 (예 :'AC_CONFIG_SUBDIRS' 사용)를 수정하거나 휴대용 Makefile을 쓰지 않아야합니다. – adl
외부적인 이유는 최상위'Makefile.am'에 서브 디렉토리'Makefile's에'AC_OUTPUT'을 추가 할 수 있기를 원하지만 각 서브 디렉토리에서'configure'를 호출하지 않고 (5 번 만큼 우리의 빌드). 우리는 GNU make에 이식 할 수 있어야합니다.이 automake 변수를 한 번만 채울 방법이 없다는 것을 올바르게 이해합니까? –