Google
 
   
Login
Username:

Password:


Lost Password?

Register now!
Search
Main Menu
top books
Polls
What do you think about php-deluxe.net?
Excellent!
Cool
Hmm..not bad
What the hell is this?
encyclopedia
recommendation
compare webbrowser
Freenet DSL
Who's Online
8 user(s) are online (6 user(s) are browsing encyclopedia)

Members: 0
Guests: 8

more...
browser tip
Unix Befehle
manual of unix befehle
recommendation!
Sponsored
partner

Automake

GNU Automake is a programming tool that produces portable makefiles for use by the Make program, used in compiling software. It is made by the Free Software Foundation as one of GNU programs, and is part of the GNU build system. The makefiles produced follow the GNU Coding Standards. The latest version of automake is 1.9.5.

It is written in Perl, a programming language and must be used with Autoconf, another GNU tool. Automake contains the following commands:

  • aclocal
  • automake
  • Automake can be quite hard to deal with because it is not backwards compatible. For example, a project created with automake 1.4 will not work with automake 1.9.

    =Command line options=

  • --add-missing, -a: Tells automake to regenerate the files
  • ./install-sh
  • ./mkinstalldirs
  • ./missing
  • ./depcomp.
  • =Approach=

    Automake aims to allow the programmer to write a makefile in a higher-level language, rather than having to write the whole makefile manually. In simple cases, it suffices to give:

  • a line that declares the name of the program to build;
  • a list of source files;
  • a list of command-line options to be passed to the Compiler (namely, in which directories will header files be found);
  • a list of command-line options to be passed to the Linker (which libraries the program needs and in what directories they are to be found).
  • From this information, Automake generates a makefile that allows the user to:

  • compile the program;
  • clean (i.e., remove the files resulting from the compilation);
  • install the program in standard directories;
  • uninstall the program from where it was installed;
  • create a source distribution archive (commonly called a tarball );
  • test that this archive is self-sufficient, and in particular that the program can be compiled in a directory other than the one where the sources are deployed.
  • Automake also takes care of automatically generating the dependency information, so that when a source file is modified, the next invocation of the make command will know which source files need to be recompiled as a consequence. If the compiler allows it, Automake tries to make the dependency system dynamic: whenever a source file is compiled, that file s dependencies are updated by asking the compiler to regenerate the file s dependency list. In other words, dependency tracking is a side effect of the compilation process.

    This attempts to avoid the problem with some static dependency systems, where the dependencies are detected only once when the programmer starts working on the project. In such a case, if a source file gains a new dependency (e.g., if the programmer adds a new #include directive in a C programming language source file), then a discrepancy is introduced between the real dependencies and those that are used by the compilation system. The programmer should then regenerate the dependencies, but runs the risk of forgetting to do so.

    Automake can also help with the compilation of libraries by automatically generating makefiles that will invoke GNU Libtool. The programmer is thus exempted from having to know how to call Libtool directly, and the project benefits from the use of a portable library creation tool.

    =See also=

    *imake

    =References=

    *Gary V. Vaughan, Ben Elliston, Tom Tromey: Gnu Autoconf, Automake, and Libtool , Sams, ISBN 1-57870-190-2

    =External links=

    *[http://sources.redhat.com/automake/ Automake home page] *[http://sources.redhat.com/automake/automake.html Manual] *[http://sources.redhat.com/autobook/autobook/autobook_toc.html Online version of The Goat Book ] *Tutorial [http://www.amath.washington.edu/~lf/tutorials/autoconf/ Learning Autoconf and Automake] by Eleftherios Gkioulekas *Article [http://www.openismus.com/documents/linux/automake/automake.shtml Using Automake and Autoconf with C++] by Murray Cumming *[http://autotoolset.sourceforge.net/ Autotoolset home page]