build: Fix inter-directory dependencies This change adds an explicit dependency on generator.ml for every file it generates, except java files. Java is left for another time because it's considerably trickier. It also adds a build rule for src/libguestfs.la so it can be rebuilt as required from other directories. It does this by creating a top level make file, subdir-rules.mk, which can be included from sub-directories. sub-directories need to define 'generator_built' to include local files which are built by generator.ml, and they will be updated automatically. This fixes parallel make, and will automatically re-create generated files when make is run from any directory. It also fixes the problem which efad4f53 was targetting. Specifically, src/guestfs_protocol.(c|h) had an erroneous dependency on stamp-generator, and therefore generator.ml, despite not being directly created by it. This caused them to be recreated every time generator.ml ran rather than only when src/guestfs_protocol.x was updated, which cascaded into a daemon and therefore appliance update. This patch also changes the contents of the distribution tarball by including files created by rpcgen.
Remove guestfs_wait_ready (turn it into a no-op). This commit changes guestfs_launch so that it both launches the appliance and waits until it is ready (ie. the daemon communicates back to us). Since we removed the pretence that we could implement a low-level asynchronous API, the need to call launch() followed by wait_ready() has looked a bit silly. Now guestfs_wait_ready() is basically a no-op. It is left in the API for backwards compatibility. Any calls to guestfs_wait_ready() can be removed from client code.
build: remove trailing blank lines; enable the syntax-check rule * cfg.mk (disable_temporarily): Remove sc_prohibit_trailing_blank_lines. * appliance/Makefile.am: Remove trailing blank line(s). * appliance/debian/modules/y0_install-guestfsd: Likewise. * appliance/make.sh.in: Likewise. * appliance/packagelist.in: Likewise. * appliance/update.sh.in: Likewise. * haskell/run-bindtests: Likewise. * ocaml/run-bindtests: Likewise. * python/run-python-tests: Likewise. * recipes/squashfs.example: Likewise. * ruby/run-ruby-tests: Likewise.
Make it possible to build in a separate directory This patch allows you to do: mkdir build cd build ../configure ... make This will output all generated files to the build directory. Given that autogen automatically runs configure, you can also do: BUILDDIR=./build ./autogen.sh which will do the right thing. Also: * Fix a dependency bug which means that guestfs_protocol.h isn't automatically rebuilt. * Re-running autogen.sh with no arguments won't blow away your previous configure arguments.