Makefiles: изменить рабочий каталог для проверки
У меня есть проект C++, который использует модульное тестирование через CppUnit и имеет следующую структуру каталогов:
.
|-- bin
| `-- tests
|-- src
| `-- include
`-- test
`-- include
В каталоге верхнего уровня находится мой файл Makefile.am. Я хотел бы использовать нерекурсивный Makefile. Я смог собрать исполняемый файл моего проекта в папке bin и тесты для проверки в папке bin / tests.
Проблема заключается в следующем: когда make check запускает тесты, текущий рабочий каталог остается каталогом верхнего уровня (т. Е. Каталогом, из которого я запускал make check). Можно ли изменить рабочий каталог специально для тестовых пакетов?
Соответствующий фрагмент в моем файле Makefile.am:
$(TESTDIR)=./bin/tests
check_PROGRAMS = $(TESTS)
TESTS = $(TESTDIR)clocktest
__TESTDIR_clocktest_SOURCES = test/clocktest.cpp test/unittest.cpp src/clock.cpp
__TESTDIR_clocktest_CPPFLAGS = $(AM_CPPFLAGS) $(CPPUNIT_CFLAGS) $(TESTCPPFLAGS)
__TESTDIR_clocktest_LDADD = $(CPPUNIT_LIBS)
1 ответ
Решение
От make --help
:
-C DIRECTORY, --directory=DIRECTORY
Change to DIRECTORY before doing anything.
Я думаю, что должен делать то, что вы ищете.