Introduce a `conn_interface` to simplify the decision logic which API we must call. This also fixes some bugs of the previous commit. Signed-off-by: Steffen Jaeckel <jaeckel-floss@eyet-services.de>
348 lines
10 KiB
Makefile
348 lines
10 KiB
Makefile
AUTOMAKE_OPTIONS = subdir-objects
|
|
|
|
ACLOCAL_AMFLAGS = -I m4
|
|
|
|
COVERAGE_CFLAGS=@COVERAGE_CFLAGS@
|
|
COVERAGE_LDFLAGS=@COVERAGE_LDFLAGS@
|
|
COVERAGE_PRE=@COVERAGE_PRE@
|
|
COVERAGE_POST=@COVERAGE_POST@
|
|
|
|
PARSER_CFLAGS=@PARSER_CFLAGS@
|
|
PARSER_LIBS=@PARSER_LIBS@
|
|
|
|
ZLIB_CFLAGS=@ZLIB_CFLAGS@
|
|
ZLIB_LIBS=@ZLIB_LIBS@
|
|
|
|
if TLS_WITH_GNUTLS
|
|
SSL_CFLAGS = @gnutls_CFLAGS@
|
|
SSL_LIBS = @gnutls_LIBS@
|
|
else
|
|
if !TLS_WITH_SCHANNEL
|
|
SSL_CFLAGS = @openssl_CFLAGS@
|
|
SSL_LIBS = @openssl_LIBS@
|
|
endif
|
|
endif
|
|
|
|
MINGW_LIBS = @MINGW_LIBS@
|
|
|
|
RESOLV_CFLAGS = @RESOLV_CFLAGS@
|
|
RESOLV_LIBS = @RESOLV_LIBS@
|
|
|
|
WARNING_FLAGS = @WARNING_FLAGS@
|
|
STROPHE_FLAGS = -I$(top_srcdir) $(WARNING_FLAGS)
|
|
STROPHE_LIBS = $(COVERAGE_PRE) libstrophe.la $(COVERAGE_POST) $(COVERAGE_LDFLAGS)
|
|
|
|
## Main build targets
|
|
lib_LTLIBRARIES = libstrophe.la
|
|
|
|
libstrophe_la_CFLAGS = $(SSL_CFLAGS) $(STROPHE_FLAGS) $(PARSER_CFLAGS) $(RESOLV_CFLAGS) $(COVERAGE_CFLAGS) $(ZLIB_CFLAGS)
|
|
libstrophe_la_LDFLAGS = $(SSL_LIBS) $(PARSER_LIBS) $(RESOLV_LIBS) $(MINGW_LIBS) $(ZLIB_LIBS) -no-undefined
|
|
# Export only public API
|
|
libstrophe_la_LDFLAGS += -export-symbols-regex '^xmpp_' -version-info @VERSION_INFO@
|
|
|
|
libstrophe_la_SOURCES = \
|
|
src/auth.c \
|
|
src/conn.c \
|
|
src/crypto.c \
|
|
src/ctx.c \
|
|
src/deprecated.c \
|
|
src/event.c \
|
|
src/handler.c \
|
|
src/hash.c \
|
|
src/jid.c \
|
|
src/md5.c \
|
|
src/rand.c \
|
|
src/resolver.c \
|
|
src/sasl.c \
|
|
src/scram.c \
|
|
src/sha1.c \
|
|
src/sha256.c \
|
|
src/sha512.c \
|
|
src/sock.c \
|
|
src/stanza.c \
|
|
src/tls.c \
|
|
src/util.c \
|
|
src/uuid.c
|
|
libstrophe_la_SOURCES += \
|
|
src/common.h \
|
|
src/hash.h \
|
|
src/md5.h \
|
|
src/ostypes.h \
|
|
src/parser.h \
|
|
src/resolver.h \
|
|
src/sasl.h \
|
|
src/scram.h \
|
|
src/sha.h \
|
|
src/sha1.h \
|
|
src/sha256.h \
|
|
src/sha512.h \
|
|
src/snprintf.h \
|
|
src/sock.h \
|
|
src/tls.h \
|
|
src/util.h
|
|
|
|
if NEED_SNPRINTF
|
|
libstrophe_la_SOURCES += src/snprintf.c
|
|
endif
|
|
|
|
if DISABLE_COMPRESSION
|
|
libstrophe_la_SOURCES += src/compression_dummy.c
|
|
else
|
|
libstrophe_la_SOURCES += src/compression.c
|
|
endif
|
|
|
|
if DISABLE_TLS
|
|
libstrophe_la_SOURCES += src/tls_dummy.c
|
|
else
|
|
if TLS_WITH_GNUTLS
|
|
libstrophe_la_SOURCES += src/tls_gnutls.c
|
|
else
|
|
if TLS_WITH_SCHANNEL
|
|
libstrophe_la_SOURCES += src/tls_schannel.c
|
|
else
|
|
libstrophe_la_SOURCES += src/tls_openssl.c
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
if PARSER_EXPAT
|
|
libstrophe_la_SOURCES += src/parser_expat.c
|
|
else
|
|
libstrophe_la_SOURCES += src/parser_libxml2.c
|
|
endif
|
|
|
|
include_HEADERS = strophe.h
|
|
|
|
pkgconfig_DATA = libstrophe.pc
|
|
|
|
EXTRA_DIST = \
|
|
_clang-format \
|
|
Doxyfile \
|
|
GPL-LICENSE.txt \
|
|
LICENSE.txt \
|
|
MIT-LICENSE.txt \
|
|
bootstrap.sh \
|
|
build-android.sh \
|
|
testbuild.sh \
|
|
examples/README.md \
|
|
jni/Android.mk \
|
|
jni/Application.mk \
|
|
m4/ax_valgrind_check.m4 \
|
|
tests/cert.pem \
|
|
tests/cert.pfx \
|
|
tests/cert.emptypass.pfx \
|
|
tests/cert.nopass.pfx \
|
|
tests/key.pem \
|
|
tests/key_encrypted.pem \
|
|
tests/res_query_dump.c
|
|
|
|
if EXAMPLES
|
|
## Examples
|
|
noinst_PROGRAMS = \
|
|
examples/active \
|
|
examples/basic \
|
|
examples/bot \
|
|
examples/complex \
|
|
examples/component \
|
|
examples/perf \
|
|
examples/register \
|
|
examples/roster \
|
|
examples/uuid \
|
|
examples/vcard
|
|
|
|
examples_active_SOURCES = examples/active.c
|
|
examples_active_CFLAGS = $(STROPHE_FLAGS)
|
|
examples_active_LDADD = $(STROPHE_LIBS)
|
|
examples_basic_SOURCES = examples/basic.c
|
|
examples_basic_CFLAGS = $(STROPHE_FLAGS)
|
|
examples_basic_LDADD = $(STROPHE_LIBS)
|
|
examples_bot_SOURCES = examples/bot.c
|
|
examples_bot_CFLAGS = $(STROPHE_FLAGS)
|
|
examples_bot_LDADD = $(STROPHE_LIBS)
|
|
examples_complex_SOURCES = examples/complex.c
|
|
examples_complex_CFLAGS = $(STROPHE_FLAGS)
|
|
examples_complex_LDADD = $(STROPHE_LIBS)
|
|
examples_component_SOURCES = examples/component.c
|
|
examples_component_CFLAGS = $(STROPHE_FLAGS)
|
|
examples_component_LDADD = $(STROPHE_LIBS)
|
|
examples_perf_SOURCES = examples/perf.c
|
|
examples_perf_CFLAGS = $(STROPHE_FLAGS)
|
|
examples_perf_LDADD = $(STROPHE_LIBS)
|
|
examples_register_SOURCES = examples/register.c
|
|
examples_register_CFLAGS = $(STROPHE_FLAGS)
|
|
examples_register_LDADD = $(STROPHE_LIBS)
|
|
examples_roster_SOURCES = examples/roster.c
|
|
examples_roster_CFLAGS = $(STROPHE_FLAGS)
|
|
examples_roster_LDADD = $(STROPHE_LIBS)
|
|
examples_uuid_SOURCES = examples/uuid.c
|
|
examples_uuid_CFLAGS = $(STROPHE_FLAGS)
|
|
examples_uuid_LDADD = $(STROPHE_LIBS)
|
|
examples_vcard_SOURCES = examples/vcard.c
|
|
examples_vcard_CFLAGS = $(STROPHE_FLAGS)
|
|
examples_vcard_LDADD = $(STROPHE_LIBS)
|
|
endif
|
|
|
|
|
|
## Tests
|
|
STATIC_TESTS = \
|
|
tests/check_parser \
|
|
tests/test_hash \
|
|
tests/test_jid \
|
|
tests/test_ctx \
|
|
tests/test_send_queue \
|
|
tests/test_string \
|
|
tests/test_resolver
|
|
|
|
TESTS = \
|
|
tests/test_sha1 \
|
|
tests/test_sha256 \
|
|
tests/test_sha512 \
|
|
tests/test_md5 \
|
|
tests/test_rand \
|
|
tests/test_scram \
|
|
tests/test_base64 \
|
|
tests/test_snprintf \
|
|
tests/test_stanza
|
|
|
|
if !DISABLE_STATIC
|
|
TESTS += $(STATIC_TESTS)
|
|
endif
|
|
|
|
if !DISABLE_TLS
|
|
TESTS += tests/test_xmppaddr
|
|
endif
|
|
|
|
check_PROGRAMS = $(TESTS)
|
|
|
|
if FUZZ
|
|
check_PROGRAMS += tests/test_fuzz_parser tests/test_fuzz_resolver
|
|
|
|
tests_test_fuzz_parser_SOURCES = tests/test_fuzz_parser.c
|
|
tests_test_fuzz_parser_CFLAGS = -fsanitize=fuzzer,address $(PARSER_CFLAGS) $(STROPHE_FLAGS) \
|
|
-I$(top_srcdir)/src
|
|
tests_test_fuzz_parser_LDADD = $(STROPHE_LIBS)
|
|
tests_test_fuzz_parser_LDFLAGS = -static
|
|
|
|
tests_test_fuzz_resolver_SOURCES = tests/test_fuzz_resolver.c
|
|
tests_test_fuzz_resolver_CFLAGS = -fsanitize=fuzzer,address $(resolver_CFLAGS) $(STROPHE_FLAGS) \
|
|
-I$(top_srcdir)/src
|
|
tests_test_fuzz_resolver_LDADD = $(STROPHE_LIBS)
|
|
tests_test_fuzz_resolver_LDFLAGS = -static
|
|
endif
|
|
|
|
tests_check_parser_SOURCES = tests/check_parser.c tests/test.h
|
|
tests_check_parser_CFLAGS = $(PARSER_CFLAGS) $(STROPHE_FLAGS) \
|
|
-I$(top_srcdir)/src
|
|
tests_check_parser_LDADD = $(STROPHE_LIBS)
|
|
tests_check_parser_LDFLAGS = -static
|
|
|
|
tests_test_ctx_SOURCES = tests/test_ctx.c
|
|
tests_test_ctx_CFLAGS = $(STROPHE_FLAGS) -I$(top_srcdir)/src
|
|
tests_test_ctx_LDADD = $(STROPHE_LIBS)
|
|
tests_test_ctx_LDFLAGS = -static
|
|
|
|
tests_test_base64_SOURCES = tests/test_base64.c tests/test.c tests/test.h
|
|
tests_test_base64_CFLAGS = $(STROPHE_FLAGS) -I$(top_srcdir)/src
|
|
tests_test_base64_LDADD = $(STROPHE_LIBS)
|
|
tests_test_base64_LDFLAGS = -static
|
|
|
|
tests_test_hash_SOURCES = tests/test_hash.c
|
|
tests_test_hash_CFLAGS = $(STROPHE_FLAGS) -I$(top_srcdir)/src
|
|
tests_test_hash_LDADD = $(STROPHE_LIBS)
|
|
tests_test_hash_LDFLAGS = -static
|
|
|
|
tests_test_jid_SOURCES = tests/test_jid.c
|
|
tests_test_jid_CFLAGS = $(STROPHE_FLAGS) -I$(top_srcdir)/src
|
|
tests_test_jid_LDADD = $(STROPHE_LIBS)
|
|
tests_test_jid_LDFLAGS = -static
|
|
|
|
tests_test_resolver_SOURCES = tests/test_resolver.c tests/test.h
|
|
tests_test_resolver_CFLAGS = $(STROPHE_FLAGS) -I$(top_srcdir)/src
|
|
tests_test_resolver_LDADD = $(STROPHE_LIBS)
|
|
tests_test_resolver_LDFLAGS = -static
|
|
|
|
tests_test_rand_SOURCES = tests/test_rand.c tests/test.c src/sha1.c
|
|
tests_test_rand_CFLAGS = $(STROPHE_FLAGS) -I$(top_srcdir)/src
|
|
|
|
tests_test_scram_SOURCES = tests/test_scram.c tests/test.c src/sha1.c \
|
|
src/sha256.c src/sha512.c
|
|
tests_test_scram_CFLAGS = $(STROPHE_FLAGS) -I$(top_srcdir)/src
|
|
|
|
tests_test_sha1_SOURCES = tests/test_sha1.c src/sha1.c
|
|
tests_test_sha1_CFLAGS = -I$(top_srcdir)/src
|
|
|
|
tests_test_sha256_SOURCES = tests/test_sha256.c tests/test.c src/sha256.c
|
|
tests_test_sha256_CFLAGS = -I$(top_srcdir)/src
|
|
|
|
tests_test_sha512_SOURCES = tests/test_sha512.c tests/test.c src/sha512.c
|
|
tests_test_sha512_CFLAGS = -I$(top_srcdir)/src
|
|
|
|
tests_test_md5_SOURCES = tests/test_md5.c tests/test.c src/md5.c
|
|
tests_test_md5_CFLAGS = -I$(top_srcdir)/src
|
|
|
|
tests_test_send_queue_SOURCES = tests/test_send_queue.c
|
|
tests_test_send_queue_CFLAGS = -I$(top_srcdir)/src
|
|
tests_test_send_queue_LDADD = $(STROPHE_LIBS)
|
|
tests_test_send_queue_LDFLAGS = -static
|
|
|
|
tests_test_snprintf_SOURCES = tests/test_snprintf.c
|
|
tests_test_snprintf_CFLAGS = -I$(top_srcdir)/src
|
|
|
|
tests_test_string_SOURCES = tests/test_string.c tests/test.h
|
|
tests_test_string_CFLAGS = $(STROPHE_FLAGS) -I$(top_srcdir)/src
|
|
tests_test_string_LDADD = $(STROPHE_LIBS)
|
|
tests_test_string_LDFLAGS = -static
|
|
|
|
tests_test_stanza_SOURCES = tests/test_stanza.c tests/test.h
|
|
tests_test_stanza_CFLAGS = $(STROPHE_FLAGS) -I$(top_srcdir)/src
|
|
tests_test_stanza_LDADD = $(STROPHE_LIBS)
|
|
tests_test_stanza_LDFLAGS = -static
|
|
|
|
tests_test_xmppaddr_SOURCES = tests/test_xmppaddr.c
|
|
tests_test_xmppaddr_CFLAGS = $(STROPHE_FLAGS) -I$(top_srcdir)/src
|
|
tests_test_xmppaddr_LDADD = $(STROPHE_LIBS)
|
|
tests_test_xmppaddr_LDFLAGS = -static
|
|
|
|
format:
|
|
@echo " * run clang-format on all sources"
|
|
@dos2unix -k -q $(top_srcdir)/src/*.[ch] $(top_srcdir)/*.h $(top_srcdir)/tests/*.[ch] $(top_srcdir)/examples/*.c
|
|
@clang-format -i $(top_srcdir)/src/*.[ch] $(top_srcdir)/*.h $(top_srcdir)/tests/*.[ch] $(top_srcdir)/examples/*.c
|
|
|
|
if COVERAGE
|
|
MOSTLYCLEANFILES = src/*.gcno src/*.gcda coverage.info
|
|
clean-local:
|
|
-rm -rf coverage/
|
|
|
|
coverage: check
|
|
@lcov --capture --no-external --directory src -q --output-file coverage.info
|
|
@genhtml coverage.info --output-directory coverage -q
|
|
endif
|
|
|
|
release: test-release-all
|
|
|
|
dist-archives:
|
|
$(MAKE) dist
|
|
$(MAKE) dist-bzip2
|
|
$(MAKE) dist-xz
|
|
|
|
test-release: dist
|
|
@touch testbuild-$(PACKAGE_VERSION).log && ln -sf testbuild-$(PACKAGE_VERSION).log testbuild.log
|
|
@mkdir -p test-release && cp $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.* test-release && pushd test-release && \
|
|
tar xzf $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz && pushd $(PACKAGE_TARNAME)-$(PACKAGE_VERSION) && ./testbuild.sh && popd && rm -rf $(PACKAGE_TARNAME)-$(PACKAGE_VERSION) && \
|
|
echo "Success" && popd
|
|
|
|
test-release-all: dist-archives
|
|
@touch testbuild-$(PACKAGE_VERSION).log && ln -sf testbuild-$(PACKAGE_VERSION).log testbuild.log
|
|
@mkdir -p test-release && cp $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.* test-release && pushd test-release && \
|
|
tar xJf $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.xz && pushd $(PACKAGE_TARNAME)-$(PACKAGE_VERSION) && ./testbuild.sh && popd && rm -rf $(PACKAGE_TARNAME)-$(PACKAGE_VERSION) && \
|
|
tar xjf $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.bz2 && pushd $(PACKAGE_TARNAME)-$(PACKAGE_VERSION) && ./testbuild.sh && popd && rm -rf $(PACKAGE_TARNAME)-$(PACKAGE_VERSION) && \
|
|
tar xzf $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz && pushd $(PACKAGE_TARNAME)-$(PACKAGE_VERSION) && ./testbuild.sh && popd && rm -rf $(PACKAGE_TARNAME)-$(PACKAGE_VERSION) && \
|
|
echo "Success" && popd
|
|
|
|
docs:
|
|
@SRCDIR=$(top_srcdir) doxygen -q $(top_srcdir)/Doxyfile
|
|
|
|
@VALGRIND_CHECK_RULES@
|
|
|
|
.PHONY: docs test-release
|