| The libnih source tree is available using Bazaar-NG with the |
| following URL, if you plan to hack on libnih please work off this |
| branch. |
| |
| http://www.netsplit.com/bzr/libnih/ |
| |
| Releases are available from the FTP site: |
| |
| ftp://ftp.netsplit.com/pub/libnih/ |
| |
| libnih uses the Malone bug tracking system: |
| |
| http://launchpad.net/products/libnih/+bugs |
| |
| If you want to contribute code or bug fixes, please either provide the |
| URL to your own Bazaar-NG branch or use the ‘unified’ diff format |
| (diff -pu) and attach the patch to a bug. Please supply a suggested |
| ChangeLog entry with your patch. |
| |
| |
| Maintainer tools |
| ---------------- |
| |
| The source tree for libnih uses the GNU Build System (sometimes known |
| as the GNU Autotools). You will need the following versions |
| installed. |
| |
| * GNU Autoconf 2.59 |
| * GNU Automake 1.9 |
| * GNU Libtool 1.5.22 |
| * GNU Gettext 0.14.5 |
| |
| After checking out libnih from Bazaar-NG you will need to use these |
| tools to generate the build files. The correct way to do this is to |
| simply run ‘autoreconf -i’ from the top-level source directory. |
| |
| |
| Configure options |
| ----------------- |
| |
| There are some configure script options that you may find useful when |
| hacking on libnih. |
| |
| * --enable-compiler-warnings: (GCC only) adds extra CFLAGS to |
| increase the source checking and treat all warnings as errors. |
| |
| * --disable-compiler-optimisations: ensures that no compiler |
| optimisations are performed during compilation, easing |
| debugging. |
| |
| * --disable-linker-optimisations: disables the usual linker |
| optimisations, slightly decreasing build time. |
| |
| * --enable-compiler-coverage: (GCC only) enables coverage file |
| generation, useful for test suites. |
| |
| |
| Coding style |
| ------------ |
| |
| The coding style for libnih is roughly K&R with function names in |
| column 0, and variable names aligned in declarations. |
| |
| The right results can be almost acheived by doing the following. |
| |
| * GNU Emacs: if you're not using auto-newline, the following |
| should do the right thing: |
| |
| (defun libnih-c-mode-common-hook () |
| (c-set-style "k&r") |
| (setq indent-tabs-mode t |
| c-basic-offset 8)) |
| |
| * VIM: the default works except for the case labels in switch |
| statements. Set the following option to fix that: |
| |
| setlocal cinoptions=:0 |
| |
| * Indent: can be used to reformat code in a different style: |
| |
| indent -kr -i8 -psl |