Many modules have subdirectories. Often these subdirectories should only
be included under certain circumstances. Modules that use submodules
currently need to use this pattern:
```make
DIRS = …
all: $(BINDIR)$(MODULE).a
@for i in $(DIRS) ; do $(MAKE) -C $$i ; done ;
include $(RIOTBASE)/Makefile.base
clean::
@for i in $(DIRS) ; do $(MAKE) -C $$i clean ; done ;
```
This PR moves the `all:` and `clean::` boilerplate into `Makefile.base`.
For many modules the `Makefile` contains a line like
```
MODULE:=$(shell basename $(CURDIR))
```
This conclusively shows that we do not have to set the module name
manually.
This PR removes the need to set the module name manually, if it is the
same as the basename. E.g. for `…/sys/vtimer/Makefile` the variable
make `MODULE` will still be `vtimer`, because it is the basename of the
Makefile.
Creates file structure that maps files to licenses by grepping for
license patterns (patterns for licenses found in RIOT included).
Sets exit code to 1 if an unknown license header is detected.
We have sane defaults for `ELFFILE` and `HEXFILE` in the root
`Makefile.include`. The local definition for `ELFFILE` of mbed_lpc1768's
`Makefile.include` was wrong, which caused e.g. `make buildsize` to
fail.
The scheduling gets activated by `kernel_init()` calling
`cpu_switch_context_exit()`. Before this `sched_run()` won't be called.
When it gets called, at least the main thread and the idle thread are
spawned. The idle thread won't die / get killed. So there always is at
least one thread in `runqueue_bitcache`.
Closes#19.
In the current implementation the data offset is coded into an uint8_t.
Of this uint8_t only 3 bits apply for the data offset.
The remaining bits represent reserved flags for future use.
However, a proper bit masking is forgotten in order
to obtain the data offset part of this uint8_t.
Therefore, defining this uint8_t as a bit field allows a more convenient
method of access.
When accessing the length field of an ipv6_header a byte order switch (host -> network) is necessary.
Otherwise, it breaks calculations or the checksum and other tcp related computations.
Furthermore, when writing to ipv6_header->length it is important to switch this
from host byte order to network byte order.
While tracking down an error in #1253 I ameded newlib a bit to be
slightly better debuggable. Some lengthy macros were removed in favor of
proper functions.
The parameter passing was wrong before (because of a bug in newlib),
because the user provided CFLAGS were overwritten in the subfolders.
It is kinda strange that this did not cause errors.
The standalone version of the toolchain script was deleted, because it
is not reasonable to maintain two scripts.
send_tcp returns either the length of the sent data,
or -1, if an error was detected.
The current implementation checks for != 1.
This results in executing the error case, although
there was semantically no error returned from send_tcp.
This enum is also used to set the tcp flags within a tcp header.
With the current values in this enum, wireshark is not able to
recognize the tcp segments as their actual tcp type,
and thus odd messages in wireshark appear.
destiny: reusing tcp flags for combinations