mirror of
https://github.com/obgm/libcoap.git
synced 2026-11-03 00:15:49 +03:00
Add in new ./configure options --enable-client-mode or --enable-server-mode which by default are enabled. If --disable-client-mode is set, then disable all the client specific code. [ COAP_CLIENT_SUPPORT is not defined ] If --disable-server-mode is set, then disable all the server specific code. [ COAP_SERVER_SUPPORT is not defined ] Functions and variables are only #ifdef'd out in the include/coap3/*_internal.h files. They cannot be #ifdef'd out in the other include files as COAP_CLIENT_SUPPORT and COAP_SERVER_SUPPORT are not available for application compilations. The result of this is if, say, client only API functons are used in a server application and COAP_CLIENT_SUPPORT is not defined, there will be linking issues (missing functions). Providing stub functions unecessarily increases the code size. For coap-server, if it is able to provide proxy support, requires both COAP_SERVER_SUPPORT and COAP_CLIENT_SUPPORT to set up the ongoing sessions. So, the build environment deliberatly sets SERVER_CAN_PROXY=0 if COAP_CLIENT_SUPPORT is not available to allow linking. Some of the tests have to be disabled if COAP_SERVER_SUPPORT or COAP_CLIENT_SUPPORT is not set. Code size change indications text data bss sum filename 155912 1728 12080 169720 libcoap-3-notls.a 138300 1728 12080 152108 libcoap-3-notls.a --disable-client-mode 106734 1632 10304 118670 libcoap-3-notls.a --disable-server-mode 180485 1733 12080 194298 libcoap-3-openssl.a 160306 1733 12080 174119 libcoap-3-openssl.a --disable-client-mode 125543 1637 10304 137484 libcoap-3-openssl.a --disable-server-mode 181755 1728 12080 195563 libcoap-3-gnutls.a 160972 1728 12080 174780 libcoap-3-gnutls.a --disable-client-mode 127178 1632 10304 139114 libcoap-3-gnutls.a --disable-server-mode 165879 1855 12128 179862 libcoap-3-tinydtls.a 147022 1855 12128 161005 libcoap-3-tinydtls.a --disable-client-mode 115618 1759 10352 127729 libcoap-3-tinydtls.a --disable-server-mode 171690 1728 13744 187162 libcoap-3-mbedtls.a 152099 1728 13712 167539 libcoap-3-mbedtls.a --disable-client-mode 118786 1632 11984 132402 libcoap-3-mbedtls.a --disable-server-mode
130 lines
4.1 KiB
Makefile
130 lines
4.1 KiB
Makefile
# examples/Makefile.am
|
|
#
|
|
# Copyright (C) 2015 Carsten Schoenert <c.schoenert@t-online.de>
|
|
# Copyright (C) 2018-2021 Jon Shallow <supjps-libcoap@jpshallow.com>
|
|
#
|
|
# SPDX-License-Identifier: BSD-2-Clause
|
|
#
|
|
# This file is part of the CoAP C library libcoap. Please see README and
|
|
# COPYING for terms of use.
|
|
|
|
EXTRA_DIST = share.libcoap.examples.Makefile share.libcoap.examples.README
|
|
|
|
# just do nothing if 'BUILD_EXAMPLES' isn't defined
|
|
if BUILD_EXAMPLES
|
|
|
|
# picking up the default warning CFLAGS into AM_CFLAGS
|
|
AM_CFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include \
|
|
$(WARNING_CFLAGS) $(DTLS_CFLAGS) -std=c99
|
|
|
|
#
|
|
|
|
bin_PROGRAMS =
|
|
noinst_PROGRAMS =
|
|
check_PROGRAMS =
|
|
|
|
if HAVE_CLIENT_SUPPORT
|
|
|
|
bin_PROGRAMS += coap-client@LIBCOAP_DTLS_LIB_EXTENSION_NAME@
|
|
check_PROGRAMS += coap-tiny
|
|
|
|
if BUILD_ADD_DEFAULT_NAMES
|
|
noinst_PROGRAMS += coap-client
|
|
endif # BUILD_ADD_DEFAULT_NAMES
|
|
|
|
endif # HAVE_CLIENT_SUPPORT
|
|
|
|
if HAVE_SERVER_SUPPORT
|
|
|
|
bin_PROGRAMS += coap-server@LIBCOAP_DTLS_LIB_EXTENSION_NAME@ \
|
|
coap-rd@LIBCOAP_DTLS_LIB_EXTENSION_NAME@
|
|
check_PROGRAMS += coap-etsi_iot_01
|
|
|
|
if BUILD_ADD_DEFAULT_NAMES
|
|
noinst_PROGRAMS += coap-server coap-rd
|
|
endif # BUILD_ADD_DEFAULT_NAMES
|
|
|
|
if ! HAVE_CLIENT_SUPPORT
|
|
coap_server_CPPFLAGS=-DSERVER_CAN_PROXY=0
|
|
coap_server@LIBCOAP_DTLS_LIB_EXTENSION_NAME@_CPPFLAGS=-DSERVER_CAN_PROXY=0
|
|
endif # HAVE_CLIENT_SUPPORT
|
|
|
|
endif # HAVE_SERVER_SUPPORT
|
|
|
|
coap_client_SOURCES = coap-client.c
|
|
coap_client_LDADD = $(DTLS_LIBS) \
|
|
$(top_builddir)/.libs/libcoap-$(LIBCOAP_NAME_SUFFIX).la
|
|
|
|
coap_server_SOURCES = coap-server.c
|
|
coap_server_LDADD = $(DTLS_LIBS) \
|
|
$(top_builddir)/.libs/libcoap-$(LIBCOAP_NAME_SUFFIX).la
|
|
|
|
coap_rd_SOURCES = coap-rd.c
|
|
coap_rd_LDADD = $(DTLS_LIBS) \
|
|
$(top_builddir)/.libs/libcoap-$(LIBCOAP_NAME_SUFFIX).la
|
|
|
|
coap_client@LIBCOAP_DTLS_LIB_EXTENSION_NAME@_SOURCES = coap-client.c
|
|
coap_client@LIBCOAP_DTLS_LIB_EXTENSION_NAME@_LDADD = $(DTLS_LIBS) \
|
|
$(top_builddir)/.libs/libcoap-$(LIBCOAP_NAME_SUFFIX).la
|
|
|
|
coap_server@LIBCOAP_DTLS_LIB_EXTENSION_NAME@_SOURCES = coap-server.c
|
|
coap_server@LIBCOAP_DTLS_LIB_EXTENSION_NAME@_LDADD = $(DTLS_LIBS) \
|
|
$(top_builddir)/.libs/libcoap-$(LIBCOAP_NAME_SUFFIX).la
|
|
|
|
coap_rd@LIBCOAP_DTLS_LIB_EXTENSION_NAME@_SOURCES = coap-rd.c
|
|
coap_rd@LIBCOAP_DTLS_LIB_EXTENSION_NAME@_LDADD = $(DTLS_LIBS) \
|
|
$(top_builddir)/.libs/libcoap-$(LIBCOAP_NAME_SUFFIX).la
|
|
|
|
coap_etsi_iot_01_SOURCES = etsi_iot_01.c
|
|
coap_etsi_iot_01_LDADD = $(DTLS_LIBS) \
|
|
$(top_builddir)/.libs/libcoap-$(LIBCOAP_NAME_SUFFIX).la
|
|
|
|
coap_tiny_SOURCES = tiny.c
|
|
coap_tiny_LDADD = $(DTLS_LIBS) \
|
|
$(top_builddir)/.libs/libcoap-$(LIBCOAP_NAME_SUFFIX).la
|
|
|
|
endif # BUILD_EXAMPLES
|
|
|
|
if BUILD_EXAMPLES_SOURCE
|
|
EXAMPLES_DIR = $(DESTDIR)$(datadir)/libcoap/examples
|
|
EXAMPLES_SRC = coap-client.c coap-server.c
|
|
endif # BUILD_EXAMPLES_SOURCE
|
|
|
|
## Install example files
|
|
install-exec-hook:
|
|
if BUILD_EXAMPLES_SOURCE
|
|
$(MKDIR_P) $(EXAMPLES_DIR)
|
|
(cd $(top_srcdir)/examples ; \
|
|
$(INSTALL_DATA) $(EXAMPLES_SRC) ../LICENSE ../COPYING $(EXAMPLES_DIR) ; \
|
|
$(INSTALL_DATA) share.libcoap.examples.Makefile $(EXAMPLES_DIR)/Makefile; \
|
|
$(INSTALL_DATA) share.libcoap.examples.README $(EXAMPLES_DIR)/README)
|
|
endif # BUILD_EXAMPLES_SOURCE
|
|
if BUILD_ADD_DEFAULT_NAMES
|
|
if [ -d "$(DESTDIR)$(bindir)" ] ; then \
|
|
(cd $(DESTDIR)$(bindir) && \
|
|
(if [ -f coap-client@LIBCOAP_DTLS_LIB_EXTENSION_NAME@ ] ; then \
|
|
rm -f coap-client ; \
|
|
$(LN_S) coap-client@LIBCOAP_DTLS_LIB_EXTENSION_NAME@ coap-client ; \
|
|
fi ; \
|
|
if [ -f coap-server@LIBCOAP_DTLS_LIB_EXTENSION_NAME@ ] ; then \
|
|
rm -f coap-server ; \
|
|
$(LN_S) coap-server@LIBCOAP_DTLS_LIB_EXTENSION_NAME@ coap-server ; \
|
|
fi ; \
|
|
if [ -f coap-rd@LIBCOAP_DTLS_LIB_EXTENSION_NAME@ ] ; then \
|
|
rm -f coap-rd ; \
|
|
$(LN_S) coap-rd@LIBCOAP_DTLS_LIB_EXTENSION_NAME@ coap-rd ; \
|
|
fi) \
|
|
) ; \
|
|
fi
|
|
endif # BUILD_ADD_DEFAULT_NAMES
|
|
|
|
uninstall-hook:
|
|
if BUILD_EXAMPLES_SOURCE
|
|
rm -rf $(DESTDIR)$(datadir)/libcoap/examples
|
|
endif # BUILD_EXAMPLES_SOURCE
|
|
if BUILD_ADD_DEFAULT_NAMES
|
|
rm -f $(DESTDIR)$(bindir)/coap-client
|
|
rm -f $(DESTDIR)$(bindir)/coap-server
|
|
rm -f $(DESTDIR)$(bindir)/coap-rd
|
|
endif # BUILD_ADD_DEFAULT_NAMES
|