[linux-support] Automake, copy additional files to test-directory in VPATH

Niklaus Hofer niklaus.hofer at gmail.com
Fri Apr 27 11:11:50 CEST 2012


Hallo Liste

Ich habe ein Projekt, fuer das ich Automake benutze zum Builden der software.
Dieses Projekt hat ein test-directory wo die unit-tests liegen. Fuer
die unit-tests habe ich auch ein par json-files.
Wenn ich das Projekt 'normal' baue, geht alles gut.
Wenn ich es aber in einem VPATH
(https://www.gnu.org/software/automake/manual/html_node/VPATH-Builds.html)
kompiliere, kompiliert es zwar sauber, die json dateien werden aber
natuerlich nicht in das neue Testverzeichnis kopiert und die Tests
schlagen fehl.
Ich koennte die Test json Dateien jedes mal for dem make check
kopieren, aber das schein nicht eine besonders 'schoene' Loesung zu
sein...

Kann mir jdm sagen, ob es in Automake eine Option gibt um zusaetzlich
Dateien in den VPATH zu kopieren und wie diese Optionen allenfalls
lauten?

So sieht der directory tree aus (post build):
(mkdir build && cd build && ../configure && make -j5 && make check)
#========================================
|-- build #VPATh wo ich die software kompiliert habe
|   |-- Makefile
|   |-- src
|   |   |-- Makefile
|   |   |-- FooProgramm
|   |   `-- FooProgramm.o
|   `-- test # Die json Dateien wurden nicht kopiert
|       |-- FooProgramm.o
|       |-- FooTest
|       |-- FooTest.o
|       |-- Makefile
|-- configure
|-- configure.ac
|-- Makefile.am
|-- Makefile.in
|-- src
|   |-- FooProgramm.cc
|   |-- FooProgramm.h
|   |-- FooException.h
|   |-- main.cc
|   |-- Makefile.am
|   |-- Makefile.in
`-- test
    |-- barConfig.js # Die drei .js Dateien sollten kopiert werden...
    |-- Fooconfig.js
    |-- minConfig.js
    |-- FooTest.cc
    |-- Makefile.am
    |-- Makefile.in
#========================================

Hier ist das Makefile.am, das im 'root' directory liegt:
#========================================
AUTOMAKE_OPTIONS = foreign
AC_CONFIG_AUX_DIR = config
SUBDIRS = src test
#========================================


Hier ist das, aus dem test-directory:
#========================================
AUTOMAKE_OPTIONS = foreign

bin_PROGRAMS = FooTest

TEST_LIBS=-lboost_unit_test_framework
TEST_CXXFLAGS=-I$(top_srcdir)/src

AM_CXXFLAGS = $(INIT_CFLAGS) $(TEST_CXXFLAGS)

DbConfigReaderTest_SOURCES = FooTest.cc $(top_srcdir)/src/FooProgramm.cc
DbConfigReaderTest_LDADD = $(TEST_LIBS)

testsubdir              = test

TESTS_ENVIRONMENT       = top_builddir=$(top_builddir)/test

TESTS                   = FooTest
#========================================



-- 
Freundliche Gruesse

Niklaus Manuel Hofer
niklaus.hofer at gmail.com

()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments



More information about the Linux-support mailing list