2014-12-11 4 views
0

autotools를 사용하도록 프로젝트를 업데이트하고 이전 버전과의 이전 버전 호환성을 유지하기 위해 사용자가 ./configure --foo=bar을 실행하여 빌드 옵션을 설정하고 싶습니다. 나는 아무 문제없이 ./configure --enable-foo, ./configure --with-foo, 또는 ./configure foo=bar을 설정할 수 있지만 내가 원하는 동작 (특히 옵션 앞에 이중 대시 --을 갖는) 수 아무것도 표시되지 않는 것 같은사용자 지정 ./configure 명령 줄 인수 만들기

이 문서를 읽기를 바탕으로, 그것은 보인다.

제안 사항? 이처럼 configure.ac 뭔가에 추가해야 그렇게하기 위해

답변

2

내가 configure.ac에서이 일을 알고있는 방법은 없습니다 : 그런 다음 이런 식으로 뭔가를 코딩해야합니다. configure 패치를해야합니다. autoreconf을 실행 한 후 bootstrap.sh에서 패치 스크립트를 실행하면됩니다. 처리 루프 인 ac_option에 옵션을 추가해야합니다.

--foo=*) 
     my_foo=$ac_optarg ;; 

configure 가끔 다시 호출 할 필요가있을 때 명령 행 인수를 제거합니다 일부 코드도 있습니다 : 유망 하나, 같은 것을 복사하거나 새로운 옵션을 주입하는 대체처럼 --x의 경우 보인다. --foo의 제거 여부는 사용자가 결정합니다. 아마도 이것이 처음부터 이것을 허용하지 않는 이유 일 것입니다.

나인 경우 AC_ARG_WITH (예 : --with-foo=bar)을 시도하고 로비하려고합니다. 그것은 훨씬 적은 일처럼 보입니다.

+0

고마워요! AC_ARG_WITH를 사용했습니다. – profzoom

-1

:

# Enable debugging mode 
AC_ARG_ENABLE(debug, 
    AC_HELP_STRING([--enable-debug],[Show a lot of extra information when running]), 
    AM_CPPFLAGS="$AM_CPPFLAGS -DDEBUG" 
    debug_messages=yes, 
    debug_messages=no) 

AC_SUBST(AM_CPPFLAGS) 
AC_SUBST(AM_CXXFLAGS) 

echo -e "\n--------- build environment ----------- 
Debug Mode  : $debug_messages" 

예를 들어 --enable-디버그를 추가하는 단순한 예입니다, 그것은을 설정합니다 config.h 파일의 DEBUG 상수.

#include "config.h" 
#ifdef DEBUG 
    // do debug 
#else 
    // no debug 
#endif 
+0

예, AC_ARG_ENABLE 및 AC_ARG_WITH에 대해 읽었습니다. 그러나 그것은 내가 찾고있는 것이 아닙니다. 나는''enable'' 또는''with''로 시작하는 옵션을 원하지 않으며, 사용자가 임의의 문자열을 전달할 수 있기를 바랍니다. – profzoom

+0

사용자 정의 항목을 작성하려면 어떻게해야합니까? –