diff options
Diffstat (limited to 'libraries/hpx')
-rw-r--r-- | libraries/hpx/README | 23 | ||||
-rw-r--r-- | libraries/hpx/hpx.SlackBuild | 107 | ||||
-rw-r--r-- | libraries/hpx/hpx.info | 10 | ||||
-rw-r--r-- | libraries/hpx/slack-desc | 19 |
4 files changed, 159 insertions, 0 deletions
diff --git a/libraries/hpx/README b/libraries/hpx/README new file mode 100644 index 000000000000..95e30e83b2fa --- /dev/null +++ b/libraries/hpx/README @@ -0,0 +1,23 @@ +HPX is a C++ Standards Library for Concurrency and Parallelism. It +implements all of the corresponding facilities as defined by the +C++ Standard. Additionally, in HPX we implement functionalities +proposed as part of the ongoing C++ standardization process. We also +extend the C++ Standard APIs to the distributed case. + +The goal of HPX is to create a high quality, freely available, open +source implementation of a new programming model for conventional +systems, such as classic Linux based Beowulf clusters or multi-socket +highly parallel SMP nodes. At the same time, we want to have a very +modular and well designed runtime system architecture which would +allow us to port our implementation onto new computer system +architectures. We want to use real world applications to drive the +development of the runtime system, coining out required +functionalities and converging onto a stable API which will provide +a smooth migration path for developers. + +The API exposed by HPX is not only modelled after the interfaces +defined by the C++11/14 ISO standard, it also adheres to the +programming guidelines used by the Boost collection of C++ libraries. +We aim improve the scalability of today's applications and to expose +new levels of parallelism which are necessary to take advantage of +the exascale systems of the future. diff --git a/libraries/hpx/hpx.SlackBuild b/libraries/hpx/hpx.SlackBuild new file mode 100644 index 000000000000..515b0209882f --- /dev/null +++ b/libraries/hpx/hpx.SlackBuild @@ -0,0 +1,107 @@ +#!/bin/sh + +# Slackware build script for hpx + +# Copyright 2017 Andre Barboza, Belo Horizonte - Brazil +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PRGNAM=hpx +VERSION=${VERSION:-0.9.99} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DLIB=lib${LIBDIRSUFFIX} \ + -DCMAKE_BUILD_TYPE=Release \ + -DHPX_PLATFORM=native \ + -DHPX_WITH_DOCUMENTATION=OFF \ + -DHPX_WITH_EXAMPLES=OFF \ + -DHPX_WITH_TESTS=OFF .. + + make + make install DESTDIR=$PKG +cd .. + +( cd $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig + sed -i.bkp "s|libdir=\${exec_prefix}/lib|libdir=\${exec_prefix}/lib${LIBDIRSUFFIX}|" *.pc + rm *.bkp +) + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a LICENSE_1_0.txt README.rst $PKG/usr/doc/$PRGNAM-$VERSION +mv $PKG/usr/share/$PRGNAM-$VERSION/docs/html $PKG/usr/doc/$PRGNAM-$VERSION +rm -rf $PKG/usr/share/ +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/libraries/hpx/hpx.info b/libraries/hpx/hpx.info new file mode 100644 index 000000000000..b7170c3634bc --- /dev/null +++ b/libraries/hpx/hpx.info @@ -0,0 +1,10 @@ +PRGNAM="hpx" +VERSION="0.9.99" +HOMEPAGE="https://github.com/STEllAR-GROUP/hpx/" +DOWNLOAD="https://github.com/STEllAR-GROUP/hpx/archive/0.9.99/hpx-0.9.99.tar.gz" +MD5SUM="8dcb996e52047cfaed3eafabd76a86ff" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="numactl hwloc gperftools" +MAINTAINER="Andre Barboza" +EMAIL="bmg.andre@gmail.com" diff --git a/libraries/hpx/slack-desc b/libraries/hpx/slack-desc new file mode 100644 index 000000000000..15d0aada1247 --- /dev/null +++ b/libraries/hpx/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +hpx: hpx (C++ Standards Library for Concurrency and Parallelism) +hpx: +hpx: HPX is a C++ Standards Library for Concurrency and Parallelism. +hpx: It implements all of the corresponding facilities as defined by +hpx: the C++ Standard. Additionally, in HPX we implement functionalities +hpx: proposed as part of the ongoing C++ standardization process. We +hpx: also extend the C++ Standard APIs to the distributed case. +hpx: +hpx: +hpx: https://github.com/STEllAR-GROUP/hpx +hpx: |