[sheepdog] [PATCH] automake: work-around for not expanding variables in _SOURCES.
Liu Yuan
namei.unix at gmail.com
Tue Mar 10 10:28:03 CET 2015
On Mon, Mar 09, 2015 at 07:30:40PM -0700, Alexander Guy wrote:
> Common versions of automake have a bug[1] related to enabling
> subdir-objects while using variables inside *_SOURCES declarations.
>
> In order to work around these problems with the unit tests, copy
> source dependencies locally for building, using GNU make patterns.
>
> [1] http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13928
>
> Signed-off-by: Alexander Guy <alexander at andern.org>
> ---
> tests/unit/dog/Makefile.am | 9 ++++++++-
> tests/unit/sheep/Makefile.am | 13 ++++++++++---
> 2 files changed, 18 insertions(+), 4 deletions(-)
>
> diff --git a/tests/unit/dog/Makefile.am b/tests/unit/dog/Makefile.am
> index 462df2b..ed4ed72 100644
> --- a/tests/unit/dog/Makefile.am
> +++ b/tests/unit/dog/Makefile.am
> @@ -14,10 +14,17 @@ LIBS = $(top_srcdir)/lib/libsheepdog.a -lpthread \
> ../mock/libmock.a @CHECK_LIBS@
>
> test_common_SOURCES = test_common.c mock_dog.c \
> - $(top_srcdir)/dog/common.c
> + dog/common.c
>
> clean-local:
> rm -f ${check_PROGRAMS} *.o
>
> coverage:
> @lcov -d . -c -o dog.info
> +
> +dog/%.c: $(top_srcdir)/dog/%.c
> + @mkdir -p $(@D)
> + @cp $< $@
> +
> +distclean-local:
> + rm -rf dog
> diff --git a/tests/unit/sheep/Makefile.am b/tests/unit/sheep/Makefile.am
> index 824bef6..ac3dc8c 100644
> --- a/tests/unit/sheep/Makefile.am
> +++ b/tests/unit/sheep/Makefile.am
> @@ -14,15 +14,15 @@ LIBS = $(top_srcdir)/lib/libsheepdog.a \
> @CHECK_LIBS@
>
> test_vdi_SOURCES = test_vdi.c mock_sheep.c mock_store.c \
> - mock_request.c $(top_srcdir)/sheep/vdi.c
> + mock_request.c sheep/vdi.c
>
> test_cluster_driver_SOURCES = mock_sheep.c mock_group.c \
> - $(top_srcdir)/sheep/cluster/local.c \
> + sheep/cluster/local.c \
> test_cluster_driver.c
> test_cluster_driver_CFLAGS =
>
> if BUILD_ZOOKEEPER
> -test_cluster_driver_SOURCES += $(top_srcdir)/sheep/cluster/zookeeper.c
> +test_cluster_driver_SOURCES += sheep/cluster/zookeeper.c
> test_cluster_driver_CFLAGS += -DBUILD_ZOOKEEPER
> LIBS += -lzookeeper_mt
> endif
> @@ -35,3 +35,10 @@ clean-local:
>
> coverage:
> @lcov -d . -c -o sheep.info
> +
> +sheep/%.c: $(top_srcdir)/sheep/%.c
> + @mkdir -p $(@D)
> + @cp $< $@
> +
> +distclean-local:
> + rm -rf sheep
> --
> 2.1.4
>
Applied, thanks.
Yuan
More information about the sheepdog
mailing list