[PATCH 1/3] build: fix srcdir!=builddir builds
Fix the build system to support a build directory different than the source directory: - fix the include path to gnulib - properly depend on and use files in the source directory - fix the ocaml dependency calculation, making sure it picks the files from all the places --- src/Makefile.am | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index 932881b..77aa611 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -99,7 +99,7 @@ supermin_SOURCES = $(SOURCES_C) supermin_CFLAGS = \ -I$(shell $(OCAMLC) -where) \ $(EXT2FS_CFLAGS) $(COM_ERR_CFLAGS) \ - -I$(srcdir)/lib -I../lib + -I$(top_srcdir)/lib -I../lib BOBJECTS = $(SOURCES_ML:.ml=.cmo) XOBJECTS = $(SOURCES_ML:.ml=.cmx) @@ -148,16 +148,16 @@ ext2init-bin.S: init strip --strip-all $< @file $< | grep -isq static || \ (echo "*** error: init is not staticly linked"; exit 1) - ./bin2s.pl $< $@ + $(srcdir)/bin2s.pl $< $@ depend: .depend -.depend: $(SOURCES) +.depend: $(wildcard $(abs_srcdir)/*.mli) $(wildcard $(abs_srcdir)/*.ml) config.ml rm -f $@ $@-t - $(OCAMLFIND) ocamldep $^ | \ + $(OCAMLFIND) ocamldep -I $(abs_srcdir) -I $(builddir) $^ | \ $(SED) 's/ *$$//' | \ $(SED) -e :a -e '/ *\\$$/N; s/ *\\\n */ /; ta' | \ - $(SED) 's/ :/:/' | \ + $(SED) -e 's,$(abs_srcdir)/,$(builddir)/,g' | \ sort > $@-t mv $@-t $@ @@ -167,7 +167,7 @@ SUFFIXES = .cmo .cmi .cmx .ml .mli .mll .mly if HAVE_PERLDOC -supermin.1: supermin.pod +supermin.1: $(srcdir)/supermin.pod pod2man \ -u \ --section 1 \ @@ -178,12 +178,12 @@ supermin.1: supermin.pod noinst_DATA = \ ../html/supermin.1.html -../html/supermin.1.html: supermin.pod +../html/supermin.1.html: $(srcdir)/supermin.pod mkdir -p ../html pod2html \ --css 'pod.css' \ --htmldir ../html \ --outfile ../html/supermin.1.html \ - supermin.pod + $< endif -- 1.9.0
Export $(srcdir) for the tests, so a test script which invokes other script(s) can locate them properly. --- tests/Makefile.am | 2 ++ tests/test-binaries-exist-network.sh | 2 +- tests/test-build-bash-network.sh | 2 +- tests/test-harder-network.sh | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/Makefile.am b/tests/Makefile.am index 03c97b3..dc73737 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -33,3 +33,5 @@ TESTS += \ test-binaries-exist-network.sh \ test-harder-network.sh endif + +TESTS_ENVIRONMENT = srcdir='$(srcdir)' diff --git a/tests/test-binaries-exist-network.sh b/tests/test-binaries-exist-network.sh index 19c3830..3fba38e 100755 --- a/tests/test-binaries-exist-network.sh +++ b/tests/test-binaries-exist-network.sh @@ -1,2 +1,2 @@ #!/bin/sh -USE_NETWORK=1 ./test-binaries-exist.sh +USE_NETWORK=1 $srcdir/test-binaries-exist.sh diff --git a/tests/test-build-bash-network.sh b/tests/test-build-bash-network.sh index a80da4d..5c55243 100755 --- a/tests/test-build-bash-network.sh +++ b/tests/test-build-bash-network.sh @@ -1,3 +1,3 @@ #!/bin/sh -USE_NETWORK=1 ./test-build-bash.sh +USE_NETWORK=1 $srcdir/test-build-bash.sh diff --git a/tests/test-harder-network.sh b/tests/test-harder-network.sh index d1c1e99..0acdabd 100755 --- a/tests/test-harder-network.sh +++ b/tests/test-harder-network.sh @@ -1,3 +1,3 @@ #!/bin/sh -USE_NETWORK=1 ./test-harder.sh +USE_NETWORK=1 $srcdir/test-harder.sh -- 1.9.0
On Fri, May 02, 2014 at 12:29:08PM +0200, Pino Toscano wrote:
Export $(srcdir) for the tests, so a test script which invokes other script(s) can locate them properly.
Part of this patch should not be needed. According to automake.info: Test programs that need data files should look for them in 'srcdir' (which is both a make variable and an environment variable made available to the tests), so that they work when building in a separate directory (*note Build Directories: (autoconf)Build Directories.), and in particular for the 'distcheck' rule (*note Checking the Distribution::). Rich.
tests/Makefile.am | 2 ++ tests/test-binaries-exist-network.sh | 2 +- tests/test-build-bash-network.sh | 2 +- tests/test-harder-network.sh | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/tests/Makefile.am b/tests/Makefile.am index 03c97b3..dc73737 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -33,3 +33,5 @@ TESTS += \ test-binaries-exist-network.sh \ test-harder-network.sh endif + +TESTS_ENVIRONMENT = srcdir='$(srcdir)' diff --git a/tests/test-binaries-exist-network.sh b/tests/test-binaries-exist-network.sh index 19c3830..3fba38e 100755 --- a/tests/test-binaries-exist-network.sh +++ b/tests/test-binaries-exist-network.sh @@ -1,2 +1,2 @@ #!/bin/sh -USE_NETWORK=1 ./test-binaries-exist.sh +USE_NETWORK=1 $srcdir/test-binaries-exist.sh diff --git a/tests/test-build-bash-network.sh b/tests/test-build-bash-network.sh index a80da4d..5c55243 100755 --- a/tests/test-build-bash-network.sh +++ b/tests/test-build-bash-network.sh @@ -1,3 +1,3 @@ #!/bin/sh
-USE_NETWORK=1 ./test-build-bash.sh +USE_NETWORK=1 $srcdir/test-build-bash.sh diff --git a/tests/test-harder-network.sh b/tests/test-harder-network.sh index d1c1e99..0acdabd 100755 --- a/tests/test-harder-network.sh +++ b/tests/test-harder-network.sh @@ -1,3 +1,3 @@ #!/bin/sh
-USE_NETWORK=1 ./test-harder.sh +USE_NETWORK=1 $srcdir/test-harder.sh -- 1.9.0
_______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://www.redhat.com/mailman/listinfo/libguestfs
-- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://people.redhat.com/~rjones/virt-top
--- src/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makefile.am b/src/Makefile.am index 77aa611..bada3bb 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -144,7 +144,7 @@ CLEANFILES += ext2init-bin.S ext2init-bin.o: ext2init-bin.S $(CC) -o $@ -c $< -ext2init-bin.S: init +ext2init-bin.S: init $(srcdir)/bin2s.pl strip --strip-all $< @file $< | grep -isq static || \ (echo "*** error: init is not staticly linked"; exit 1) -- 1.9.0
This patch series is fine, minus the bits setting srcdir in TESTS_ENVIRONMENT. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 100 libraries supported. http://fedoraproject.org/wiki/MinGW
participants (2)
-
Pino Toscano -
Richard W.M. Jones