Prepare for handling pkg state with files. So it requires having the
path defined before declaring targets. In addition, it cleans up the
old git-download target.
The build system contains several instances of
INCLUDES += -I$(RIOTBASE)/sys/posix/include
This is bypassing the module management system, by directly accesing
headers without depending on a module. The module is the posix module.
That line is also added when one of the posix_* modules is requested.
According to the docs, the posix module provides headers only, but in
reality there is also inet.c.
This patch:
- Moves `inet.c` into `posix_inet`, leaving `posix` as a headers-only
module.
- Rename `posix` as `posix_headers` to make it clear the module only
includes headers.
- Makes `posix_*` modules depend on `posix_headers`, thus removing the
explicit `INCLUDES+=...` in `sys/Makefile.include`.
- Ocurrences of `INCLUDES+=...` are replaced by an explicit dependency
on `posix_headers`.
Currently, the tcp and udp implementations are bound to each other in a
module called *destiny*. Thus, when using only one of them then the
other one gets also compiled into the binary and initialized,
which results in unnecessary RAM usage and workload for the CPU.
The approach in this PR defines a common module named *socket_base*,
which contains functions used by the posix layer. Compiled by it's own,
those functions return negative error codes, to symbolize upper layers
that they are not supported. When also including the modules *udp* or
*tcp* respectively, functions from *socket_base* get overwritten with the
correct functionality.
Defining *udp* or *tcp* in a Makefile also includes *socket_base*.
Defining *pnet* in a Makefile also includes *socket_base*.
Apparently all that whitespace was needed after all.
Next convert to new-style function declrations.
Also, don't prevent make from noticing a failing patch.
Fixes the following error:
make[1]: Entering directory '/foo/RIOT/pkg/libcoap'
git clone http://git.code.sf.net/p/libcoap/code /foo/RIOT/pkg/libcoap/libcoap && \
cd /foo/RIOT/pkg/libcoap/libcoap && git checkout 89acaa6775ca3a4aedea510557e6b9c0c01fa5db
fatal: destination path '/foo/RIOT/pkg/libcoap/libcoap' already exists and is not an empty directory.
Makefile:25: recipe for target '/foo/RIOT/pkg/libcoap/libcoap' failed