summaryrefslogtreecommitdiffstats
path: root/ocaml/Makefile.am
Commit message (Collapse)AuthorAgeFilesLines
* tests: Replace 'make extra-tests' with individual tests.Richard W.M. Jones2012-11-131-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | 'make extra-tests' was a monolithic set of tests that did all sorts of things: valgrind, tests over local guests, tests with upstream qemu, tests with upstream libvirt, tests with the appliance attach method. This made it hard to perform individual tests, eg. just valgrind testing. It was also hard to maintain because the tests were not located in the same directories as the programs and sometimes duplicated tests that were run elsewhere. This commit splits up 'make extra-tests' into 5 separate targets: make check-valgrind # run a subset of tests under valgrind make check-valgrind-local-guests # test under valgrind with local guests make check-with-appliance # test with attach-method == appliance make check-with-upstream-qemu # test with an alternate/upstream qemu make check-with-upstream-libvirt # test with an alternate/upstream libvirt (You can also still run 'make extra-tests' which is now simply a rule that runs the above 5 targets in order). This replaces everything that was in the tests/extra directory, so that has now gone.
* Mac OS X: Use libtool --mode=execute instead of LD_LIBRARY_PATHMasami HIRATA2012-07-241-8/+8
| | | | | | because Mac OS X doesn't support LD_LIBRARY_PATH Signed-off-by: Masami HIRATA <msmhrt@gmail.com>
* build: Rename most C files that contain underscore with dash.Richard W.M. Jones2012-07-191-3/+3
| | | | | | | This is just code motion. Some files cannot be renamed. Notably rpcgen input and output files must not contain dash characters, else rpcgen breaks.
* ocaml: Test mount-local, without parallel test.Richard W.M. Jones2012-07-181-16/+5
| | | | | | | | | Unfortunately the parallel test keeps hitting this bug: https://bugzilla.redhat.com/show_bug.cgi?id=838081 which could be a bug in the OCaml runtime. Just test simple mount-local. We will write a parallel test in C to replace this.
* tests: Reformat TESTS_ENVIRONMENT so all use a standard format.Richard W.M. Jones2012-06-281-3/+1
| | | | No functional change.
* ocaml: Set CAML_LD_LIBRARY_PATH in run script.Richard W.M. Jones2012-06-281-1/+0
|
* tests: Add ./run --test option.Richard W.M. Jones2012-06-261-1/+1
| | | | | | | This option, when added via TESTS_ENVIRONMENT = [...] $(top_builddir)/run --test allows us to run the tests and only print the full output (including debugging etc) when the test fails.
* build: Define builddir and abs_srcdir when they are missing.Richard W.M. Jones2012-06-181-0/+6
| | | | | | | | | | | | | | | | | | | | | RHEL 5-era autoconf did not define these, so define them manually when they are missing. Define builddir as '.' The scripts require this. It won't work in the srcdir != builddir case, but we don't care about that for RHEL 5. This commit also moves the builddir / abs_srcdir variable setting above the include of subdir-rules.mk, in case that include uses these variables. Useful script: for f in $(find -name Makefile.am | xargs fgrep '$(abs_srcdir)' -l) ; do if ! grep -q '^abs_srcdir' $f; then echo missing in $f fi done
* Add test of parallel mount-local calls.Richard W.M. Jones2012-03-291-2/+23
|
* ocaml: Ensure bindings are recompiled whenever there is an API change.Richard W.M. Jones2012-02-101-7/+3
|
* ocaml: Various fixes for bytecode compilation.Richard W.M. Jones2012-01-281-8/+15
| | | | | | | | | | | | Set LD_LIBRARY_PATH so we link against the just-built library, not the installed library. Use OCAMLCFLAGS instead of OCAMLOPTFLAGS where appropriate. Remove unnecessary -cclib option for bytecode linking (gcc is not used in this case). This fixes commit eb68a314133c88260cdf4547d7d338446488e698.
* ocaml: Sort the tests.Richard W.M. Jones2012-01-281-2/+3
|
* ocaml: Test bytecode and native code bindings.Richard W.M. Jones2012-01-271-16/+50
| | | | | Compile each test twice, as bytecode and native code, and test both.
* ocaml: Don't install bindtests.*.Richard W.M. Jones2012-01-261-0/+1
|
* ocaml: Don't install libguestfsocaml.a.Richard W.M. Jones2012-01-261-0/+1
|
* build: don't use automake-internal variableJim Meyering2012-01-231-2/+2
| | | | | | | | | | | | | | | | Hi Rich, I realized a day or two late that my suggestion was not quite right. Here's the fix: >From 5294c21cf07c4ec2f094182ba9f32696f3de2751 Mon Sep 17 00:00:00 2001 From: Jim Meyering <meyering@redhat.com> Date: Mon, 23 Jan 2012 10:01:40 +0100 Subject: [PATCH libguestfs] build: don't use automake-internal variable * ocaml/Makefile.am (mlguestfs.cma): Use the documented variable form, $(libguestfsocaml_a_OBJECTS), not the $(am_libguestfsocaml_a_OBJECTS) that I suggested for commit 1.15.16-17-g8b9eaec.
* Do not run appliance-related checks if not building applianceHilko Bengen2012-01-231-3/+7
|
* Replace setting of environment variables with usage of local run scriptHilko Bengen2012-01-231-3/+1
| | | | (Includes fix by RWMJ)
* Fixed out-of-tree compilation of OCaml code after .depend files removalHilko Bengen2012-01-201-4/+5
|
* ocaml: Use automake to build the C part of the bindings.Richard W.M. Jones2012-01-181-18/+21
| | | | | By arranging the C part of the bindings into a library, we can get automake to build it instead of using $(CC) directly.
* build: Remove .depend files from gitMatthew Booth2012-01-111-1/+1
| | | | | Remove generated .depend files from source control, and don't barf when they don't exist while bootstrapping.
* ocaml: Fix OCaml dependencies.Richard W.M. Jones2011-11-301-2/+2
|
* ocaml: Compile OCaml bindings and tests with -warn-error.Richard W.M. Jones2011-11-091-12/+15
|
* Update FSF address.Matthew Booth2011-11-081-1/+1
|
* Stable OCaml dependencies.Richard Jones2011-09-121-1/+4
|
* out-of-tree build: fix make and make installHilko Bengen2011-08-171-2/+2
| | | | | $(srcdir) is not needed for guestfs_c.c. *.mli only exists in $(srcdir) and isn't found on "make install" otherwise
* out-of-tree build: Fix up OCaml bindings and generatorHilko Bengen2011-08-151-11/+11
|
* build: Set TMPDIR for local testing.Richard W.M. Jones2011-08-081-0/+1
| | | | | | This avoids conflicts with the globally installed libguestfs appliance, or lets us build in multiple local directories at the same time without conflicts.
* ocaml: Generate ocamldoc.Richard W.M. Jones2011-07-171-1/+12
| | | | Also includes improvements to the OCaml documentation.
* New event API - OCaml bindings (RHBZ#664558).Richard W.M. Jones2011-03-151-0/+6
| | | | | | The functions set_progress_callback and clear_progress_callback have been removed, and replaced with a complete mechanism for setting and deleting general-purpose events.
* ocaml: Combine tests together to reduce number of launches.Richard W.M. Jones2010-11-301-13/+7
| | | | | | Combine launch, lvcreate and readdir tests together into a single 'basic' test, so that we don't launch the appliance so often when testing in this subdirectory.
* build: xml-light is no longer required (thanks Maxim Koltsov).Richard W.M. Jones2010-11-111-13/+11
| | | | | | At some point we removed the last thing that required xml-light, but were still testing for it at various places in the build. This removes all traces.
* generator: Optional arguments, add-drive-opts (RHBZ#642934,CVE-2010-3851).Richard W.M. Jones2010-10-221-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This large commit changes the generator so that optional arguments can be supported for functions. The model for arguments (known as the "style") is changed from (ret, args) to (ret, args, optargs) where optargs is a more limited list of arguments. One function has been added which takes optional arguments, it is "add-drive-opts", modelled as: (RErr, [String "filename"], #required [Bool "readonly"; String "format"; String "iface"]) #optional Note that this function is processed in the library (does not go over the RPC protocol to the daemon). This has allowed us to simplify the current implementation by omitting changes related to RPC or the daemon, although we plan to add these at some point in the future. From C this function can be called in 3 different ways as in these examples: guestfs_add_drive_opts (g, filename, GUESTFS_ADD_DRIVE_OPTS_READONLY, 1, GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", -1); (the argument(s) between 'filename' and '-1' are the optional ones). guestfs_add_drive_opts_va (g, filename, args); where 'args' is a va_list. This works like the first version. struct guestfs_add_drive_opts_argv optargs = { .bitmask = GUESTFS_ADD_DRIVE_OPTS_READONLY_BITMASK, .readonly = 1, } guestfs_add_drive_opts_argv (g, filename, &optargs); This last form lets you construct lists of optional arguments, and is used by guestfish and the language bindings. In guestfish optional arguments are used like this: add-drive-opts filename readonly:true In OCaml these are mapped naturally to OCaml optional arguments, eg: g#add_drive_opts ~readonly:true filename; In Perl these are mapped to extra arguments, eg: $g->add_drive_opts ($filename, readonly => 1); In Python these are mapped to optional arguments, eg: g.add_drive_opts ("file", readonly = 1, format = "qcow2") In Ruby these are mapped to a final hash argument, eg: g.add_drive_opts("file", {}) g.add_drive_opts("file", :readonly => 1) g.add_drive_opts("file", :readonly => 1, :iface => "virtio") In PHP these are mapped to extra parameters. This is not quite accurate since you cannot omit arbitrary optional parameters, but there's not much than can be done within the limitations of PHP as a language. Unimplemented in: Haskell, C#, Java.
* ocaml: Add test for progress notification callbacks.Richard Jones2010-09-011-2/+8
|
* Remove old ocaml-inspector code.Richard Jones2010-08-171-10/+3
| | | | | Not used by anyone, didn't work well, and replaced now by the C inspection APIs.
* ocaml: Fix thread safety of strings in bindings (RHBZ#604691).Richard Jones2010-06-161-2/+9
| | | | | | | | | | | | | | | | | | | | | | There's a thread safety issue with the current OCaml bindings which is well explained in the bug report: https://bugzilla.redhat.com/show_bug.cgi?id=604691 This commit fixes the safety issue by copying strings temporarily before releasing the thread lock. Updated code looks like this: char *filename = guestfs_safe_strdup (g, String_val (filenamev)); int r; caml_enter_blocking_section (); r = guestfs_add_drive_ro (g, filename); caml_leave_blocking_section (); free (filename); if (r == -1) ocaml_guestfs_raise_error (g, "add_drive_ro"); Also included is a regression test.
* Remove separate inspector_generator.ml, combine this with generator.ml.Richard Jones2009-12-311-0/+2
| | | | | | | | | | | This commit combines the previously separate "inspector_generator.ml" program which generated bindings for virt-inspector. Having two separate programs caused no end of troubles for developers, so we now combine them into a single program. NOTE: OCaml xml-light is now *required* in order to rebuild the generated code.
* build: Fix inter-directory dependenciesMatthew Booth2009-11-191-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* ocaml: Sort the dependencies so they are stable between machines.Richard W.M. Jones2009-11-061-1/+1
|
* inspector: Generate language bindings for OCaml.Richard Jones2009-10-131-13/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a generic mechanism for deriving language bindings for virt-inspector, and implements one concrete binding, for OCaml. The bindings are generated from the RELAX NG schema (virt-inspector.rng) which is supposed to be a correct and always up to date description of the XML that the virt-inspector program can generate. From the RNG we generate a set of types to describe the output of virt-inspector for the language, plus an XML parser, plus some glue code to actually run an external instance of virt-inspector and parse the resulting XML. At runtime, an external 'virt-inspector --xml <name>' command runs and the XML is parsed into language-specific structures. This has been tested on the four example files (inspector/example?.xml) The only particular difficulty about the OCaml binding is the use of Obj.magic, which is naughty but works because of the isomorphism between the representation of tuples and records in OCaml. This seems to cause no problems in my test program. Apart from this, the OCaml binding is straightforward and could be adapted easily for any other languages that want type-safe virt-inspector bindings. It's important to keep virt-inspector.rng up to date with changes to virt-inspector's XML output format.
* build: avoid parallel ocaml/... build failureJim Meyering2009-10-051-2/+0
| | | | | | | | A parallel build could fail due to the use in ocaml/examples of ocaml/guestfs.cmi before it was built. * Makefile.am (SUBDIRS): Add both ocaml and ocaml/examples, to ensure they're built in this order, and not in parallel. * ocaml/Makefile.am (SUBDIRS): Don't define.
* build: enable gcc warnings in capitests/ and ocaml/Jim Meyering2009-08-271-1/+2
| | | | | * capitests/Makefile.am: Use $(WARN_CFLAGS) and $(WERROR_CFLAGS). * ocaml/Makefile.am:: Likewise.
* build: don't emit trailing blanks, remove generated fileJim Meyering2009-08-041-2/+3
| | | | | | * ocaml/Makefile.am (.depend): Don't redirect directly to $@. Filter out trailing blanks. * ocaml/.depend: Regenerate.
* build: add -I option to get config.h.Jim Meyering2009-08-031-2/+5
| | | | | * ocaml/Makefile.am (AM_CPPFLAGS): Define. (guestfs_c.o, guestfs_c_actions.o): Use it.
* ocaml: Rebuild the tests from source if the main library changes.Richard Jones2009-07-291-0/+5
|
* Fix non-srcdir builds: further fixes to OCaml build rules.Richard Jones2009-07-171-0/+1
|
* Fix non-srcdir builds: fix OCaml build rules.Richard Jones2009-07-161-5/+5
|
* Miscellaneous fixes for non-srcdir builds.Richard Jones2009-07-161-3/+3
|
* Make it possible to build in a separate directoryMatthew Booth2009-07-031-2/+6
| | | | | | | | | | | | | | | | | | | | | | 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.
* Add 'readdir' call.Richard W.M. Jones2009-07-021-2/+7
| | | | | | | | | | | | This adds a readdir call (mostly intended for programs). The return value is a list of guestfs_dirent structures. This adds the new types 'struct guestfs_dirent' and 'struct guestfs_dirent_list', along with all the code to return these in the different language bindings. Also includes additional tests for OCaml and Perl bindings to test this.