The file CONTRIBUTE is primarily for user who wants to help to improve
the libcoap project. Please expand this file with helpful informations
for anybody who is interests in helping.
Signed-off-by: Olaf Bergmann <bergmann@tzi.org>
Simplifying the various definition for the currently supported
platforms. These are now Linux, Solaris and Darwin platforms. This will
hopefully grow up the next time but for now we only handle some extra
CFLAGS definitions and one extra define for Darwin. So there is not
really a need to handle this in two extra 'case switch' loops.
We have there some additional CFLAGS (right now only extra compiler
switches). There is some "special" handling needed for getting this
info into the doxygen configuration. This switches are related on the
platform the build is running.
With this change doxygen will create SVG graphics (instead of png) which
are zoomable due these are vector graphics.
Suggested-by: Bill Bennet <william.bennett@netcommwireless.com>
This commit is based on a suggestion from Bill Bennet.
With this change doxygen is also creating a call and caller dependency
graphic for global functions. This is helpful for understanding the mode
of action inside the libcoap.
Suggested-by: Bill Bennet <william.bennett@netcommwireless.com>
The build of the examples is complaining about a function that are not
inline'd. The compiler is mentioned this because we use the '-I'
directive for pointing to the header files. Just say the compiler also
that the header files are system headers so the false positive is going
away.
bzip2 creates archives that are better compressed than the default gzip
format. So running 'make dist' is creating a libcoap-VER.tar.bz2, you
can create a *.tar.gz by running 'make dist-gzip' if you prefer.
The created bzip2 archive is currently 27% smaller than the respective
gzip archive.
$ ls -sh libcoap-4.1.2.tar.*
372K libcoap-4.1.2.tar.bz2
476K libcoap-4.1.2.tar.gz
The make target for creating the distribution tarball (make dist) was
broken some commits ago within the changes in the doc/ subdirectory. The
reason for this is that simple Doxygen has to be runs ones before the
automatism can pick up the files. automake uses dist_pkgdist_DATA as
trigger. So we have to use that variable.
Changing up the makefile template so the call for 'dist_pkgdist_DATA'
*and* 'all-local' is calling 'doxfile.stamp' so fist Doxygen is running.
By doing this also clean up a little bit and prepare the build for be
able to run out of the tree.
The Makefile uses ctags to build a list of global identifiers
that should be exported in a dynamic library. As ctags has a
very simplistic way of handling preprocessor conditionals, it
cannot detect symbols that are not present on platform POSIX.
In particular, the Solaris ld chokes on the following:
Undefined first referenced
symbol in file
coap_pdu_from_pbuf ../.libs/libcoap-1.0.so
coap_packet_extract_pbuf ../.libs/libcoap-1.0.so
The easiest way to fix this is to tell ctags that is should
ignore these identifiers with option -I.
For POSIX, coap_tick_t is defined as unsigned long to support
timestamps in wallclock time. The rd uses ticks to make node
identifiers locally unique. As this is just one part of the
generated identifier, the timestamp's lower 32 bits are
sufficient.
After including the doc/ and the tests/ folder under the hood of the
autotools now adding the examples/ foolder too.
The user is now able to add the build of the example binarys if
configure is called with '--enable-examples' as option. The example
binarys will not be build by default!
Currently only 'coap-client', 'coap-server' and 'rd' is build.
The last changes to include/coap/{net,resource}.h and src/{net,resource}.c
create new symbols that exported via the libcoap library. By this a
update for the map file is needed.
In addition to e297a0ca7671de08ac5f
Calling a shellscript within a Makefile is not POSIX compliant, it's
possible that it would not work on all platforms. But using the check
for ctags as a seperate target within the main Makefile is no problem
and easy to change.
This commit is a addition to 101efbfe69
coap_malloc_type() and coap_free_type() provide an abstract API for
dynamic memory management on different platforms. resource.c still
is in transition and needs more cleanup.
The CoAP resource management is based on uthash and utlist for
platform POSIX but used a custom list implementation for Contiki.
This modification replaces the list handling by utlist macros
entirely. A set of convenience macros has been defined to access
the resources stored in a CoAP context with respect to the
preprocessor symbol COAP_RESOURCES_NOHASH.
The parser iterator did not break up URIs correctly. As this
cannot be fixed easily, the parser iterator has been removed.
coap_split_path_impl() now operates directly on the message
buffer instead of the iterator abstraction.
This bug also caused t_parse_uri12() in the URI test suite
to fail.