Move information from BUILD.txt into INSTALL.md

Also remove out of date TODO file, no longer relevant.
This commit is contained in:
Andrew Bettison 2012-10-30 14:49:50 +10:30
parent 7cae7f5324
commit a1cc415a4f
3 changed files with 56 additions and 60 deletions

View File

@ -1,18 +0,0 @@
The test call application requires the following packages
- Port audio - http://www.portaudio.com
- Secret Rabbit Code - http://www.mega-nerd.com/SRC/
- SpanDSP - http://www.soft-switch.org/
- Codec2 - http://www.rowetel.com/blog/?page_id=452
(svn co https://freetel.svn.sourceforge.net/svnroot/freetel/codec2 codec2)
The test call application can be disabled by adding --disable-voiptest to the
configure line.
To build run the following commands..
autoreconf -f
# May be called libtoolize
glibtoolize -i
./configure
make

View File

@ -4,7 +4,9 @@ Serval DNA Build and Test
To build
--------
autoconf
Run the following commands:
autoreconf -f -i
./configure
make
@ -19,9 +21,33 @@ The Serval DNA code successfully builds for the following platforms:
* Mac OS X 10.7 “Lion”, x86\_64, [gcc 4.2][] available in [Xcode 4][] 3.2.6
* Oracle SunOs 5.10 (Solaris), Sparc, [gcc 4.4][]
Built artefacts
Dependencies
------------
The dependencies for build are expressed in [configure.in](./configure.in).
Most mandatory dependencies are present by default in a conventional Linux
development environment.
Mandatory dependencies:
* standard C library `libc` and standard headers
* standard math library `libm` and headers `<math.h>` `<float.h>`
* network services library `libnsl` and headers
* socket library `libsocket` and headers
* dynamic link library `libdl` and header `<dlfcn.h>`
* Native Posix Threads Library `libpthread` and header `<pthread.h>`
* on Solaris, the realtime library `librt` (for the `nanosleep()` function)
Optional:
* Java compiler and SDK (mandatory for Android's **libservald.so**)
* ALSA sound library and headers (only present on Linux not Android)
Built artifacts
---------------
The build process produces the following artifacts:
* **servald** is the main executable.
* **libservald.so** is a shared library built only for Android, which is linked
@ -36,8 +62,33 @@ Built artefacts
entry points to functions for managing the client end of a monitor connection
with the servald daemon.
Testing
-------
Voice call test
---------------
If the following packages are present then `./configure` will set the
`HAVE_VOIPTEST` macro and build **servald** with its `phone` command available
for performing voice call testing:
* [Port audio](http://www.portaudio.com)
* [Secret Rabbit Code](http://www.mega-nerd.com/SRC/) (a.k.a. Sample Rate
Convert) by Erik de Castor Lopo
* [SpanDSP](http://www.soft-switch.org/) by Steve Underwood
* [Codec2](http://www.rowetel.com/blog/?page_id=452) by Dave Rowe of Rowetel
The Codec2 source code can be fetched using [Subversion][]:
svn checkout https://freetel.svn.sourceforge.net/svnroot/freetel/codec2 codec2
The following options can be used to control the `HAVE_VOIPTEST` macro:
* `./configure --enable-voiptest` will set `HAVE_VOIPTEST` and fail if the
necessary packages are not present
* `./configure --disable-voiptest` will unset `HAVE_VOIPTEST` and will not
check for presence of the above packages
Test scripts
------------
The scripts in the [tests](./tests/) directory require [Bash][] version 3.2.48
or later. To run the tests, build the `servald` executable natively using [GNU
@ -74,3 +125,4 @@ directory.
[JNI]: http://en.wikipedia.org/wiki/Java_Native_Interface
[Bash]: http://en.wikipedia.org/wiki/Bash_(Unix_shell)
[GNU make]: http://www.gnu.org/software/make/
[Subversion]: http://subversion.apache.org/

38
TODO
View File

@ -1,38 +0,0 @@
Pending:
- Parallelise large-value reads and writes
- Fix out-of-order problem for writing large values to stdout (file is fine)
- Non-mmap() mode for Mesh Potato and JFFS
- Return early if all peers have responded (what about broadcast address virtual-peers?)
- Activation flag in HLR records so that create without further action does not make a completed record.
- async mode: fork()/background after first response with file output (for pipelining with MP IVRs)
- async mode: work with broadcast requests
- async mode: work with instance=-1 requests
- SID based Peer targeting, e.g., for writeItem
- cache peer:SID mappings to allow later unicasting
- consider NACK for peers with no results to return
Done:
20100623 - testdna script now uses /bin/sh instead of /bin/csh facilitating testing on more embedded targets
20100623 - Retries for requests (already deals with SET, including multi-packet SET?)
20100623 - Multi-packet GET retry policy (okay, it is as bad as TFTP with retries, but that is probably okay for now,
at least we have the potential to pipe-line)
20100623 - Multi-packet set doesn't send multiple packets (ok to confirm each in turn)
20100623 - Output to file confirmed functional
20100623 - BATMAN peer list retrieval
20100623 - excluding previous responders from re-broadcast requests
20100611 - Added code for template based file output when reading variables
20100611 - Added code to allow user specified peers
20100601 - Space retries properly in time, and allow multiple recvfroms() per retry.
20100601 - Do not request results from peers that have already responsed.
20100601 - Ensure broadcasts do not result in duplicate identical results
20100601 - broadcast get: compulsory retry regime
20100531 - Simulated packet loss / BER for server for testing.
20100531 - "response set" structure for efficient chaining of responses, as well as making it easier to manage retries
20100529 - SET working (replace and noreplace modes)
20100529 - Get rid of unnecessary timeouts
20100529 - Regression test script
20100529 - Batch-mode responses (for instance=-1)
20100529 - Multi-instance requests now working (and with no unnecessary delays)
20100529 - Search by SID now works
20100529 - Reading all instances of a variable by SID without timeout, but actually reading them all