я получил следующую структуру каталогов:Есть ли способ избежать рекурсивного создания с благородством?
Makefile.am
src/
mymod/
mod.cc
submod/
submod.cc
inc/
Makefile.am
mymod/
mod.hh
submod/
submod.hh
Используя Autotools, я хотел бы, чтобы распространять как библиотеку, сделанную из src
и заголовков в inc
. Верхний уровень Makefile.am
выглядит что-то вроде
lib_LTLIBRARIES = mylib.la
mylib_la_SOURCES=./mymod/mod.cc\
./mymod/submod/submod.cc
SUBDIRS=inc
inc/Makefile.am
Тогда имеет
mymod_includedir=$(includedir)
nobase_mymod_include_HEADERS=mymod/mod.hh\
mymod/submod/submod.hh
Это хорошо работает. Я получаю все содержимое библиотеки, и мои заголовки устанавливаются соответствующим образом. Однако я хотел бы исключить рекурсию в Makefile. Проблема заключается в том, что если я перееду строки в inc/Makefile.am
в корневой каталог, то я должен обновить пути следующим образом:
mymod_includedir=$(includedir)
nobase_mymod_include_HEADERS=inc/mymod/mod.hh\
inc/mymod/submod/submod.hh
Это приводит мои заголовки получать сбрасывали в $PREFIX/include/inc/mymod/mod.hh
и не $PREFIX/include/mymod/mod.hh
, как я хочу. Я знаю, что мог бы сделать что-то вроде
mymodincludedir=$(includedir)/mymod
mymod_HEADERS=inc/mymod/mod.hh
mysubmodincludedir=$(includedir)/mymod/submod
mysubmod_HEADERS=inc/mymod/submod/submod.hh
но это довольно болезненно, потому что есть много подкаталогов, и больше подкаталогов в подкаталогах (мы распределяя код 3-го участника, которые нуждаются в наши собственные заголовки) , То, что я хотел бы сделать, это либо сказать automake, чтобы просто скопировать каталоги в /inc
в $(includepath)
вместе с каждым подкаталогом, с которым он встречается внутри, или сообщить ему, чтобы он только отделял часть пути от файлов заголовков, которые я перечисляю. Это возможно?
Не могли бы вы немного разобраться? Подход Makemodule.am - это то, что я использую. Как я могу использовать nobase? Из того, что я понимаю, я все же должен указать полный путь, поэтому я все еще сталкиваюсь с теми же проблемами, о которых упоминалось в моем вопросе. – jonthalpy