X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=HACKING;h=900980a8af67c70df151c0e1e3faf0fc13438608;hp=cb339bd148144cc05be60cfc2c4710e1c6337861;hb=ac37f65aaf1f162a2cc57fa8c296a1ff4109adb9;hpb=1fc38df2dfe7e991e27d4c2fdd50fbd41ee9cf70 diff --git a/HACKING b/HACKING index cb339bd..900980a 100644 --- a/HACKING +++ b/HACKING @@ -24,6 +24,13 @@ Please make sure that the code compiles without warnings. 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 @@ -35,16 +42,24 @@ indentation level, and other than that, follow the K&R style. 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 @@ -53,30 +68,35 @@ Directories appliance/ The qemu appliance, build scripts and so on. -cat/ - The virt-cat tool. - capitests/ Automated tests of the C API. contrib/ Outside contributions, experimental parts. +csharp/ + Experimental C# bindings. + daemon/ The daemon that runs inside the guest and carries out actions. -df/ - The virt-df tool. - examples/ The examples. fish/ Guestfish (the command-line program / shell) +fuse/ + FUSE (userspace filesystem) built on top of libguestfs. + haskell/ Haskell bindings. +hivex/ [removed in 1.0.85] + This used to contain the hivex library for reading and + writing Windows Registry binary hive files. This is now + available as a separate upstream project. + images/ Some guest images to test against. These are gzipped to save space. You have to unzip them before use. @@ -110,6 +130,12 @@ regressions/ 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. @@ -117,9 +143,6 @@ src/ test-tool/ Interactive qemu/kernel test tool. -v2v/ - Xen to KVM (V2V) conversion tool. - Debugging ----------------------------------------------------------------------