diff options
-rw-r--r-- | Makefile.am | 12 | ||||
-rw-r--r-- | appliance/Makefile.am | 2 | ||||
-rw-r--r-- | capitests/Makefile.am | 9 | ||||
-rw-r--r-- | daemon/Makefile.am | 26 | ||||
-rw-r--r-- | examples/Makefile.am | 2 | ||||
-rw-r--r-- | fish/Makefile.am | 21 | ||||
-rw-r--r-- | fuse/Makefile.am | 2 | ||||
-rw-r--r-- | haskell/Makefile.am | 12 | ||||
-rw-r--r-- | images/Makefile.am | 2 | ||||
-rw-r--r-- | inspector/Makefile.am | 2 | ||||
-rw-r--r-- | java/Makefile.am | 10 | ||||
-rw-r--r-- | ocaml/Makefile.am | 13 | ||||
-rw-r--r-- | perl/Makefile.am | 13 | ||||
-rw-r--r-- | python/Makefile.am | 11 | ||||
-rw-r--r-- | regressions/Makefile.am | 2 | ||||
-rw-r--r-- | ruby/Makefile.am | 11 | ||||
-rw-r--r-- | src/Makefile.am | 35 | ||||
-rw-r--r-- | subdir-rules.mk | 29 | ||||
-rw-r--r-- | test-tool/Makefile.am | 2 | ||||
-rw-r--r-- | tools/Makefile.am | 2 |
20 files changed, 171 insertions, 47 deletions
diff --git a/Makefile.am b/Makefile.am index 87efb2dc..9332a10d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -15,6 +15,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +include $(top_srcdir)/subdir-rules.mk + ACLOCAL_AMFLAGS = -I m4 SUBDIRS = gnulib/lib hivex src daemon appliance fish po examples images \ @@ -54,9 +56,15 @@ if HAVE_HASKELL SUBDIRS += haskell endif +generator_built = \ + guestfs-structs.pod \ + guestfs-actions.pod \ + guestfish-actions.pod + EXTRA_DIST = \ - guestfs.pod guestfs-actions.pod guestfs-structs.pod \ - guestfish.pod guestfish-actions.pod \ + $(generator_built) \ + guestfs.pod \ + guestfish.pod \ html/pod.css \ HACKING TODO \ libguestfs.pc libguestfs.pc.in \ diff --git a/appliance/Makefile.am b/appliance/Makefile.am index b9bf9533..bf1183da 100644 --- a/appliance/Makefile.am +++ b/appliance/Makefile.am @@ -15,6 +15,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +include $(top_srcdir)/subdir-rules.mk + EXTRA_DIST = \ libguestfs-supermin-helper \ kmod.whitelist.in \ diff --git a/capitests/Makefile.am b/capitests/Makefile.am index 3b80c0e2..74bfab0c 100644 --- a/capitests/Makefile.am +++ b/capitests/Makefile.am @@ -15,8 +15,13 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -EXTRA_DIST = \ - tests.c +include $(top_srcdir)/subdir-rules.mk + +generator_built = tests.c + +BUILT_SOURCES = $(generator_built) + +EXTRA_DIST = $(BUILT_SOURCES) # Tests. These are auto-generated from the test descriptions # in the generator. diff --git a/daemon/Makefile.am b/daemon/Makefile.am index d049da6d..1716c2f5 100644 --- a/daemon/Makefile.am +++ b/daemon/Makefile.am @@ -19,6 +19,25 @@ ACLOCAL_AMFLAGS = -I m4 SUBDIRS = lib tests . +libsrcdir = $(top_builddir)/../src + +generator_built = \ + actions.h \ + stubs.c \ + names.c + +.PHONY: force + +$(generator_built): force + $(MAKE) -C $(libsrcdir) stamp-generator + +BUILT_SOURCES = $(generator_built) + +EXTRA_DIST = $(BUILT_SOURCES) + +$(libsrcdir)/guestfs_protocol.o: force + $(MAKE) -C $(libsrcdir) guestfs_protocol.o + noinst_PROGRAMS = guestfsd guestfsd_SOURCES = \ actions.h \ @@ -83,11 +102,8 @@ guestfsd_SOURCES = \ wc.c \ xattr.c \ zero.c \ - zerofree.c \ - $(top_builddir)/../src/guestfs_protocol.h \ - $(top_builddir)/../src/guestfs_protocol.c + zerofree.c +guestfsd_LDADD = $(libsrcdir)/guestfs_protocol.o lib/libgnu.a AM_CPPFLAGS = -I$(srcdir)/lib -Ilib guestfsd_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS) - -LDADD = lib/libgnu.a diff --git a/examples/Makefile.am b/examples/Makefile.am index adbb9343..04bbe5e4 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -1,5 +1,7 @@ # libguestfs examples +include $(top_srcdir)/subdir-rules.mk + noinst_PROGRAMS = hello to-xml hello_SOURCES = hello.c diff --git a/fish/Makefile.am b/fish/Makefile.am index c8ba3ea4..795952a9 100644 --- a/fish/Makefile.am +++ b/fish/Makefile.am @@ -15,17 +15,26 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +include $(top_srcdir)/subdir-rules.mk + bin_PROGRAMS = guestfish +generator_built = \ + cmds.c \ + completion.c + +BUILT_SOURCES = \ + $(generator_built) \ + rc_protocol.h \ + rc_protocol.c + EXTRA_DIST = \ + $(BUILT_SOURCES) \ rc_protocol.x -CLEANFILES = rc_protocol.c rc_protocol.h - guestfish_SOURCES = \ + $(generator_built) \ alloc.c \ - cmds.c \ - completion.c \ destpaths.c \ echo.c \ edit.c \ @@ -44,10 +53,6 @@ guestfish_SOURCES = \ librc_protocol_la_SOURCES = rc_protocol.c librc_protocol_la_CFLAGS = -Wall -Wno-unused -BUILT_SOURCES = \ - rc_protocol.c \ - rc_protocol.h - guestfish_CFLAGS = \ -I$(top_srcdir)/src -I$(top_builddir)/src \ -I$(top_srcdir)/fish -I$(top_builddir)/fish \ diff --git a/fuse/Makefile.am b/fuse/Makefile.am index d582c651..5ffdb95b 100644 --- a/fuse/Makefile.am +++ b/fuse/Makefile.am @@ -15,6 +15,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +include $(top_srcdir)/subdir-rules.mk + EXTRA_DIST = guestmount.pod test-fuse.sh if HAVE_FUSE diff --git a/haskell/Makefile.am b/haskell/Makefile.am index dcaf18a5..1836a147 100644 --- a/haskell/Makefile.am +++ b/haskell/Makefile.am @@ -15,7 +15,15 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -EXTRA_DIST = *.hs run-bindtests +include $(top_srcdir)/subdir-rules.mk + +generator_built = \ + Guestfs.hs \ + Bindtests.hs + +# $(generator_built) isn't redundant below as the wildcard rule won't match, and +# therefore won't generate, the files if they haven't been created yet +EXTRA_DIST = $(generator_built) *.hs run-bindtests CLEANFILES = *~ @@ -32,6 +40,8 @@ check_DATA = Bindtests GHCFLAGS = -I$(top_builddir)/src -L$(top_builddir)/src/.libs +all: Bindtests Guestfs005Load Guestfs010Launch Guestfs050LVCreate + Bindtests: Bindtests.hs Guestfs.hs $(GHC) $(GHCFLAGS) -main-is $(shell basename $@) --make -o $@ $< -lguestfs diff --git a/images/Makefile.am b/images/Makefile.am index ff6bc5d5..c30d8c4c 100644 --- a/images/Makefile.am +++ b/images/Makefile.am @@ -15,6 +15,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +include $(top_srcdir)/subdir-rules.mk + # Old RHEL 5 autoconf doesn't have builddir. builddir ?= $(top_builddir)/images diff --git a/inspector/Makefile.am b/inspector/Makefile.am index 058e5655..08787258 100644 --- a/inspector/Makefile.am +++ b/inspector/Makefile.am @@ -15,6 +15,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +include $(top_srcdir)/subdir-rules.mk + EXTRA_DIST = \ run-inspector-locally \ virt-inspector \ diff --git a/java/Makefile.am b/java/Makefile.am index 6ddf8b48..abd11ee0 100644 --- a/java/Makefile.am +++ b/java/Makefile.am @@ -15,9 +15,19 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +include $(top_srcdir)/subdir-rules.mk + # Old RHEL 5 autoconf doesn't have builddir. builddir ?= $(top_builddir)/java +# XXX: Need to fix generator.ml dependencies +# +# Files generated by generator.ml: +# Makefile.inc +# All files listed in Makefile.inc +# com_redhat_et_libguestfs_GuestFS.c +# Bindtests.java + java_prefix = com/redhat/et/libguestfs # Pull in automatically generated built sources diff --git a/ocaml/Makefile.am b/ocaml/Makefile.am index bb7407af..5b51497f 100644 --- a/ocaml/Makefile.am +++ b/ocaml/Makefile.am @@ -15,12 +15,19 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +include $(top_srcdir)/subdir-rules.mk + +generator_built = \ + guestfs.mli \ + guestfs.ml \ + guestfs_c_actions.c \ + bindtests.ml + EXTRA_DIST = \ - guestfs.mli guestfs.ml \ - guestfs_c.c guestfs_c.h guestfs_c_actions.c \ + $(generator_built) \ + guestfs_c.c guestfs_c.h \ guestfs_inspector.mli guestfs_inspector.ml \ .depend META.in \ - bindtests.ml \ run-bindtests \ t/*.ml diff --git a/perl/Makefile.am b/perl/Makefile.am index 4b7ed993..b7662443 100644 --- a/perl/Makefile.am +++ b/perl/Makefile.am @@ -15,17 +15,22 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +include $(top_srcdir)/subdir-rules.mk + +generator_built = \ + Guestfs.xs \ + lib/Sys/Guestfs.pm \ + bindtests.pl + EXTRA_DIST = \ + $(generator_built) \ Makefile.PL.in \ - Guestfs.xs \ examples/README \ examples/LICENSE \ examples/*.pl \ - lib/Sys/Guestfs.pm \ lib/Sys/Guestfs/Lib.pm \ run-bindtests \ run-perl-tests \ - bindtests.pl \ t/*.t \ typemap @@ -42,7 +47,7 @@ TESTS_ENVIRONMENT = \ INSTALLDIRS = site -all: Makefile-pl +all: Makefile-pl $(generator_built) $(MAKE) -f Makefile-pl Makefile-pl: Makefile.PL diff --git a/python/Makefile.am b/python/Makefile.am index da52cfa3..519bda7c 100644 --- a/python/Makefile.am +++ b/python/Makefile.am @@ -18,10 +18,15 @@ # Old RHEL 5 autoconf doesn't have builddir. builddir ?= $(top_builddir)/python -EXTRA_DIST = \ - guestfs.py \ +include $(top_srcdir)/subdir-rules.mk + +generator_built = \ guestfs-py.c \ - bindtests.py \ + guestfs.py \ + bindtests.py + +EXTRA_DIST = \ + $(generator_built) \ run-bindtests \ run-python-tests \ t/*.py diff --git a/regressions/Makefile.am b/regressions/Makefile.am index 058b60dc..7ceb0cee 100644 --- a/regressions/Makefile.am +++ b/regressions/Makefile.am @@ -21,6 +21,8 @@ # # See also capitests/ +include $(top_srcdir)/subdir-rules.mk + TESTS = \ rhbz503169c10.sh \ rhbz503169c13.sh \ diff --git a/ruby/Makefile.am b/ruby/Makefile.am index 7ea01074..82d130dd 100644 --- a/ruby/Makefile.am +++ b/ruby/Makefile.am @@ -15,14 +15,19 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +include $(top_srcdir)/subdir-rules.mk + +generator_built = \ + ext/guestfs/_guestfs.c \ + bindtests.rb + EXTRA_DIST = \ + $(generator_built) \ Rakefile.in \ - ext/guestfs/_guestfs.c \ ext/guestfs/extconf.rb \ lib/guestfs.rb \ run-bindtests \ run-ruby-tests \ - bindtests.rb \ tests/tc_*.rb CLEANFILES = \ @@ -43,7 +48,7 @@ TESTS_ENVIRONMENT = \ LD_LIBRARY_PATH=$(top_builddir)/src/.libs \ LIBGUESTFS_PATH=$(top_builddir)/appliance -all: +all: $(generator_built) rake build endif diff --git a/src/Makefile.am b/src/Makefile.am index 2774ffcd..f3abe35b 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -15,12 +15,28 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -EXTRA_DIST = \ +include $(top_srcdir)/subdir-rules.mk + +generator_built = \ guestfs_protocol.x \ + guestfs-structs.h \ + guestfs-actions.h \ + guestfs-internal-actions.h \ + guestfs-actions.c \ + guestfs-bindtests.c + +$(generator_built): stamp-generator + +BUILT_SOURCES = \ + $(generator_built) \ + guestfs_protocol.c \ + guestfs_protocol.h + +EXTRA_DIST = \ + $(BUILT_SOURCES) \ MAX_PROC_NR \ stamp-generator \ - generator.ml \ - guestfs-internal-actions.h + generator.ml # Rerun the generator if it has changed. # Git removes empty directories, so in cases where the @@ -34,21 +50,10 @@ stamp-generator: generator.ml mkdir -p $(top_srcdir)/java/com/redhat/et/libguestfs cd $(top_srcdir) && ocaml -warn-error A src/generator.ml -$(BUILT_SOURCES): stamp-generator - include_HEADERS = guestfs.h guestfs-actions.h guestfs-structs.h lib_LTLIBRARIES = libguestfs.la -BUILT_SOURCES = \ - guestfs_protocol.x \ - guestfs_protocol.c \ - guestfs_protocol.h \ - guestfs-structs.h \ - guestfs-actions.h \ - guestfs-actions.c \ - guestfs-bindtests.c - # This convenience library is solely to avoid compiler warnings # in its generated sources. libprotocol_la_SOURCES = \ @@ -57,8 +62,6 @@ libprotocol_la_SOURCES = \ libprotocol_la_CFLAGS = -CLEANFILES = guestfs_protocol.c guestfs_protocol.h - # From the libtool info file, with comments: # # | 1. Start with version information of `0:0:0' for each libtool library. diff --git a/subdir-rules.mk b/subdir-rules.mk new file mode 100644 index 00000000..fd8bfef4 --- /dev/null +++ b/subdir-rules.mk @@ -0,0 +1,29 @@ +# libguestfs +# Copyright (C) 2009 Red Hat Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +# Define a force dependency which will always be rebuilt +.PHONY: force + +# Rebuild rules for common dependencies +$(top_builddir)/src/libguestfs.la: force + $(MAKE) -C $(top_builddir)/src libguestfs.la + +# Automatically build targets defined in generator_built +# generator_built is defined in individual Makefiles +$(generator_built): $(top_builddir)/src/stamp-generator +$(top_builddir)/src/stamp-generator: force + $(MAKE) -C $(top_builddir)/src stamp-generator diff --git a/test-tool/Makefile.am b/test-tool/Makefile.am index 510a42fc..d58f1377 100644 --- a/test-tool/Makefile.am +++ b/test-tool/Makefile.am @@ -15,6 +15,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +include $(top_srcdir)/subdir-rules.mk + EXTRA_DIST = libguestfs-test-tool.pod CLEANFILES = diff --git a/tools/Makefile.am b/tools/Makefile.am index f48edaea..3055ab74 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -15,6 +15,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +include $(top_srcdir)/subdir-rules.mk + tools = cat df edit ls rescue tar win-reg EXTRA_DIST = \ |