일부 바이너리는 바이너리 내부에 구성하는 데 사용되는 명령줄을 저장합니다. 기억나지 않는 경우가 아니면 소스를 확인합니다. 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
. 에 따라autoconf 매뉴얼이 작업은 바로 뒤에 수행해야 합니다 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에 있습니다.