Remove aclocal.m4 from version control

Henceforward, aclocal.m4 will be generated by the 'autoreconf' command.

The 'autoreconf -f -i' command may now emit a warning "Unsupported
attribute section, the test may fail" on some systems, but it will still
generate the proper aclocal.m4 and ./configure files.  To suppress this
warning, simply invoke autoreconf with '-I m4' argument:

    autoreconf -f -i -I m4

The INSTALL.md has been updated accordingly, and a new 'Notes for
Developers' technical document added, explaining the use of aclocal and
autoreconf, and documenting that these warning messages are of no
concern.
This commit is contained in:
Andrew Bettison 2016-01-11 16:40:15 +10:30
parent f6c2706796
commit e51189a1c8
7 changed files with 118 additions and 1137 deletions

1
.gitignore vendored
View File

@ -12,6 +12,7 @@
VERSION.txt
/configure
/autom4te.cache
/aclocal.m4
Makefile
testconfig.sh
config.log

View File

@ -68,7 +68,7 @@ To compile a native (ie, not cross-compiled) Serval DNA from source, run the
following commands:
$ cd $HOME/src/serval-dna
$ autoreconf -f -i
$ autoreconf -f -i -I m4
$ ./configure
$ make
$
@ -76,7 +76,8 @@ following commands:
A successful session should appear something like:
$ cd $HOME/src/serval-dna
$ autoreconf -f -i
$ autoreconf -f -i -I m4
aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in'
$ ./configure
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
@ -109,13 +110,16 @@ On Solaris, the system `make` command may not be GNU Make, and the system
`cc` command may not be GNU Gcc. The following may work:
$ cd $HOME/src/serval-dna
$ autoreconf -f -i
$ autoreconf -f -i -I m4
$ CC=gcc
$ export CC
$ ./configure
$ gmake
$
In the event of a build failure, first consult the [Notes for
Developers](./doc/Development.md), then [contact the Serval Project][].
Built artifacts
---------------
@ -176,8 +180,9 @@ developing test scripts.
Configure
---------
The [doc/Servald-Configuration](./doc/Servald-Configuration.md) document
describes the configuration of Serval DNA in detail.
Before running `servald`, it must be configured correctly. The
[doc/Servald-Configuration](./doc/Servald-Configuration.md) document describes
the configuration of Serval DNA in detail.
About the examples
------------------
@ -210,6 +215,7 @@ This document is available under the [Creative Commons Attribution 4.0 Internati
[gcc 4.7]: http://gcc.gnu.org/gcc-4.7/
[OpenWRT]: ./doc/OpenWRT.md
[Serval Mesh Extender]: http://developer.servalproject.org/dokuwiki/doku.php?id=content:meshextender:
[contact the Serval Project]: http://developer.servalproject.org/dokuwiki/doku.php?id=content:contact
[RFD900]: http://rfdesign.com.au/index.php/rfd900
[Mesh Potato]: http://villagetelco.org/mesh-potato/
[Commotion Wireless]: http://commotionwireless.net/

View File

@ -14,14 +14,17 @@ participate in the [Serval mesh network][].
Download, build and test
------------------------
[INSTALL.md](./INSTALL.md) contains instructions for downloading, building and
testing Serval DNA on most Linux and some Linux-like platforms.
* [INSTALL.md](./INSTALL.md) contains instructions for downloading, building
and testing Serval DNA on most Linux and some Linux-like platforms.
* [Notes for Developers](./doc/Development.md) contains useful information for
developers of Serval DNA, which may also help resolve build issues.
Configuration
-------------
[doc/Servald-Configuration.md](./doc/Servald-Configuration.md) describes how to
set up and run a Serval DNA daemon.
* [doc/Servald-Configuration.md](./doc/Servald-Configuration.md) describes how
to set up and run a Serval DNA daemon.
Documentation
-------------

1117
aclocal.m4 vendored

File diff suppressed because it is too large Load Diff

92
doc/Development.md Normal file
View File

@ -0,0 +1,92 @@
Notes for Serval DNA Developers
===============================
[Serval Project][], January 2016
Introduction
------------
This document is intended for all developers of [Serval DNA][], and also for
non-developers who are experiencing errors in the [build][] process.
Autoconf
--------
The [configure.in](../configure.in) file is an [autoconf][] script that
contains instructions for adapting the build of Serval DNA to different
platforms and CPU architectures. This script makes use of many [GNU M4][]
macros, each of which tests an aspect of the build environment, such as the
make and version of the C compiler (eg, [GCC][], [Clang][]), the availability
of headers, functions and system calls in the standard library, and so forth.
Most of these M4 macros are standard, either supplied with [autoconf][] or from
the [autoconf macro archive][]. Some macros are specific to Serval DNA, either
to improve on a standard macro or perform a test for which no standard macro
exists. These extra macros are locally defined in files within the [m4](../m4)
sub-directory.
The [autoreconf][] command used in the [build][] instructions generates an
`aclocal.m4` file that includes all the necessary files from the [m4](../m4)
directory. In turn, it then includes this `aclocal.m4` file when invoking [GNU
M4][] to convert the [configure.in](../configure.in) file into the
`./configure` script.
Internally, [autoconf][] generates the `aclocal.m4` file by invoking the
[aclocal][] utility. Used without arguments, [aclocal][] may emit some warning
messages that look like this:
$ cd serval-dna
$ aclocal
aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in'
configure.in:18: warning: Unsupported attribute section, the test may fail
../../lib/autoconf/lang.m4:224: AC_LANG_SOURCE is expanded from...
../../lib/autoconf/lang.m4:241: AC_LANG_PROGRAM is expanded from...
../../lib/autoconf/lang.m4:193: AC_LANG_CONFTEST is expanded from...
../../lib/autoconf/general.m4:2672: _AC_LINK_IFELSE is expanded from...
../../lib/autoconf/general.m4:2689: AC_LINK_IFELSE is expanded from...
../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from...
../../lib/autoconf/general.m4:2042: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:2063: AC_CACHE_CHECK is expanded from...
/usr/share/aclocal/ax_gcc_var_attribute.m4:57: AX_GCC_VAR_ATTRIBUTE is expanded from...
configure.in:18: the top level
$
These messages are harmless; the correct `aclocal.m4` is still generated. To
suppress most of these messages from the output of [aclocal][] and
[autoreconf][], give the `-I m4` option:
$ cd serval-dna
$ autoreconf -f -i -I m4
aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in'
$
About the examples
------------------
The examples in this document are [Bourne shell][] commands, using standard
quoting and variable expansion. Commands issued by the user are prefixed with
the shell prompt `$` to distinguish them from the output of the command.
Single and double quotes around arguments are part of the shell syntax, so are
not seen by the command. Lines ending in backslash `\` continue the command on
the next line.
The directory paths used in the examples are for illustrative purposes only,
and may need to be changed for your particular circumstances.
-----
**Copyright 2015 Serval Project Inc.**
![CC-BY-4.0](./cc-by-4.0.png)
Available under the [Creative Commons Attribution 4.0 International licence][CC BY 4.0].
[Serval Project]: http://www.servalproject.org/
[CC BY 4.0]: ../LICENSE-DOCUMENTATION.md
[Serval DNA]: ../README.md
[autoconf]: http://www.gnu.org/software/autoconf/autoconf.html
[autoconf macro archive]: http://www.gnu.org/software/autoconf-archive/
[GNU M4]: http://www.gnu.org/software/m4/m4.html
[GCC]: https://gcc.gnu.org/
[Clang]: http://clang.llvm.org/
[build]: ../INSTALL.md
[aclocal]: https://www.gnu.org/software/automake/manual/html_node/aclocal-Invocation.html
[autoreconf]: https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf.html#autoreconf-Invocation
[Bourne shell]: http://en.wikipedia.org/wiki/Bourne_shell

View File

@ -15,6 +15,9 @@ DNA][] component of the [Serval mesh network][].
persistent configuration system and its command-line API, the built-in
system file paths, daemon instances and basic network configuration.
* [Notes for Developers](./Development.md) contains information of use to
developers of Serval DNA and to those experiencing build problems.
* [MDP Packet Filtering](./Mesh-Packet-Filtering.md) describes the
configuration options and rules file syntax for filtering incoming and
outgoing MDP packets.

View File

@ -1,14 +1,7 @@
The Autoconf macros in this directory were copied from the GNU Autoconf Archive
http://www.gnu.org/software/autoconf-archive/
http://www.gnu.org/software/autoconf-archive/, and modified as needed.
To use them, simply concatenate them all into the aclocal.m4 file in the
project root directory:
The autoreconf(1) command generates an aclocal.m4 file, which includes all the
files in this directory that define macros that are used by configure.in.
cd batphone/jni/servald
cat m4/* >aclocal.m4
Then you can run autoconf with no special arguments:
autoconf
./configure
make
See INSTALL.md for more information.