remove -vsn attributes to ensure the MD5 sum is used for all modules
Merge pull request #176 from richcarl/remove-vsn-attributes

remove -vsn attributes to ensure the MD5 sum is used for all modules
fix broken rebar build

In commit cb493908 I broke the ability for yaws to be used as a rebar
dependency for other projects. Move src/yaws.app.src.in back to
src/yaws.app.src. Move the code in rebar.config.script to
src/yaws.app.src.script file to process the app dependencies for
src/yaws.app.src. Change src/Makefile to process app dependencies when
creating ebin/yaws.app.
convert non-ASCII characters in json2 decoding

Non-ASCII characters in JSON strings are now decoded to UTF-8.
update known dialyzer warnings
Massive autotools refactoring & cleanup

Now, all makefile are generated by automake. This way, many things are more
configurable and maintainable.

Main (visible) changes:

 * Now, you can configure and compile Yaws outside the source directory. It is
   also possible to generate an archive for distribution, using the 'dist' target
   (from now, 'distcheck' target should always pass).

 * We track .erl dependencies using '-M*' flags of ERLC.

 * generated header 'yaws_configure.hrl' disappears. HAVE_SENDFILE,
   HAVE_ERLANG_SENDFILE and HAVE_CRYPTO_HASH macros are defined in ERLC flags.

 * yaws_generated:localinstall/0 function disappears (see comment about local
   install).

 * To create a windows installer, we just need to run the 'mkinstaller'
   target. Read win32/README.developer for details.

 * We use standard Erlang installation path for Yaws, relative to the erlang
   library directory (/usr/lib/erlang/lib). Now, '$(libdir)/yaws' is a link. We
   do the same for yapp application.

 * "local install" was removed. Now, to do a "developer install", we just need
   to set a prefix during the project configuration using --prefix option. So,
   you need to install yaws to test it.

 * DESTDIR variable is still supported.

 * scripts/make-release was rewritten to use 'dist' and 'mkinstaller' targets.

 * Installation of Yaws applications has slightly changed. Now they are
   installed in their own directory, in '$(localstatedir)/yaws'. So, chat
   application will be installed in '$(localstatedir)/yaws/chat', with 'www' and
   'ebin' subdirs.

Main targets (others than all/install/clean....):

  * all           : compile Yaws
  * debug         : compile Yaws with debug flags
  * clean         : remove files produced by all or debug target
  * install       : do a proper install of Yaws
  * doc or docs   : build the documentation
  * check or test : launch tests
  * cleantest     : remove files produced by check target
  * dialyzer      : run dialyzer on Yaws
  * mkinstaller   : build an installer for windows
  * cleaninstaller: remove files produced by mkinstaller target
  * apps          : compile Yaws applications (chat,mail,wiki,yapp)
  * cleanapps     : remove files produced by apps target
  * installapps   : install Yaws applications
  * fullinstall   : install + installapps
  * fullclean     : clean + cleantest + cleanapps + cleaninstaller

  To install an application, run: (cd application/{APP} && make install)

Of course, many things can be customized during configuration and Rebar still
works as expected. To do an install with (almost) the same tree than with
previous of Yaws, do:

  $> ./configure yawsdir=${prefix}/lib/yaws yappdir=${prefix}/lib/yapp \
        --sysconfdir=/etc --localstatedir=/var
  $> make install

Here is the default installation tree on my debian:

   usr
    ├── lib
    │   └── erlang
    │       └── lib
    │           ├── yapp-0.4.2
    │           │   ├── doc/
    │           │   ├── ebin/
    │           │   ├── examples/
    │           │   └── priv/docroot/
    │           └── yaws-1.98
    │               ├── ebin/
    │               ├── include/
    │               └── priv/
    │               ├── examples/
    │
    ├── local/bin/yaws
    │
    ├── local/etc/init.d/yaws
    ├── local/etc/yaws/
    ├── local/etc/mail/yaws-webmail.conf
    │
    ├── local/lib/pkgconfig/yaws.pc
    ├── local/lib/yapp -> /usr/lib/erlang/lib/yapp-0.4.2
    ├── local/lib/yaws -> /usr/lib/erlang/lib/yaws-1.98
    │
    ├── local/share/doc/yaws/yaws.pdf
    ├── local/share/man/{man1,man5}/
    │
    ├── local/var/log/yaws
    ├── local/var/run/yaws
    └── local/var/yaws
        ├── chat/{ebin,www}
        ├── mail/{ebin,www}
        ├── wiki/{ebin,www}
        └── www
Fix a backward compatibility bug with inet:parse_strict_address/1

inet:parse_strict_address/1 was introduced in R16. For previous releases, we
need to rely on inet_parse:ipv4strict_address/1 and
inet_parse:ipv6strict_address/1 functions.
Do not set recbuf by default on listening sockets

This patch removes a bug I experienced on FreeBSD during tests on the loopback
interface because of its MTU. So, I don't really know why that happens on
FreeBSD and not on Linux, but because loopback MTU is greater than the recbuf
value (16K on loopback vs 8k in Yaws), if a client sends data, Yaws will read
them very slowly.

Furthermore, there is no good reason to tweak this value by default. And, if
required, it is always possible to configure it.
Add yaws:hup/0 to allow Yaws reloads from another erlang module
Handle a bug in unicode module in releases R14B04 and previous

The code points 16#FFFE and 16#FFFF (not assigned but valid) are considered as
invalid in releases R14B04 and previous. So for these releases, the websockets
testsuite always failed. This commit worked around the bug.

It was fixed in OTP with the commit 34db767655:
   https://github.com/erlang/otp/commit/34db767655
Add systemd service script and fix other init scripts

Other changes:
 * Replace README by README.md
 * Add travis configuration
 * Fix testsuite and dependencies detection
Keep the original request during an internal redirection
Relax rules that allow the parsing of a query string or an urlencoded body

The parsing of a query string or an urlencoded body was allowed, respectively,
for 'GET' or 'POST' requests. Now, this can be done for any kind of requests. Of
course, a body is parsed only if its Content-Type is set to
'x-www-form-urlencoded'.

In the same way, a body can now be parsed as a multipart content if its
Content-Type is set to 'multipart/form-data', regardless of the request type.

As a consequence of these changes, yaws_api:getvar/2 now returns the merged
result of values found in the query string and in the urlencoded body (if any).
Check #deflate.min_compress_size option for large files

Now large files are compressed only if their size is greater than
the #deflate.min_compress_size option.
Add support of wildcards and relative paths to load sub-config files.

Now, subconfig and subconfigdir targets accept relative paths, searched
relatively to the configuration location. So for the configuration
"/etc/yaws/yaws.conf", all relative files and directories will be searched from
"/etc/yaws". Of course, absolute paths are always supported.

furthermore, the subconfig target can take Unix-style wildcard strings to
include several files at once. See filelib:wildcard/1 for details.

Last, hidden files, starting by a dot, will be ignored in any cases.
Add the Travis build status in Readme.md
Remove support of wildcards for R15B03 and previous

A bug in filelib:wildcard/1,2 was fixed in R16B:
  https://github.com/erlang/otp/commit/70b5e24c

So, wildcard strings in the configuration file are now forbidden for older
releases.