0

我有一个项目,其中有几个帮助脚本使用不同的命令行选项调用主可执行文件。现在,脚本假定可执行文件位于同一目录中,因此脚本中对可执行文件的调用看起来像./my_program. 然而,这不是很灵活。如果程序安装在/usr/bin目录中,而不是在当前目录中怎么办?

有没有办法使用 automake 或 autoconf 来生成这些脚本,并将对可执行文件的调用替换为./my_programor 或 just my_program,具体取决于可执行文件是否已安装?

4

1 回答 1

2

当然。IMO 使用自动工具最简单的解决方案是:

  • 在找到程序路径的文件夹下创建新的m4m4/,并将其设置为变量。

    例如,您创建了一个宏:

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

    MY_PROGRAM_PATH如果找到路径,此宏将创建变量。

    配置.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/script1.sh

    @MY_PROGRAM_PATH@/my_program --option1
    

    src/script2.sh

    @MY_PROGRAM_PATH@/my_program --option2    
    
于 2012-07-10T16:17:18.660 回答