일부 바이너리는 바이너리 내에서 구성하는 데 사용되는 명령줄을 유지합니다(이 작업을 수행한 기억이 없습니다. 그렇지 않으면 소스 코드를 확인했을 것입니다). configure.ac에서 매크로로 사용할 명령줄을 얻는 방법이 있습니까?
예를 들어, 다음과 같이 코드를 컴파일하면
./configure --foo bar CXX=g++
나는 저장하고 싶다--foo 열 CXX=g++플래그가 바이너리에 의해 출력될 수 있도록 config.h의 매크로에
./myprogram -V
Version 1.0, compiled using: "./configure --foo bar CXX=g++"
답변1
configure
기본적으로 M4 매크로에서 부트스트랩된 쉘 스크립트이므로 $*
이를 사용하여 ./configure
Follow를 얻을 수 있습니다.자동 구성 매뉴얼이 작업은 직후에 수행해야 합니다 AC_INIT
. 예를 들면 다음과 같습니다.
AC_INIT([My Program], 1.0, ...)
config_flags="$*"
AC_DEFINE_UNQUOTED([CONFIG_FLAGS],["$config_flags"],[Flags passed to configure])
이는 #define CONFIG_FLAGS
config.h에 있습니다.