以适当的方式经过一番研究,我想出了此时,相应的方式来处理单元测试及Automake:
继先前的方案:
./
+ tests/
+ Makefile.am
+ classA_test.cc
....
+ classB_test.cc
+ src/
+ lib/
+ Makefile.am
根将是一个主要的makefile.am,这一次调用在测试目录中生成文件现在
$ cat Makefile.am
SUBDIRS = . tests # (Super Important) note the "." before tests,
# it means it will be executed first
....
$ cat test/Makefile.am
AM_CXXFLAGS = ...
AM_LDFLAGS = -L @[email protected]/lib #If needed
LDADD = -llibraryfortests #If needed
TESTS = test1 .. testN
test1_SOURCES = test1.cc ../src/somewhere/classtotest.cc
testN_SOURCES = ...
$ cat configure.ac
AM_INIT_AUTOMAKE([subdir-objects])
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([tests/Makefile])
...
,如果你想运行测试
$ sh ../pathto/configure
$ make check
除了DIST【检查】应努力
$ make distcheck
...
make[3]: Entering directory `/home/vicente/test/tests'
PASS: settings
============================================================================
Testsuite summary for Pepinos 00.13.15
============================================================================
# TOTAL: 1
# PASS: 1
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 0
============================================================================
make[3]: Leaving directory `/home/vicente/test/tests'
...
所以要回答另一个问题?
问:我无法将我的变量 - 例如AM_CPPFLAGS--导出到其他Makefile文件。
A.是的,但我总能在configure.ac声明一个变量,AC_SUBT使其可见于其他Makefile.am
来源:https://stackoverflow.com/a/29255889/2420872
你是如何设置'AM_CPPFLAGS'现在呢?你在'configure.ac'中使用'AC_SUBST'作为变量吗? – 2015-03-25 13:22:31
在Makefile.am主文件中,我设置了全局标志,并且使用了AC_SUBST作为额外的变量 – 2015-03-25 17:50:50