1PKGNAME= librdkafka 2LIBNAME= librdkafka 3LIBVER= 1 4 5-include ../Makefile.config 6 7ifneq ($(wildcard ../.git),) 8# Add librdkafka version string from git tag if this is a git checkout 9CPPFLAGS += -DLIBRDKAFKA_GIT_VERSION="\"$(shell git describe --abbrev=6 --dirty --tags 2>/dev/null)\"" 10endif 11 12SRCS_$(WITH_SASL_CYRUS) += rdkafka_sasl_cyrus.c 13SRCS_$(WITH_SASL_SCRAM) += rdkafka_sasl_scram.c 14SRCS_$(WITH_SASL_OAUTHBEARER) += rdkafka_sasl_oauthbearer.c 15SRCS_$(WITH_SNAPPY) += snappy.c 16SRCS_$(WITH_ZLIB) += rdgz.c 17SRCS_$(WITH_ZSTD) += rdkafka_zstd.c 18SRCS_$(WITH_HDRHISTOGRAM) += rdhdrhistogram.c 19SRCS_$(WITH_SSL) += rdkafka_ssl.c 20 21SRCS_LZ4 = rdxxhash.c 22ifneq ($(WITH_LZ4_EXT), y) 23# Use built-in liblz4 24SRCS_LZ4 += lz4.c lz4frame.c lz4hc.c 25endif 26SRCS_y += rdkafka_lz4.c $(SRCS_LZ4) 27 28SRCS_$(WITH_LIBDL) += rddl.c 29SRCS_$(WITH_PLUGINS) += rdkafka_plugin.c 30 31ifneq ($(HAVE_REGEX), y) 32SRCS_y += regexp.c 33endif 34 35SRCS= rdkafka.c rdkafka_broker.c rdkafka_msg.c rdkafka_topic.c \ 36 rdkafka_conf.c rdkafka_timer.c rdkafka_offset.c \ 37 rdkafka_transport.c rdkafka_buf.c rdkafka_queue.c rdkafka_op.c \ 38 rdkafka_request.c rdkafka_cgrp.c rdkafka_pattern.c \ 39 rdkafka_partition.c rdkafka_subscription.c \ 40 rdkafka_assignment.c \ 41 rdkafka_assignor.c rdkafka_range_assignor.c \ 42 rdkafka_roundrobin_assignor.c rdkafka_sticky_assignor.c \ 43 rdkafka_feature.c \ 44 rdcrc32.c crc32c.c rdmurmur2.c rdfnv1a.c \ 45 rdaddr.c rdrand.c rdlist.c \ 46 tinycthread.c tinycthread_extra.c \ 47 rdlog.c rdstring.c rdkafka_event.c rdkafka_metadata.c \ 48 rdregex.c rdports.c rdkafka_metadata_cache.c rdavl.c \ 49 rdkafka_sasl.c rdkafka_sasl_plain.c rdkafka_interceptor.c \ 50 rdkafka_msgset_writer.c rdkafka_msgset_reader.c \ 51 rdkafka_header.c rdkafka_admin.c rdkafka_aux.c \ 52 rdkafka_background.c rdkafka_idempotence.c rdkafka_cert.c \ 53 rdkafka_txnmgr.c rdkafka_coord.c \ 54 rdvarint.c rdbuf.c rdmap.c rdunittest.c \ 55 rdkafka_mock.c rdkafka_mock_handlers.c rdkafka_mock_cgrp.c \ 56 rdkafka_error.c \ 57 $(SRCS_y) 58 59HDRS= rdkafka.h rdkafka_mock.h 60 61OBJS= $(SRCS:.c=.o) 62 63 64all: lib check 65 66include ../mklove/Makefile.base 67 68CHECK_FILES+= $(LIBFILENAME) $(LIBNAME).a 69 70file-check: lib 71check: file-check 72 @(printf "%-30s " "Symbol visibility" ; \ 73 (($(SYMDUMPER) $(LIBFILENAME) | grep rd_kafka_new >/dev/null) && \ 74 ($(SYMDUMPER) $(LIBFILENAME) | grep -v rd_kafka_destroy >/dev/null) && \ 75 printf "$(MKL_GREEN)OK$(MKL_CLR_RESET)\n") || \ 76 printf "$(MKL_RED)FAILED$(MKL_CLR_RESET)\n") 77 78install: lib-install 79uninstall: lib-uninstall 80 81clean: lib-clean 82 83# Compile LZ4 with -O3 84$(SRCS_LZ4:.c=.o): CFLAGS:=$(CFLAGS) -O3 85 86ifeq ($(WITH_LDS),y) 87# Enable linker script if supported by platform 88LIB_LDFLAGS+= $(LDFLAG_LINKERSCRIPT)$(LIBNAME_LDS) 89 90$(LIBNAME_LDS): $(HDRS) 91 @(printf "$(MKL_YELLOW)Generating linker script $@ from $(HDRS)$(MKL_CLR_RESET)\n" ; \ 92 cat $(HDRS) | ../lds-gen.py > $@) 93endif 94 95-include $(DEPS) 96