0

さまざまなコマンド ライン オプションでメインの実行可能ファイルを呼び出すヘルパー スクリプトがいくつかあるプロジェクトがあります。現在、スクリプトは実行可能ファイルが同じディレクトリにあると想定しているため、スクリプト内の実行可能ファイルへの呼び出しは次のようになります./my_program。ただし、これはあまり柔軟ではありません。プログラムがディレクトリにインストールされて/usr/binいて、現在のディレクトリにない場合はどうなりますか?

automake または autoconf を使用してこれらのスクリプトを生成し、実行可能ファイルが既にインストールされているかどうかに応じて、実行可能ファイルへの呼び出しをいずれか./my_programまたは単にに置き換える方法はありますか?my_program

4

1 に答える 1

2

もちろん。Autotoolsを使用したIMOの最も簡単なソリューションは次のとおりです。

  • プログラムのパスを見つけてそれを変数に設定するフォルダの下に新しいm4マクロを作成します。m4/

    たとえば、次のマクロを作成しました。

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

    MY_PROGRAM_PATHパスが見つかった場合、このマクロは変数を作成します。

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

    @MY_PROGRAM_PATH@/my_program --option1
    

    src / script2.sh

    @MY_PROGRAM_PATH@/my_program --option2    
    
于 2012-07-10T16:17:18.660 に答える