From e93e8e04f84a688dbe9802c5f74977e81d0fdd99 Mon Sep 17 00:00:00 2001
From: Duncan Meacher <duncan.meacher@ligo.org>
Date: Wed, 31 Oct 2018 11:23:14 -0700
Subject: [PATCH] Updated build Makefiles to include ligo-segments and
 python-ligo-lw packages

---
 .../Makefile.ligosoftware_gcc_gstlal          | 179 +++++++++++-------
 .../optimized/Makefile.ligosoftware_icc_all   | 168 +++++++++++-----
 2 files changed, 222 insertions(+), 125 deletions(-)

diff --git a/gstlal-inspiral/share/O3/optimized/Makefile.ligosoftware_gcc_gstlal b/gstlal-inspiral/share/O3/optimized/Makefile.ligosoftware_gcc_gstlal
index fc1dd8d639..bc389e5944 100644
--- a/gstlal-inspiral/share/O3/optimized/Makefile.ligosoftware_gcc_gstlal
+++ b/gstlal-inspiral/share/O3/optimized/Makefile.ligosoftware_gcc_gstlal
@@ -21,11 +21,13 @@ CLUSTER:=$(shell hostname -d)
 # Set directories and paths
 SRC_DIR:=${PWD}/src
 TAR_DIR:=tarball
-LOGS_DIR:=logs
+LOGS_DIR:=${PWD}/logs
 PATCH_DIR:=${PWD}/patches
 INSTALL_DIR:=${LAL_PATH}
 
 GSTLAL_REPO:=${PWD}/git/gstlal
+LIGOSEGMENTS_REPO:=${PWD}/git/ligo-segments
+PYTHONLIGOLW_REPO:=${PWD}/git/python-ligo-lw
 GLUE_REPO:=${PWD}/git/glue
 LALSUITE_REPO:=${PWD}/git/lalsuite
 
@@ -34,14 +36,18 @@ DEPS_DIR:=/path/to/deps/dir
 
 # Set to build from git (0 = tarball, 1 = git)
 GSTLAL_GIT=1
-GLUE_GIT=1
-LALSUITE_GIT=1
+LIGOSEGMENTS_GIT=0
+PYTHONLIGOLW_GIT=0
+GLUE_GIT=0
+LALSUITE_GIT=0
 
-# Define which branch from git to build. Defaults to 'master', but the user can 
+# Define which branch from git to build. Defaults to 'master', but the user can
 # set the variable below. The git clone and compilation should fail if this is set to
 # an unknown branch.
 #
 GSTLAL_GIT_BRANCH="master"
+LIGOSEGMENTS_GIT_BRANCH="master"
+PYTHONLIGOLW_GIT_BRANCH="master"
 GLUE_GIT_BRANCH="master"
 LALSUITE_GIT_BRANCH="master"
 
@@ -51,6 +57,8 @@ GSTLALCALIBRATION=gstlal-calibration-1.2.1
 GSTLALBURST=gstlal-burst-0.0.5
 GSTLALUGLY=gstlal-ugly-1.5.5
 GSTLAL=gstlal-1.4.1
+LIGOSEGMENTS=ligo-segments-1.1.1
+PYTHONLIGOLW=python-ligo-lw-1.4.0
 GLUE=lscsoft-glue-1.60.0
 LALAPPS=lalapps-6.22.0
 LALINFERENCE=lalinference-1.10.0
@@ -68,6 +76,8 @@ GSTLALCALIB_TARGET=$(INSTALL_DIR)/bin/gstlal_compute_strain
 GSTLALBURST_TARGET=$(INSTALL_DIR)/lib/libgstlalburst.so
 GSTLALUGLY_TARGET=$(INSTALL_DIR)/lib/gstreamer-1.0/libgstnds.so
 GSTLAL_TARGET=$(INSTALL_DIR)/lib/libgstlal.so
+LIGOSEGMENTS_TARGET=$(INSTALL_DIR)/lib/python2.7/site-packages/ligo_segments-1.1.1-py2.7-linux-x86_64.egg
+PYTHONLIGOLW_TARGET=$(INSTALL_DIR)/lib/python2.7/site-packages/python_ligo_lw-1.4.0-py2.7.egg-info
 GLUE_TARGET=$(INSTALL_DIR)/bin/dmtdq_seg_insert
 LALAPPS_TARGET=$(INSTALL_DIR)/bin/lalapps_psinject
 LALINFER_TARGET=$(INSTALL_DIR)/lib/liblalinference.so
@@ -85,6 +95,8 @@ GSTLALCALIB_TAR_TARGET=$(TAR_DIR)/$(GSTLALCALIBRATION).tar.gz
 GSTLALBURST_TAR_TARGET=$(TAR_DIR)/$(GSTLALBURST).tar.gz
 GSTLALUGLY_TAR_TARGET=$(TAR_DIR)/$(GSTLALUGLY).tar.gz
 GSTLAL_TAR_TARGET=$(TAR_DIR)/$(GSTLAL).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
 LALAPPS_TAR_TARGET=$(TAR_DIR)/$(LALAPPS).tar.xz
 LALINFER_TAR_TARGET=$(TAR_DIR)/$(LALINFERENCE).tar.xz
@@ -98,6 +110,8 @@ LAL_TAR_TARGET=$(TAR_DIR)/$(LAL).tar.xz
 
 # git repos
 GSTLAL_GIT_TARGET=$(GSTLAL_REPO)/TODO.md
+LIGOSEGMENTS_GIT_TARGET=$(LIGOSEGMENTS_REPO)/README.rst
+PYTHONLIGOLW_GIT_TARGET=$(PYTHONLIGOLW_REPO)/MANIFEST.in
 GLUE_GIT_TARGET=$(GLUE_REPO)/README
 LALSUITE_GIT_TARGET=$(LALSUITE_REPO)/lal/README
 
@@ -129,9 +143,7 @@ all : $(GSTINSPIRAL_TARGET) $(LOGS_DIR)/gstlal.txt
 #####################
 
 env.sh :
-	@echo 'unset GST_PLUGIN_PATH PYTHONPATH' > $@
-	@echo 'unset LD_LIBRARY_PATH LIBRARY_PATH LD_PRELOAD' >> $@
-	@echo 'source ${DEPS_DIR}/deps_env.sh' >> $@
+	@echo 'source ${DEPS_DIR}/deps_env.sh' > $@
 	@echo 'LAL_PATH=${PWD}/opt' >> $@
 	@echo 'export CFLAGS="$${CFLAGS} -I$${LAL_PATH}/include"' >> $@
 	@echo 'export LD_LIBRARY_PATH=$${LAL_PATH}/lib:$${LD_LIBRARY_PATH}' >> $@
@@ -156,19 +168,19 @@ env.sh :
 #####################
 
 check :
-	@if [ -f logs/all.txt ] ; then rm logs/all.txt ; fi ;
-	@cat logs/* | uniq > logs/all.txt
-	@if [ -f logs/gstlal.txt ] ; then ls logs/gstlal.txt >> logs/all.txt ; fi ;
-	@ls -ltrh $$(cat logs/all.txt)
+	@if [ -f $(LOGS_DIR)/all.txt ] ; then rm $(LOGS_DIR)/all.txt ; fi ;
+	@cat $(LOGS_DIR)/* | uniq > $(LOGS_DIR)/all.txt
+	@if [ -f $(LOGS_DIR)/gstlal.txt ] ; then ls $(LOGS_DIR)/gstlal.txt >> $(LOGS_DIR)/all.txt ; fi ;
+	@ls -ltrh $$(cat $(LOGS_DIR)/all.txt)
 
 ###########
 # Install #
 ###########
 
 # gstlal (all)
-gstlal : logs/gstlal.txt
+gstlal : $(LOGS_DIR)/gstlal.txt
 
-logs/gstlal.txt : $(LOGS_DIR)/glue.txt $(GSTLAL_TARGET) $(GSTLALUGLY_TARGET) $(GSTLALBURST_TARGET) $(GSTLALCALIB_TARGET) $(GSTINSPIRAL_TARGET) $(GSTLALBURST_TARGET)
+$(LOGS_DIR)/gstlal.txt : $(LOGS_DIR)/ligo-segments.txt $(GSTLAL_TARGET) $(GSTLALUGLY_TARGET) $(GSTLALBURST_TARGET) $(GSTLALCALIB_TARGET) $(GSTINSPIRAL_TARGET) $(GSTLALBURST_TARGET)
 	@echo $^ | sed -e "s@ @\n@g" > $@
 
 # gstlal-inspiral
@@ -224,7 +236,7 @@ $(GSTLALUGLY_TARGET) : $(GSTLAL_TARGET)
 	fi ;
 
 # gstlal
-$(GSTLAL_TARGET) : $(GLUE_TARGET)
+$(GSTLAL_TARGET) : $(LIGOSEGMENTS_TARGET)
 	@echo $(GREEN)gstlal$(WHITE) 1>&2
 	if [ "${GSTLAL_GIT}" = "1" ]; then \
 		cd $(GSTLAL_REPO)/gstlal && echo | ./00init.sh ; \
@@ -236,10 +248,40 @@ $(GSTLAL_TARGET) : $(GLUE_TARGET)
 		cd $(SRC_DIR)/$(GSTLAL) && make -j$(CORES) && make install -j$(CORES) ; \
 	fi ;
 
+# ligo-segments
+ligo-segments : $(LOGS_DIR)/ligo-segments.txt
+
+$(LOGS_DIR)/ligo-segments.txt : $(LOGS_DIR)/python-ligo-lw.txt $(LIGOSEGMENTS_TARGET)
+	@echo $^ | sed -e "s@ @\n@g" > $@
+
+$(LIGOSEGMENTS_TARGET) : $(PYTHONLIGOLW_TARGET)
+	@echo $(GREEN)ligo-segments$(WHITE) 1>&2
+	if [ "${LIGOSEGMENTS_GIT}" = "1" ]; then \
+		cd $(LIGOSEGMENTS_REPO) && CFLAGS="${GCCFLAGS}" python setup.py install --prefix=$(INSTALL_DIR) ; \
+	else \
+		tar -xzf $(TAR_DIR)/$(LIGOSEGMENTS).tar.gz -C $(SRC_DIR) ; \
+		cd $(SRC_DIR)/$(LIGOSEGMENTS) && CFLAGS="${GCCFLAGS}" python setup.py install --prefix=$(INSTALL_DIR) ; \
+	fi ;
+
+# python-ligo-lw
+python-ligo-lw : $(LOGS_DIR)/python-ligo-lw.txt
+
+$(LOGS_DIR)/python-ligo-lw.txt : $(LOGS_DIR)/glue.txt $(PYTHONLIGOLW_TARGET)
+	@echo $^ | sed -e "s@ @\n@g" > $@
+
+$(PYTHONLIGOLW_TARGET) : $(GLUE_TARGET)
+	@echo $(GREEN)python-ligo-lw$(WHITE) 1>&2
+	if [ "${PYTHONLIGOLW_GIT}" = "1" ]; then \
+		cd $(PYTHONLIGOLW_REPO) && CFLAGS="${GCCFLAGS}" python setup.py install --prefix=$(INSTALL_DIR) ; \
+	else \
+		tar -xzf $(TAR_DIR)/$(PYTHONLIGOLW).tar.gz -C $(SRC_DIR) ; \
+		cd $(SRC_DIR)/$(PYTHONLIGOLW) && CFLAGS="${GCCFLAGS}" python setup.py install --prefix=$(INSTALL_DIR) ; \
+	fi ;
+
 # glue
-glue : logs/glue.txt
+glue : $(LOGS_DIR)/glue.txt
 
-logs/glue.txt : $(LOGS_DIR)/lalsuite.txt $(GLUE_TARGET)
+$(LOGS_DIR)/glue.txt : $(LOGS_DIR)/lalsuite.txt $(GLUE_TARGET)
 	@echo $^ | sed -e "s@ @\n@g" > $@
 
 $(GLUE_TARGET) : $(LALAPPS_TARGET)
@@ -252,9 +294,9 @@ $(GLUE_TARGET) : $(LALAPPS_TARGET)
 	fi ;
 
 # lalsuite
-lalsuite : logs/lalsuite.txt
+lalsuite : $(LOGS_DIR)/lalsuite.txt
 
-logs/lalsuite.txt : $(LAL_TARGET) $(LALFRAME_TARGET) $(LALMETAIO_TARGET) $(LALSIM_TARGET) $(LALBURST_TARGET) $(LALDETCHAR_TARGET) $(LALINSPIRAL_TARGET) $(LALPULSAR_TARGET) $(LALINFER_TARGET) $(LALSTOCH_TARGET) $(LALAPPS_TARGET)
+$(LOGS_DIR)/lalsuite.txt : $(LAL_TARGET) $(LALFRAME_TARGET) $(LALMETAIO_TARGET) $(LALSIM_TARGET) $(LALBURST_TARGET) $(LALINSPIRAL_TARGET) $(LALPULSAR_TARGET) $(LALINFER_TARGET) $(LALAPPS_TARGET)
 	@echo $^ | sed -e "s@ @\n@g" > $@
 
 # lalapps
@@ -401,65 +443,16 @@ $(LAL_TARGET) : $(LOGS_DIR)/patch.txt
 #########################
 
 # patches
-patch : logs/patch.txt
+patch : $(LOGS_DIR)/patch.txt
 
-logs/patch.txt : $(LOGS_DIR)/tar.txt $(PATCH_DIR)/gst1.14.patch
+$(LOGS_DIR)/patch.txt : $(LOGS_DIR) $(PATCH_DIR)/gst1.14.patch
 	echo $^ | sed -e "s@ @\n@g" > $@
 
-$(PATCH_DIR)/gst1.14.patch : $(LOGS_DIR)/tar.txt
+$(PATCH_DIR)/gst1.14.patch : $(LOGS_DIR)
 	@echo $(GREEN)patches$(WHITE) 1>&2
 	cp $(GSTLAL_REPO)/gstlal-inspiral/share/O3/optimized/gst1.14.patch $(PATCH_DIR)
 	cd $(GSTLAL_REPO) && patch -p1 < $(PATCH_DIR)/gst1.14.patch
 
-#tarballs
-logs/tar.txt : $(LAL_TAR_TARGET) $(LALFRAME_TAR_TARGET) $(LALMETAIO_TAR_TARGET) $(LALSIM_TAR_TARGET) $(LALBURST_TAR_TARGET) $(LALINSPIRAL_TAR_TARGET) $(LALPULSAR_TAR_TARGET) $(LALINFER_TAR_TARGET) $(LALAPPS_TAR_TARGET) $(GLUE_TAR_TARGET) $(GSTLAL_TAR_TARGET) $(GSTLALUGLY_TAR_TARGET) $(GSTLALBURST_TAR_TARGET) $(GSTLALCALIB_TAR_TARGET) $(GSTLALINSPIRAL_TAR_TARGET)
-	echo $^ | sed -e "s@ @\n@g" > $@
-
-$(GSTLALINSPIRAL_TAR_TARGET) : $(GSTLALCALIB_TAR_TARGET)
-	wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(GSTLALINSPIRAL).tar.gz --directory-prefix=$(TAR_DIR)  -nc
-
-$(GSTLALCALIB_TAR_TARGET) : $(GSTLALBURST_TAR_TARGET)
-	wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(GSTLALCALIBRATION).tar.gz --directory-prefix=$(TAR_DIR) -nc
-
-$(GSTLALBURST_TAR_TARGET) : $(GSTLAUGLYL_TAR_TARGET)
-	wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(GSTLALBURST).tar.gz --directory-prefix=$(TAR_DIR) -nc
-	
-$(GSTLALUGLY_TAR_TARGET) : $(GSTLAL_TAR_TARGET)
-	wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(GSTLALUGLY).tar.gz --directory-prefix=$(TAR_DIR) -nc
-
-$(GSTLAL_TAR_TARGET) : $(GLUE_TAR_TARGET)
-	wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(GSTLAL).tar.gz --directory-prefix=$(TAR_DIR) -nc
-
-$(GLUE_TAR_TARGET) : $(LALAPPS_TAR_TARGET)
-	wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(GLUE).tar.gz --directory-prefix=$(TAR_DIR) -nc
-
-$(LALAPPS_TAR_TARGET) : $(LALINFER_TAR_TARGET)
-	wget --no-check-certificate http://software.ligo.org/lscsoft/source/lalsuite/$(LALAPPS).tar.xz --directory-prefix=$(TAR_DIR) -nc
-
-$(LALINFER_TAR_TARGET) : $(LALPULSAR_TAR_TARGET)
-	wget --no-check-certificate http://software.ligo.org/lscsoft/source/lalsuite/$(LALINFERENCE).tar.xz --directory-prefix=$(TAR_DIR) -nc
-
-$(LALPULSAR_TAR_TARGET) : $(LALINSPIRAL_TAR_TARGET)
-	wget --no-check-certificate http://software.ligo.org/lscsoft/source/lalsuite/$(LALPULSAR).tar.xz --directory-prefix=$(TAR_DIR) -nc
-
-$(LALINSPIRAL_TAR_TARGET) : $(LALBURST_TAR_TARGET)
-	wget --no-check-certificate http://software.ligo.org/lscsoft/source/lalsuite/$(LALINSPIRAL).tar.xz --directory-prefix=$(TAR_DIR) -nc
-
-$(LALBURST_TAR_TARGET) : $(LALSIM_TAR_TARGET)
-	wget --no-check-certificate http://software.ligo.org/lscsoft/source/lalsuite/$(LALBURST).tar.xz --directory-prefix=$(TAR_DIR) -nc
-
-$(LALSIM_TAR_TARGET) : $(LALMETAIO_TAR_TARGET)
-	wget --no-check-certificate http://software.ligo.org/lscsoft/source/lalsuite/$(LALSIMULATION).tar.xz --directory-prefix=$(TAR_DIR) -nc
-
-$(LALMETAIO_TAR_TARGET) : $(LALFRAME_TAR_TARGET)
-	wget --no-check-certificate http://software.ligo.org/lscsoft/source/lalsuite/$(LALMETAIO).tar.xz --directory-prefix=$(TAR_DIR) -nc
-
-$(LALFRAME_TAR_TARGET) : $(LAL_TAR_TARGET)
-	wget --no-check-certificate http://software.ligo.org/lscsoft/source/lalsuite/$(LALFRAME).tar.xz --directory-prefix=$(TAR_DIR) -nc
-
-$(LAL_TAR_TARGET) : $(LOGS_DIR)
-	wget --no-check-certificate http://software.ligo.org/lscsoft/source/lalsuite/$(LAL).tar.xz --directory-prefix=$(TAR_DIR) -nc
-
 # git repos
 $(LOGS_DIR) :
 	mkdir -p $(SRC_DIR) $(INSTALL_DIR) $(PATCH_DIR) $(TAR_DIR)
@@ -470,6 +463,18 @@ $(LOGS_DIR) :
 			mkdir -p $(LALSUITE_REPO) ; \
 			git clone -b $(LALSUITE_GIT_BRANCH) https://git.ligo.org/lscsoft/lalsuite.git $(LALSUITE_REPO) ; \
 		fi ; \
+	else \
+		wget --no-check-certificate http://software.ligo.org/lscsoft/source/lalsuite/$(LAL).tar.xz --directory-prefix=$(TAR_DIR) -nc ; \
+		wget --no-check-certificate http://software.ligo.org/lscsoft/source/lalsuite/$(LALFRAME).tar.xz --directory-prefix=$(TAR_DIR) -nc ; \
+		wget --no-check-certificate http://software.ligo.org/lscsoft/source/lalsuite/$(LALMETAIO).tar.xz --directory-prefix=$(TAR_DIR) -nc ; \
+		wget --no-check-certificate http://software.ligo.org/lscsoft/source/lalsuite/$(LALSIMULATION).tar.xz --directory-prefix=$(TAR_DIR) -nc ; \
+		wget --no-check-certificate http://software.ligo.org/lscsoft/source/lalsuite/$(LALBURST).tar.xz --directory-prefix=$(TAR_DIR) -nc ; \
+		wget --no-check-certificate http://software.ligo.org/lscsoft/source/lalsuite/$(LALDETCHAR).tar.xz --directory-prefix=$(TAR_DIR) -nc ; \
+		wget --no-check-certificate http://software.ligo.org/lscsoft/source/lalsuite/$(LALINSPIRAL).tar.xz --directory-prefix=$(TAR_DIR) -nc ; \
+		wget --no-check-certificate http://software.ligo.org/lscsoft/source/lalsuite/$(LALPULSAR).tar.xz --directory-prefix=$(TAR_DIR) -nc ; \
+		wget --no-check-certificate http://software.ligo.org/lscsoft/source/lalsuite/$(LALINFERENCE).tar.xz --directory-prefix=$(TAR_DIR) -nc ; \
+		wget --no-check-certificate http://software.ligo.org/lscsoft/source/lalsuite/$(LALSTOCHASTIC).tar.xz --directory-prefix=$(TAR_DIR) -nc ; \
+		wget --no-check-certificate http://software.ligo.org/lscsoft/source/lalsuite/$(LALAPPS).tar.xz --directory-prefix=$(TAR_DIR) -nc ; \
 	fi ;
 	if [ "${GLUE_GIT}" = "1" ]; then \
 		if [ -f $@ ] ; then \
@@ -478,6 +483,28 @@ $(LOGS_DIR) :
 			mkdir -p $(GLUE_REPO) ; \
 			git clone -b $(GLUE_GIT_BRANCH) https://git.ligo.org/lscsoft/glue.git $(GLUE_REPO) ; \
 		fi ; \
+	else \
+		wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(GLUE).tar.gz --directory-prefix=$(TAR_DIR) -nc ; \
+	fi ;
+	if [ "${PYTHONLIGOLW_GIT}" = "1" ]; then \
+		if [ -f $@ ] ; then \
+			echo "Python-ligo-lw git repo exists" ; \
+		else \
+			mkdir -p $(PYTHONLIGOLW_REPO) ; \
+			git clone -b $(PYTHONLIGOLW_GIT_BRANCH) https://git.ligo.org/kipp.cannon/python-ligo-lw.git $(PYTHONLIGOLW_REPO) ; \
+		fi ; \
+	else \
+		wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(PYTHONLIGOLW).tar.gz --directory-prefix=$(TAR_DIR) -nc ; \
+	fi ;
+	if [ "${LIGOSEGMENTS_GIT}" = "1" ]; then \
+		if [ -f $@ ] ; then \
+			echo "Ligo-segments git repo exists" ; \
+		else \
+			mkdir -p $(LIGOSEGMENTS_REPO) ; \
+			git clone -b $(LIGOSEGMENTS_GIT_BRANCH) https://git.ligo.org/lscsoft/ligo-segments.git $(LIGOSEGMENTS_REPO) ; \
+		fi ; \
+	else \
+		wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(LIGOSEGMENTS).tar.gz --directory-prefix=$(TAR_DIR) -nc ; \
 	fi ;
 	if [ "${GSTLAL_GIT}" = "1" ]; then \
 		if [ -f $@ ] ; then \
@@ -486,6 +513,12 @@ $(LOGS_DIR) :
 			mkdir -p $(GSTLAL_REPO) ; \
 			git clone -b $(GSTLAL_GIT_BRANCH) https://git.ligo.org/lscsoft/gstlal.git $(GSTLAL_REPO) ; \
 		fi ; \
+	else \
+		wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(GSTLAL).tar.gz --directory-prefix=$(TAR_DIR) -nc ; \
+		wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(GSTLALUGLY).tar.gz --directory-prefix=$(TAR_DIR) -nc ; \
+		wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(GSTLALBURST).tar.gz --directory-prefix=$(TAR_DIR) -nc \
+		wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(GSTLALCALIBRATION).tar.gz --directory-prefix=$(TAR_DIR) -nc ; \
+		wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(GSTLALINSPIRAL).tar.gz --directory-prefix=$(TAR_DIR)  -nc ; \
 	fi ;
 	mkdir -p $(LOGS_DIR)
 
@@ -499,10 +532,10 @@ clean-all :
 	rm -rf *.txt
 
 clean-install :
-	rm -rf opt/* logs/* src/*
+	rm -rf opt/* $(LOGS_DIR)/* src/*
 
 clean-gstlal :
-	rm -rf logs/gstlal.txt $(GSTLAL_TARGET) $(GSTLALUGLY_TARGET) $(GSTLALCALIB_TARGET) $(GSTLALINSPIRAL_TARGET) $(GSTLALBURST_TARGET)
+	rm -rf $(LOGS_DIR)/gstlal.txt $(GSTLAL_TARGET) $(GSTLALUGLY_TARGET) $(GSTLALCALIB_TARGET) $(GSTLALINSPIRAL_TARGET) $(GSTLALBURST_TARGET)
 
 clean-lalsuite :
-	rm -rf logs/lalsuite.txt $(LAL_TARGET) $(LALFRAME_TARGET) $(LALMETAIO_TARGET) $(LALSIM_TARGET) $(LALBURST_TARGET) $(LALINSPIRAL_TARGET) $(LALPULSAR_TARGET) $(LALINFER_TARGET) $(LALAPPS_TARGET) $(GLUE_TARGET)
+	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)
diff --git a/gstlal-inspiral/share/O3/optimized/Makefile.ligosoftware_icc_all b/gstlal-inspiral/share/O3/optimized/Makefile.ligosoftware_icc_all
index 55931b7ab7..7b34fa3d8d 100644
--- a/gstlal-inspiral/share/O3/optimized/Makefile.ligosoftware_icc_all
+++ b/gstlal-inspiral/share/O3/optimized/Makefile.ligosoftware_icc_all
@@ -25,7 +25,7 @@ CLUSTER:=$(shell hostname -d)
 # Set directories and paths
 SRC_DIR:=${PWD}/src
 TAR_DIR:=tarball
-LOGS_DIR:=logs
+LOGS_DIR:=${PWD}/logs
 PATCH_DIR:=${PWD}/patches
 INSTALL_DIR:=${LAL_PATH}
 ifeq ($(findstring debian,$(shell cat /etc/os-release | grep ID=)),debian)
@@ -37,19 +37,25 @@ else
 endif
 
 GSTLAL_REPO:=${PWD}/git/gstlal
+LIGOSEGMENTS_REPO:=${PWD}/git/ligo-segments
+PYTHONLIGOLW_REPO:=${PWD}/git/python-ligo-lw
 GLUE_REPO:=${PWD}/git/glue
 LALSUITE_REPO:=${PWD}/git/lalsuite
 
 # Set to build from git (0 = tarball, 1 = git)
 GSTLAL_GIT=1
-GLUE_GIT=1
-LALSUITE_GIT=1
+LIGOSEGMENTS_GIT=0
+PYTHONLIGOLW_GIT=0
+GLUE_GIT=0
+LALSUITE_GIT=0
 
-# Define which branch from git to build. Defaults to 'master', but the user can 
+# Define which branch from git to build. Defaults to 'master', but the user can
 # set the variable below. The git clone and compilation should fail if this is set to
 # an unknown branch.
 #
 GSTLAL_GIT_BRANCH="master"
+LIGOSEGMENTS_GIT_BRANCH="master"
+PYTHONLIGOLW_GIT_BRANCH="master"
 GLUE_GIT_BRANCH="master"
 LALSUITE_GIT_BRANCH="master"
 
@@ -59,6 +65,8 @@ GSTLALCALIBRATION=gstlal-calibration-1.2.1
 GSTLALBURST=gstlal-burst-0.0.5
 GSTLALUGLY=gstlal-ugly-1.5.5
 GSTLAL=gstlal-1.4.1
+LIGOSEGMENTS=ligo-segments-1.1.1
+PYTHONLIGOLW=python-ligo-lw-1.4.0
 GLUE=lscsoft-glue-1.60.0
 LALAPPS=lalapps-6.22.0
 LALINFERENCE=lalinference-1.10.0
@@ -89,6 +97,8 @@ GSTLALCALIB_TARGET=$(INSTALL_DIR)/bin/gstlal_compute_strain
 GSTLALBURST_TARGET=$(INSTALL_DIR)/lib/libgstlalburst.so
 GSTLALUGLY_TARGET=$(INSTALL_DIR)/lib/gstreamer-1.0/libgstnds.so
 GSTLAL_TARGET=$(INSTALL_DIR)/lib/libgstlal.so
+LIGOSEGMENTS_TARGET=$(INSTALL_DIR)/lib/python2.7/site-packages/ligo_segments-1.1.1-py2.7-linux-x86_64.egg
+PYTHONLIGOLW_TARGET=$(INSTALL_DIR)/lib/python2.7/site-packages/python_ligo_lw-1.4.0-py2.7.egg-info
 GLUE_TARGET=$(INSTALL_DIR)/bin/dmtdq_seg_insert
 LALAPPS_TARGET=$(INSTALL_DIR)/bin/lalapps_psinject
 LALINFER_TARGET=$(INSTALL_DIR)/lib/liblalinference.so
@@ -120,6 +130,8 @@ GSTLALCALIB_TAR_TARGET=$(TAR_DIR)/$(GSTLALCALIBRATION).tar.gz
 GSTLALBURST_TAR_TARGET=$(TAR_DIR)/$(GSTLALBURST).tar.gz
 GSTLALUGLY_TAR_TARGET=$(TAR_DIR)/$(GSTLALUGLY).tar.gz
 GSTLAL_TAR_TARGET=$(TAR_DIR)/$(GSTLAL).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
 LALAPPS_TAR_TARGET=$(TAR_DIR)/$(LALAPPS).tar.xz
 LALINFER_TAR_TARGET=$(TAR_DIR)/$(LALINFERENCE).tar.xz
@@ -146,6 +158,8 @@ FFTW_TAR_TARGET=$(TAR_DIR)/$(FFTW).tar.gz
 
 # git repos
 GSTLAL_GIT_TARGET=$(GSTLAL_REPO)/TODO.md
+LIGOSEGMENTS_GIT_TARGET=$(LIGOSEGMENTS_REPO)/README.rst
+PYTHONLIGOLW_GIT_TARGET=$(PYTHONLIGOLW_REPO)/MANIFEST.in
 GLUE_GIT_TARGET=$(GLUE_REPO)/README
 LALSUITE_GIT_TARGET=$(LALSUITE_REPO)/lal/README
 
@@ -221,7 +235,7 @@ env.sh :
 ###########
 
 # gstlal (all)
-gstlal : logs/gstlal.txt src/kafka_2.11-2.0.0
+gstlal : $(LOGS_DIR)/gstlal.txt src/kafka_2.11-2.0.0
 
 all : src/kafka_2.11-2.0.0
 
@@ -253,12 +267,12 @@ src/kafka_2.11-2.0.0: tarball/kafka_2.11-2.0.0.tgz src opt/bin opt/config opt/li
 #####################
 
 check :
-	@if [ -f logs/all.txt ] ; then rm logs/all.txt ; fi ;
-	@cat logs/* | uniq > logs/all.txt
-	@if [ -f logs/gstlal.txt ] ; then ls logs/gstlal.txt >> logs/all.txt ; fi ;
-	@ls -ltrh $$(cat logs/all.txt)
+	@if [ -f $(LOGS_DIR)/all.txt ] ; then rm $(LOGS_DIR)/all.txt ; fi ;
+	@cat $(LOGS_DIR)/* | uniq > $(LOGS_DIR)/all.txt
+	@if [ -f $(LOGS_DIR)/gstlal.txt ] ; then ls $(LOGS_DIR)/gstlal.txt >> $(LOGS_DIR)/all.txt ; fi ;
+	@ls -ltrh $$(cat $(LOGS_DIR)/all.txt)
 
-logs/gstlal.txt : $(LOGS_DIR)/glue.txt $(GSTLAL_TARGET) $(GSTLALUGLY_TARGET) $(GSTLALBURST_TARGET) $(GSTLALCALIB_TARGET) $(GSTINSPIRAL_TARGET)
+$(LOGS_DIR)/gstlal.txt : $(LOGS_DIR)/glue.txt $(GSTLAL_TARGET) $(GSTLALUGLY_TARGET) $(GSTLALBURST_TARGET) $(GSTLALCALIB_TARGET) $(GSTINSPIRAL_TARGET)
 	@echo $^ | sed -e "s@ @\n@g" > $@
 
 # gstlal-inspiral
@@ -314,7 +328,7 @@ $(GSTLALUGLY_TARGET) : $(GSTLAL_TARGET)
 	fi ;
 
 # gstlal
-$(GSTLAL_TARGET) : $(GLUE_TARGET)
+$(GSTLAL_TARGET) : $(LIGOSEGMENTS_TARGET)
 	@echo $(GREEN)gstlal$(WHITE) 1>&2
 	if [ "${GSTLAL_GIT}" = "1" ]; then \
 		cd $(GSTLAL_REPO)/gstlal && echo | ./00init.sh ; \
@@ -326,10 +340,40 @@ $(GSTLAL_TARGET) : $(GLUE_TARGET)
 		cd $(SRC_DIR)/$(GSTLAL) && make -j$(CORES) && make install -j$(CORES) ; \
 	fi ;
 
+# ligo-segments
+ligo-segments : $(LOGS_DIR)/ligo-segments.txt
+
+$(LOGS_DIR)/ligo-segments.txt : $(LOGS_DIR)/python-ligo-lw.txt $(LIGOSEGMENTS_TARGET)
+	@echo $^ | sed -e "s@ @\n@g" > $@
+
+$(LIGOSEGMENTS_TARGET) : $(PYTHONLIGOLW_TARGET)
+	@echo $(GREEN)ligo-segments$(WHITE) 1>&2
+	if [ "${LIGOSEGMENTS_GIT}" = "1" ]; then \
+		cd $(LIGOSEGMENTS_REPO) && python setup.py install --prefix=$(INSTALL_DIR) ; \
+	else \
+		tar -xzf $(TAR_DIR)/$(LIGOSEGMENTS).tar.gz -C $(SRC_DIR) ; \
+		cd $(SRC_DIR)/$(LIGOSEGMENTS) && python setup.py install --prefix=$(INSTALL_DIR) ; \
+	fi ;
+
+# python-ligo-lw
+python-ligo-lw : $(LOGS_DIR)/python-ligo-lw.txt
+
+$(LOGS_DIR)/python-ligo-lw.txt : $(LOGS_DIR)/glue.txt $(PYTHONLIGOLW_TARGET)
+	@echo $^ | sed -e "s@ @\n@g" > $@
+
+$(PYTHONLIGOLW_TARGET) : $(GLUE_TARGET)
+	@echo $(GREEN)python-ligo-lw$(WHITE) 1>&2
+	if [ "${PYTHONLIGOLW_GIT}" = "1" ]; then \
+		cd $(PYTHONLIGOLW_REPO) && python setup.py install --prefix=$(INSTALL_DIR) ; \
+	else \
+		tar -xzf $(TAR_DIR)/$(PYTHONLIGOLW).tar.gz -C $(SRC_DIR) ; \
+		cd $(SRC_DIR)/$(PYTHONLIGOLW) && python setup.py install --prefix=$(INSTALL_DIR) ; \
+	fi ;
+
 # glue
-glue : logs/glue.txt
+glue : $(LOGS_DIR)/glue.txt
 
-logs/glue.txt : $(LOGS_DIR)/lalsuite.txt $(GLUE_TARGET)
+$(LOGS_DIR)/glue.txt : $(LOGS_DIR)/lalsuite.txt $(GLUE_TARGET)
 	@echo $^ | sed -e "s@ @\n@g" > $@
 
 $(GLUE_TARGET) : $(LALAPPS_TARGET)
@@ -342,9 +386,9 @@ $(GLUE_TARGET) : $(LALAPPS_TARGET)
 	fi ;
 
 # lalsuite
-lalsuite : logs/lalsuite.txt
+lalsuite : $(LOGS_DIR)/lalsuite.txt
 
-logs/lalsuite.txt : $(LOGS_DIR)/gds.txt $(LAL_TARGET) $(LALFRAME_TARGET) $(LALMETAIO_TARGET) $(LALSIM_TARGET) $(LALBURST_TARGET) $(LALINSPIRAL_TARGET) $(LALPULSAR_TARGET) $(LALINFER_TARGET) $(LALAPPS_TARGET)
+$(LOGS_DIR)/lalsuite.txt : $(LOGS_DIR)/gds.txt $(LAL_TARGET) $(LALFRAME_TARGET) $(LALMETAIO_TARGET) $(LALSIM_TARGET) $(LALBURST_TARGET) $(LALINSPIRAL_TARGET) $(LALPULSAR_TARGET) $(LALINFER_TARGET) $(LALAPPS_TARGET)
 	@echo $^ | sed -e "s@ @\n@g" > $@
 
 # lalapps
@@ -486,9 +530,9 @@ $(LAL_TARGET) : $(LIBFRAME_TARGET) $(METAIO_TARGET) $(SWIG_TARGET) $(LDASTOOLSAL
 	fi ;
 
 # gds
-gds : logs/gds.txt
+gds : $(LOGS_DIR)/gds.txt
 
-logs/gds.txt : $(LOGS_DIR)/ldas-tools-framecpp.txt $(GDS_TARGET)
+$(LOGS_DIR)/gds.txt : $(LOGS_DIR)/ldas-tools-framecpp.txt $(GDS_TARGET)
 	@echo $^ | sed -e "s@ @\n@g" > $@
 
 $(GDS_TARGET) : $(LDASTOOLSFRAMECPP_TARGET)
@@ -498,9 +542,9 @@ $(GDS_TARGET) : $(LDASTOOLSFRAMECPP_TARGET)
 	cd $(SRC_DIR)/$(GDS) && make && make install
 
 # ldas-tools-framecpp
-ldas-tools-framecpp : logs/ldas-tools-framecpp.txt
+ldas-tools-framecpp : $(LOGS_DIR)/ldas-tools-framecpp.txt
 
-logs/ldas-tools-framecpp.txt : $(LOGS_DIR)/ldas-tools-al.txt $(LDASTOOLSFRAMECPP_TARGET)
+$(LOGS_DIR)/ldas-tools-framecpp.txt : $(LOGS_DIR)/ldas-tools-al.txt $(LDASTOOLSFRAMECPP_TARGET)
 	@echo $^ | sed -e "s@ @\n@g" > $@
 
 $(LDASTOOLSFRAMECPP_TARGET) : $(LDASTOOLSAL_TARGET)
@@ -510,9 +554,9 @@ $(LDASTOOLSFRAMECPP_TARGET) : $(LDASTOOLSAL_TARGET)
 	cd $(SRC_DIR)/$(LDASTOOLSFRAMECPP) && make DESTDIR=/ -j$(CORES) && make install DESTDIR=/ -j$(CORES)
 
 # ldas-tools-al
-ldas-tools-al : logs/ldas-tools-al.txt
+ldas-tools-al : $(LOGS_DIR)/ldas-tools-al.txt
 
-logs/ldas-tools-al.txt : $(LOGS_DIR)/swig.txt $(LDASTOOLSAL_TARGET)
+$(LOGS_DIR)/ldas-tools-al.txt : $(LOGS_DIR)/swig.txt $(LDASTOOLSAL_TARGET)
 	@echo $^ | sed -e "s@ @\n@g" > $@
 
 $(LDASTOOLSAL_TARGET) : $(SWIG_TARGET)
@@ -522,9 +566,9 @@ $(LDASTOOLSAL_TARGET) : $(SWIG_TARGET)
 	cd $(SRC_DIR)/$(LDASTOOLSAL) && make -j$(CORES) && make install -j$(CORES)
 
 # swig
-swig : logs/swig.txt
+swig : $(LOGS_DIR)/swig.txt
 
-logs/swig.txt : $(LOGS_DIR)/metaio.txt $(SWIG_TARGET)
+$(LOGS_DIR)/swig.txt : $(LOGS_DIR)/metaio.txt $(SWIG_TARGET)
 	@echo $^ | sed -e "s@ @\n@g" > $@
 
 $(SWIG_TARGET) : $(METAIO_TARGET)
@@ -534,9 +578,9 @@ $(SWIG_TARGET) : $(METAIO_TARGET)
 	cd $(SRC_DIR)/$(SWIG) && make -j$(CORES) && make install -j$(CORES)
 
 # metaio
-metaio : logs/metaio.txt
+metaio : $(LOGS_DIR)/metaio.txt
 
-logs/metaio.txt : $(LOGS_DIR)/libframe.txt $(METAIO_TARGET)
+$(LOGS_DIR)/metaio.txt : $(LOGS_DIR)/libframe.txt $(METAIO_TARGET)
 	@echo $^ | sed -e "s@ @\n@g" > $@
 
 $(METAIO_TARGET) : $(LIBFRAME_TARGET)
@@ -547,9 +591,9 @@ $(METAIO_TARGET) : $(LIBFRAME_TARGET)
 	# Needed with-matlab option for intel_haswell test
 
 # libframe
-libframe : logs/libframe.txt
+libframe : $(LOGS_DIR)/libframe.txt
 
-logs/libframe.txt : $(LOGS_DIR)/gstreamer.txt $(LIBFRAME_TARGET)
+$(LOGS_DIR)/libframe.txt : $(LOGS_DIR)/gstreamer.txt $(LIBFRAME_TARGET)
 	@echo $^ | sed -e "s@ @\n@g" > $@
 
 $(LIBFRAME_TARGET) : $(GSTPYTHON_TARGET)
@@ -559,9 +603,9 @@ $(LIBFRAME_TARGET) : $(GSTPYTHON_TARGET)
 	cd $(SRC_DIR)/$(LIBFRAME) && make -j$(CORES) && make install -j$(CORES)
 
 # gstreamer (all)
-gstreamer : logs/gstreamer.txt
+gstreamer : $(LOGS_DIR)/gstreamer.txt
 
-logs/gstreamer.txt : $(LOGS_DIR)/gsl.txt $(GSTREAMER_TARGET) $(GSTBASE_TARGET) $(GSTGOOD_TARGET) $(GSTPYTHON_TARGET)
+$(LOGS_DIR)/gstreamer.txt : $(LOGS_DIR)/gsl.txt $(GSTREAMER_TARGET) $(GSTBASE_TARGET) $(GSTGOOD_TARGET) $(GSTPYTHON_TARGET)
 	@echo $^ | sed -e "s@ @\n@g" > $@
 
 # gstreamer plugin python
@@ -594,9 +638,9 @@ $(GSTREAMER_TARGET) : $(GSL_2_TARGET)
 	cd $(SRC_DIR)/$(GSTREAMER) && make -j$(CORES) && make install -j$(CORES)
 
 # GSL
-gsl : logs/gsl.txt
+gsl : $(LOGS_DIR)/gsl.txt
 
-logs/gsl.txt : $(LOGS_DIR)/orc.txt $(GSL_1_TARGET) $(GSL_2_TARGET)
+$(LOGS_DIR)/gsl.txt : $(LOGS_DIR)/orc.txt $(GSL_1_TARGET) $(GSL_2_TARGET)
 	@echo $^ | sed -e "s@ @\n@g" > $@
 
 ## FIXME Hack to make gsl default to atlas for blas
@@ -611,9 +655,9 @@ $(GSL_1_TARGET) : $(ORC_TARGET)
 	cd $(SRC_DIR)/$(GSL) && make -j$(CORES) && make install -j$(CORES)
 
 # ORC
-orc : logs/orc.txt
+orc : $(LOGS_DIR)/orc.txt
 
-logs/orc.txt : $(LOGS_DIR)/fftw.txt $(ORC_TARGET)
+$(LOGS_DIR)/orc.txt : $(LOGS_DIR)/fftw.txt $(ORC_TARGET)
 	@echo $^ | sed -e "s@ @\n@g" > $@
 
 $(ORC_TARGET) : $(FFTW_TARGET)
@@ -623,12 +667,12 @@ $(ORC_TARGET) : $(FFTW_TARGET)
 	cd $(SRC_DIR)/$(ORC) && make -j$(CORES) && make install -j$(CORES)
 
 # fftw
-fftw : logs/fftw.txt
+fftw : $(LOGS_DIR)/fftw.txt
 
-logs/fftw.txt : $(LOGS_DIR)/patch.txt $(FFTW_TARGET)
+$(LOGS_DIR)/fftw.txt : $(LOGS_DIR)/patch.txt $(FFTW_TARGET)
 	@echo $^ | sed -e "s@ @\n@g" > $@
 
-# ./configure, make, make install run thrice to install single and double precision, and long double libs 
+# ./configure, make, make install run thrice to install single and double precision, and long double libs
 $(FFTW_TARGET) : $(LOGS_DIR)/patch.txt
 	@echo $(GREEN)fftw$(WHITE) 1>&2
 	tar -xzf $(TAR_DIR)/$(FFTW).tar.gz -C $(SRC_DIR)
@@ -645,9 +689,9 @@ $(FFTW_TARGET) : $(LOGS_DIR)/patch.txt
 #########################
 
 # patches
-patch : logs/patch.txt
+patch : $(LOGS_DIR)/patch.txt
 
-logs/patch.txt : $(LOGS_DIR)/tar.txt $(PATCH_DIR)/gst1.14.patch
+$(LOGS_DIR)/patch.txt : $(LOGS_DIR)/tar.txt $(PATCH_DIR)/gst1.14.patch
 	echo $^ | sed -e "s@ @\n@g" > $@
 
 $(PATCH_DIR)/gst1.14.patch : $(LOGS_DIR)/tar.txt
@@ -656,7 +700,7 @@ $(PATCH_DIR)/gst1.14.patch : $(LOGS_DIR)/tar.txt
 	cd $(GSTLAL_REPO) && patch -p1 < $(PATCH_DIR)/gst1.14.patch
 
 #tarballs
-logs/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)
 	echo $^ | sed -e "s@ @\n@g" > $@
 
 $(GDS_TAR_TARGET) : $(LDASTOOLSFRAMECPP_TAR_TARGET)
@@ -729,6 +773,26 @@ $(LOGS_DIR) :
 	else \
 		wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(GLUE).tar.gz --directory-prefix=$(TAR_DIR) -nc ; \
 	fi ;
+	if [ "${PYTHONLIGOLW_GIT}" = "1" ]; then \
+		if [ -f $@ ] ; then \
+			echo "Python-ligo-lw git repo exists" ; \
+		else \
+			mkdir -p $(PYTHONLIGOLW_REPO) ; \
+			git clone -b $(PYTHONLIGOLW_GIT_BRANCH) https://git.ligo.org/kipp.cannon/python-ligo-lw.git $(PYTHONLIGOLW_REPO) ; \
+		fi ; \
+	else \
+		wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(PYTHONLIGOLW).tar.gz --directory-prefix=$(TAR_DIR) -nc ; \
+	fi ;
+	if [ "${LIGOSEGMENTS_GIT}" = "1" ]; then \
+		if [ -f $@ ] ; then \
+			echo "Ligo-segments git repo exists" ; \
+		else \
+			mkdir -p $(LIGOSEGMENTS_REPO) ; \
+			git clone -b $(LIGOSEGMENTS_GIT_BRANCH) https://git.ligo.org/lscsoft/ligo-segments.git $(LIGOSEGMENTS_REPO) ; \
+		fi ; \
+	else \
+		wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(LIGOSEGMENTS).tar.gz --directory-prefix=$(TAR_DIR) -nc ; \
+	fi ;
 	if [ "${GSTLAL_GIT}" = "1" ]; then \
 		if [ -f $@ ] ; then \
 			echo "Gstlal git repo exists" ; \
@@ -755,40 +819,40 @@ clean-all :
 	rm -rf *.txt
 
 clean-install :
-	rm -rf opt/* logs/* src/*
+	rm -rf opt/* $(LOGS_DIR)/* src/*
 
 clean-gstlal :
-	rm -rf logs/gstlal.txt $(GSTLAL_TARGET) $(GSTLALUGLY_TARGET) $(GSTLALBURST_TARGET) $(GSTLALCALIB_TARGET) $(GSTLALINSPIRAL_TARGET)
+	rm -rf $(LOGS_DIR)/gstlal.txt $(GSTLAL_TARGET) $(GSTLALUGLY_TARGET) $(GSTLALBURST_TARGET) $(GSTLALCALIB_TARGET) $(GSTLALINSPIRAL_TARGET)
 
 clean-lalsuite :
-	rm -rf logs/lalsuite.txt $(LAL_TARGET) $(LALFRAME_TARGET) $(LALMETAIO_TARGET) $(LALSIM_TARGET) $(LALBURST_TARGET) $(LALINSPIRAL_TARGET) $(LALPULSAR_TARGET) $(LALINFER_TARGET) $(LALAPPS_TARGET) $(GLUE_TARGET)
+	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)
 
 clean-gds :
-	rm -rf logs/gds.txt $(GDS_TARGET)
+	rm -rf $(LOGS_DIR)/gds.txt $(GDS_TARGET)
 
 clean-ldas-tools-framecpp :
-	rm -rf logs/ldas-tools-framecpp.txt $(LDASTOOLSFRAMECPP_TARGET)
+	rm -rf $(LOGS_DIR)/ldas-tools-framecpp.txt $(LDASTOOLSFRAMECPP_TARGET)
 
 clean-ldas-tools-al :
-	rm -rf logs/ldas-tools-al.txt $(LDASTOOLSAL_TARGET)
+	rm -rf $(LOGS_DIR)/ldas-tools-al.txt $(LDASTOOLSAL_TARGET)
 
 clean-swig :
-	rm -rf logs/swig.txt $(SWIG_TARGET)
+	rm -rf $(LOGS_DIR)/swig.txt $(SWIG_TARGET)
 
 clean-metaio :
-	rm -rf logs/metaio.txt $(METAIO_TARGET)
+	rm -rf $(LOGS_DIR)/metaio.txt $(METAIO_TARGET)
 
 clean-libframe :
-	rm -rf logs/libframe.txt $(LIBFRAME_TARGET)
+	rm -rf $(LOGS_DIR)/libframe.txt $(LIBFRAME_TARGET)
 
 clean-gstreamer :
-	rm -rf logs/gstreamer.txt $(GSTREAMER_TARGET) $(GSTBASE_TARGET) $(GSTGOOD_TARGET) $(GSTPYTHON_TARGET)
+	rm -rf $(LOGS_DIR)/gstreamer.txt $(GSTREAMER_TARGET) $(GSTBASE_TARGET) $(GSTGOOD_TARGET) $(GSTPYTHON_TARGET)
 
 clean-gsl :
-	rm -rf logs/gsl.txt $(GSL_1_TARGET) $(GSL_2_TARGET)
+	rm -rf $(LOGS_DIR)/gsl.txt $(GSL_1_TARGET) $(GSL_2_TARGET)
 
 clean-orc :
-	rm -rf logs/orc.txt $(ORC_TARGET)
+	rm -rf $(LOGS_DIR)/orc.txt $(ORC_TARGET)
 
 clean-fftw :
-	rm -rf logs/fftw.txt $(FFTW_TARGET)
+	rm -rf $(LOGS_DIR)/fftw.txt $(FFTW_TARGET)
-- 
GitLab