autoconf save ./configure 명령줄을 config.h에 저장

autoconf save ./configure 명령줄을 config.h에 저장

일부 바이너리는 바이너리 내부에 구성하는 데 사용되는 명령줄을 저장합니다. 기억나지 않는 경우가 아니면 소스를 확인합니다. 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_FLAGSconfig.h에 있습니다.

관련 정보