В стандартной схеме проектаAutomake: добавление локального поведения удобства «сделать чек»
$(src_topdir)/include
$(src_topdir)/src
$(src_topdir)/tests
Я хотел бы запустить все тесты в $(src_topdir)/tests
при вводе «сделать чек» в $(src_topdir)/src
в дополнении к управлению любому сконфигурированные тесты в $(src_topdir)/src
.
Automake обеспечивает расширение, чтобы добавить дополнительные цели к цели в check
Makefile, добавляя (в Makefile.am) мишень local-check
, которую я могу определить для
local-check:
cd ../tests && $(MAKE) $(AM_MAKEFLAGS) check
И в то время как это позволяет мне make check
в пределах $(src_topdir)/src
с удовлетворением удовлетворительно, к сожалению, он прерывает звонок make check
из каталога $(src_topdir)
. Это связано с тем, что вызов от $(src_topdir)
рекурсивно вводит как $(src_topdir)/src
, так и $(src_topdir)/tests
, дважды запуская тесты в $(src_topdir)/tests
.
Есть ли способ, в котором я мог бы изменить мой Makefile.am
в $(src_topdir)/src
таким образом, что местные make check
звонков вызвать желаемое дополнительное тестирование во время make check
звонков от остальной части инструмента не влияют?
спасибо. Я пришел к более или менее такому же выводу. У меня есть обходной путь, который работает для одного каталога, но не работает, когда одни и те же вызовы выполняются другими. Чтобы уменьшить это влияние, я в основном добавляю команды, которые выполняют требуемые операции из каталога верхнего уровня. (top-clean, top-make, top-check), которые в основном перемещаются вверх, пока файл make не станет файлом $ topdir, а затем выдаст соответствующую цель make. –