Please test any changes.
+Useful targets:
+ make syntax-check Checks the syntax of the C code.
+ make check Runs the test suite.
+
+Enable warnings, and fix any you find:
+ ./configure --enable-gcc-warnings
+
Code indentation
----------------------------------------------------------------------
Our C source code generally adheres to some basic code-formatting
If you use Emacs, add the following to one of one of your start-up files
(e.g., ~/.emacs), to help ensure that you get indentation right:
+ ;;; In libguestfs, indent with spaces everywhere (not TABs).
+ ;;; Exceptions: Makefile and ChangeLog modes.
+ (add-hook 'find-file-hook
+ '(lambda () (if (and buffer-file-name
+ (string-match "/libguestfs\\>" (buffer-file-name))
+ (not (string-equal mode-name "Change Log"))
+ (not (string-equal mode-name "Makefile")))
+ (setq indent-tabs-mode nil))))
+
;;; When editing C sources in libguestfs, use this style.
(defun libguestfs-c-mode ()
"C mode with adjusted defaults for use with libguestfs."
(interactive)
(c-set-style "K&R")
- (setq indent-tabs-mode nil) ; indent using spaces, not TABs
(setq c-indent-level 2)
(setq c-basic-offset 2))
(add-hook 'c-mode-hook
- '(lambda () (if (string-match "/libguestfs" (buffer-file-name))
+ '(lambda () (if (string-match "/libguestfs\\>" (buffer-file-name))
(libguestfs-c-mode))))
Directories
appliance/
The qemu appliance, build scripts and so on.
-cat/
- The virt-cat tool.
-
capitests/
Automated tests of the C API.
daemon/
The daemon that runs inside the guest and carries out actions.
-df/
- The virt-df tool.
-
examples/
The examples.
ruby/
Ruby bindings.
+tools/
+ Command line tools like virt-cat, virt-df, virt-edit and more.
+ In versions <= 1.0.73 these were all in separate directories
+ like cat/, df/, edit/, but since then we moved them all into
+ one directory to simplify builds.
+
src/
Source code to the C library.
Also contains the crucial generator program.
test-tool/
Interactive qemu/kernel test tool.
-v2v/
- Xen to KVM (V2V) conversion tool.
-
Debugging
----------------------------------------------------------------------