Сохранить префикс файла данных при использовании dist_pkgdata_DATA?
Наши тестовые данные организованы в две папки. У нас есть TestData/
а также TestVectors/
в зависимости от формы данных:
- TestData
|
+ a.dat
+ b.dat
+ ...
- TestVector
|
+ x.vec
+ y.vec
+ ...
наш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 устанавливает их в @datadir@/@PACKAGE@/
, но мы теряем TestData
а также TestVectors
префикс при установке. То есть после установки все файлы объединяются:
- @datadir@/@PACKAGE@/
|
+ a.dat
+ b.dat
+ ...
+ x.vec
+ y.vec
+ ...
Есть очень похожий вопрос в " Установка произвольных файлов данных в произвольных местах с помощью Automake?"., но я не совсем понимаю, что нужно сделать, чтобы make install
работает как положено.
У меня вопрос, как мы сохраняем префикс TestData
или же TestVectors
во время установки?
2 ответа
Это то, что nobase
Префикс был придуман для. Название расшифровывается как "не называть базовое имя" и будет использоваться как:
nobase_dist_pkgdata_DATA = \
$(testdata_FILES) \
$(testvector_FILES)
Это должно привести к тому, что перечисленные файлы сохранят свои имена каталогов в дереве установки.
Мой вопрос: как мы сохраняем префикс TestData или TestVectors во время установки?
Обычно Automake вычисляет базовое имя каждой цели и использует его во время установки для записи файла непосредственно в назначенный каталог. Если целевые имена содержат префиксы каталогов, которые вы хотите распространить в установленный образ, вы можете сообщить об этом Automake, используя nobase_
префикс соответствующей целевой переменной. Это может сочетаться с другими префиксами, такими как dist_
, Например,
nobase_dist_pkgdata_DATA = \
$(testdata_FILES) \
$(testvector_FILES)
Префиксы в целом описаны в разделе 3.3 руководства Automake, и nobase_
в частности, это подробно описано в разделе 12.1 руководства Automake.