2012-07-09 4 views
0

다른 실행 파일을 다른 명령 행 옵션으로 호출하는 여러 도우미 스크립트가있는 프로젝트가 있습니다. 현재 스크립트는 실행 파일이 동일한 디렉토리에 있다고 가정하므로 스크립트에서 실행 파일을 호출하면 ./my_program처럼 보입니다. 그러나 이것은 매우 유연하지 않습니다. 프로그램이 /usr/bin 디렉토리에 설치되어 있고 현재 디렉토리에 없으면 어떻게 될까요?스크립트의 autoconf 대체 경로

automake 또는 autoconf를 사용하여 이러한 스크립트를 생성하고 실행 파일이 이미 설치되어 있는지 여부에 따라 ./my_program 또는 my_program으로 실행 파일을 대체 할 수 있습니까?

답변

2

확실히. IMO autotools를와 가장 간단한 해결책은 다음과 같습니다

  • 이 프로그램의 경로를 찾아 내고, 변수로 설정 m4/ 폴더 아래에 새 M4 매크로를 만들 수 있습니다. 이 매크로는 MY_PROGRAM_PATH 변수를 생성

    MY_PROGRAM_PATH_CHECK([action-if-found], [action-if-not-found]) 
    

    경로가 발견 된 경우 :

    는 예를 들어, 매크로를 만들었습니다.

    configure.ac

    MY_PROGRAM_PATH_CHECK(,[AC_MSG_ERROR([my_program path not found, woot?]) 
    AC_SUBST(MY_PROGRAM_PATH) 
    
    AC_CONFIG_FILES([src/script1.sh], [chmod +x src/script1.sh]) 
    AC_CONFIG_FILES([src/script2.sh], [chmod +x src/script2.sh]) 
    
  • .IN 파일에 스크립트를 변환, 그래서 대체가 일어날 것 :

    SRC/Makefile.am

    bin_SCRIPTS = script1.sh script2.sh 
    

    src/script 1.sh

    @[email protected]/my_program --option1 
    

    SRC/script2.sh

    @[email protected]/my_program --option2  
    
관련 문제