Files
libcoap/Makefile.am
T
Olaf Bergmann 3d3eb02ad8 net.[hc]: allow multiple endpoints in single context
Endpoints will be attached to the context object using a new function
coap_attach_endpoint(). The sockfd component has been removed from
coap_context_t as it is accessible by the endpoint.
coap_endpoint_t has a new field 'context' that refers to the context
object the respective endpoint has been associated with, or NULL
if it is not attached to any context. An endpoint can be attached
to at least one context at a time.
2016-04-08 15:14:20 +02:00

162 lines
5.5 KiB
Makefile

# Makefile.am for libcoap
#
# Copyright (C) 2010-2016 Olaf Bergmann <bergmann@tzi.org>
# (C) 2015 Carsten Schoenert <c.schoenert@t-online.de>
#
# This file is part of the CoAP C library libcoap. Please see README and
# COPYING for terms of use.
## Place generated object files (.o) into the same directory as their source
## files, in order to avoid collisions when non-recursive make is used.
AUTOMAKE_OPTIONS = subdir-objects
ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4
## Additional files for the distribution archive
EXTRA_DIST = \
CONTRIBUTE \
TODO \
$(pkgconfig_DATA).in \
libcoap-$(LIBCOAP_API_VERSION).map \
libcoap-$(LIBCOAP_API_VERSION).sym \
examples/coap_list.h \
tests/test_options.h \
tests/test_pdu.h \
tests/test_error_response.h \
tests/test_sendqueue.h \
tests/test_uri.h \
tests/test_wellknown.h
AM_CFLAGS = -I @top_builddir@/include/coap/ $(WARNING_CFLAGS) -std=c99
SUBDIRS = . $(DOC_DIR) tests examples
## Define a libtool archive target "libcoap-@LIBCOAP_API_VERSION@.la", with
## @LIBCOAP_API_VERSION@ substituted into the generated Makefile at configure
## time.
## The libtool archive file (.la) will be installed into the directory named
## by the predefined variable $(bindir), along with the actual shared library
## file (.so).
lib_LTLIBRARIES = libcoap-@LIBCOAP_API_VERSION@.la
libcoap_@LIBCOAP_API_VERSION@_la_CFLAGS = \
-fPIC \
-fPIE \
$(AM_CFLAGS)
## Platform-specific sources are located in platform_src
platform_src = src/platform/@PLATFORM@
## Define the source file list for the "libcoap.la" target.
## Note that it is not necessary to list header files which are already listed
## elsewhere in a _HEADERS variable assignment.
libcoap_@LIBCOAP_API_VERSION@_la_SOURCES = \
src/address.c \
src/async.c \
src/block.c \
src/coap_time.c \
src/debug.c \
src/encode.c \
src/hashkey.c \
src/mem.c \
src/net.c \
src/option.c \
src/pdu.c \
src/resource.c \
src/str.c \
src/subscribe.c \
src/uri.c \
$(platform_src)/coap_io.c \
$(platform_src)/prng.c
## Define the list of public header files and their install location.
## The list defined here will be used within the include/Makefile.am
## and is only a variable because the content is needed also for the
## generating of the symbol mapping file.
libcoap_includedir = $(includedir)/coap/
libcoap_include_HEADERS = \
include/coap/address.h \
include/coap/async.h \
include/coap/bits.h \
include/coap/block.h \
include/coap/coap.h \
include/coap/coap_io.h \
include/coap/coap_time.h \
include/coap/debug.h \
include/coap/encode.h \
include/coap/hashkey.h \
include/coap/libcoap.h \
include/coap/mem.h \
include/coap/net.h \
include/coap/option.h \
include/coap/pdu.h \
include/coap/prng.h \
include/coap/resource.h \
include/coap/str.h \
include/coap/subscribe.h \
include/coap/uri.h \
include/coap/uthash.h \
include/coap/utlist.h
# If there is a API change to something $(LIBCOAP_API_VERSION) > 1 the install
# prefix for the header files has to change to not conflict the older version
# if the user want's to install both versions. There will be something used like
# libcoap_include_HEADERS = \
# include/coap-$(LIBCOAP_API_VERSION)/*
## Instruct libtool to include API version information in the generated shared
## library file (.so). The library ABI version will later defined in configure.ac,
## so that all version information is kept in one place.
libcoap_@LIBCOAP_API_VERSION@_la_LDFLAGS = \
-version-info $(LT_LIBCOAP_CURRENT):$(LT_LIBCOAP_REVISION):$(LT_LIBCOAP_AGE) \
@libcoap_SYMBOLS@ \
-pie
CTAGS_IGNORE=-I "coap_packet_extract_pbuf coap_pdu_from_pbuf"
.PHONY: update-map-file check_ctags
# This helper is called by libcoap-$(LIBCOAP_API_VERSION).{map,sym} to see if
# configure has detected a usable version of the ctags program and aborts if not.
check_ctags:
@if [ "$(CTAGS_PROG)" = "" ]; then \
echo ;\
echo "There was no ctags program found by the configure script!" ;\
echo "ctags is needed for running this target! Please note the warning about the missed ctags program of the configure script." ;\
echo ;\
exit 1;\
fi
## Helper target to generate the symbol table needed by libtool.
## The .map format is used when ld supports linker scripts, otherwise
## it must fall back to a plain symbol file.
update-map-file: libcoap-$(LIBCOAP_API_VERSION).map libcoap-$(LIBCOAP_API_VERSION).sym
libcoap-$(LIBCOAP_API_VERSION).map: check_ctags $(libcoap_include_HEADERS)
( echo "VER_$(LIBCOAP_API_VERSION) {" ; \
echo "global:" ; \
ctags $(CTAGS_IGNORE) -f - --c-kinds=p $(libcoap_include_HEADERS) | awk '/^coap_/ { print " " $$1 ";" }' | sort ; \
echo "local:" ; \
echo " *;" ; \
echo "};" ) > $@.new
mv $@.new $@
libcoap-$(LIBCOAP_API_VERSION).sym: check_ctags $(libcoap_include_HEADERS)
( ctags $(CTAGS_IGNORE) -f - --c-kinds=p $(libcoap_include_HEADERS) | awk '/^coap_/ { print $$1 }' | sort ) \
> $@.new
mv $@.new $@
## Install the generated pkg-config file (.pc) into the expected location for
## architecture-dependent package configuration information. Occasionally,
## pkg-config files are also used for architecture-independent data packages,
## in which case the correct install location would be $(datadir)/pkgconfig.
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libcoap-$(LIBCOAP_API_VERSION).pc
## Define an independent executable script for inclusion in the distribution
## archive. However, it will not be installed on an end user's system due to
## the noinst_ prefix.
dist_noinst_SCRIPTS = autogen.sh