Skip to content
Snippets Groups Projects
Commit 2621513e authored by Patrick Godwin's avatar Patrick Godwin
Browse files

add O3/optimized folder in inspiral with gcc/icc makefiles + gstreamer 1.14 patch

parent bc3eb49c
No related branches found
No related tags found
No related merge requests found
SHELL := /bin/bash # Use bash syntax
#
# To run: make env.sh, then source the resulting environment file and run: make
#
# Example command:
# make deps_env.sh -f Makefile.ligosoftware_gcc_deps
# source deps_env.sh
# time make gds -f Makefile.ligosoftware_gcc_deps 1> make.out 2> make.err
#
# If you would like to rebuild only part of the software stack, but it starts
# from the beginning if using the above command, then use the touch (-t) option
# on the previous package.
#
# Example: Rebuild gstreamer:
# make gsl -f Makefile.ligosoftware_gcc_deps -t
# make gstreamer -f Makefile.ligosoftware_gcc_deps
# Determine cluster
CLUSTER:=$(shell hostname -d)
# Set directories and paths
SRC_DIR:=${PWD}/src
TAR_DIR:=tarball
LOGS_DIR:=logs
PATCH_DIR:=${PWD}/patches
INSTALL_DIR:=${DEPS_PATH}
ifeq ($(findstring debian,$(shell cat /etc/os-release | grep ID=)),debian)
PYTHON_LIB_DIR:=/usr/lib/python2.7/config-x86_64-linux-gnu
PYTHON_DIR:=${DEPS_PATH}/lib/python2.7/site-packages
else
PYTHON_LIB_DIR:=/usr/lib64
PYTHON_DIR:=${DEPS_PATH}/lib64/python2.7/site-packages
endif
# Set package release versions
GDS=gds-2.18.10
LDASTOOLSFRAMECPP=ldas-tools-framecpp-2.6.2
LDASTOOLSAL=ldas-tools-al-2.6.0
SWIG=swig-3.0.7
METAIO=metaio-8.5.1
LIBFRAME=libframe-8.30
GSTPYTHON=gst-python-1.14.3
GSTPLUGINSGOOD=gst-plugins-good-1.14.3
GSTPLUGINSBASE=gst-plugins-base-1.14.3
GSTREAMER=gstreamer-1.14.3
GSL=gsl-2.3
ORC=orc-0.4.26
FFTW=fftw-3.3.8
# Specify target/dependancy files
GDS_TARGET=$(INSTALL_DIR)/lib/libwpipe.so
LDASTOOLSFRAMECPP_TARGET=$(INSTALL_DIR)/lib/libframecpp.so
LDASTOOLSAL_TARGET=$(INSTALL_DIR)/lib/libldastoolsal.so
SWIG_TARGET=$(INSTALL_DIR)/bin/swig
METAIO_TARGET=$(INSTALL_DIR)/lib/libmetaio.so
LIBFRAME_TARGET=$(INSTALL_DIR)/lib/libFrame.so
GSTPYTHON_TARGET=$(INSTALL_DIR)/lib/gstreamer-1.0/libgstpythonplugin.so
GSTGOOD_TARGET=$(INSTALL_DIR)/lib/gstreamer-1.0/libgstpng.so
GSTBASE_TARGET=$(INSTALL_DIR)/lib/libgstapp-1.0.so
GSTREAMER_TARGET=$(INSTALL_DIR)/lib/libgstreamer-1.0.so
GSL_2_TARGET=$(INSTALL_DIR)/lib/pkgconfig/gsl.pc.orig
GSL_1_TARGET=$(INSTALL_DIR)/lib/libgsl.so
ORC_TARGET=$(INSTALL_DIR)/lib/liborc-0.4.so
FFTW_TARGET=$(INSTALL_DIR)/lib/libfftw3.so
# tarballs
GDS_TAR_TARGET=$(TAR_DIR)/$(GDS).tar.gz
LDASTOOLSFRAMECPP_TAR_TARGET=$(TAR_DIR)/$(LDASTOOLSFRAMECPP).tar.gz
LDASTOOLSAL_TAR_TARGET=$(TAR_DIR)/$(LDASTOOLSAL).tar.gz
SWIG_TAR_TARGET=$(TAR_DIR)/$(SWIG).tar.gz
METAIO_TAR_TARGET=$(TAR_DIR)/$(METAIO).tar.gz
LIBFRAME_TAR_TARGET=$(TAR_DIR)/$(LIBFRAME).tar.gz
GSTPYTHON_TAR_TARGET=$(TAR_DIR)/$(GSTPYTHON).tar.xz
GSTGOOD_TAR_TARGET=$(TAR_DIR)/$(GSTPLUGINSGOOD).tar.xz
GSTBASE_TAR_TARGET=$(TAR_DIR)/$(GSTPLUGINSBASE).tar.xz
GSTREAMER_TAR_TARGET=$(TAR_DIR)/$(GSTREAMER).tar.xz
GSL_TAR_TARGET=$(TAR_DIR)/$(GSL).tar.gz
ORC_TAR_TARGET=$(TAR_DIR)/$(ORC).tar.xz
FFTW_TAR_TARGET=$(TAR_DIR)/$(FFTW).tar.gz
# Specify how many processors to run on
#CORES:=$(shell echo `nproc --all`"-2" | bc -l)
CORES:=8
# Escape code
esc=`echo -en "\033"`
# Set colors
RED="${esc}[0;31m"
GREEN="${esc}[0;32m"
YELLOW="${esc}[0;33m"
BLUE="${esc}[0;34m"
WHITE="${esc}[m"
ICC_CIT:=/ldcg/intel/2018u3/bin/compilervars.sh
ICC_LHO:=/ldcg/intel/2018u3/bin/compilervars.sh
ICC_LLO:=/ldcg/intel/2018u3/bin/compilervars.sh
ICC_UWM:=/opt/intel/2018u3/bin/compilervars.sh
ICC_PSU:=/ligo/apps/intel/2017u4/bin/compilervars.sh
all : logs/gds.txt src/kafka_2.11-2.0.0
#####################
# Environment setup #
#####################
deps_env.sh :
@echo 'unset GST_PLUGIN_PATH PYTHONPATH' > $@
@echo 'unset LD_LIBRARY_PATH LIBRARY_PATH LD_PRELOAD' >> $@
@echo 'DEPS_PATH=${PWD}/opt' >> $@
@echo 'export LDMKLFLAGS=" -L${MKLROOT}/lib/intel64 -lmkl_rt -lpthread -lm -ldl"' >> $@
@echo 'export GCCLDMKLFLAGS=" -L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_rt -lpthread -lm -ldl"' >> $@
@echo 'export GCCFLAGS="-fPIC -O3 -m64 -I$${MKLROOT}/include -I$${DEPS_PATH}/include"' >> $@
@echo 'export CFLAGS=$${GCCFLAGS}' >> $@
@if [[ ${CLUSTER} == *"ligo.caltech.edu" ]] ; then \
echo "source ${ICC_CIT} intel64" >> $@ ; \
echo 'LDFLAGS_INTEL="$${GCCLDMKLFLAGS}"' >> $@ ; \
elif [[ ${CLUSTER} == *"ligo-wa.caltech.edu" ]] ; then \
echo "source ${ICC_LHO} intel64" >> $@ ; \
echo 'LDFLAGS_INTEL="$${GCCLDMKLFLAGS}"' >> $@ ; \
elif [[ ${CLUSTER} == *"ligo-la.caltech.edu" ]] ; then \
echo "source ${ICC_LLO} intel64" >> $@ ; \
echo 'LDFLAGS_INTEL="$${GCCLDMKLFLAGS}"' >> $@ ; \
elif [[ ${CLUSTER} == *"nemo.uwm.edu" ]] ; then \
echo "source ${ICC_UWM} intel64" >> $@ ; \
echo 'LDFLAGS_INTEL="$${GCCLDMKLFLAGS}"' >> $@ ; \
elif [[ ${CLUSTER} == *"psu.edu" ]] ; then \
echo "source ${ICC_PSU} intel64" >> $@ ; \
echo 'export LIBRARY_PATH=$${LD_LIBRARY_PATH}' >> $@ ; \
echo 'LDFLAGS_INTEL="$${GCCLDMKLFLAGS}"' >> $@ ; \
fi
@echo 'export LD_LIBRARY_PATH=$${DEPS_PATH}/lib:$${LD_LIBRARY_PATH}' >> $@
@echo 'export LIBRARY_PATH=$${DEPS_PATH}/lib:$${LIBRARY_PATH}' >> $@
@echo 'export CC="gcc"' >> $@
@echo 'export CXX="g++"' >> $@
@echo 'export MKL_THREADING_LAYER=SEQUENTIAL' >> $@
@echo 'export MKL_INTERFACE_LAYER=ILP64' >> $@
@echo '# Force explicit linking of optimized FFTW libraries:' >> $@
@echo 'LDFLAGS="-lfftw3 -lfftw3f -lfftw3_threads -lfftw3f_threads $${LDFLAGS_INTEL} -L$${DEPS_PATH}/opt/lib "' >> $@
@echo '# These are environment variables that do get exported' >> $@
@echo 'PATH=$${DEPS_PATH}/bin:$${PATH}' >> $@
@echo 'PKG_CONFIG_PATH=$${DEPS_PATH}/lib/pkgconfig:$${DEPS_PATH}/lib64/pkgconfig:$${PKG_CONFIG_PATH}' >> $@
@echo 'PYTHONPATH=$${DEPS_PATH}/lib/python2.7/site-packages:$${DEPS_PATH}/lib64/python2.7/site-packages' >> $@
@echo 'LAL_DATA_PATH=/home/cbc/ROM_data' >> $@
@echo 'GST_PLUGIN_PATH=$${DEPS_PATH}/lib/gstreamer-1.0' >> $@
@echo 'GST_REGISTRY_1_0=$${DEPS_PATH}/registry.bin' >> $@
@echo 'GI_TYPELIB_PATH=$${DEPS_PATH}/lib/girepository-1.0:$${GI_TYPELIB_PATH}' >> $@
@echo 'KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:MetaspaceSize=96m -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80"' >> $@
@echo 'KAFKA_HEAP_OPTS="-Xms8G -Xmx8G"' >> $@
@echo 'export PATH PKG_CONFIG_PATH PYTHONPATH GST_PLUGIN_PATH DEPS_PATH LDFLAGS LDFLAGS_INTEL LAL_DATA_PATH GST_REGISTRY_1_0 GI_TYPELIB_PATH KAFKA_JVM_PERFORMANCE_OPTS KAFKA_HEAP_OPTS' >> $@
###########
# Install #
###########
src:
mkdir -p $@
opt/bin:
mkdir -p $@/bin
opt/config:
mkdir -p $@/config
opt/libs:
mkdir -p $@/libs
tarball:
mkdir -p $@
# KAFKA
tarball/kafka_2.11-2.0.0.tgz: tarball
wget -nc -P tarball http://mirror.reverse.net/pub/apache/kafka/2.0.0/kafka_2.11-2.0.0.tgz
src/kafka_2.11-2.0.0: tarball/kafka_2.11-2.0.0.tgz src opt/bin opt/config opt/libs
cd src && tar -xzf ../tarball/kafka_2.11-2.0.0.tgz && cd .. && cp -r src/kafka_2.11-2.0.0/bin/* opt/bin/. && cp src/kafka_2.11-2.0.0/libs/* opt/libs/. && cp src/kafka_2.11-2.0.0/config/* opt/config/.
#####################
# Check time stamps #
#####################
check :
@if [ -f logs/all.txt ] ; then rm logs/all.txt ; fi ;
@cat logs/* | uniq > logs/all.txt
@if [ -f logs/gds.txt ] ; then ls logs/gds.txt >> logs/all.txt ; fi ;
@ls -ltrh $$(cat logs/all.txt)
# gds
gds : logs/gds.txt
logs/gds.txt : $(LOGS_DIR)/ldas-tools-framecpp.txt $(GDS_TARGET)
@echo $^ | sed -e "s@ @\n@g" > $@
$(GDS_TARGET) : $(LDASTOOLSFRAMECPP_TARGET)
@echo $(GREEN)gds$(WHITE) 1>&2
tar -xzf $(TAR_DIR)/$(GDS).tar.gz -C $(SRC_DIR)
cd $(SRC_DIR)/$(GDS) && ./configure --enable-online --prefix=$(INSTALL_DIR)
cd $(SRC_DIR)/$(GDS) && make && make install
# ldas-tools-framecpp
ldas-tools-framecpp : logs/ldas-tools-framecpp.txt
logs/ldas-tools-framecpp.txt : $(LOGS_DIR)/ldas-tools-al.txt $(LDASTOOLSFRAMECPP_TARGET)
@echo $^ | sed -e "s@ @\n@g" > $@
$(LDASTOOLSFRAMECPP_TARGET) : $(LDASTOOLSAL_TARGET)
@echo $(GREEN)ldas-tools-frmecpp$(WHITE) 1>&2
tar -xf $(TAR_DIR)/$(LDASTOOLSFRAMECPP).tar.gz -C $(SRC_DIR)
cd $(SRC_DIR)/$(LDASTOOLSFRAMECPP) && ./configure --prefix=$(INSTALL_DIR) --without-doxygen CC="gcc" CXX="g++" CFLAGS="$(GCCFLAGS)" LDFLAGS="$(GCCLDMKLFLAGS)"
cd $(SRC_DIR)/$(LDASTOOLSFRAMECPP) && make && make install
# ldas-tools-al
ldas-tools-al : logs/ldas-tools-al.txt
logs/ldas-tools-al.txt : $(LOGS_DIR)/swig.txt $(LDASTOOLSAL_TARGET)
@echo $^ | sed -e "s@ @\n@g" > $@
$(LDASTOOLSAL_TARGET) : $(SWIG_TARGET)
@echo $(GREEN)ldas-tools-al$(WHITE) 1>&2
tar -xf $(TAR_DIR)/$(LDASTOOLSAL).tar.gz -C $(SRC_DIR)
cd $(SRC_DIR)/$(LDASTOOLSAL) && ./configure --prefix=$(INSTALL_DIR) --without-doxygen CC="gcc" CXX="g++" CFLAGS="$(GCCFLAGS)" LDFLAGS="$(GCCLDMKLFLAGS)"
cd $(SRC_DIR)/$(LDASTOOLSAL) && make -j$(CORES) && make install -j$(CORES)
# swig
swig : logs/swig.txt
logs/swig.txt : $(LOGS_DIR)/metaio.txt $(SWIG_TARGET)
@echo $^ | sed -e "s@ @\n@g" > $@
$(SWIG_TARGET) : $(METAIO_TARGET)
@echo $(GREEN)swig$(WHITE) 1>&2
tar -xf $(TAR_DIR)/$(SWIG).tar.gz -C $(SRC_DIR)
cd $(SRC_DIR)/$(SWIG) && ./configure --prefix=$(INSTALL_DIR)
cd $(SRC_DIR)/$(SWIG) && make -j$(CORES) && make install -j$(CORES)
# metaio
metaio : logs/metaio.txt
logs/metaio.txt : $(LOGS_DIR)/libframe.txt $(METAIO_TARGET)
@echo $^ | sed -e "s@ @\n@g" > $@
$(METAIO_TARGET) : $(LIBFRAME_TARGET)
@echo $(GREEN)metaio$(WHITE) 1>&2
tar -xf $(TAR_DIR)/$(METAIO).tar.gz -C $(SRC_DIR)
cd $(SRC_DIR)/$(METAIO) && ./configure --prefix=$(INSTALL_DIR) --with-matlab=no
cd $(SRC_DIR)/$(METAIO) && make -j$(CORES) && make install -j$(CORES)
# Needed with-matlab option for intel_haswell test
# libframe
libframe : logs/libframe.txt
logs/libframe.txt : $(LOGS_DIR)/gstreamer.txt $(LIBFRAME_TARGET)
@echo $^ | sed -e "s@ @\n@g" > $@
$(LIBFRAME_TARGET) : $(GSTPYTHON_TARGET)
@echo $(GREEN)libframe$(WHITE) 1>&2
tar -xf $(TAR_DIR)/$(LIBFRAME).tar.gz -C $(SRC_DIR)
cd $(SRC_DIR)/$(LIBFRAME) && ./configure --prefix=$(INSTALL_DIR)
cd $(SRC_DIR)/$(LIBFRAME) && make -j$(CORES) && make install -j$(CORES)
# gstreamer (all)
gstreamer : logs/gstreamer.txt
logs/gstreamer.txt : $(LOGS_DIR)/gsl.txt $(GSTREAMER_TARGET) $(GSTBASE_TARGET) $(GSTGOOD_TARGET) $(GSTPYTHON_TARGET)
@echo $^ | sed -e "s@ @\n@g" > $@
# gstreamer plugin python
$(GSTPYTHON_TARGET) : $(GSTGOOD_TARGET)
@echo $(GREEN)gst-python$(WHITE) 1>&2
#mkdir -p $(INSTALL_DIR)/lib64/python2.7/site-packages/gi/overrides
tar -xf $(TAR_DIR)/$(GSTPYTHON).tar.xz -C $(SRC_DIR)
cd $(SRC_DIR)/$(GSTPYTHON) && ./configure --prefix=$(INSTALL_DIR) --exec-prefix=$(INSTALL_DIR) --with-libpython-dir=$(PYTHON_LIB_DIR) --with-pygi-overrides-dir=$(INSTALL_DIR)/lib/python2.7/site-packages/gi/overrides
cd $(SRC_DIR)/$(GSTPYTHON) && make -j$(CORES) && make install -j$(CORES)
# gstreamer plugin good
$(GSTGOOD_TARGET) : $(GSTBASE_TARGET)
@echo $(GREEN)gst-good$(WHITE) 1>&2
tar -xf $(TAR_DIR)/$(GSTPLUGINSGOOD).tar.xz -C $(SRC_DIR)
cd $(SRC_DIR)/$(GSTPLUGINSGOOD) && ./configure --disable-gst_v4l2 --prefix=$(INSTALL_DIR)
cd $(SRC_DIR)/$(GSTPLUGINSGOOD) && make -j$(CORES) && make install -j$(CORES)
# gstreamer plugin base
$(GSTBASE_TARGET) : $(GSTREAMER_TARGET)
@echo $(GREEN)gst-base$(WHITE) 1>&2
tar -xf $(TAR_DIR)/$(GSTPLUGINSBASE).tar.xz -C $(SRC_DIR)
cd $(SRC_DIR)/$(GSTPLUGINSBASE) && ./configure --prefix=$(INSTALL_DIR)
cd $(SRC_DIR)/$(GSTPLUGINSBASE) && make -j$(CORES) && make install -j$(CORES)
# gstreamer
$(GSTREAMER_TARGET) : logs/gsl.txt
@echo $(GREEN)gstreamer$(WHITE) 1>&2
tar -xf $(TAR_DIR)/$(GSTREAMER).tar.xz -C $(SRC_DIR)
cd $(SRC_DIR)/$(GSTREAMER) && ./configure --prefix=$(INSTALL_DIR)
cd $(SRC_DIR)/$(GSTREAMER) && make -j$(CORES) && make install -j$(CORES)
# GSL
gsl : logs/gsl.txt
logs/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
$(GSL_2_TARGET) : $(GSL_1_TARGET)
cp $(INSTALL_DIR)/lib/pkgconfig/gsl.pc $@
sed 's:-lgslcblas: $(LDMKLFLAGS):' $@ > $(INSTALL_DIR)/lib/pkgconfig/gsl.pc
$(GSL_1_TARGET) : $(ORC_TARGET)
@echo $(GREEN)gsl$(WHITE) 1>&2
tar -xf $(TAR_DIR)/$(GSL).tar.gz -C $(SRC_DIR)
cd $(SRC_DIR)/$(GSL) && ./configure --prefix=$(INSTALL_DIR) GSL_CBLAS_LIB='$(LDMKLFLAGS)'
cd $(SRC_DIR)/$(GSL) && make -j$(CORES) && make install -j$(CORES)
# ORC
orc : logs/orc.txt
logs/orc.txt : $(LOGS_DIR)/fftw.txt $(ORC_TARGET)
@echo $^ | sed -e "s@ @\n@g" > $@
$(ORC_TARGET) : $(FFTW_TARGET)
@echo $(GREEN)orc$(WHITE) 1>&2
tar -xf $(TAR_DIR)/$(ORC).tar.xz -C $(SRC_DIR)
cd $(SRC_DIR)/$(ORC) && ./configure --prefix=$(INSTALL_DIR)
cd $(SRC_DIR)/$(ORC) && make -j$(CORES) && make install -j$(CORES)
# fftw
fftw : logs/fftw.txt
logs/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
$(FFTW_TARGET) : $(LOGS_DIR)/patch.txt
@echo $(GREEN)fftw$(WHITE) 1>&2
tar -xzf $(TAR_DIR)/$(FFTW).tar.gz -C $(SRC_DIR)
cd $(SRC_DIR)/$(FFTW) && \
./configure LDFLAGS="${LDFLAGS_INTEL}" --enable-shared --enable-sse --enable-sse2 --enable-avx --enable-float --enable-fma --enable-avx2 --enable-threads --prefix=$(INSTALL_DIR) && \
make -j$(CORES) && make install -j$(CORES) && make clean && \
./configure LDFLAGS="${LDFLAGS_INTEL}" --enable-shared --enable-sse2 --enable-avx --enable-fma --enable-avx2 --enable-threads --prefix=$(INSTALL_DIR) && \
make -j$(CORES) && make install -j$(CORES) && make clean && \
./configure LDFLAGS="${LDFLAGS_INTEL}" --enable-shared --enable-fma --enable-threads --enable-long-double --prefix=$(INSTALL_DIR) && \
make -j$(CORES) && make install -j$(CORES)
#########################
# Download the software #
#########################
# patches
patch : logs/patch.txt
logs/patch.txt : $(LOGS_DIR)/tar.txt
echo $^ | sed -e "s@ @\n@g" > $@
#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)
echo $^ | sed -e "s@ @\n@g" > $@
$(GDS_TAR_TARGET) : $(LDASTOOLSFRAMECPP_TAR_TARGET)
wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(GDS).tar.gz --directory-prefix=$(TAR_DIR) -nc
$(LDASTOOLSFRAMECPP_TAR_TARGET) : $(LDASTOOLSAL_TAR_TARGET)
wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(LDASTOOLSFRAMECPP).tar.gz --directory-prefix=$(TAR_DIR) -nc
$(LDASTOOLSAL_TAR_TARGET) : $(SWIG_TAR_TARGET)
wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(LDASTOOLSAL).tar.gz --directory-prefix=$(TAR_DIR) -nc
$(SWIG_TAR_TARGET) : $(METAIO_TAR_TARGET)
wget --no-check-certificate http://downloads.sourceforge.net/project/swig/swig/$(SWIG)/$(SWIG).tar.gz --directory-prefix=$(TAR_DIR) -nc
$(METAIO_TAR_TARGET) : $(LIBFRAME_TAR_TARGET)
wget --no-check-certificate http://software.ligo.org/lscsoft/source/$(METAIO).tar.gz --directory-prefix=$(TAR_DIR) -nc
$(LIBFRAME_TAR_TARGET) : $(GSTPYTHON_TAR_TARGET)
wget --no-check-certificate http://lappweb.in2p3.fr/virgo/FrameL/$(LIBFRAME).tar.gz --directory-prefix=$(TAR_DIR) -nc
$(GSTPYTHON_TAR_TARGET) : $(GSTGOOD_TAR_TARGET)
wget --no-check-certificate http://gstreamer.freedesktop.org/src/gst-python/$(GSTPYTHON).tar.xz --directory-prefix=$(TAR_DIR) -nc
$(GSTGOOD_TAR_TARGET) : $(GSTBASE_TAR_TARGET)
wget --no-check-certificate http://gstreamer.freedesktop.org/src/gst-plugins-good/$(GSTPLUGINSGOOD).tar.xz --directory-prefix=$(TAR_DIR) -nc
$(GSTBASE_TAR_TARGET) : $(GSTREAMER_TAR_TARGET)
wget --no-check-certificate http://gstreamer.freedesktop.org/src/gst-plugins-base/$(GSTPLUGINSBASE).tar.xz --directory-prefix=$(TAR_DIR) -nc
$(GSTREAMER_TAR_TARGET) : $(GSL_TAR_TARGET)
wget --no-check-certificate http://gstreamer.freedesktop.org/src/gstreamer/$(GSTREAMER).tar.xz --directory-prefix=$(TAR_DIR) -nc
$(GSL_TAR_TARGET) : $(ORC_TAR_TARGET)
wget --no-check-certificate http://ftp.gnu.org/gnu/gsl/$(GSL).tar.gz --directory-prefix=$(TAR_DIR) -nc
$(ORC_TAR_TARGET) : $(FFTW_TAR_TARGET)
wget --no-check-certificate http://gstreamer.freedesktop.org/src/orc/$(ORC).tar.xz --directory-prefix=$(TAR_DIR) -nc
$(FFTW_TAR_TARGET) : $(LOGS_DIR)
wget --no-check-certificate http://www.fftw.org/$(FFTW).tar.gz --directory-prefix=$(TAR_DIR) -nc
# git repos
$(LOGS_DIR) :
mkdir -p $(SRC_DIR) $(INSTALL_DIR) $(PATCH_DIR) $(TAR_DIR) $(PYTHON_DIR)
mkdir -p $(LOGS_DIR)
############
# Clean up #
############
clean-all :
rm -rf $(SRC_DIR) $(INSTALL_DIR) $(PATCH_DIR) $(TAR_DIR) $(LOGS_DIR) $(PYTHON_DIR)
rm -rf opt git
rm -rf *.txt
clean-install :
rm -rf opt/* logs/* src/*
clean-gds :
rm -rf logs/gds.txt $(GDS_TARGET)
clean-ldas-tools-framecpp :
rm -rf logs/ldas-tools-framecpp.txt $(LDASTOOLSFRAMECPP_TARGET)
clean-ldas-tools-al :
rm -rf logs/ldas-tools-al.txt $(LDASTOOLSAL_TARGET)
clean-swig :
rm -rf logs/swig.txt $(SWIG_TARGET)
clean-metaio :
rm -rf logs/metaio.txt $(METAIO_TARGET)
clean-libframe :
rm -rf logs/libframe.txt $(LIBFRAME_TARGET)
clean-gstreamer :
rm -rf logs/gstreamer.txt $(GSTREAMER_TARGET) $(GSTBASE_TARGET) $(GSTGOOD_TARGET) $(GSTPYTHON_TARGET)
clean-gsl :
rm -rf logs/gsl.txt $(GSL_1_TARGET) $(GSL_2_TARGET)
clean-orc :
rm -rf logs/orc.txt $(ORC_TARGET)
clean-fftw :
rm -rf logs/fftw.txt $(FFTW_TARGET)
This diff is collapsed.
This diff is collapsed.
diff --git a/gstlal/gst/gst/Makefile.am b/gstlal/gst/gst/Makefile.am
index c3b3344a5..ce4494d28 100644
--- a/gstlal/gst/gst/Makefile.am
+++ b/gstlal/gst/gst/Makefile.am
@@ -1,6 +1,6 @@
AM_CPPFLAGS = -I$(top_srcdir)/lib -I$(top_builddir)/lib
-plugin_LTLIBRARIES = libgstlal_adder.la libgstpythonplugin.la
+plugin_LTLIBRARIES = libgstlal_adder.la
libgstlal_adder_la_SOURCES = \
gstadder.h gstadder.c \
@@ -8,7 +8,3 @@ libgstlal_adder_la_SOURCES = \
libgstlal_adder_la_CFLAGS = $(AM_CFLAGS) $(ORC_CFLAGS) $(gstreamer_CFLAGS) $(gstreamer_audio_CFLAGS) -DGST_PACKAGE_NAME=\"gstlal\" -DGST_PACKAGE_ORIGIN=\"\"
libgstlal_adder_la_LIBADD = $(top_builddir)/lib/gstlal/libgstlal.la $(top_builddir)/lib/gstlal/libgstlaltypes.la
libgstlal_adder_la_LDFLAGS = $(AM_LDFLAGS) $(ORC_LIBS) $(gstreamer_LIBS) $(gstreamer_audio_LIBS) $(GSTLAL_PLUGIN_LDFLAGS)
-
-libgstpythonplugin_la_SOURCES = gstpythonplugin.c
-libgstpythonplugin_la_CFLAGS = $(AM_CPPFLAGS) $(PYTHON_CPPFLAGS) $(PYGOBJECT_CFLAGS) $(gstreamer_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) -DPYTHON_VERSION="\"$(PYTHON_VERSION)\"" -DPY_LIB_LOC="\"$(PYTHON_LIB_LOC)\"" -DPY_ABI_FLAGS="\"$(PYTHON_ABI_FLAGS)\"" -DPY_LIB_SUFFIX="\"$(PYTHON_LIB_SUFFIX)\"" -DGST_API_VERSION="\"$(GSTREAMER_RELEASE)\"" -DPLUGINDIR="\"$(plugindir)\""
-libgstpythonplugin_la_LDFLAGS = $(AM_LDFLAGS) $(PYTHON_LIBS) $(gstreamer_LIBS) $(GSTLAL_PLUGIN_LDFLAGS) $(PYGOBJECT_LIBS)
diff --git a/gstlal/gst/gst/gstpythonplugin.c b/gstlal/gst/gst/gstpythonplugin.c
deleted file mode 100644
index f3b713db4..000000000
--- a/gstlal/gst/gst/gstpythonplugin.c
+++ /dev/null
@@ -1,326 +0,0 @@
-/* gst-python
- * Copyright (C) 2009 Edward Hervey <bilboed@bilboed.com>
- * 2005 Benjamin Otte <otte@gnome.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-/* include this first, before NO_IMPORT_PYGOBJECT is defined */
-#include <pygobject.h>
-#include <gst/gst.h>
-#include <gmodule.h>
-#include <Python.h>
-
-void *_PyGstElement_Type;
-
-GST_DEBUG_CATEGORY_STATIC (pyplugindebug);
-#define GST_CAT_DEFAULT pyplugindebug
-
-#define GST_ORIGIN "http://gstreamer.freedesktop.org"
-
-static PyObject *element;
-
-static gboolean
-gst_python_plugin_load_file (GstPlugin * plugin, const char *name)
-{
- PyObject *main_module, *main_locals;
- PyObject *elementfactory;
- PyObject *module;
- const gchar *facname;
- guint rank;
- PyObject *class;
-
- GST_DEBUG ("loading plugin %s", name);
-
- main_module = PyImport_AddModule ("__main__");
- if (main_module == NULL) {
- GST_WARNING ("Could not get __main__, ignoring plugin %s", name);
- PyErr_Print ();
- PyErr_Clear ();
- return FALSE;
- }
-
- main_locals = PyModule_GetDict (main_module);
- module =
- PyImport_ImportModuleEx ((char *) name, main_locals, main_locals, NULL);
- if (!module) {
- GST_DEBUG ("Could not load module, ignoring plugin %s", name);
- PyErr_Print ();
- PyErr_Clear ();
- return FALSE;
- }
-
- /* Get __gstelementfactory__ from file */
- elementfactory = PyObject_GetAttrString (module, "__gstelementfactory__");
- if (!elementfactory) {
- GST_DEBUG ("python file doesn't contain __gstelementfactory__");
- PyErr_Clear ();
- return FALSE;
- }
-
- /* parse tuple : name, rank, gst.ElementClass */
- if (!PyArg_ParseTuple (elementfactory, "sIO", &facname, &rank, &class)) {
- GST_WARNING ("__gstelementfactory__ isn't correctly formatted");
- PyErr_Print ();
- PyErr_Clear ();
- Py_DECREF (elementfactory);
- return FALSE;
- }
-
- if (!PyObject_IsSubclass (class, (PyObject *) & PyGObject_Type)) {
- GST_WARNING ("the class provided isn't a subclass of GObject.Object");
- PyErr_Print ();
- PyErr_Clear ();
- Py_DECREF (elementfactory);
- Py_DECREF (class);
- return FALSE;
- }
-
- if (!g_type_is_a (pyg_type_from_object (class), GST_TYPE_ELEMENT)) {
- GST_WARNING ("the class provided isn't a subclass of Gst.Element");
- PyErr_Print ();
- PyErr_Clear ();
- Py_DECREF (elementfactory);
- Py_DECREF (class);
- return FALSE;
- }
-
- GST_INFO ("Valid plugin");
- Py_DECREF (elementfactory);
-
- return gst_element_register (plugin, facname, rank,
- pyg_type_from_object (class));
-}
-
-static gboolean
-gst_python_load_directory (GstPlugin * plugin, gchar * path)
-{
- GDir *dir;
- const gchar *file;
- GError *error = NULL;
- gboolean ret = TRUE;
-
- dir = g_dir_open (path, 0, &error);
- if (!dir) {
- /*retval should probably be depending on error, but since we ignore it... */
- GST_DEBUG ("Couldn't open Python plugin dir: %s", error->message);
- g_error_free (error);
- return FALSE;
- }
- while ((file = g_dir_read_name (dir))) {
- /* FIXME : go down in subdirectories */
- if (g_str_has_suffix (file, ".py")) {
- gsize len = strlen (file) - 3;
- gchar *name = g_strndup (file, len);
- ret &= gst_python_plugin_load_file (plugin, name);
- g_free (name);
- }
- }
- return TRUE;
-}
-
-static gboolean
-gst_python_plugin_load (GstPlugin * plugin)
-{
- PyObject *sys_path;
- const gchar *plugin_path;
- gboolean ret = TRUE;
-
- sys_path = PySys_GetObject ("path");
-
- /* Mimic the order in which the registry is checked in core */
-
- /* 1. check env_variable GST_PLUGIN_PATH */
- plugin_path = g_getenv ("GST_PLUGIN_PATH");
- if (plugin_path) {
- char **list;
- int i;
-
- GST_DEBUG ("GST_PLUGIN_PATH set to %s", plugin_path);
- list = g_strsplit (plugin_path, G_SEARCHPATH_SEPARATOR_S, 0);
- for (i = 0; list[i]; i++) {
- gchar *sysdir = g_build_filename (list[i], "python", NULL);
- PyList_Insert (sys_path, 0, PyUnicode_FromString (sysdir));
- gst_python_load_directory (plugin, sysdir);
- g_free (sysdir);
- }
-
- g_strfreev (list);
- }
-
- /* 2. Check for GST_PLUGIN_SYSTEM_PATH */
- plugin_path = g_getenv ("GST_PLUGIN_SYSTEM_PATH");
- if (plugin_path == NULL) {
- char *home_plugins;
-
- /* 2.a. Scan user and system-wide plugin directory */
- GST_DEBUG ("GST_PLUGIN_SYSTEM_PATH not set");
-
- /* plugins in the user's home directory take precedence over
- * system-installed ones */
- home_plugins = g_build_filename (g_get_home_dir (),
- ".gstreamer-" GST_API_VERSION, "plugins", "python", NULL);
- PyList_Insert (sys_path, 0, PyUnicode_FromString (home_plugins));
- gst_python_load_directory (plugin, home_plugins);
- g_free (home_plugins);
-
- /* add the main (installed) library path */
- PyList_Insert (sys_path, 0, PyUnicode_FromString (PLUGINDIR "/python"));
- gst_python_load_directory (plugin, PLUGINDIR "/python");
- } else {
- gchar **list;
- gint i;
-
- /* 2.b. Scan GST_PLUGIN_SYSTEM_PATH */
- GST_DEBUG ("GST_PLUGIN_SYSTEM_PATH set to %s", plugin_path);
- list = g_strsplit (plugin_path, G_SEARCHPATH_SEPARATOR_S, 0);
- for (i = 0; list[i]; i++) {
- gchar *sysdir;
-
- sysdir = g_build_filename (list[i], "python", NULL);
-
- PyList_Insert (sys_path, 0, PyUnicode_FromString (sysdir));
- gst_python_load_directory (plugin, sysdir);
- g_free (sysdir);
- }
- g_strfreev (list);
- }
-
-
- return ret;
-}
-
-static gboolean
-plugin_init (GstPlugin * plugin)
-{
- PyGILState_STATE state;
- PyObject *gi, *require_version, *args, *gst, *dict, *pyplugin;
- gboolean we_initialized = FALSE;
- GModule *libpython;
- gpointer has_python = NULL;
- PyObject *seq, *list;
- int i, len;
-
- GST_DEBUG_CATEGORY_INIT (pyplugindebug, "pyplugin", 0,
- "Python plugin loader");
-
- gst_plugin_add_dependency_simple (plugin,
- "HOME/.gstreamer-" GST_API_VERSION
- "/plugins/python:GST_PLUGIN_SYSTEM_PATH/python:GST_PLUGIN_PATH/python",
- PLUGINDIR "/python:HOME/.gstreamer-" GST_API_VERSION "/plugins/python:"
- "GST_PLUGIN_SYSTEM_PATH/python:GST_PLUGIN_PATH/python", NULL,
- GST_PLUGIN_DEPENDENCY_FLAG_NONE);
-
- GST_LOG ("Checking to see if libpython is already loaded");
- if (g_module_symbol (g_module_open (NULL, G_MODULE_BIND_LOCAL),
- "_Py_NoneStruct", &has_python) && has_python) {
- GST_LOG ("libpython is already loaded");
- } else {
- GST_LOG ("loading libpython");
- libpython =
- g_module_open (PY_LIB_LOC "/libpython" PYTHON_VERSION PY_ABI_FLAGS
- "." PY_LIB_SUFFIX, 0);
- if (!libpython) {
- g_critical ("Couldn't g_module_open libpython. Reason: %s",
- g_module_error ());
- return FALSE;
- }
- }
-
- if (!Py_IsInitialized ()) {
- GST_LOG ("python wasn't initialized");
- /* set the correct plugin for registering stuff */
- Py_Initialize ();
- we_initialized = TRUE;
- } else {
- GST_LOG ("python was already initialized");
- state = PyGILState_Ensure ();
- }
-
- GST_LOG ("initializing pygobject");
- if (!pygobject_init (3, 0, 0)) {
- g_critical ("pygobject initialization failed");
- return FALSE;
- }
-
- gi = PyImport_ImportModule ("gi");
- if (!gi) {
- g_critical ("can't find gi");
- return FALSE;
- }
-
-
- require_version = PyObject_GetAttrString (gi, (char *) "require_version");
- args = PyTuple_Pack (2, PyUnicode_FromString ("Gst"),
- PyUnicode_FromString ("1.0"));
- PyObject_CallObject (require_version, args);
- Py_DECREF (require_version);
- Py_DECREF (args);
- Py_DECREF (gi);
-
- gst = PyImport_ImportModule ("gi.repository.Gst");
- if (!gst) {
- g_critical ("can't find gi.repository.Gst");
- return FALSE;
- }
-
- if (we_initialized) {
- PyObject *tmp;
-
- dict = PyModule_GetDict (gst);
- if (!dict) {
- g_critical ("gi.repository.Gst is no dict");
- return FALSE;
- }
-
- tmp =
- PyObject_GetAttr (PyMapping_GetItemString (dict,
- "_introspection_module"), PyUnicode_FromString ("__dict__"));
-
- _PyGstElement_Type = PyMapping_GetItemString (tmp, "Element");
-
- if (!_PyGstElement_Type) {
- g_critical ("Could not get Gst.Element");
- return FALSE;
- }
-
- pyplugin = pygobject_new (G_OBJECT (plugin));
- if (!pyplugin || PyModule_AddObject (gst, "__plugin__", pyplugin) != 0) {
- g_critical ("Couldn't set __plugin__ attribute");
- if (pyplugin)
- Py_DECREF (pyplugin);
- return FALSE;
- }
- }
-
- gst_python_plugin_load (plugin);
-
- if (we_initialized) {
- /* We need to release the GIL since we're going back to C land */
- PyEval_SaveThread ();
- } else
- PyGILState_Release (state);
- return TRUE;
-}
-
-GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
- GST_VERSION_MINOR, python,
- "loader for plugins written in python",
- plugin_init, VERSION, "LGPL", PACKAGE_NAME, GST_ORIGIN)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment