An Internationalized Software Project With Auto Tools
Prev Overview Next

Copyright (c) 2006 by Heinrich Eichmann.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included here.

Note: As in germany links to other pages are a high legal risk, this cource is link free. If you need more details or want to download something mentioned here, use the internet search engine of your choice!

Feel free to send any comments to


This little documentation is the result of some experiments on how to write internationalized, documented and portable software projects with gnu auto tool support. What does this mean? To solve this requirements, the project was developed in C (or C++) with gettext, which allows the internationalization. The documentation is written in docbook, which can be converted into html help. po4a is used to make the documentation translatable as well. The portability is achieved with the wxWidgets toolkit and by choosing html help as help file target format. The build environment is the gnu auto tools, e.g. automake, autoconf and friends.

Unfortunately the usage of the gnu auto tools is quite complicated. Therefore much time was spent to set up these gnu auto tools properly. Most of this document is about using the gnu auto tools, as all other aspects (coding, internationalization, documentation, portability) are nicely documented elsewhere. The main topic here is: gnu auto tools.

Important note: The gnu auto tool support was made by reading documentation, searching the internet and loking into other projects. The result configuration files may be wrong, as I am also a total auto tool beginner. If an expert accidentially drops into these pages, any comment is welcome!

The project itself is developed step by step. Topics with higher interest are discussed first so that the reader might stop reading, before the not so interesting parts begin. The general order is: Also some minor steps, like correct internationalization or revision control are discussed. Note, that the steps are performed on a FreeBSD with csh as a shell. On other operating systems the involved commands might be spelled different. Other shells require different shell commands (like environment variable setting). The shell prompt in the examples here is a hash ('#').

The contents of this document is split into:

A Simple C Project
Auto Tools Overview
Adding Auto Tools Support
Revision Control
Adding a Module
Adding libtool Support
gettext Overview
Adding gettext Support
Using gettext
Internationalization Tips
Documentation Overview
Adding HTML Help Documentation
Internationalization of the Documentation
wxWidgets Overview
Using wxWidgets
Compiling under windows

Prev Home Next
A Simple C Project