Next: , Previous: General design, Up: Top


15 Compilation tips

15.1 Compiling is so looooooong...

Yes, using deep build tree (up to 7 levels) with make is not recommended when one seeks performance and wishes to have a program built as fast as possible.

Doing so, and including a generated Makefile in every single directory, even in ./data might sound stupid. But... it's in the long run easier to do this and use all the automatic packaging and depoyement strategic of a genuine ./configure script, than writing one's own install script, which will without any doubt end up with a broken unsinstall target, and so on.

15.2 ./configure options

In addition to all the common Autoconf switches such as --prefix, Liquid War 6 has some custom switches:

15.3 Packaging

15.3.1 Debian packages

Liquid War 6 comes with a ./debian subdirectory, which allows for creation of vendor .deb binaries. The files generated have an explicit vendor suffix, which identifies them as being the files generated from the original source tarball.

In the future, the Debian project, or any GNU/Linux distribution which relies on .deb packages, might decide to (re)package Liquid War 6 and implement its various packaging policies, but this is another subject.

Liquid War 6 is splitted into several .deb packages:

A typical end-user installation will use packages:

One important thing to note, and which very certainly violates the Debian policies, is that the documentation is provided in the main package, which is platform dependent. Doing so is the best way to ensure that everybody has the documentation, even those who use --force switches. It does waste a little disk space, but this is nothing compared to the overall disk usage of a package like Liquid War 6.

15.3.2 Red Hat packages

Liquid War 6 comes with a .spec file, which allows for creation of vendor RPM binaries. The files generated have an explicit vendor suffix, which identifies them as being the files generated from the original source tarball.

In the future, the Red Hat, or any GNU/Linux distribution which relies on RPM packages, might decide to (re)package Liquid War 6 and implement its various packaging policies, but this is another subject.

Liquid War 6 is contained in one jumbo RPM package. The reasons for not splitting it in several small packages range from the limitations of RPM itself, to the fact that having two different packaging strategies implemented can be interesting in itself.

Note that Alien can be used to switch between various package formats.