diff --git a/BUILD.txt b/BUILD.txt deleted file mode 100644 index 474719cb..00000000 --- a/BUILD.txt +++ /dev/null @@ -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 - diff --git a/INSTALL.md b/INSTALL.md index 2cb375ed..65fab5d0 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -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 `` `` + * network services library `libnsl` and headers + * socket library `libsocket` and headers + * dynamic link library `libdl` and header `` + * Native Posix Threads Library `libpthread` and header `` + * 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/ diff --git a/TODO b/TODO deleted file mode 100644 index 230be036..00000000 --- a/TODO +++ /dev/null @@ -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