Как установить дерево каталогов данных с помощью automake

Как я могу установить дерево каталогов HTML файлов, таблиц стилей и изображений с помощью automake без необходимости создания Make файлов в каждом подкаталоге?

Используя следующее в каталоге верхнего уровня

htmldir = $(docdir)/foo/html
html_DATA = \
        stylesheets/foo.css \
        images/foo.jpg \
        index.html \
        about/index.html \
        faq/index.html
EXTRA_DIST = $(html_DATA)

не работает, потому что подкаталоги не создаются до вызова install.

Ответ 1

Вы можете написать

foohtmldir = $(htmldir)/foo/html
nobase_dist_foohtml_DATA = \
    stylesheets/foo.css \
    images/foo.jpg \
    index.html \
    about/index.html \
    faq/index.html

htmldir - это переменная, которую пользователь имеет право изменять с помощью configure --htmldir=..., поэтому я предлагаю использовать другой, если вы хотите записать в какой-то его подкаталог. Префикс nobase_ сообщает Automake, чтобы он не лишал ведущие каталоги во время установки, а префикс dist_ требует, чтобы файлы были распределены.