2017-11-14 17 views
0

テストデータは2つのフォルダで構成されています。私たちは、データの形態に応じて、TestData/TestVectors/を持っている:dist_pkgdata_DATAを使用しているときにデータファイルのプレフィックスを保持しますか?

- TestData 
    | 
    + a.dat 
    + b.dat 
    + ... 

- TestVector 
    | 
    + x.vec 
    + y.vec 
    + ... 

Our Makefile.amがあります

dist_pkgdata_DATA = \ 
    $(testdata_FILES) \ 
    $(testvector_FILES) 

testdata_FILES = \ 
    TestData/a.dat TestData/b.dat \ 
    ... 

testvector_FILES = \ 
    TestVectors/x.vec TestVectors/y.vec \ 
    ... 

Automakeは@[email protected]/@[email protected]/でそれらをインストールしますが、我々は、インストール時にTestDataTestVectorsプレフィックスを失います。つまり、一度インストールすると、すべてのファイルがひとまとめにされています

- @[email protected]/@[email protected]/ 
    | 
    + a.dat 
    + b.dat 
    + ... 
    + x.vec 
    + y.vec 
    + ... 

ありInstall arbitrary data files in arbitrary locations with Automake?で非常に類似した質問ですが、私はかなり予想通りmake install作品を確実にするために何をすべきか、次のではないのです。

私の質問は、インストール時に接頭辞TestDataまたはTestVectorsをどのように保持するのですか?

答えて

3

これはプレフィックスnobaseが発明された理由です。名前は「ベース名を呼び出すことはありません」の略で、同じように使用されます:これは、リストされたファイルはインストールツリーにそのディレクトリ名を保つことにつながるはずです

nobase_dist_pkgdata_DATA = \ 
    $(testdata_FILES) \ 
    $(testvector_FILES) 

+0

ありがとうございました。 – jww

1

私の質問は、インストール中にTestDataまたはTestVectorsのプレフィックスをどのように保持するのですか?

通常、Automakeは各ターゲットのベース名を計算し、インストール時にそれを使用して、指定されたディレクトリに直接ファイルを記録します。ターゲット名に、インストールされたイメージに伝播するディレクトリプレフィックスが含まれている場合は、関連するターゲット変数の接頭辞nobase_を使用して、Automakeに通知することができます。これはdist_のような他のプレフィックスと組み合わせることができます。例えば、一般に

nobase_dist_pkgdata_DATA = \ 
    $(testdata_FILES) \ 
    $(testvector_FILES) 

プレフィックスはsection 3.3 of the Automake manualに記載されており、特にnobase_section 12.1 of the Automake manualに詳述されています。

+0

ああ、ありがとう。私は[3.3 The Uniform Naming Scheme](https://www.gnu.org/software/automake/manual/html_node/Uniform.html)を使用し、[8.4プログラムとライブラリ変数](https:// www。 gnu.org/software/automake/manual/html_node/Program-and-Library-Variables.html#Program-and-Library-Variables)。残念ながら、 'nobase_'のようなものは、3.3が私たちにそこに行くように言っても、8.4には書かれていません。うん... – jww

+0

もう一度@ジョン。それは私のためにそれを固定した。 – jww

関連する問題