Please note:The SCons wiki is in read-only mode due to ongoing spam/DoS issues. Also, new account creation is currently disabled. We are looking into alternative wiki hosts.

Model programs and their Automake files

In order to concentrate on actually used features and on practical usage of Automake compatibility layer, I chose a few programs that currently use Automake, in order to make it possible to build them using SCons.

Since SCons lacks any Gettext support and adding it is non-trivial and not in scope of this project, as far as my project is concerned, if any of referenced programs uses Gettext, support for it will not be included in SConsified version.

Additional suggestions for model programs, both simple and (more important) complex, are welcome.

Simple projects

AMHello

Canonical 'Hello, World' example included with Automake as an example. Minimal project, a must-have.

No own home or project page.

Browse sources

http://cvs.savannah.gnu.org/viewvc/automake/doc/amhello/?root=automake

`configure.ac` file

configure.ac

`Makefile.am` files

SConstruct

Low-level API:

   1 proj = Project('amhello', '1.0', header='config.h')
   2 proj.Distribute('configure.ac', 'Makefile.am', 'src/Makefile.am')
   3 proj.AutoInstall(Program('src/hello', 'src/main.c'))

GNU cpio

Simple C program, referenced as an example throughout Automake manual, multiple directories, Texinfo documentation, library, header files.

Home page

http://www.gnu.org/software/cpio/

Project page

http://savannah.nongnu.org/projects/cpio

Browse sources

http://cvs.savannah.gnu.org/viewvc/cpio/?root=cpio

`configure.ac` file

configure.ac

`Makefile.am` files

Automake

Not a very complicated program, written in Perl (project not based on C language), non-trivial installation.

Home page

http://www.gnu.org/software/automake/

Project page

http://savannah.nongnu.org/projects/automake

Browse sources

http://cvs.savannah.gnu.org/viewvc/automake/?root=automake

`configure.ac` file

configure.ac

`Makefile.am` files

Fetchmail

Simple, C-based program. Unique feature to test is Lex and Yacc usage.

Home page

http://fetchmail.berlios.de/

Project page

http://developer.berlios.de/projects/fetchmail/

Browse sources

http://mknod.org/svn/fetchmail/trunk/

`configure.ac` file

configure.ac

`Makefile.am` files

SConstruct file: GSoC2007/MaciejPasternacki/ModelPrograms/FetchmailSConstruct

Complex projects

Nix

Complex, C++-based programs. Lots of subdirectories. Non-trivial installation.

Home page

http://nix.cs.uu.nl/

Browse sources

https://svn.cs.uu.nl:12443/repos/trace/nix/trunk/

`configure.ac` file

configure.ac

`Makefile.am` files

Gnucash

Complex GUI program, mixes Guile Scheme and C (SWIG bindings), and maybe some Perl.

I'm not sure if I will manage to actually convert it, since it uses libtool, which is very tightly integrated with Autotools and libtool support is out of immediate scope of this project. Even if I won't, usage patterns from Gnucash should be beneficial to the project.

Home page

http://www.gnucash.org/

Browse sources

http://svn.gnucash.org/trac/browser/gnucash/trunk

`configure.ac` file

configure.in

`Makefile.am` files

GRUB Legacy

Complex program; lots of documentation; conditional build; many custom build rules.

Home page

http://www.gnu.org/software/grub/grub-legacy.en.html

Browse sources

http://cvs.savannah.gnu.org/viewvc/grub/?root=grub

`configure.ac` file

configure.ac

`Makefile.am` files

Irssi

Complex program and complex build process (generated Makefile.am files!). C with embedded Perl. Heavy usage of conditional build.

Home page

http://www.irssi.org/

Browse sources

http://svn.irssi.org/repos/irssi/trunk/

`configure.ac` file

configure.in

`Makefile.am` files

GSoC2007/MaciejPasternacki/ModelPrograms (last edited 2008-03-12 02:47:12 by localhost)