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.

Я думаю, что должен делать то, что вы ищете.

Другие вопросы по тегам