From 1ca707f2ffb326f274ec1c95395e1f49f27b9b62 Mon Sep 17 00:00:00 2001
From: Patrick Godwin <patrick.godwin@ligo.org>
Date: Mon, 18 Feb 2019 16:17:02 -0800
Subject: [PATCH] Makefile.ligosoftware_icc_all: add confluent-kafka-python and
 librdkafka to build

---
 .../optimized/Makefile.ligosoftware_icc_all   | 47 +++++++++++++++++--
 1 file changed, 44 insertions(+), 3 deletions(-)

diff --git a/gstlal-inspiral/share/O3/optimized/Makefile.ligosoftware_icc_all b/gstlal-inspiral/share/O3/optimized/Makefile.ligosoftware_icc_all
index ffdf082f5a..5d818ff8f2 100644
--- a/gstlal-inspiral/share/O3/optimized/Makefile.ligosoftware_icc_all
+++ b/gstlal-inspiral/share/O3/optimized/Makefile.ligosoftware_icc_all
@@ -72,6 +72,8 @@ DATAMON=datamon-0.1.0
 LIGOSEGMENTS=ligo-segments-1.2.0
 PYTHONLIGOLW=python-ligo-lw-1.4.0
 GLUE=lscsoft-glue-1.60.0
+KAFKA_PYTHON=0.11.5
+LIBRDKAFKA=0.11.5
 LALAPPS=lalapps-6.22.0
 LALINFERENCE=lalinference-1.10.1
 LALPULSAR=lalpulsar-1.17.0
@@ -105,6 +107,8 @@ DATAMON_TARGET=$(INSTALL_DIR)/lib/python2.7/site-packages/datamon-0.1.0-py2.7.eg
 LIGOSEGMENTS_TARGET=$(PYTHON_DIR)/ligo_segments-1.2.0-py2.7-linux-x86_64.egg
 PYTHONLIGOLW_TARGET=$(PYTHON_DIR)/python_ligo_lw-1.4.0-py2.7.egg-info
 GLUE_TARGET=$(INSTALL_DIR)/bin/dmtdq_seg_insert
+KAFKA_PYTHON_TARGET=$(PYTHON_DIR)/confluent_kafka-$(KAFKA_PYTHON)-py2.7-linux-x86_64.egg/confluent_kafka/cimpl.so
+LIBRDKAFKA_TARGET=$(INSTALL_DIR)/lib/librdkafka.so
 LALAPPS_TARGET=$(INSTALL_DIR)/bin/lalapps_psinject
 LALINFER_TARGET=$(INSTALL_DIR)/lib/liblalinference.so
 LALPULSAR_TARGET=$(INSTALL_DIR)/lib/liblalpulsar.so
@@ -139,6 +143,8 @@ DATAMON_TAR_TARGET=$(TAR_DIR)/$(DATAMON).tar.gz
 LIGOSEGMENTS_TAR_TARGET=$(TAR_DIR)/$(LIGOSEGMENTS).tar.gz
 PYTHONLIGOLW_TAR_TARGET=$(TAR_DIR)/$(PYTHONLIGOLW).tar.gz
 GLUE_TAR_TARGET=$(TAR_DIR)/$(GLUE).tar.gz
+KAFKA_PYTHON_TAR_TARGET=$(TAR_DIR)/confluent-kafka-python-$(KAFKA_PYTHON).tar.gz
+LIBRDKAFKA_TAR_TARGET=$(TAR_DIR)/librdkafka-$(LIBRDKAFKA).tar.gz
 LALAPPS_TAR_TARGET=$(TAR_DIR)/$(LALAPPS).tar.xz
 LALINFER_TAR_TARGET=$(TAR_DIR)/$(LALINFERENCE).tar.xz
 LALPULSAR_TAR_TARGET=$(TAR_DIR)/$(LALPULSAR).tar.xz
@@ -395,10 +401,10 @@ $(PYTHONLIGOLW_TARGET) : $(GLUE_TARGET)
 # glue
 glue : $(LOGS_DIR)/glue.txt
 
-$(LOGS_DIR)/glue.txt : $(LOGS_DIR)/lalsuite.txt $(GLUE_TARGET)
+$(LOGS_DIR)/glue.txt : $(LOGS_DIR)/kafka-python.txt $(GLUE_TARGET)
 	@echo $^ | sed -e "s@ @\n@g" > $@
 
-$(GLUE_TARGET) : $(LALAPPS_TARGET)
+$(GLUE_TARGET) : $(KAFKA_PYTHON_TARGET)
 	@echo $(GREEN)glue$(WHITE) 1>&2
 	if [ "${GLUE_GIT}" = "1" ]; then \
 		cd $(GLUE_REPO) && python setup.py install --prefix=$(INSTALL_DIR) ; \
@@ -407,6 +413,29 @@ $(GLUE_TARGET) : $(LALAPPS_TARGET)
 		cd $(SRC_DIR)/$(GLUE) && python setup.py install --prefix=$(INSTALL_DIR) ; \
 	fi ;
 
+# confluent-kafka-python
+kafka-python : $(LOGS_DIR)/kafka-python.txt
+
+logs/kafka-python.txt : $(LOGS_DIR)/librdkafka.txt $(KAFKA_PYTHON_TARGET)
+	@echo $^ | sed -e "s@ @\n@g" > $@
+
+$(KAFKA_PYTHON_TARGET) : $(LIBRDKAFKA_TARGET)
+	@echo $(GREEN)kafka-python$(WHITE) 1>&2
+	tar -xzf $(TAR_DIR)/confluent-kafka-python-$(KAFKA_PYTHON).tar.gz -C $(SRC_DIR) ; \
+	cd $(SRC_DIR)/confluent-kafka-python-$(KAFKA_PYTHON) && CFLAGS="$(GCCFLAGS)" C_INCLUDE_PATH=$(INSTALL_DIR)/include LIBRARY_PATH=$(INSTALL_DIR)/lib python setup.py install --prefix=$(INSTALL_DIR) ; \
+
+# librdkafka
+librdkafka : $(LOGS_DIR)/librdkafka.txt
+
+logs/librdkafka.txt : $(LOGS_DIR)/lalsuite.txt $(LIBRDKAFKA_TARGET)
+	@echo $^ | sed -e "s@ @\n@g" > $@
+
+$(LIBRDKAFKA_TARGET) : $(LALAPPS_TARGET)
+	@echo $(GREEN)librdkafka$(WHITE) 1>&2
+	tar -xzf $(TAR_DIR)/librdkafka-$(LIBRDKAFKA).tar.gz -C $(SRC_DIR) ; \
+	cd $(SRC_DIR)/librdkafka-$(LIBRDKAFKA) && ./configure --prefix=$(INSTALL_DIR) ; \
+	cd $(SRC_DIR)/librdkafka-$(LIBRDKAFKA) && make -j$(CORES) && make install -j$(CORES) ; \
+
 # lalsuite
 lalsuite : $(LOGS_DIR)/lalsuite.txt
 
@@ -722,9 +751,15 @@ $(PATCH_DIR)/gst1.14.patch : $(LOGS_DIR)/tar.txt
 	cd $(GSTLAL_REPO) && patch -p1 < $(PATCH_DIR)/gst1.14.patch
 
 #tarballs
-$(LOGS_DIR)/tar.txt : $(FFTW_TAR_TARGET) $(ORC_TAR_TARGET) $(GSL_TAR_TARGET) $(GSTREAMER_TAR_TARGET) $(GSTBASE_TAR_TARGET) $(GSTGOOD_TAR_TARGET) $(GSTPYTHON_TAR_TARGET) $(LIBFRAME_TAR_TARGET) $(METAIO_TAR_TARGET) $(SWIG_TAR_TARGET) $(LDASTOOLSAL_TAR_TARGET) $(LDASTOOLSFRAMECPP_TAR_TARGET) $(GDS_TAR_TARGET)
+$(LOGS_DIR)/tar.txt : $(FFTW_TAR_TARGET) $(ORC_TAR_TARGET) $(GSL_TAR_TARGET) $(GSTREAMER_TAR_TARGET) $(GSTBASE_TAR_TARGET) $(GSTGOOD_TAR_TARGET) $(GSTPYTHON_TAR_TARGET) $(LIBFRAME_TAR_TARGET) $(METAIO_TAR_TARGET) $(SWIG_TAR_TARGET) $(LDASTOOLSAL_TAR_TARGET) $(LDASTOOLSFRAMECPP_TAR_TARGET) $(GDS_TAR_TARGET) $(LIBRDKAFKA_TAR_TARGET) $(KAFKA_PYTHON_TAR_TARGET)
 	echo $^ | sed -e "s@ @\n@g" > $@
 
+$(KAFKA_PYTHON_TAR_TARGET) : $(LIBRDKAFKA_TAR_TARGET)
+	wget --no-check-certificate https://github.com/confluentinc/confluent-kafka-python/archive/v$(KAFKA_PYTHON).tar.gz --directory-prefix=$(TAR_DIR) -O $(TAR_DIR)/confluent-kafka-python-$(KAFKA_PYTHON).tar.gz -nc
+
+$(LIBRDKAFKA_TAR_TARGET) : $(GDS_TAR_TARGET)
+	wget --no-check-certificate https://github.com/edenhill/librdkafka/archive/v$(LIBRDKAFKA).tar.gz --directory-prefix=$(TAR_DIR) -O $(TAR_DIR)/librdkafka-$(LIBRDKAFKA).tar.gz -nc
+
 $(GDS_TAR_TARGET) : $(LDASTOOLSFRAMECPP_TAR_TARGET)
 	wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(GDS).tar.gz --directory-prefix=$(TAR_DIR) -nc
 
@@ -856,6 +891,12 @@ clean-install :
 clean-gstlal :
 	rm -rf $(LOGS_DIR)/gstlal.txt $(GSTLAL_TARGET) $(GSTLALUGLY_TARGET) $(GSTLALBURST_TARGET) $(GSTLALCALIB_TARGET) $(GSTLALINSPIRAL_TARGET)
 
+clean-kafka-python :
+	rm -rf $(LOGS_DIR)/kafka-python.txt $(KAFKA_PYTHON_TARGET)
+
+clean-librdkafka :
+	rm -rf $(LOGS_DIR)/librdkafka.txt $(LIBRDKAFKA_TARGET)
+
 clean-lalsuite :
 	rm -rf $(LOGS_DIR)/lalsuite.txt $(LAL_TARGET) $(LALFRAME_TARGET) $(LALMETAIO_TARGET) $(LALSIM_TARGET) $(LALBURST_TARGET) $(LALINSPIRAL_TARGET) $(LALPULSAR_TARGET) $(LALINFER_TARGET) $(LALAPPS_TARGET) $(GLUE_TARGET)
 
-- 
GitLab