diff --git a/generic/ant.cyg b/generic/ant.cyg new file mode 100644 index 00000000..0cb7fa3e --- /dev/null +++ b/generic/ant.cyg @@ -0,0 +1,57 @@ +############################################################################## +# maali cygnet file for ant +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +Apache Ant is a Java library and command-line tool whose mission is to drive +processes described in build files as targets and extension points dependent +upon each other. The main known usage of Ant is the build of Java applications. +Ant supplies a number of built-in tasks allowing to compile, assemble, test and +run Java applications. Ant can also be used effectively to build non Java +applications, for instance C or C++ applications. More generally, Ant can be +used to pilot any type of process which can be described in terms of targets +and tasks. + +For further information see http://ant.apache.org/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="binary" + +# URL to download the source code from +MAALI_URL="http://archive.apache.org/dist/ant/binaries/apache-ant-$MAALI_TOOL_VERSION-bin.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/apache-$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION-bin.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="" + +# type of tool (eg. apps, devel, python, etc.) +MAALI_TOOL_TYPE="devel" + +# tool pre-requisites +MAALI_TOOL_PREREQ="java/8u202" + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 + +############################################################################## + +function maali_unpack { + maali_wiki ".. supressing unpacking apache ant" +} + +############################################################################## + +function maali_build { + cd $MAALI_INSTALL_DIR + cd .. + rmdir $MAALI_INSTALL_DIR + maali_run "tar zxf $MAALI_DST" + mv apache-$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION $MAALI_INSTALL_DIR +} + +############################################################################## diff --git a/generic/apr-util.cyg b/generic/apr-util.cyg new file mode 100644 index 00000000..b8440e6b --- /dev/null +++ b/generic/apr-util.cyg @@ -0,0 +1,30 @@ +############################################################################## +# maali cygnet file for xerces-c +############################################################################## + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_COMPILERS" + +# URL to download the source code from +MAALI_URL="https://www.strategylions.com.au/mirror//apr/apr-util-${MAALI_TOOL_VERSION}.tar.gz" + +# location we are downloading the source code to +MAALI_DST="${MAALI_SRC}/${MAALI_TOOL_NAME}-${MAALI_TOOL_VERSION}.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="${MAALI_BUILD_DIR}/${MAALI_TOOL_NAME}-${MAALI_TOOL_VERSION}" + +# type of tool (eg. apps, devel, python, etc.) +MAALI_TOOL_TYPE="devel" + +MAALI_TOOL_PREREQ="apr" + +MAALI_TOOL_CONFIGURE='--with-apr=${MAALI_APR_HOME}' + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 +MAALI_MODULE_SET_LD_LIBRARY_PATH=1 +MAALI_MODULE_SET_PKG_CONFIG_PATH=1 +MAALI_MODULE_SET_CPATH=1 + +############################################################################## diff --git a/generic/apr.cyg b/generic/apr.cyg new file mode 100644 index 00000000..7c6273fa --- /dev/null +++ b/generic/apr.cyg @@ -0,0 +1,28 @@ +############################################################################## +# maali cygnet file for xerces-c +############################################################################## + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_COMPILERS" + +# URL to download the source code from +MAALI_URL="https://www.strategylions.com.au/mirror//apr/apr-${MAALI_TOOL_VERSION}.tar.gz" +# location we are downloading the source code to +MAALI_DST="${MAALI_SRC}/${MAALI_TOOL_NAME}-${MAALI_TOOL_VERSION}.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="${MAALI_BUILD_DIR}/${MAALI_TOOL_NAME}-${MAALI_TOOL_VERSION}" + +# type of tool (eg. apps, devel, python, etc.) +MAALI_TOOL_TYPE="devel" + +# add additional configure options +MAALI_TOOL_CONFIGURE='--with-pic' + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 +MAALI_MODULE_SET_LD_LIBRARY_PATH=1 +MAALI_MODULE_SET_PKG_CONFIG_PATH=1 +MAALI_MODULE_SET_CPATH=1 + +############################################################################## diff --git a/generic/autoconf.cyg b/generic/autoconf.cyg new file mode 100644 index 00000000..daf164b1 --- /dev/null +++ b/generic/autoconf.cyg @@ -0,0 +1,44 @@ +############################################################################## +# maali cygnet file for autoconf +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +Autoconf is an extensible package of M4 macros that produce shell scripts to +automatically configure software source code packages. These scripts can adapt +the packages to many kinds of UNIX-like systems without manual user +intervention. Autoconf creates a configuration script for a package from a +template file that lists the operating system features that the package can +use, in the form of M4 macro calls. + +For further information see https://www.gnu.org/software/autoconf/autoconf.html + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_SYSTEM_GCC" + +# URL to download the source code from +MAALI_URL="http://ftp.gnu.org/gnu/$MAALI_TOOL_NAME/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.xz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION" + +# type of tool (eg. apps, devel, python, etc.) +MAALI_TOOL_TYPE="devel" + +# tool pre-requisites modules needed to install this new tool/package +MAALI_TOOL_PREREQ="" +MAALI_TOOL_BUILD_PREREQ="libtool" + +# add additional configure options +MAALI_TOOL_CONFIGURE="" + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 +MAALI_MODULE_SET_MANPATH=1 + +############################################################################## diff --git a/generic/automake.cyg b/generic/automake.cyg new file mode 100644 index 00000000..ae733e17 --- /dev/null +++ b/generic/automake.cyg @@ -0,0 +1,42 @@ +############################################################################## +# maali cygnet file for automake +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +Automake is a tool for automatically generating Makefile.ins from files called +Makefile.am. Each Makefile.am is basically a series of make variable +definitions1, with rules being thrown in occasionally. The generated +Makefile.ins are compliant with the GNU Makefile standards. + +For further information see https://www.gnu.org/software/automake/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_SYSTEM_GCC" + +# URL to download the source code from +MAALI_URL="http://ftp.gnu.org/gnu/$MAALI_TOOL_NAME/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.xz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION" + +# type of tool (eg. apps, devel, python, etc.) +MAALI_TOOL_TYPE="devel" + +# tool pre-requisites modules needed to install this new tool/package +MAALI_TOOL_PREREQ="" +MAALI_TOOL_BUILD_PREREQ="libtool autoconf" + +# add additional configure options +MAALI_TOOL_CONFIGURE="" + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 +MAALI_MODULE_SET_MANPATH=1 + +############################################################################## diff --git a/generic/boost.cyg b/generic/boost.cyg new file mode 100644 index 00000000..2c585edd --- /dev/null +++ b/generic/boost.cyg @@ -0,0 +1,100 @@ +############################################################################## +# maali cygnet file for Boost +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +Boost provides free peer-reviewed portable C++ source libraries. + +We emphasize libraries that work well with the C++ Standard Library. Boost +libraries are intended to be widely useful, and usable across a broad spectrum +of applications. The Boost license encourages both commercial and +non-commercial use. + +For further information see http://www.boost.org/ + +EOF + +#note that boost here is setup to be built with default compilers +#which might include intel, pgi, etc. There appears to be an +#issue with building versions of >=1.73 and intel related to +#c++11, see https://github.com/spack/spack/issues/16328 +#for a spack focused version of this discussion +#currently the work around is to adjust the compilers +#if later versions of boost are required. + +# Request only the latest GNU and Intel compilers to be used +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_COMPILERS" + +# needed for this URL +MAALI_BOOST_VERSION=`echo $MAALI_TOOL_VERSION| sed -e 's/\./_/g'` + +# URL to download the source code from +MAALI_URL="http://sourceforge.net/projects/$MAALI_TOOL_NAME/files/$MAALI_TOOL_NAME/$MAALI_TOOL_VERSION/"$MAALI_TOOL_NAME"_"$MAALI_BOOST_VERSION".tar.bz2/download" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/"$MAALI_TOOL_NAME"_"$MAALI_BOOST_VERSION".tar.bz2" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/"$MAALI_TOOL_NAME"_"$MAALI_BOOST_VERSION + +# type of tool (eg. apps, devel, python, etc.) +MAALI_TOOL_TYPE="devel" + +# tool pre-requisites +MAALI_TOOL_PREREQ="$MAALI_DEFAULT_PYTHON" + +# for auto-building module files +MAALI_MODULE_SET_LD_LIBRARY_PATH=1 +MAALI_MODULE_SET_LIBRARY_PATH=1 +MAALI_MODULE_SET_CPATH=1 +MAALI_MODULE_SET_C_INCLUDE_PATH=1 +MAALI_MODULE_SET_CPLUS_INCLUDE_PATH=1 +MAALI_MODULE_SET_BOOST_ROOT='$MAALI_APP_HOME' + +############################################################################## + +function maali_build { + + cd "$MAALI_TOOL_BUILD_DIR" + +#https://github.com/HIT-SCIR/pyltp/pull/193 + if [ "$MAALI_TOOL_VERSION" == "1.66.0" ]; then + sed -i -e 's;return PyUnicode_Check(obj) ? _PyUnicode_AsString(obj) : 0;return (void *)(PyUnicode_Check(obj) ? _PyUnicode_AsString(obj) : 0);g' libs/python/src/converter/builtin_converters.cpp + fi + + export MAALI_CORES=12 + # Intel-compiler specifics + if [[ "$MAALI_COMPILER_NAME" == "intel"* ]]; then + + if [ "$MAALI_TOOL_MINOR_VERSION" -ge 66 ]; then + maali_run "./bootstrap.sh --prefix=$MAALI_INSTALL_DIR --with-toolset=intel-linux" + maali_run "./b2 -j$MAALI_CORES install toolset=intel --prefix=$MAALI_INSTALL_DIR" + else + maali_run "./bootstrap.sh --prefix=$MAALI_INSTALL_DIR --with-toolset=intel-linux" + maali_run "./bjam -j$MAALI_CORES toolset=intel release" + maali_run "./bjam install --prefix=$MAALI_INSTALL_DIR" + fi + + # GNU compiler specifics + else + + if [ "$MAALI_TOOL_MINOR_VERSION" -ge 66 ]; then + maali_run "./bootstrap.sh --prefix=$MAALI_INSTALL_DIR --with-toolset=gcc" + maali_run "./b2 -j$MAALI_CORES install toolset=gcc --prefix=$MAALI_INSTALL_DIR" + else + maali_run "./bootstrap.sh --prefix=$MAALI_INSTALL_DIR --without-libraries=python" + maali_run "./bjam -j$MAALI_CORES toolset=gcc release" + maali_run "./bjam install --prefix=$MAALI_INSTALL_DIR" + fi + + fi + + if [ "$MAALI_TOOL_VERSION" == "1.64.0" ]; then + sed -i -e 's;#include ;#include ;g;' $MAALI_INSTALL_DIR/include/boost/numeric/ublas/matrix.hpp + sed -i -e 's;#include ;#include ;g;' $MAALI_INSTALL_DIR/include/boost/numeric/ublas/storage.hpp + fi + +} + +############################################################################## diff --git a/generic/cfitsio.cyg b/generic/cfitsio.cyg new file mode 100644 index 00000000..e3623693 --- /dev/null +++ b/generic/cfitsio.cyg @@ -0,0 +1,60 @@ +############################################################################## +# maali cygnet file for cfitsio +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +CFITSIO is a library of C and Fortran subroutines for reading and writing data +files in FITS (Flexible Image Transport System) data format. CFITSIO provides +simple high-level routines for reading and writing FITS files that insulate the +programmer from the internal complexities of the FITS format. CFITSIO also +provides many advanced features for manipulating and filtering the information +in FITS files. + +For further information see https://heasarc.gsfc.nasa.gov/fitsio/fitsio.html + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_COMPILERS" + +# URL to download the source code from +MAALI_CFITSIO_VERSION=`echo $MAALI_TOOL_VERSION | sed -e 's/\.//g'` +MAALI_URL="https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/cfitsio${MAALI_CFITSIO_VERSION}.tar.gz" +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.bz2" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME" + +# type of tool (eg. apps, devel, python, etc.) +MAALI_TOOL_TYPE="devel" + +# tool pre-requisites +MAALI_TOOL_PREREQ="" + +# used in the wiki navigation bar - defaults to MAALI_TOOL_NAME_ORIG +MAALI_WIKI_TOOL_NAME="CFITSIO" + +# for adding [[Category:Python]] to wiki page - bio-apps, devel and python automatically generate a category +MAALI_WIKI_CATEGORY="File Formats & Data Management" + +# for auto-building module files +MAALI_MODULE_SET_LD_LIBRARY_PATH=1 +MAALI_MODULE_SET_CPATH=1 +MAALI_MODULE_SET_FPATH=1 +MAALI_MODULE_SET_FCPATH=1 +MAALI_MODULE_SET_MANPATH=1 +MAALI_MODULE_SET_PKG_CONFIG_PATH=1 +MAALI_MODULE_SET_CFITSIO_ROOT='$MAALI_APP_HOME' + +############################################################################## + +function maali_build { + cd "$MAALI_TOOL_BUILD_DIR" + maali_run "./configure --prefix $MAALI_INSTALL_DIR $MAALI_TOOL_CONFIGURE" + maali_run "make shared" + maali_run "make install" +} + +############################################################################## diff --git a/generic/cmake.cyg b/generic/cmake.cyg new file mode 100644 index 00000000..8960cd07 --- /dev/null +++ b/generic/cmake.cyg @@ -0,0 +1,50 @@ +############################################################################## +# maali cygnet file for cmake +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +CMake is an open-source, cross-platform family of tools designed to build, test +and package software. CMake is used to control the software compilation process +using simple platform and compiler independent configuration files, and +generate native makefiles and workspaces that can be used in the compiler +environment of your choice. + +For further information see https://cmake.org/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_COMPILERS" + +# URL to download the source code from +MAALI_URL="http://www.cmake.org/files/v${MAALI_TOOL_MAJOR_MINOR_VERSION}/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION" + +# type of tool (eg. apps, devel, python, etc.) +MAALI_TOOL_TYPE="devel" + +# tool pre-requisites modules needed to build this new tool/package +MAALI_TOOL_BUILD_PREREQ="automake autoconf" + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 + +############################################################################## + +function maali_build { + # cmake uses bootstrap + + cd "$MAALI_TOOL_BUILD_DIR" + + maali_run "./bootstrap --prefix=$MAALI_INSTALL_DIR" + maali_run "make -j${MAALI_CORES}" + maali_run "make install" +} + +############################################################################## diff --git a/generic/cppunit.cyg b/generic/cppunit.cyg new file mode 100644 index 00000000..0b19e60d --- /dev/null +++ b/generic/cppunit.cyg @@ -0,0 +1,86 @@ +############################################################################## +# maali cygnet file for cppunit +############################################################################## + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_COMPILERS" + +# URL to download the source code from +MAALI_URL="https://github.com/freedesktop/libreoffice-cppunit/archive/cppunit-${MAALI_TOOL_VERSION}.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION" + +# type of tool (eg. apps, devel, python, etc.) +MAALI_TOOL_TYPE="devel" + +# tool pre-requisites modules needed to install this new tool/package +MAALI_TOOL_PREREQ="" + +# tool pre-requisites modules needed to build this new tool/package +MAALI_TOOL_BUILD_PREREQ="automake" + +# add additional configure options +MAALI_TOOL_CONFIGURE='' + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 +MAALI_MODULE_SET_LD_LIBRARY_PATH=1 +MAALI_MODULE_SET_MANPATH=1 +MAALI_MODULE_SET_CPATH=1 +MAALI_MODULE_SET_LIBRARY_PATH=1 + +############################################################################## + +function maali_unpack { + + # unpack the tarball + + cd $MAALI_BUILD_DIR + + for MAALI_INDIVIDUAL_DST in $MAALI_DST; do + + if [ ! -f "$MAALI_INDIVIDUAL_DST" ]; then + maali_die "$MAALI_INDIVIDUAL_DST does not exist" + fi + + MAALI_DST_FILESIZE=$(stat -c%s "$MAALI_INDIVIDUAL_DST") + if [ $MAALI_DST_FILESIZE -eq 0 ]; then + maali_die "$MAALI_INDIVIDUAL_DST is 0 bytes big" + fi + + maali_makedir "$MAALI_TOOL_BUILD_DIR" + MAALI_TYPE=`file -b $MAALI_INDIVIDUAL_DST | cut -d ',' -f 1` + tar xf $MAALI_INDIVIDUAL_DST --directory $MAALI_TOOL_BUILD_DIR + cd $MAALI_TOOL_BUILD_DIR + echo $(pwd) + localdir=$(ls -d */) + mv ${localdir}/* ./ + rmdir ${localdir} + + + if [ -d "$MAALI_TOOL_BUILD_DIR" ]; then + if [ "$MAALI_PROJECT" != "" ]; then + # this is only needed for /group + find $MAALI_TOOL_BUILD_DIR -type d -exec chmod g+s {} \; + fi + fi + + done +} + +function maali_build { + # this is the core function for creating software + + # allows late evaluation + MAALI_TOOL_CONFIGURE_EVAL=`eval echo "$MAALI_TOOL_CONFIGURE"` + ./autogen.sh + + cd "$MAALI_TOOL_BUILD_DIR" + maali_run "./configure --prefix=$MAALI_INSTALL_DIR $MAALI_TOOL_CONFIGURE_EVAL" + maali_run "make -j $MAALI_CORES" + maali_run "make install" +} diff --git a/generic/eigen.cyg b/generic/eigen.cyg new file mode 100644 index 00000000..df2f7c7c --- /dev/null +++ b/generic/eigen.cyg @@ -0,0 +1,56 @@ +############################################################################## +# maali cygnet file for eigen +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +Eigen is a C++ template library for linear algebra: matrices, vectors, +numerical solvers, and related algorithms. + +For further information see http://eigen.tuxfamily.org + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_COMPILERS" + +# URL to download the source code from - need to register +MAALI_URL="https://gitlab.com/libeigen/eigen/-/archive/$MAALI_TOOL_VERSION/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.bz2" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.bz2" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION" + +# type of tool (eg. apps, devel, python, etc.) +MAALI_TOOL_TYPE="devel" + +# tool pre-requisites +MAALI_TOOL_PREREQ="" + +# tool build pre-requisites - not added to the module, only needed for building (loaded after MAALI_TOOL_PREREQ) +MAALI_TOOL_BUILD_PREREQ="cmake" + +# for auto-building module files +MAALI_MODULE_SET_PKG_CONFIG_PATH=1 + +############################################################################## + +function maali_cmake_build { + # allows late evaluation + MAALI_TOOL_CONFIGURE_EVAL=`eval echo "$MAALI_TOOL_CONFIGURE"` + + cd $MAALI_BUILD_DIR + find . -name "$MAALI_TOOL_NAME-$MAALI_TOOL_NAME*" | xargs -n1 -i mv {} "$MAALI_TOOL_NAME-$MAALI_TOOL_NAME" + + cd "$MAALI_TOOL_BUILD_DIR" + + maali_makedir "$MAALI_TOOL_BUILD_DIR/$MAALI_TOOL_NAME-build" + cd "$MAALI_TOOL_BUILD_DIR/$MAALI_TOOL_NAME-build" + maali_run "cmake -DCMAKE_INSTALL_PREFIX=$MAALI_INSTALL_DIR .." + maali_run "make" + maali_run "make install" +} + +############################################################################## diff --git a/generic/elfutils.cyg b/generic/elfutils.cyg new file mode 100644 index 00000000..248d8996 --- /dev/null +++ b/generic/elfutils.cyg @@ -0,0 +1,38 @@ +############################################################################## +# maali cygnet file for elfutils +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +elfutils is a collection of utilities and libraries to read, create and +modify ELF binary files, find and handle DWARF debug data, symbols, +thread state and stacktraces for processes and core files on GNU/Linux. + +For further information see https://sourceware.org/elfutils/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_GCC_COMPILERS" + +# URL to download the source code from +MAALI_URL="https://sourceware.org/${MAALI_TOOL_NAME}/ftp/${MAALI_TOOL_VERSION}/${MAALI_TOOL_NAME}-${MAALI_TOOL_VERSION}.tar.bz2" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.bz2" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION" + +# type of tool (eg. apps, devel, python, etc.) +MAALI_TOOL_TYPE="devel" + +# for auto-building module files +MAALI_MODULE_SET_LD_LIBRARY_PATH=1 +MAALI_MODULE_SET_CPATH=1 +MAALI_MODULE_SET_FPATH=1 +MAALI_MODULE_SET_FCPATH=1 +MAALI_MODULE_SET_PKG_CONFIG_PATH=1 + +MAALI_TOOL_CONFIGURE='--disable-debuginfod' +############################################################################## diff --git a/generic/fftw.cyg b/generic/fftw.cyg new file mode 100644 index 00000000..4796406a --- /dev/null +++ b/generic/fftw.cyg @@ -0,0 +1,149 @@ +############################################################################## +# maali cygnet file for fftw +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +FFTW is a C subroutine library for computing the discrete Fourier transform +(DFT) in one or more dimensions, of arbitrary input size, and of both real and +complex data (as well as of even/odd data, i.e. the discrete cosine/sine +transforms or DCT/DST). + +For further information see http://www.fftw.org/ + +EOF + +#list extra build options in MAALI_TOOL_BUILD_OPTIONS_AVAIL +FFTW_WITH_MPI= +MAALI_TOOL_BUILD_OPTIONS_AVAIL=("FFTW_WITH_MPI=0:1") + +# parse the build options, would be nice to make this a function +# the issue currently is the local scope of variables declared +if [[ ${#MAALI_TOOL_BUILD_OPTIONS[@]} -gt 0 ]]; then + for i in ${MAALI_TOOL_BUILD_OPTIONS[@]} + do + opt=(${i//=/ }) + optname=${opt[0]} + optval=${opt[1]} + if [[ "$optname" -eq "FFTW_WITH_MPI" ]]; then + FFTW_WITH_MPI=$optval + fi + done +fi + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_COMPILERS" + +# URL to download the source code from +MAALI_URL="http://www.fftw.org/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION" + +# type of tool (eg. apps, devel, python, etc.) +MAALI_TOOL_TYPE="devel" + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 +MAALI_MODULE_SET_LD_LIBRARY_PATH=1 +MAALI_MODULE_SET_LIBRARY_PATH=1 +MAALI_MODULE_SET_CPATH=1 +MAALI_MODULE_SET_FPATH=1 +MAALI_MODULE_SET_FCPATH=1 +MAALI_MODULE_SET_MANPATH=1 +MAALI_MODULE_SET_PKG_CONFIG_PATH=1 +MAALI_MODULE_SET_FFTW_HOME='$MAALI_APP_HOME' +MAALI_MODULE_SET_FFTW_INCLUDE='$MAALI_APP_HOME/include' +MAALI_MODULE_SET_FFTW_LIB='$MAALI_APP_HOME/lib' + +#Tell autoconf we're cross-compiling +MAALI_TOOL_CONFIGURE=' --enable-fortran --enable-shared ' +FFTW_TYPE_PREFIX= +if [[ $MAALI_TOOL_VERSION == "2."* ]]; then + FFTW_TYPE_PREFIX=' --enable-type-prefix ' +else + MAALI_TOOL_CONFIGURE+=' --enable-threads --enable-openmp ' +fi + +FFTW_BUILD_NAME= +#update build options if parallel build +if [[ $FFTW_WITH_MPI -eq 1 ]]; then + FFTW_BUILD_NAME="-mpi" + MAALI_TOOL_CONFIGURE+=" --enable-mpi " + MAALI_TOOL_PREREQ="$MAALI_DEFAULT_MPI" +fi + +MAALI_TOOL_BUILD_OPTIONS_SUFFIX="$FFTW_BUILD_NAME" + +############################################################################## + +function maali_build { + + MAALI_TOOL_CONFIGURE_EVAL=`eval echo "$MAALI_TOOL_CONFIGURE"` + + if [[ $MAALI_COMPILER_NAME == "intel"* ]]; then + export CC=icc + export F77=ifort + if [[ $MAALI_CPU_TARGET == "knl" ]]; then + export CFLAGS="-fPIC -xMIC-AVX512 -O3" + export FFLAGS="-fPIC -xMIC-AVX512 -O3" + MAALI_TOOL_CONFIGURE_EVAL+=' --enable-avx512' + MAALI_TOOL_CONFIGURE_EVAL+=' --host=x86_64-unknown-linux-gnu' + elif [[ $MAALI_CPU_TARGET == "broadwell" ]]; then + export CFLAGS="-fPIC -xCORE-AVX2 -O3" + export FFLAGS="-fPIC -xCORE-AVX2 -O3" + MAALI_TOOL_CONFIGURE_EVAL+=' --host=x86_64-unknown-linux-gnu' + else + export CFLAGS="-fPIC -O3" + export FFLAGS="-fPIC -O3" + MAALI_TOOL_CONFIGURE_EVAL+=' --enable-avx512 ' + fi + else + export CC=gcc + export F77=gfortran + if [[ $MAALI_CPU_TARGET == "knl" ]]; then + if [ $COMPILER_VER \< "5" ]; then + export CFLAGS="-fPIC -mavx2 -O2" + export FFLAGS="-fPIC -mavx2 -O2" + else + export CFLAGS="-fPIC -mavx512f -mavx512cd -O2" + export FFLAGS="-fPIC -mavx512f -mavx512cd -O2" + fi + MAALI_TOOL_CONFIGURE_EVAL+=' --host=x86_64-unknown-linux-gnu' + elif [[ $MAALI_CPU_TARGET == "broadwell" ]]; then + export CFLAGS="-fPIC -mavx2 -O3" + export FFLAGS="-fPIC -mavx2 -O3" + MAALI_TOOL_CONFIGURE_EVAL+=' --host=x86_64-unknown-linux-gnu' + else + export CFLAGS="-fPIC -mavx -O3" + export FFLAGS="-fPIC -mavx -O3" + fi + fi + + cd "$MAALI_TOOL_BUILD_DIR" + + # Making single precision version + maali_run "./configure --prefix=$MAALI_INSTALL_DIR $MAALI_TOOL_CONFIGURE_EVAL --enable-float ${FFTW_PREFIX_FLAG} " + maali_run "make -j $MAALI_CORES" + maali_run "make install" + maali_run "make clean" + # Making double precision version + maali_run "./configure --prefix=$MAALI_INSTALL_DIR $MAALI_TOOL_CONFIGURE_EVAL ${FFTW_PREFIX_FLAG} " + maali_run "make -j $MAALI_CORES" + maali_run "make install" + maali_run "make clean" + + # if version 2.* then also remake in double precision without prefix + if [[ $MAALI_TOOL_VERSION == "2."* ]]; then + # Making double precision version + maali_run "./configure --prefix=$MAALI_INSTALL_DIR $MAALI_TOOL_CONFIGURE_EVAL --enable-double" + maali_run "make -j $MAALI_CORES" + maali_run "make install" + fi + +} + +############################################################################## diff --git a/generic/gsl.cyg b/generic/gsl.cyg new file mode 100644 index 00000000..0987189b --- /dev/null +++ b/generic/gsl.cyg @@ -0,0 +1,75 @@ +############################################################################## +# maali cygnet file for gsl +############################################################################## + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_COMPILERS" + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +The GNU Scientific Library (GSL) is a numerical library for C and C++ +programmers. It is free software under the GNU General Public License. + +The library provides a wide range of mathematical routines such as random +number generators, special functions and least-squares fitting. There are over +1000 functions in total with an extensive test suite. + +For further information see https://www.gnu.org/software/gsl/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_COMPILERS" + +# URL to download the source code from +MAALI_URL="ftp://ftp.gnu.org/gnu/$MAALI_TOOL_NAME/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION" + +# type of tool (eg. apps, devel, python, etc.) +MAALI_TOOL_TYPE="apps" + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 +MAALI_MODULE_SET_LD_LIBRARY_PATH=1 +MAALI_MODULE_SET_LIBRARY_PATH=1 +MAALI_MODULE_SET_CPATH=1 +MAALI_MODULE_SET_MANPATH=1 +MAALI_MODULE_SET_PKG_CONFIG_PATH=1 + +############################################################################## + +function maali_build { + cd "$MAALI_TOOL_BUILD_DIR" + + if [[ $MAALI_COMPILER_NAME == "intel"* ]]; then + export CC=icc + if [[ $MAALI_CPU_NAME == "knl" ]]; then + export CFLAGS="-xMIC-AVX512 -O3" + elif [[ $MAALI_CPU_TARGET == "broadwell" ]]; then + export CFLAGS="-xAVX2 -O3" + else + export CFLAGS="-O3" + fi + maali_run "./configure --prefix=$MAALI_INSTALL_DIR" + else + export CC=gcc + if [[ $MAALI_CPU_NAME == "knl" ]]; then + export CFLAGS="-mavx512f -mavx512cd -O3" + elif [[ $MAALI_CPU_TARGET == "broadwell" ]]; then + export CFLAGS="-mavx2 -O3" + else + export CFLAGS="-O3" + fi + maali_run "./configure --prefix=$MAALI_INSTALL_DIR --with-gnu-ld" + fi + + maali_run "make -j $MAALI_CORES" + maali_run "make install" +} + +############################################################################## diff --git a/generic/hdf5.cyg b/generic/hdf5.cyg index c2747789..9f5fc0b6 100644 --- a/generic/hdf5.cyg +++ b/generic/hdf5.cyg @@ -51,7 +51,7 @@ elif [[ $MAALI_TOOL_MINOR_VERSION -lt 10 ]]; then fi #default build state -HDF_PARALLEL_NAME="c++-noparallel" +HDF_BUILD_NAME="c++-noparallel" HDF_BUILD_CONFIG="--enable-fortran --enable-cxx --with-zlib --with-slib=$MAALI_SZIP_HOME" MAALI_TOOL_PREREQ="szip/2.1.1" diff --git a/generic/java.cyg b/generic/java.cyg new file mode 100644 index 00000000..22513481 --- /dev/null +++ b/generic/java.cyg @@ -0,0 +1,65 @@ +############################################################################## +# maali cygnet file for Java +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +Java is a general-purpose computer programming language that is concurrent, +class-based, object-oriented, and specifically designed to have as few +implementation dependencies as possible. It is intended to let application +developers write once, run anywhere (WORA), meaning that compiled Java code can +run on all platforms that support Java without the need for recompilation. + +For further information see https://www.java.com/en/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="binary" + +# URL to download the source code from - it's java +MAALI_URL="" + +# Java versions are of the style 8u40 +MAALI_JAVA_MAJOR_VERSION=`echo $MAALI_TOOL_VERSION | cut -d 'u' -f 1` +MAALI_JAVA_UPDATE_VERSION=`echo $MAALI_TOOL_VERSION | cut -d 'u' -f 2` + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/jdk-$MAALI_TOOL_VERSION-linux-x64.tar.gz" + +# where the unpacked source code is located - no source code for you +MAALI_TOOL_BUILD_DIR="" + +# type of tool (eg. apps, devel, python, etc.) +MAALI_TOOL_TYPE="devel" + +# tool pre-requisites +MAALI_TOOL_PREREQ="" + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 +MAALI_MODULE_SET_JAVA_HOME='$MAALI_APP_HOME' + +############################################################################## + +function maali_unpack { + log ".. supressing unpacking java source as it builds in place" +} + +############################################################################## + +function maali_build { + + if [ ! -f $MAALI_DST ]; then + echo "Please download Java $MAALI_TOOL_VERSION to $MAALI_DST before running maali" + exit 1 + fi + + cd $MAALI_INSTALL_DIR + cd .. + rmdir $MAALI_INSTALL_DIR + tar zxf $MAALI_DST + mv jdk*$MAALI_JAVA_MAJOR_VERSION*$MAALI_JAVA_UPDATE_VERSION* $MAALI_INSTALL_DIR +} + +############################################################################## diff --git a/generic/libffi.cyg b/generic/libffi.cyg new file mode 100644 index 00000000..47ddc1f6 --- /dev/null +++ b/generic/libffi.cyg @@ -0,0 +1,37 @@ +############################################################################## +# maali cygnet file for libffi +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +The libffi library provides a portable, high level programming interface +to various calling conventions. This allows a programmer to call any function +specified by a call interface description at run-time. + +For further information see https://sourceware.org/libffi/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_GCC_COMPILERS" + +# URL to download the source code from +MAALI_URL="https://sourceware.org/${MAALI_TOOL_NAME}/ftp/${MAALI_TOOL_NAME}-${MAALI_TOOL_VERSION}.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION" + +# type of tool (eg. apps, devel, python, etc.) +MAALI_TOOL_TYPE="devel" + +# for auto-building module files +MAALI_MODULE_SET_LD_LIBRARY_PATH=1 +MAALI_MODULE_SET_CPATH=1 +MAALI_MODULE_SET_FPATH=1 +MAALI_MODULE_SET_FCPATH=1 +MAALI_MODULE_SET_PKG_CONFIG_PATH=1 + +############################################################################## diff --git a/generic/libtool.cyg b/generic/libtool.cyg new file mode 100644 index 00000000..dbc5385e --- /dev/null +++ b/generic/libtool.cyg @@ -0,0 +1,39 @@ +############################################################################## +# maali cygnet file for libtool +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +GNU Libtool is a generic library support script that hides the complexity of +using shared libraries behind a consistent, portable interface. + +For further information see https://www.gnu.org/software/libtool/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_SYSTEM_GCC" + +# URL to download the source code from +MAALI_URL="https://gnu.askapache.com/libtool/libtool-${MAALI_TOOL_VERSION}.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION" + +# type of tool (eg. apps, devel, python, etc.) +MAALI_TOOL_TYPE="devel" + +# tool pre-requisites modules needed to install this new tool/package +MAALI_TOOL_PREREQ="" + +# add additional configure options +MAALI_TOOL_CONFIGURE="" + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 +MAALI_MODULE_SET_MANPATH=1 + +############################################################################## diff --git a/generic/log4cxx.cyg b/generic/log4cxx.cyg new file mode 100644 index 00000000..b9285216 --- /dev/null +++ b/generic/log4cxx.cyg @@ -0,0 +1,91 @@ +############################################################################## +# maali cygnet file for log4cxx +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +Apache log4cxx is a logging framework for C++ patterned after Apache log4j, +which uses Apache Portable Runtime for most platform-specific code and should +be usable on any platform supported by APR. + +For further information see https://logging.apache.org/log4cxx/latest_stable/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_COMPILERS" + +# URL to download the source code from +MAALI_URL="https://archive.apache.org/dist/logging/log4cxx/${MAALI_TOOL_VERSION}/apache-log4cxx-${MAALI_TOOL_VERSION}.tar.gz" + +# location we are downloading the source code to +MAALI_DST="${MAALI_SRC}/${MAALI_TOOL_NAME}-${MAALI_TOOL_VERSION}.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="${MAALI_BUILD_DIR}/${MAALI_TOOL_NAME}-${MAALI_TOOL_VERSION}" + +# type of tool (eg. apps, devel, python, etc.) +MAALI_TOOL_TYPE="devel" + +MAALI_TOOL_PREREQ="apr apr-util" +MAALI_TOOL_BUILD_PREREQ="libtool autoconf automake" + +#MAALI_TOOL_CONFIGURE='--with-apr=${MAALI_APR_HOME} --with-apr-util=${MAALI_APRUTIL_HOME}' + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 +MAALI_MODULE_SET_LD_LIBRARY_PATH=1 +MAALI_MODULE_SET_PKG_CONFIG_PATH=1 +MAALI_MODULE_SET_CPATH=1 + +############################################################################## + +function maali_unpack { + + # unpack the tarball + + cd $MAALI_BUILD_DIR + + for MAALI_INDIVIDUAL_DST in $MAALI_DST; do + + if [ ! -f "$MAALI_INDIVIDUAL_DST" ]; then + maali_die "$MAALI_INDIVIDUAL_DST does not exist" + fi + + MAALI_DST_FILESIZE=$(stat -c%s "$MAALI_INDIVIDUAL_DST") + if [ $MAALI_DST_FILESIZE -eq 0 ]; then + maali_die "$MAALI_INDIVIDUAL_DST is 0 bytes big" + fi + + maali_makedir "$MAALI_TOOL_BUILD_DIR" + MAALI_TYPE=`file -b $MAALI_INDIVIDUAL_DST | cut -d ',' -f 1` + tar xf $MAALI_INDIVIDUAL_DST --directory $MAALI_TOOL_BUILD_DIR + cd $MAALI_TOOL_BUILD_DIR + echo $(pwd) + localdir=$(ls -d *${MAALI_TOOL_NAME}*/) + mv ${localdir}/* ${MAALI_TOOL_BUILD_DIR}/ + rmdir ${localdir} + + + if [ -d "$MAALI_TOOL_BUILD_DIR" ]; then + if [ "$MAALI_PROJECT" != "" ]; then + # this is only needed for /group + find $MAALI_TOOL_BUILD_DIR -type d -exec chmod g+s {} \; + fi + fi + + done +} + +function maali_build { + # this is the core function for creating software + + # allows late evaluation + MAALI_TOOL_CONFIGURE_EVAL=`eval echo "$MAALI_TOOL_CONFIGURE"` + ./autogen.sh + + cd "$MAALI_TOOL_BUILD_DIR" + maali_run "./configure --prefix=$MAALI_INSTALL_DIR $MAALI_TOOL_CONFIGURE_EVAL" + maali_run "make -j $MAALI_CORES" + maali_run "make install" +} diff --git a/generic/nano.cyg b/generic/nano.cyg new file mode 100644 index 00000000..b14fc2b8 --- /dev/null +++ b/generic/nano.cyg @@ -0,0 +1,34 @@ +############################################################################## +# maali cygnet file for nano +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +GNU nano is a small and friendly text editor. Besides basic text editing, nano +offers many extra features, such as an interactive search-and-replace, +undo/redo, syntax coloring, smooth scrolling, auto-indentation, +go-to-line-and-column-number, feature toggles, file locking, backup files, and +internationalization support. + +For further information see https://www.nano-editor.org/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_SYSTEM_GCC" + +# URL to download the source code from +MAALI_URL="http://www.nano-editor.org/dist/v$MAALI_TOOL_MAJOR_VERSION/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION" + +MAALI_TOOL_TYPE="tools" + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 + +############################################################################## diff --git a/generic/python-cygnets/attrs.cyg b/generic/python-cygnets/attrs.cyg new file mode 100644 index 00000000..f6418430 --- /dev/null +++ b/generic/python-cygnets/attrs.cyg @@ -0,0 +1,36 @@ +############################################################################## +# maali cygnet file for attrs +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +attrs is the Python package that will bring back the joy of writing classes +by relieving you from the drudgery of implementing object protocols (aka +dunder methods) + + +For further information see http://www.attrs.org/en/stable/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_PYTHON" + +# URL to download the source code from +MAALI_URL="https://files.pythonhosted.org/packages/source/$MAALI_PYTHON_FIRSTLETTER/$MAALI_TOOL_NAME_ORIG/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION" + +# tool pre-requisites +MAALI_TOOL_PREREQ="" + +# tool build pre-requisites - not added to the module, only needed for building (loaded after MAALI_TOOL_PREREQ) +MAALI_TOOL_BUILD_PREREQ="" + +# for auto-building module files + +############################################################################## diff --git a/generic/python-cygnets/cycler.cyg b/generic/python-cygnets/cycler.cyg new file mode 100644 index 00000000..34e028cc --- /dev/null +++ b/generic/python-cygnets/cycler.cyg @@ -0,0 +1,33 @@ +############################################################################## +# maali cygnet file for cycler +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +Composable style cycles + +For further information see https://pypi.python.org/pypi/Cycler + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_PYTHON" + +# URL to download the source code from +MAALI_URL="https://files.pythonhosted.org/packages/source/$MAALI_PYTHON_FIRSTLETTER/$MAALI_TOOL_NAME_ORIG/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION" + +MAALI_TOOL_PREREQ="six" + +# tool build pre-requisites - not added to the module, only needed for building (loaded after MAALI_TOOL_PREREQ) +MAALI_TOOL_BUILD_PREREQ="setuptools" + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 + +############################################################################## diff --git a/generic/python-cygnets/cython.cyg b/generic/python-cygnets/cython.cyg new file mode 100644 index 00000000..71092b80 --- /dev/null +++ b/generic/python-cygnets/cython.cyg @@ -0,0 +1,33 @@ +############################################################################## +# maali cygnet file for Cython +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +Cython is an optimising static compiler for both the Python programming +language and the extended Cython programming language (based on Pyrex). It +makes writing C extensions for Python as easy as Python itself. + +For further information see http://cython.org/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_PYTHON" + +# URL to download the source code from +#https://files.pythonhosted.org/packages/source/c/cython/Cython-$MAALI_TOOL_VERSION.tar.gz +MAALI_URL="https://files.pythonhosted.org/packages/source/$MAALI_PYTHON_FIRSTLETTER/$MAALI_TOOL_NAME_ORIG/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="${MAALI_BUILD_DIR}/${MAALI_TOOL_NAME_ORIG}-${MAALI_TOOL_VERSION}" + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 + +############################################################################## + + diff --git a/generic/python-cygnets/funcsigs.cyg b/generic/python-cygnets/funcsigs.cyg new file mode 100644 index 00000000..e43398d8 --- /dev/null +++ b/generic/python-cygnets/funcsigs.cyg @@ -0,0 +1,35 @@ +############################################################################## +# maali cygnet file for funcsigs +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +funcsigs is a backport of the PEP 362 function signature features from Python +3.3’s inspect module. + + +For further information see http://funcsigs.readthedocs.io/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_PYTHON" + +# URL to download the source code from +MAALI_URL="https://files.pythonhosted.org/packages/source/$MAALI_PYTHON_FIRSTLETTER/$MAALI_TOOL_NAME_ORIG/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION" + +# tool pre-requisites +MAALI_TOOL_PREREQ="" + +# tool build pre-requisites - not added to the module, only needed for building (loaded after MAALI_TOOL_PREREQ) +MAALI_TOOL_BUILD_PREREQ="" + +# for auto-building module files + +############################################################################## diff --git a/generic/python-cygnets/matplotlib.cyg b/generic/python-cygnets/matplotlib.cyg new file mode 100644 index 00000000..2af5acb4 --- /dev/null +++ b/generic/python-cygnets/matplotlib.cyg @@ -0,0 +1,38 @@ +############################################################################## +# maali cygnet file for matplotlib +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +Matplotlib is a Python 2D plotting library which produces publication quality +figures in a variety of hardcopy formats and interactive environments across +platforms. Matplotlib can be used in Python scripts, the Python and IPython +shell, the jupyter notebook, web application servers, and four graphical user +interface toolkits. + +For further information see https://matplotlib.org/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_PYTHON" + +# URL to download the source code from +MAALI_URL="https://files.pythonhosted.org/packages/source/$MAALI_PYTHON_FIRSTLETTER/$MAALI_TOOL_NAME_ORIG/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION" + +# tool pre-requisites +MAALI_TOOL_PREREQ="numpy pytz pyparsing six cycler python-dateutil " + +# tool build pre-requisites - not added to the module, only needed for building (loaded after MAALI_TOOL_PREREQ) +MAALI_TOOL_BUILD_PREREQ="setuptools" + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 + +############################################################################## diff --git a/generic/python-cygnets/numpy.cyg b/generic/python-cygnets/numpy.cyg new file mode 100644 index 00000000..81b03b2b --- /dev/null +++ b/generic/python-cygnets/numpy.cyg @@ -0,0 +1,98 @@ +############################################################################## +# maali cygnet file for NumPy +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +NumPy is the fundamental package for scientific computing with Python. It contains among other things: + +- a powerful N-dimensional array object +- sophisticated (broadcasting) functions +- tools for integrating C/C++ and Fortran code +- useful linear algebra, Fourier transform, and random number capabilities + +For further information see http://www.numpy.org/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_PYTHON" + +# URL to download the source code from +MAALI_URL="https://files.pythonhosted.org/packages/source/$MAALI_PYTHON_FIRSTLETTER/$MAALI_TOOL_NAME_ORIG/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.zip" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.zip" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION" + +# tool pre-requisites +MAALI_TOOL_PREREQ="intel-mkl" + +# tool build pre-requisites - not added to the module, only needed for building (loaded after MAALI_TOOL_PREREQ) +MAALI_TOOL_BUILD_PREREQ="setuptools cython" + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 + +############################################################################## + +function maali_python_build { + cd $MAALI_TOOL_BUILD_DIR + + if [ "$MAALI_COMPILER_NAME" == "intel" ]; then + # Numpy had Intel compilers hard coded...need to replace with compiler wrappers + # Also removing -xHost for cross-compile + sed -i 's/-xHost //g' -i numpy/distutils/fcompiler/intel.py + sed -i 's/-xhost //g' -i numpy/distutils/fcompiler/intel.py + if [ ${CPU_TARGET} == "knl" ]; then + sed -i 's/-xSSE4.2/-xMIC-AVX512/g' -i numpy/distutils/fcompiler/intel.py + sed -i 's/-xSSE4.2/-xMIC-AVX512/g' -i numpy/distutils/intelccompiler.py + else + sed -i 's/-xSSE4.2/-xCORE-AVX2/g' -i numpy/distutils/fcompiler/intel.py + sed -i 's/-xSSE4.2/-xCORE-AVX2/g' -i numpy/distutils/intelccompiler.py + fi + fi + + if [ "$MAALI_COMPILER_NAME" == "gcc" ]; then +# use mkl for performance (Current Intel compilers are different) +cat <site.cfg +[mkl] +library_dirs = $MKL_HOME/lib/intel64 +include_dirs = $MKL_HOME/include +mkl_libs = mkl_rt +lapack_libs = +EOF + fi + +} + +############################################################################## + +function maali_python_build { + # should work with most python packages + + # Call e.g. python2.7, python3.6 directly, rather than just python. + PYTHON_MAJOR_MINOR_VERSION=`echo "$PYTHON_VERSION" | cut -d '.' -f 1,2` + export PYTHON="python${PYTHON_MAJOR_MINOR_VERSION}" + + # need to add the python library path to PYTHONPATH temporarily + MAALI_OLD_PYTHONPATH=$PYTHONPATH + MAALI_NEWPYTHONPATH="$MAALI_INSTALL_DIR/$MAALI_PYTHON_LIBDIR/python$MAALI_PYTHON_LIB_VERSION/site-packages" + export PYTHONPATH="$MAALI_NEWPYTHONPATH:$PYTHONPATH" + + maali_makedir "$MAALI_NEWPYTHONPATH" + + cd "$MAALI_TOOL_BUILD_DIR" +if [ "$MAALI_COMPILER_NAME" == "gcc" ]; then + maali_run "python setup.py config" +elif [ "$MAALI_COMPILER_NAME" == "intel" ]; then + maali_run "python setup.py config --compiler=intelem build_clib --compiler=intelem build_ext --compiler=intelem" +fi + maali_run "$PYTHON setup.py build" + maali_run "$PYTHON setup.py install --prefix=$MAALI_INSTALL_DIR" + + export PYTHONPATH=$MAALI_OLD_PYTHONPATH +} + diff --git a/generic/python-cygnets/pandas.cyg b/generic/python-cygnets/pandas.cyg new file mode 100644 index 00000000..b4e825c7 --- /dev/null +++ b/generic/python-cygnets/pandas.cyg @@ -0,0 +1,39 @@ +############################################################################## +# maali cygnet file for pandas +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +pandas is a Python package providing fast, flexible, and expressive data +structures designed to make working with structured (tabular, multidimensional, +potentially heterogeneous) and time series data both easy and intuitive. It +aims to be the fundamental high-level building block for doing practical, real +world data analysis in Python. + + +For further information see http://pandas.pydata.org/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_PYTHON" + +# URL to download the source code from +MAALI_URL="https://files.pythonhosted.org/packages/source/$MAALI_PYTHON_FIRSTLETTER/$MAALI_TOOL_NAME_ORIG/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION" + +# tool pre-requisites +MAALI_TOOL_PREREQ="numpy pytz python-dateutil" + +# tool build pre-requisites - not added to the module, only needed for building (loaded after MAALI_TOOL_PREREQ) +MAALI_TOOL_BUILD_PREREQ="setuptools cython" + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 + +############################################################################## diff --git a/generic/python-cygnets/pip.cyg b/generic/python-cygnets/pip.cyg new file mode 100644 index 00000000..4fe23350 --- /dev/null +++ b/generic/python-cygnets/pip.cyg @@ -0,0 +1,35 @@ +############################################################################## +# maali cygnet file for pip +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +The PyPA recommended tool for installing Python packages. + +For further information see https://pypi.org/project/pip/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_PYTHON" + +# URL to download the source code from +MAALI_URL="https://files.pythonhosted.org/packages/source/$MAALI_PYTHON_FIRSTLETTER/$MAALI_TOOL_NAME_ORIG/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION" + +# tool pre-requisites +MAALI_TOOL_PREREQ="" + +# tool build pre-requisites - not added to the module, only needed for building (loaded after MAALI_TOOL_PREREQ) +MAALI_TOOL_BUILD_PREREQ="setuptools" + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 + +############################################################################## + diff --git a/generic/python-cygnets/pluggy.cyg b/generic/python-cygnets/pluggy.cyg new file mode 100644 index 00000000..eb342436 --- /dev/null +++ b/generic/python-cygnets/pluggy.cyg @@ -0,0 +1,34 @@ +############################################################################## +# maali cygnet file for pluggy +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +A minimalist production ready plugin system + + +For further information see https://github.com/pytest-dev/pluggy + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_PYTHON" + +# URL to download the source code from +MAALI_URL="https://files.pythonhosted.org/packages/source/$MAALI_PYTHON_FIRSTLETTER/$MAALI_TOOL_NAME_ORIG/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION" + +# tool pre-requisites +MAALI_TOOL_PREREQ="" + +# tool build pre-requisites - not added to the module, only needed for building (loaded after MAALI_TOOL_PREREQ) +MAALI_TOOL_BUILD_PREREQ="" + +# for auto-building module files + +############################################################################## diff --git a/generic/python-cygnets/py.cyg b/generic/python-cygnets/py.cyg new file mode 100644 index 00000000..30045f4b --- /dev/null +++ b/generic/python-cygnets/py.cyg @@ -0,0 +1,40 @@ +############################################################################## +# maali cygnet file for py +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +The py lib is a Python development support library featuring the following +tools and modules: + +* py.path: uniform local and svn path objects +* py.apipkg: explicit API control and lazy-importing +* py.iniconfig: easy parsing of .ini files +* py.code: dynamic code generation and introspection (deprecated, moved to pytest). + + +For further information see http://py.readthedocs.io/en/latest/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_PYTHON" + +# URL to download the source code from +MAALI_URL="https://files.pythonhosted.org/packages/source/$MAALI_PYTHON_FIRSTLETTER/$MAALI_TOOL_NAME_ORIG/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION" + +# tool pre-requisites +MAALI_TOOL_PREREQ="" + +# tool build pre-requisites - not added to the module, only needed for building (loaded after MAALI_TOOL_PREREQ) +MAALI_TOOL_BUILD_PREREQ="" + +# for auto-building module files + +############################################################################## diff --git a/generic/python-cygnets/pyparsing.cyg b/generic/python-cygnets/pyparsing.cyg new file mode 100644 index 00000000..3a91a195 --- /dev/null +++ b/generic/python-cygnets/pyparsing.cyg @@ -0,0 +1,37 @@ +############################################################################## +# maali cygnet file for pyparsing +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +The pyparsing module is an alternative approach to creating and executing +simple grammars, vs. the traditional lex/yacc approach, or the use of regular +expressions. The pyparsing module provides a library of classes that client +code uses to construct the grammar directly in Python code. + +For further information see http://pyparsing.wikispaces.com/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_PYTHON" + +# type of tool (eg. apps, devel, python, etc.) +MAALI_TOOL_TYPE="python" + +# URL to download the source code from +MAALI_URL="https://files.pythonhosted.org/packages/source/$MAALI_PYTHON_FIRSTLETTER/$MAALI_TOOL_NAME_ORIG/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION" + +# tool build pre-requisites - not added to the module, only needed for building (loaded after MAALI_TOOL_PREREQ) +MAALI_TOOL_BUILD_PREREQ="setuptools" + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 + +############################################################################## diff --git a/generic/python-cygnets/pytest.cyg b/generic/python-cygnets/pytest.cyg new file mode 100644 index 00000000..53f5653a --- /dev/null +++ b/generic/python-cygnets/pytest.cyg @@ -0,0 +1,36 @@ +############################################################################## +# maali cygnet file for pytest +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +The pytest framework makes it easy to write small tests, yet scales to support +complex functional testing for applications and libraries. + + +For further information see https://docs.pytest.org/en/latest/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_PYTHON" + +# URL to download the source code from +MAALI_URL="https://files.pythonhosted.org/packages/source/$MAALI_PYTHON_FIRSTLETTER/$MAALI_TOOL_NAME_ORIG/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION" + +# tool pre-requisites +MAALI_TOOL_PREREQ="funcsigs pluggy attrs six py setuptools" + +# tool build pre-requisites - not added to the module, only needed for building (loaded after MAALI_TOOL_PREREQ) +MAALI_TOOL_BUILD_PREREQ="" + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 + +############################################################################## diff --git a/generic/python-cygnets/python-dateutil.cyg b/generic/python-cygnets/python-dateutil.cyg new file mode 100644 index 00000000..716c074a --- /dev/null +++ b/generic/python-cygnets/python-dateutil.cyg @@ -0,0 +1,32 @@ +############################################################################## +# maali cygnet file for python-dateutil +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +The dateutil module provides powerful extensions to the standard datetime +module, available in Python. + +For further information see https://dateutil.readthedocs.io/en/stable/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_PYTHON" + +# URL to download the source code from +MAALI_URL="https://files.pythonhosted.org/packages/source/$MAALI_PYTHON_FIRSTLETTER/$MAALI_TOOL_NAME_ORIG/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION" + +# tool pre-requisites +MAALI_TOOL_PREREQ="six" + +# tool build pre-requisites - not added to the module, only needed for building (loaded after MAALI_TOOL_PREREQ) +MAALI_TOOL_BUILD_PREREQ="setuptools" + +############################################################################## diff --git a/generic/python-cygnets/python.cyg b/generic/python-cygnets/python.cyg new file mode 100644 index 00000000..a58795b0 --- /dev/null +++ b/generic/python-cygnets/python.cyg @@ -0,0 +1,63 @@ +############################################################################## +# maali cygnet file for python +# maali -t Python +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +Python is a clear and powerful object-oriented programming language, comparable +to Perl, Ruby, Scheme, or Java. + +For further information see https://www.python.org/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_SYSTEM_GCC" + +# URL to download the source code from +# Python prior to 3.X is distributed in .tar.xz format +MAALI_URL="https://www.python.org/ftp/python/$MAALI_TOOL_VERSION/Python-$MAALI_TOOL_VERSION.tar.xz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tgz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION" + +# for creating the module +MAALI_PYTHON_LIB_VERSION=`echo "$MAALI_TOOL_VERSION" | cut -d '.' -f 1,2` + +# for auto-building module files +MAALI_MODULE_SET_MAALI_PYTHON_LIBDIR='lib' +MAALI_MODULE_SET_MAALI_PYTHON_LIB_VERSION='$MAALI_PYTHON_LIB_VERSION' +MAALI_MODULE_SET_PATH=1 +MAALI_MODULE_SET_LD_LIBRARY_PATH=1 +MAALI_MODULE_SET_MANPATH=1 +MAALI_MODULE_SET_PKG_CONFIG_PATH=1 +MAALI_MODULE_SET_PYTHONPATH=1 +MAALI_MODULE_SET_PYTHON_VERSION='$MAALI_TOOL_VERSION' +MAALI_MODULE_SET_PYTHON_DIR='$MAALI_APP_HOME' +MAALI_WGET_EXTRA=--no-check-certificate + +############################################################################## + +function maali_build { + cd "$MAALI_TOOL_BUILD_DIR" + + maali_run "./configure --prefix=$MAALI_INSTALL_DIR --enable-shared --enable-unicode=ucs4" + maali_run "make -j $MAALI_CORES" + maali_run "make install" + maali_run "make clean" + maali_run "./configure --prefix=$MAALI_INSTALL_DIR --enable-unicode=ucs4" + maali_run "make -j $MAALI_CORES" + maali_run "make install" + + if [ $MAALI_TOOL_MAJOR_VERSION -ge 3 ]; then + cd "$MAALI_INSTALL_DIR/bin" + maali_run "ln -s python$MAALI_TOOL_MAJOR_VERSION python" + maali_run "ln -s pip$MAALI_TOOL_MAJOR_VERSION pip" + fi +} + +############################################################################## diff --git a/generic/python-cygnets/pytz.cyg b/generic/python-cygnets/pytz.cyg new file mode 100644 index 00000000..9a961f13 --- /dev/null +++ b/generic/python-cygnets/pytz.cyg @@ -0,0 +1,27 @@ +############################################################################## +# maali cygnet file for pytz +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +World timezone definitions, modern and historical + +For further information see https://pypi.python.org/pypi/pytz + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_PYTHON" + +# URL to download the source code from +MAALI_URL="https://pypi.io/packages/source/p/pytz/pytz-${MAALI_TOOL_VERSION}.tar.gz" +#MAALI_URL="https://github.com/stub42/pytz/archive/release_${MAALI_TOOL_VERSION}.zip" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.zip" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION" + +############################################################################## + diff --git a/generic/python-cygnets/setuptools.cyg b/generic/python-cygnets/setuptools.cyg new file mode 100644 index 00000000..7574b4fd --- /dev/null +++ b/generic/python-cygnets/setuptools.cyg @@ -0,0 +1,55 @@ +############################################################################## +# maali cygnet file for setuptools +############################################################################## + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_PYTHON" + +# URL to download the source code from +MAALI_URL="https://files.pythonhosted.org/packages/source/$MAALI_PYTHON_FIRSTLETTER/$MAALI_TOOL_NAME_ORIG/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.zip" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.zip" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION" + +# tool pre-requisites +MAALI_TOOL_PREREQ="" + +# tool build pre-requisites - not added to the module, only needed for building (loaded after MAALI_TOOL_PREREQ) +MAALI_TOOL_BUILD_PREREQ="" + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 + +############################################################################## + +function maali_python_build { + + MAALI_PYTHON_MAJOR_VERSION=`echo "$MAALI_PYTHON_VERSION" | cut -d '.' -f 1` + + if [[ $MAALI_PYTHON_MAJOR_VERSION -gt 2 ]] && [[ $MAALI_PYTHON3_SKIP -eq 1 ]] ; then + echo "Don't install the package, but do create a module" + else + # should work with most python packages + + # Call e.g. python2.7, python3.6 directly, rather than just python. + MAALI_PYTHON_MAJOR_MINOR_VERSION=`echo "$MAALI_PYTHON_VERSION" | cut -d '.' -f 1,2` + + # need to add the python library path to PYTHONPATH temporarily + MAALI_OLD_PYTHONPATH=$PYTHONPATH + MAALI_NEWPYTHONPATH="$MAALI_INSTALL_DIR/$MAALI_PYTHON_LIBDIR/python$MAALI_PYTHON_LIB_VERSION/site-packages" + export PYTHONPATH="$MAALI_NEWPYTHONPATH:$PYTHONPATH" + + maali_makedir "$MAALI_NEWPYTHONPATH" + + cd "$MAALI_TOOL_BUILD_DIR" + maali_run "python${MAALI_PYTHON_MAJOR_MINOR_VERSION} bootstrap.py" + maali_run "python${MAALI_PYTHON_MAJOR_MINOR_VERSION} setup.py build" + maali_run "python${MAALI_PYTHON_MAJOR_MINOR_VERSION} setup.py install --prefix=$MAALI_INSTALL_DIR --single-version-externally-managed --root=/" + + export PYTHONPATH=$MAALI_OLD_PYTHONPATH + fi + +} diff --git a/generic/python-cygnets/six.cyg b/generic/python-cygnets/six.cyg new file mode 100644 index 00000000..76d2beac --- /dev/null +++ b/generic/python-cygnets/six.cyg @@ -0,0 +1,28 @@ +############################################################################## +# maali cygnet file for six +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +Six is a Python 2 and 3 compatibility library. It provides utility functions +for smoothing over the differences between the Python versions with the goal of +writing Python code that is compatible on both Python versions. + +For further information see https://pypi.python.org/pypi/six + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_PYTHON" + +# URL to download the source code from +MAALI_URL="https://files.pythonhosted.org/packages/source/$MAALI_PYTHON_FIRSTLETTER/$MAALI_TOOL_NAME_ORIG/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION" + +############################################################################## + diff --git a/generic/python-cygnets/subprocess32.cyg b/generic/python-cygnets/subprocess32.cyg new file mode 100644 index 00000000..8fcdd964 --- /dev/null +++ b/generic/python-cygnets/subprocess32.cyg @@ -0,0 +1,59 @@ +############################################################################## +# maali cygnet file for subprocess32 +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +This is a backport of the subprocess standard library module from Python 3.2 & +3.3 for use on Python 2. It includes bugfixes and some new features. On POSIX +systems it is guaranteed to be reliable when used in threaded applications. It +includes timeout support from Python 3.3 but otherwise matches 3.2s API. + +For further information see https://github.com/google/python-subprocess32 + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_PYTHON" + +# URL to download the source code from +MAALI_URL="https://files.pythonhosted.org/packages/source/$MAALI_PYTHON_FIRSTLETTER/$MAALI_TOOL_NAME_ORIG/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION" + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 + +############################################################################## + +function maali_python_build { + + MAALI_PYTHON_MAJOR_VERSION=`echo "$MAALI_PYTHON_VERSION" | cut -d '.' -f 1` + + if [ $MAALI_TOOL_MAJOR_VERSION -gt 2 ]; then + echo "Don't install the package, but do create a module" + else + + # Call e.g. python2.7, python3.6 directly, rather than just python. + MAALI_PYTHON_MAJOR_MINOR_VERSION=`echo "$MAALI_PYTHON_VERSION" | cut -d '.' -f 1,2` + + # need to add the python library path to PYTHONPATH temporarily + MAALI_OLD_PYTHONPATH=$PYTHONPATH + MAALI_NEWPYTHONPATH="$MAALI_INSTALL_DIR/$MAALI_PYTHON_LIBDIR/python$MAALI_PYTHON_LIB_VERSION/site-packages" + export PYTHONPATH="$MAALI_NEWPYTHONPATH:$PYTHONPATH" + + maali_makedir "$MAALI_NEWPYTHONPATH" + + cd "$MAALI_TOOL_BUILD_DIR" + maali_run "python${MAALI_PYTHON_MAJOR_MINOR_VERSION} setup.py build" + maali_run "python${MAALI_PYTHON_MAJOR_MINOR_VERSION} setup.py install --prefix=$MAALI_INSTALL_DIR" + + export PYTHONPATH=$MAALI_OLD_PYTHONPATH + fi +} + +############################################################################## diff --git a/generic/python-cygnets/wheel.cyg b/generic/python-cygnets/wheel.cyg new file mode 100644 index 00000000..8471dec1 --- /dev/null +++ b/generic/python-cygnets/wheel.cyg @@ -0,0 +1,39 @@ +############################################################################## +# maali cygnet file for setuptools +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +A built-package format for Python. + +A wheel is a ZIP-format archive with a specially formatted filename and the +.whl extension. It is designed to contain all the files for a PEP 376 +compatible install in a way that is very close to the on-disk format. Many +packages will be properly installed with only the Unpack step (simply +extracting the file onto sys.path), and the unpacked archive preserves enough +information to Spread (copy data and scripts to their final locations) at any +later time. + +For further information see https://pypi.org/project/wheel/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_PYTHON" + +# URL to download the source code from +MAALI_URL="https://files.pythonhosted.org/packages/source/$MAALI_PYTHON_FIRSTLETTER/$MAALI_TOOL_NAME_ORIG/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION.tar.gz" + +MAALI_TOOL_BUILD_PREREQ="setuptools" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME_ORIG-$MAALI_TOOL_VERSION" + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 + +############################################################################## + diff --git a/generic/sparsehash.cyg b/generic/sparsehash.cyg new file mode 100644 index 00000000..8a39f077 --- /dev/null +++ b/generic/sparsehash.cyg @@ -0,0 +1,44 @@ +############################################################################## +# maali cygnet file for sparsehash +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +Sparsehash contains several hash-map implementations, similar in API to SGI's +hash_map class, but with different performance characteristics. +sparse_hash_map uses very little space overhead, 1-2 bits per entry. +dense_hash_map is very fast, particulary on lookup. (sparse_hash_set and +dense_hash_set are the set versions of these routines.) On the other hand, +these classes have requirements that may not make them appropriate for all +applications. + +For further information see https://github.com/sparsehash/sparsehash + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_SYSTEM_GCC" + +# fails on intel +# ./src/sparsehash/sparse_hash_map(94): catastrophic error: expected a file name +# #include HASH_FUN_H // for hash<> + +# URL to download the source code from +MAALI_URL="https://github.com/$MAALI_TOOL_NAME/$MAALI_TOOL_NAME/archive/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.gz" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME-$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION" + +# type of tool (eg. apps, devel, python, etc.) +MAALI_TOOL_TYPE="devel" + +# for auto-building module files +MAALI_MODULE_SET_LD_LIBRARY_PATH=1 +MAALI_MODULE_SET_CPATH=1 +MAALI_MODULE_SET_FPATH=1 +MAALI_MODULE_SET_FCPATH=1 + +############################################################################## diff --git a/generic/wcslib.cyg b/generic/wcslib.cyg new file mode 100644 index 00000000..48b4c555 --- /dev/null +++ b/generic/wcslib.cyg @@ -0,0 +1,48 @@ +############################################################################## +# maali cygnet file for wcslib +############################################################################## + +read -r -d '' MAALI_MODULE_WHATIS << EOF + +WCSLIB is a C library, supplied with a full set of Fortran wrappers, that +implements the World Coordinate System (WCS) standard in FITS (Flexible Image +Transport System). It also includes a PGPLOT-based routine, PGSBOX, for drawing +general curvilinear coordinate graticules and a number of utility programs. + +For further information see http://www.atnf.csiro.au/people/mcalabre/WCS/wcslib/ + +EOF + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_COMPILERS" + +# URL to download the source code from +MAALI_URL="ftp://ftp.atnf.csiro.au/pub/software/$MAALI_TOOL_NAME/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.bz2" + +# location we are downloading the source code to +MAALI_DST="$MAALI_SRC/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION.tar.bz2" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="$MAALI_BUILD_DIR/$MAALI_TOOL_NAME-$MAALI_TOOL_VERSION" + +# type of tool (eg. apps, devel, python, etc.) +MAALI_TOOL_TYPE="devel" + +# tool pre-requisites +MAALI_TOOL_PREREQ="cfitsio" + +# tool build pre-requisites - not added to the module, only needed for building (loaded after MAALI_TOOL_PREREQ) +MAALI_TOOL_BUILD_PREREQ="" + +# add additional configure options +MAALI_TOOL_CONFIGURE='--with-cfitsiolib=$MAALI_CFITSIO_HOME/lib --with-cfitsioinc=$MAALI_CFITSIO_HOME/include CFLAGS=-fPIC' + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 +MAALI_MODULE_SET_LD_LIBRARY_PATH=1 +MAALI_MODULE_SET_CPATH=1 +MAALI_MODULE_SET_FPATH=1 +MAALI_MODULE_SET_FCPATH=1 +MAALI_MODULE_SET_PKG_CONFIG_PATH=1 + +############################################################################## diff --git a/generic/xerces-c.cyg b/generic/xerces-c.cyg new file mode 100644 index 00000000..a821418f --- /dev/null +++ b/generic/xerces-c.cyg @@ -0,0 +1,29 @@ +############################################################################## +# maali cygnet file for xerces-c +############################################################################## + +# specify which compilers we want to build the tool with +MAALI_TOOL_COMPILERS="$MAALI_DEFAULT_COMPILERS" + +# URL to download the source code from +MAALI_URL="https://downloads.apache.org//xerces/c/3/sources/xerces-c-${MAALI_TOOL_VERSION}.tar.gz" + +# location we are downloading the source code to +MAALI_DST="${MAALI_SRC}/${MAALI_TOOL_NAME}-${MAALI_TOOL_VERSION}.tar.gz" + +# where the unpacked source code is located +MAALI_TOOL_BUILD_DIR="${MAALI_BUILD_DIR}/${MAALI_TOOL_NAME}-${MAALI_TOOL_VERSION}" + +# type of tool (eg. apps, devel, python, etc.) +MAALI_TOOL_TYPE="devel" + +# add additional configure options +MAALI_TOOL_CONFIGURE='--disable-network --with-pic' + +# for auto-building module files +MAALI_MODULE_SET_PATH=1 +MAALI_MODULE_SET_LD_LIBRARY_PATH=1 +MAALI_MODULE_SET_PKG_CONFIG_PATH=1 +MAALI_MODULE_SET_CPATH=1 + +##############################################################################