Editing Documentation/Maemo 5 Developer Guide/GNU Build System

Warning: You are not logged in. Your IP address will be recorded in this page's edit history.

Warning: This page is 76 kilobytes long; some browsers may have problems editing pages approaching or longer than 32kb. Please consider breaking the page into smaller sections.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 888: Line 888:
The example starts with the autoconf configuration file: autoconf-[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/configure.ac automake/example3/configure.ac]
The example starts with the autoconf configuration file: autoconf-[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/configure.ac automake/example3/configure.ac]
-
<source lang="autoconf">
+
<tt><span>''<span><font color="#9A1900"><nowiki># Any source file name related to our project is ok here.</nowiki></font></span>''</span>
-
# Any source file name related to our project is ok here.
+
AC_INIT<span><font color="#990000">(</font></span>helloapp<span><font color="#990000">,</font></span> <span><font color="#993399">0.1</font></span><span><font color="#990000">)</font></span>
-
AC_INIT(helloapp, 0.1)
+
<span>''<span><font color="#9A1900"><nowiki># We are using automake, so we init it next. The name of the macro</nowiki></font></span>''</span>
-
# We are using automake, so we init it next. The name of the macro
+
<span>''<span><font color="#9A1900"><nowiki># starts with 'AM' which means that it is related to automake ('AC'</nowiki></font></span>''</span>
-
# starts with 'AM' which means that it is related to automake ('AC'
+
<span>''<span><font color="#9A1900"><nowiki># is related to autoconf).</nowiki></font></span>''</span>
-
# is related to autoconf).
+
<span>''<span><font color="#9A1900"><nowiki># Initing automake means more or less generating the .in file from</nowiki></font></span>''</span>
-
# Initing automake means more or less generating the .in file from
+
<span>''<span><font color="#9A1900"><nowiki># the .am file although it can also be generated at other steps.</nowiki></font></span>''</span>
-
# the .am file although it can also be generated at other steps.
+
AM_INIT_AUTOMAKE
-
AM_INIT_AUTOMAKE
+
<span>''<span><font color="#9A1900"><nowiki># Compiler check.</nowiki></font></span>''</span>
-
# Compiler check.
+
AC_PROG_CC
-
AC_PROG_CC
+
<span>''<span><font color="#9A1900"><nowiki># Check for 'install' program.</nowiki></font></span>''</span>
-
# Check for 'install' program.
+
AC_PROG_INSTALL
-
AC_PROG_INSTALL
+
<span>''<span><font color="#9A1900"><nowiki># Generate the Makefile from Makefile.in (using substitution logic).</nowiki></font></span>''</span>
-
# Generate the Makefile from Makefile.in (using substitution logic).
+
AC_OUTPUT<span><font color="#990000">(</font></span>Makefile<span><font color="#990000">)</font></span>
-
AC_OUTPUT(Makefile)
+
</tt>
-
</source>
+
Then the configuration file is presented for automake: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/Makefile.am autoconf-automake/example3/Makefile.am]
Then the configuration file is presented for automake: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/Makefile.am autoconf-automake/example3/Makefile.am]
-
<source lang="make">
+
<tt><span>''<span><font color="#9A1900"><nowiki># Automake rule primer:</nowiki></font></span>''</span>
-
# Automake rule primer:
+
<span>''<span><font color="#9A1900"><nowiki># 1) Left side_ tells what kind of target this is.</nowiki></font></span>''</span>
-
# 1) Left side_ tells what kind of target this is.
+
<span>''<span><font color="#9A1900"><nowiki># 2) _right side tells what kind of dependencies are listed.</nowiki></font></span>''</span>
-
# 2) _right side tells what kind of dependencies are listed.
+
<span>''<span><font color="#9A1900"><nowiki>#</nowiki></font></span>''</span>
-
#
+
<span>''<span><font color="#9A1900"><nowiki># As an example, below:</nowiki></font></span>''</span>
-
# As an example, below:
+
<span>''<span><font color="#9A1900"><nowiki># 1) bin = binaries</nowiki></font></span>''</span>
-
# 1) bin = binaries
+
<span>''<span><font color="#9A1900"><nowiki># 2) PROGRAMS lists the programs to generate Makefile.ins for.</nowiki></font></span>''</span>
-
# 2) PROGRAMS lists the programs to generate Makefile.ins for.
+
bin_PROGRAMS <span><font color="#990000"><nowiki>=</nowiki></font></span> helloapp
-
bin_PROGRAMS = helloapp
+
<span>''<span><font color="#9A1900"><nowiki># Listing source dependencies:</nowiki></font></span>''</span>
-
# Listing source dependencies:
+
<span>''<span><font color="#9A1900"><nowiki>#</nowiki></font></span>''</span>
-
#
+
<span>''<span><font color="#9A1900"><nowiki># The left side_ gives the name of the application to which the</nowiki></font></span>''</span>
-
# The left side_ gives the name of the application to which the
+
<span>''<span><font color="#9A1900"><nowiki># dependencies are related to.</nowiki></font></span>''</span>
-
# dependencies are related to.
+
<span>''<span><font color="#9A1900"><nowiki># _right side gives again the type of dependencies.</nowiki></font></span>''</span>
-
# _right side gives again the type of dependencies.
+
<span>''<span><font color="#9A1900"><nowiki>#</nowiki></font></span>''</span>
-
#
+
<span>''<span><font color="#9A1900"><nowiki># Here we then list the source files that are necessary to build the</nowiki></font></span>''</span>
-
# Here we then list the source files that are necessary to build the
+
<span>''<span><font color="#9A1900"><nowiki># helloapp -binary.</nowiki></font></span>''</span>
-
# helloapp -binary.
+
helloapp_SOURCES <span><font color="#990000"><nowiki>=</nowiki></font></span> helloapp<span><font color="#990000">.</font></span>c hello<span><font color="#990000">.</font></span>c hello<span><font color="#990000">.</font></span>h
-
helloapp_SOURCES = helloapp.c hello.c hello.h
+
<span>''<span><font color="#9A1900"><nowiki># For other files that cannot be automatically deduced by automake,</nowiki></font></span>''</span>
-
# For other files that cannot be automatically deduced by automake,
+
<span>''<span><font color="#9A1900"><nowiki># you need to use the EXTRA_DIST rule which should list the files</nowiki></font></span>''</span>
-
# you need to use the EXTRA_DIST rule which should list the files
+
<span>''<span><font color="#9A1900"><nowiki># that should be included. Files can also be in other directories or</nowiki></font></span>''</span>
-
# that should be included. Files can also be in other directories or
+
<span>''<span><font color="#9A1900"><nowiki># even whole directories can be included this way (not recommended).</nowiki></font></span>''</span>
-
# even whole directories can be included this way (not recommended).
+
<span>''<span><font color="#9A1900"><nowiki>#</nowiki></font></span>''</span>
-
EXTRA_DIST = some.service.file.service some.desktop.file.desktop
+
<span>''<span><font color="#9A1900"><nowiki># EXTRA_DIST = some.service.file.service some.desktop.file.desktop</nowiki></font></span>''</span>
-
</source>
+
</tt>
This material tries to introduce just enough of automake for it to be useful for small projects. Because of this, the detailed syntax of <code>Makefile.am</code> is not explained. Based on the above description, automake knows what kind of <code>Makefile.in</code> to create, and autoconf takes it over from there and fills in the missing pieces.
This material tries to introduce just enough of automake for it to be useful for small projects. Because of this, the detailed syntax of <code>Makefile.am</code> is not explained. Based on the above description, automake knows what kind of <code>Makefile.in</code> to create, and autoconf takes it over from there and fills in the missing pieces.
Line 936: Line 935:
The source files for the project are as simple as possible, but notice the implementation of printHello. [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/helloapp.c autoconf-automake/example3/helloapp.c]
The source files for the project are as simple as possible, but notice the implementation of printHello. [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/helloapp.c autoconf-automake/example3/helloapp.c]
-
<source lang="c">
+
<tt><span>''<span><font color="#9A1900">/**</font></span>''</span>
-
/**
+
  <span>''<span><font color="#9A1900"> * This maemo code example is licensed under a MIT-style license,</font></span>''</span>
-
  * This maemo code example is licensed under a MIT-style license,
+
  <span>''<span><font color="#9A1900"> * that can be found in the file called "License" in the same</font></span>''</span>
-
  * that can be found in the file called "License" in the same
+
  <span>''<span><font color="#9A1900"> * directory as this file.</font></span>''</span>
-
  * directory as this file.
+
  <span>''<span><font color="#9A1900"> * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.</font></span>''</span>
-
  * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.
+
  <span>''<span><font color="#9A1900"> */</font></span>''</span>
-
  */
+
<span>'''<span><font color="#000080"><nowiki>#include</nowiki></font></span>'''</span> <span><font color="#FF0000">&lt;stdlib.h&gt;</font></span>
-
#include <stdlib.h>
+
<span>'''<span><font color="#000080"><nowiki>#include</nowiki></font></span>'''</span> <span><font color="#FF0000">"hello.h"</font></span>
-
#include "hello.h"
+
<span><font color="#009900">int</font></span> <span>'''<span><font color="#000000">main</font></span>'''</span><span><font color="#990000">(</font></span><span><font color="#009900">int</font></span> argc<span><font color="#990000">,</font></span> <span><font color="#009900">char</font></span><span><font color="#990000"><nowiki>**</nowiki></font></span> argv<span><font color="#990000">)</font></span> <span><font color="#FF0000">{</font></span>
-
int main(int argc, char** argv) {
+
  <span>'''<span><font color="#000000">printHello</font></span>'''</span><span><font color="#990000">();</font></span>
-
  printHello();
+
  <span>'''<span><font color="#0000FF">return</font></span>'''</span> EXIT_SUCCESS<span><font color="#990000"><nowiki>;</nowiki></font></span>
-
  return EXIT_SUCCESS;
+
<span><font color="#FF0000">}</font></span>
-
}
+
</tt>
-
</source>
+
[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/hello.h autoconf-automake/example3/hello.h]
[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/hello.h autoconf-automake/example3/hello.h]
-
<source lang="c">
+
<tt><span>''<span><font color="#9A1900">/**</font></span>''</span>
-
/**
+
  <span>''<span><font color="#9A1900"> * This maemo code example is licensed under a MIT-style license,</font></span>''</span>
-
  * This maemo code example is licensed under a MIT-style license,
+
  <span>''<span><font color="#9A1900"> * that can be found in the file called "License" in the same</font></span>''</span>
-
  * that can be found in the file called "License" in the same
+
  <span>''<span><font color="#9A1900"> * directory as this file.</font></span>''</span>
-
  * directory as this file.
+
  <span>''<span><font color="#9A1900"> * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.</font></span>''</span>
-
  * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.
+
  <span>''<span><font color="#9A1900"> */</font></span>''</span>
-
  */
+
<span>'''<span><font color="#000080"><nowiki>#ifndef</nowiki></font></span>'''</span> INCLUDE_HELLO_H
-
#ifndef INCLUDE_HELLO_H
+
<span>'''<span><font color="#000080"><nowiki>#define</nowiki></font></span>'''</span> INCLUDE_HELLO_H
-
#define INCLUDE_HELLO_H
+
<span>'''<span><font color="#0000FF">extern</font></span>'''</span> <span><font color="#009900">void</font></span> <span>'''<span><font color="#000000">printHello</font></span>'''</span><span><font color="#990000">(</font></span><span><font color="#009900">void</font></span><span><font color="#990000">);</font></span>
-
extern void printHello(void);
+
<span>'''<span><font color="#000080"><nowiki>#endif</nowiki></font></span>'''</span>
-
#endif
+
</tt>
-
</source>
+
[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/hello.c autoconf-automake/example3/hello.c]
[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/hello.c autoconf-automake/example3/hello.c]
-
<source lang="c">
+
<tt><span>''<span><font color="#9A1900">/**</font></span>''</span>
-
/**
+
  <span>''<span><font color="#9A1900"> * This maemo code example is licensed under a MIT-style license,</font></span>''</span>
-
  * This maemo code example is licensed under a MIT-style license,
+
  <span>''<span><font color="#9A1900"> * that can be found in the file called "License" in the same</font></span>''</span>
-
  * that can be found in the file called "License" in the same
+
  <span>''<span><font color="#9A1900"> * directory as this file.</font></span>''</span>
-
  * directory as this file.
+
  <span>''<span><font color="#9A1900"> * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.</font></span>''</span>
-
  * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.
+
  <span>''<span><font color="#9A1900"> */</font></span>''</span>
-
  */
+
-
 
+
<span>'''<span><font color="#000080"><nowiki>#include</nowiki></font></span>'''</span> <span><font color="#FF0000">&lt;stdio.h&gt;</font></span>
-
#include <stdio.h>
+
<span>'''<span><font color="#000080"><nowiki>#include</nowiki></font></span>'''</span> <span><font color="#FF0000">"hello.h"</font></span>
-
#include "hello.h"
+
-
 
+
<span><font color="#009900">void</font></span> <span>'''<span><font color="#000000">printHello</font></span>'''</span><span><font color="#990000">(</font></span><span><font color="#009900">void</font></span><span><font color="#990000">)</font></span> <span><font color="#FF0000">{</font></span>
-
void printHello(void) {
+
  <span>''<span><font color="#9A1900">/* Note that these are available as defines now. */</font></span>''</span>
-
  /* Note that these are available as defines now. */
+
  <span>'''<span><font color="#000000">printf</font></span>'''</span><span><font color="#990000">(</font></span><span><font color="#FF0000">"("</font></span> PACKAGE <span><font color="#FF0000">" "</font></span> VERSION <span><font color="#FF0000">")</font></span><span><font color="#CC33CC">\n</font></span><span><font color="#FF0000">"</font></span><span><font color="#990000">);</font></span>
-
  printf("(" PACKAGE " " VERSION ")\n");
+
  <span>'''<span><font color="#000000">printf</font></span>'''</span><span><font color="#990000">(</font></span><span><font color="#FF0000">"Hello world!</font></span><span><font color="#CC33CC">\n</font></span><span><font color="#FF0000">"</font></span><span><font color="#990000">);</font></span>
-
  printf("Hello world!\n");
+
<span><font color="#FF0000">}</font></span>
-
}
+
</tt>
-
</source>
+
The <code>PACKAGE</code> and <code>VERSION</code> defines are passed to the build process automatically.
The <code>PACKAGE</code> and <code>VERSION</code> defines are passed to the build process automatically.
Line 1,003: Line 999:
Note that the messages that are introduced into the process from now on are inevitable, because some macros use obsolete features or have incomplete syntax, and thus trigger warnings. There is no easy solution to this, other than to fix the macros themselves.
Note that the messages that are introduced into the process from now on are inevitable, because some macros use obsolete features or have incomplete syntax, and thus trigger warnings. There is no easy solution to this, other than to fix the macros themselves.
-
<pre>
+
[sbox-FREMANTLE_X86: ~/example3] &gt; aclocal
-
[sbox-FREMANTLE_X86: ~/example3] > aclocal
+
/scratchbox/tools/share/aclocal/pkg.m4:5: warning:
-
/scratchbox/tools/share/aclocal/pkg.m4:5: warning:
+
  underquoted definition of PKG_CHECK_MODULES
-
underquoted definition of PKG_CHECK_MODULES
+
  run info '(automake)Extending aclocal' or see
-
  run info '(automake)Extending aclocal' or see
+
  http://sources.redhat.com/automake/automake.html#Extending%20aclocal
-
  http://sources.redhat.com/automake/automake.html#Extending%20aclocal
+
/usr/share/aclocal/pkg.m4:5: warning:
-
/usr/share/aclocal/pkg.m4:5: warning:
+
  underquoted definition of PKG_CHECK_MODULES
-
underquoted definition of PKG_CHECK_MODULES
+
/usr/share/aclocal/gconf-2.m4:8: warning:
-
/usr/share/aclocal/gconf-2.m4:8: warning:
+
  underquoted definition of AM_GCONF_SOURCE_2
-
underquoted definition of AM_GCONF_SOURCE_2
+
/usr/share/aclocal/audiofile.m4:12: warning:
-
/usr/share/aclocal/audiofile.m4:12: warning:
+
  underquoted definition of AM_PATH_AUDIOFILE
-
underquoted definition of AM_PATH_AUDIOFILE
+
[sbox-FREMANTLE_X86: ~/example3] &gt; autoconf
-
[sbox-FREMANTLE_X86: ~/example3] > autoconf
+
[sbox-FREMANTLE_X86: ~/example3] &gt; ./configure
-
[sbox-FREMANTLE_X86: ~/example3] > ./configure
+
configure: error: cannot find install-sh or install.sh in
-
configure: error: cannot find install-sh or install.sh in
+
  ~/example3 ~/ ~/..
-
~/example3 ~/ ~/..
+
-
</pre>
+
Listing the contents of the directory reveals that the <code>Makefile.in</code> is not among the contents. Automake needs to be run manually, so that the file is created. At the same time, the missing files need to be introduced to the directory (such as the install.sh that configure seems to complain about).
Listing the contents of the directory reveals that the <code>Makefile.in</code> is not among the contents. Automake needs to be run manually, so that the file is created. At the same time, the missing files need to be introduced to the directory (such as the install.sh that configure seems to complain about).
Line 1,025: Line 1,019:
This is done by executing automake -ac, which creates the Makefile.in and also copy the missing files into their proper places. ''This step also copies a file called <code>COPYING</code> into the directory, which by default contains the GPL.'' So, if the software is going to be distributed under some other license, this is the correct moment to replace the license file with the appropriate one.
This is done by executing automake -ac, which creates the Makefile.in and also copy the missing files into their proper places. ''This step also copies a file called <code>COPYING</code> into the directory, which by default contains the GPL.'' So, if the software is going to be distributed under some other license, this is the correct moment to replace the license file with the appropriate one.
-
<pre>
+
[sbox-FREMANTLE_X86: ~/example3] &gt; automake -ac
-
[sbox-FREMANTLE_X86: ~/example3] > automake -ac
+
configure.ac: installing `./install-sh'
-
configure.ac: installing `./install-sh'
+
configure.ac: installing `./missing'
-
configure.ac: installing `./missing'
+
Makefile.am: installing `./depcomp'
-
Makefile.am: installing `./depcomp'
+
[sbox-FREMANTLE_X86: ~/example3] &gt; ./configure
-
[sbox-FREMANTLE_X86: ~/example3] > ./configure
+
checking for a BSD-compatible install... /scratchbox/tools/bin/install -c
-
checking for a BSD-compatible install... /scratchbox/tools/bin/install -c
+
checking whether build environment is sane... yes
-
checking whether build environment is sane... yes
+
checking for gawk... gawk
-
checking for gawk... gawk
+
checking whether make sets $(MAKE)... yes
-
checking whether make sets $(MAKE)... yes
+
checking for gcc... gcc
-
checking for gcc... gcc
+
checking for C compiler default output file name... a.out
-
checking for C compiler default output file name... a.out
+
checking whether the C compiler works... yes
-
checking whether the C compiler works... yes
+
checking whether we are cross compiling... no
-
checking whether we are cross compiling... no
+
checking for suffix of executables...
-
checking for suffix of executables...
+
checking for suffix of object files... o
-
checking for suffix of object files... o
+
checking whether we are using the GNU C compiler... yes
-
checking whether we are using the GNU C compiler... yes
+
checking whether gcc accepts -g... yes
-
checking whether gcc accepts -g... yes
+
checking for gcc option to accept ANSI C... none needed
-
checking for gcc option to accept ANSI C... none needed
+
checking for style of include used by make... GNU
-
checking for style of include used by make... GNU
+
checking dependency style of gcc... gcc3
-
checking dependency style of gcc... gcc3
+
checking for a BSD-compatible install... /scratchbox/tools/bin/install -c
-
checking for a BSD-compatible install... /scratchbox/tools/bin/install -c
+
configure: creating ./config.status
-
configure: creating ./config.status
+
config.status: creating Makefile
-
config.status: creating Makefile
+
config.status: executing depfiles commands
-
config.status: executing depfiles commands
+
-
</pre>
+
Notice the second to last line of the output, which shows that configure just created a Makefile (based on the <code>Makefile.in</code> that ''automake'' created).
Notice the second to last line of the output, which shows that configure just created a Makefile (based on the <code>Makefile.in</code> that ''automake'' created).
Line 1,056: Line 1,048:
Performing all these steps manually each time to make sure that all the generated files are really generated can be rather tedious. Most developers create a script called '''autogen.sh''', which implements the necessary bootstrap procedures for them. Below is a file that is suitable for this example. Real-life projects can have more steps because of localization and other requirements. [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/autogen.sh autoconf-automake/example3/autogen.sh]
Performing all these steps manually each time to make sure that all the generated files are really generated can be rather tedious. Most developers create a script called '''autogen.sh''', which implements the necessary bootstrap procedures for them. Below is a file that is suitable for this example. Real-life projects can have more steps because of localization and other requirements. [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/autogen.sh autoconf-automake/example3/autogen.sh]
-
<source lang="bash">
+
<tt><span>''<span><font color="#9A1900"><nowiki>#!/bin/sh</nowiki></font></span>''</span>
-
#!/bin/sh
+
<span>''<span><font color="#9A1900"><nowiki>#</nowiki></font></span>''</span>
-
#
+
<span>''<span><font color="#9A1900"><nowiki># A utility script to setup the autoconf environment for the first</nowiki></font></span>''</span>
-
# A utility script to setup the autoconf environment for the first
+
<span>''<span><font color="#9A1900"><nowiki># time. Normally this script is run when checking out a</nowiki></font></span>''</span>
-
# time. Normally this script is run when checking out a
+
<span>''<span><font color="#9A1900"><nowiki># development version of the software from SVN/version control.</nowiki></font></span>''</span>
-
# development version of the software from SVN/version control.
+
<span>''<span><font color="#9A1900"><nowiki># Regular users expect to download .tar.gz/tar.bz2 source code</nowiki></font></span>''</span>
-
# Regular users expect to download .tar.gz/tar.bz2 source code
+
<span>''<span><font color="#9A1900"><nowiki># instead, and those should come with with 'configure' script so that</nowiki></font></span>''</span>
-
# instead, and those should come with with 'configure' script so that
+
<span>''<span><font color="#9A1900"><nowiki># users do not require the autoconf/automake tools.</nowiki></font></span>''</span>
-
# users do not require the autoconf/automake tools.
+
<span>''<span><font color="#9A1900"><nowiki>#</nowiki></font></span>''</span>
-
#
+
<span>''<span><font color="#9A1900"><nowiki># Scan configure.ac and copy the necessary macros into aclocal.m4.</nowiki></font></span>''</span>
-
# Scan configure.ac and copy the necessary macros into aclocal.m4.
+
aclocal
-
aclocal
+
<span>''<span><font color="#9A1900"><nowiki># Generate Makefile.in from Makefile.am (and copy necessary support</nowiki></font></span>''</span>
-
# Generate Makefile.in from Makefile.am (and copy necessary support
+
<span>''<span><font color="#9A1900"><nowiki># files, because of -ac).</nowiki></font></span>''</span>
-
# files, because of -ac).
+
automake -ac
-
automake -ac
+
<span>''<span><font color="#9A1900"><nowiki># This step is not normally necessary, but documented here for your</nowiki></font></span>''</span>
-
# This step is not normally necessary, but documented here for your
+
<span>''<span><font color="#9A1900"><nowiki># convenience. The files listed below need to be present to stop</nowiki></font></span>''</span>
-
# convenience. The files listed below need to be present to stop
+
<span>''<span><font color="#9A1900"><nowiki># automake from complaining during various phases of operation.</nowiki></font></span>''</span>
-
# automake from complaining during various phases of operation.
+
<span>''<span><font color="#9A1900"><nowiki>#</nowiki></font></span>''</span>
-
#
+
<span>''<span><font color="#9A1900"><nowiki># You also should consider maintaining these files separately once</nowiki></font></span>''</span>
-
# You also should consider maintaining these files separately once
+
<span>''<span><font color="#9A1900"><nowiki># you release your project into the wild.</nowiki></font></span>''</span>
-
# you release your project into the wild.
+
<span>''<span><font color="#9A1900"><nowiki>#</nowiki></font></span>''</span>
-
#
+
<span>''<span><font color="#9A1900"><nowiki># touch NEWS README AUTHORS ChangeLog</nowiki></font></span>''</span>
-
# touch NEWS README AUTHORS ChangeLog
+
<span>''<span><font color="#9A1900"><nowiki># Run autoconf (creates the 'configure'-script).</nowiki></font></span>''</span>
-
# Run autoconf (creates the 'configure'-script).
+
autoconf
-
autoconf
+
echo <span><font color="#FF0000">'Ready to go (run configure)'</font></span>
-
echo 'Ready to go (run configure)'
+
</tt>
-
</source>
+
In the above code, the line with touch is commented. This can raise a question. There is a target called distcheck that automake creates in the Makefile, and this target checks whether the distribution tarball contains all the necessary files. The files listed on the touch line are necessary (even if empty), so they need to be created at some point. Without these files, the penultimate Makefile complains when running the distcheck-target.
In the above code, the line with touch is commented. This can raise a question. There is a target called distcheck that automake creates in the Makefile, and this target checks whether the distribution tarball contains all the necessary files. The files listed on the touch line are necessary (even if empty), so they need to be created at some point. Without these files, the penultimate Makefile complains when running the distcheck-target.

Learn more about Contributing to the wiki.


Please note that all contributions to maemo.org wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see maemo.org wiki:Copyrights for details). Do not submit copyrighted work without permission!


Cancel | Editing help (opens in new window)

Templates used on this page: