automake中的通用SOURCES定义取决于其他变量

时间:2016-04-13 12:46:35

标签: wildcard autotools automake

我是Autotools的新手,我正在尝试将gtest单元测试添加到使用Autotools的项目中。

我有一个简单的目录结构:
. - 主要 ./src - 来源
./tests - 测试
./paths - 带路径的git子模块

tests目录中,每个测试类都有一个cpp文件,我的Makefile.am看起来像这样:

AUTOMAKE_OPTIONS = serial-tests

AM_CXXFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/paths  -DUNIT_TEST
AM_LDFLAGS = -pthread
LDADD = -lgtest -lgtest_main

TESTS = test_networkconfig test_dummy   ### depending on content of this variable
check_PROGRAMS = $(TESTS)

test_networkconfig_SOURCES = test_networkconfig.cpp             ### generate this
test_networkconfig_LDADD = $(top_srcdir)/src/networkconfig.o \
                           -lgtest \
                           -lgtest_main

test_networkconfig_CPPFLAGS = $(somelibrary_CFLAGS)

test_dummy_SOURCES = test_dummy.cpp                         ### and this variable

我想自动生成:

test_networkconfig_SOURCES = test_networkconfig.cpp
test_dummy_SOURCES = test_dummy.cpp

有没有办法为<some_name>_SOURCES = <some_name>.cpp变量保存的每个值创建变量TESTS

1 个答案:

答案 0 :(得分:1)

在Automake中,您只能以有限的方式执行此操作。特别是,对于程序ogrinfo -ro -al communes-20150101-100m.shp -geom=NO | grep insee > list_code_insee.txt ,如果未定义P,则Automake将使用程序名称和P_SOURCES的值计算默认值(默认为AM_DEFAULT_SOURCE_EXT

所以在你的情况下:

.c

应该这样做。