#############################################################
# Makefile to build rdkafka in toolchain
#
#

TOPDIR=..
LIBNAME=rdkafka
include $(TOPDIR)/Makefiles/Repo-defines.mk

ifeq ($(CFG),debug)
EXTRA_CFLAGS= -g -O0
CONFIG_DEBUG=--disable-optimization --enable-devel
else
EXTRA_CFLAGS= -g0 -O3
CONFIG_DEBUG=--disable-debug-symbols
endif

KAFKA_TARBALL_DIR=librdkafka-2.2.0
KAFKA_TARBALL=$(KAFKA_TARBALL_DIR).tar.gz

KAFKA_DIR=$(realpath $(TOPDIR)/rdkafka)

EMPIRIX_CFLAGS := $(EMPIRIX_LDFLAGS) 

OPENSSL_LINKER_FLAGS += -L /usr/lib64
OPENSSL_EXTRA_INCS += -I /usr/include/openssl
OPENSSL_USR_LIBS += ssl crypto


.PHONY: all clean distclean



all: 
	rm -rf $(KAFKA_TARBALL_DIR)
	mkdir -p $(PRECOMPILED_DIR) include
	tar -xvzf $(KAFKA_TARBALL_DIR).tar.gz && \
		cd $(KAFKA_TARBALL_DIR) && \
		CC=$(TOOLBIN)/gcc CXX=$(TOOLBIN)/g++ AR=$(TOOLBIN)/ar RANLIB=$(TOOLBIN)/ranlib \
		CFLAGS="$(EMPIRIX_CFLAGS) $(OPENSSL_EXTRA_INCS)" \
		LDFLAGS="$(EMPIRIX_LDFLAGS) $(OPENSSL_LINKER_FLAGS)" \
		PATH=$(TOOLBIN):${PATH} \
		./configure --host=$(ARCH)-unknown-linux-gnu \
			--target=$(ARCH)-unknown-linux-gnu \
			--prefix=$(KAFKA_DIR)/$(KAFKA_TARBALL_DIR)/tmp-prefix \
			--disable-lz4 --disable-sasl --disable-zstd $(CONFIG_DEBUG) && \
		make V=1 && \
		make V=1 install && \
		mkdir -p ../$(PRECOMPILED_DIR) ../include && \
		cp -fv tmp-prefix/lib/*.a ../$(PRECOMPILED_DIR) && \
		cp -fvr tmp-prefix/include/* ../include

clean_build_intermediate_artifacts:
	rm -rf $(KAFKA_TARBALL_DIR)

clean_build_outputs: clean
	rm -f $(PRECOMPILED_DIR)/*.so*
	rm -rf include/*

HAS_INSTALL_SUPPORT=1
include $(TOPDIR)/Makefiles/ThirdPartyTargetHelpers.mk
