123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258 |
- #!/bin/bash
- # Slackware build script for ROOT
- # written by Jože Zobec <jozze.zepl@gmail.com>
- # 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.
- # Modified by the slackbuilds.org project
- cd $(dirname $0) ; CWD=$(pwd)
- PRGNAM=root
- VERSION=${VERSION:-6.24.06}
- BUILD=${BUILD:-1}
- TAG=${TAG:-_SBo}
- PKGTYPE=${PKGTYPE:-tgz}
- if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i586 ;;
- arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
- fi
- if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
- echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
- exit 0
- fi
- TMP=${TMP:-/tmp/SBo}
- PKG=$TMP/package-$PRGNAM
- OUTPUT=${OUTPUT:-/tmp}
- if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-march=i586 -mtune=i686"
- elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-march=i686 -mtune=i686"
- elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-fPIC"
- else
- SLKCFLAGS=""
- fi
- CXXSTD=${CXXSTD:-17}
- set -e
- rm -rf $PKG
- mkdir -p $TMP $PKG $OUTPUT
- cd $TMP
- rm -rf $PRGNAM-$VERSION
- tar xvf $CWD/$PRGNAM\_v$VERSION.source.tar.gz
- mv root-$VERSION src
- mkdir -p $PRGNAM-$VERSION
- mv src $PRGNAM-$VERSION
- 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 {} \+
- # prefix where to install stuff
- PREFIX=/opt/ROOT-${VERSION}
- mkdir -p build
- cd build
- CFLAGS="$SLKCFLAGS" \
- CXXFLAGS="$SLKCFLAGS" \
- cmake ../src \
- -DCMAKE_INSTALL_PREFIX=$PREFIX \
- -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
- -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
- -DCMAKE_CXX_STANDARD=${CXXSTD} \
- -DCMAKE_INSTALL_PYTHONDIR=lib \
- -DMAN_INSTALL_DIR=$PREFIX/man \
- -Dbuiltin_cfitsio=OFF \
- -Dbuiltin_davix=OFF \
- -Dbuiltin_fftw3=OFF \
- -Dbuiltin_gsl=OFF \
- -Dbuiltin_openssl=OFF \
- -Dbuiltin_tbb=OFF \
- -Dbuiltin_vc=OFF \
- -Dbuiltin_vdt=OFF \
- -Dbuiltin_veccore=OFF \
- -Dclad=OFF \
- -Dalien=OFF \
- -Dall=OFF \
- -Darrow=OFF \
- -Dassan=OFF \
- -Dasserts=OFF \
- -Dbuiltin_freetype=OFF \
- -Dfftw3=ON \
- -Dbuiltin_glew=OFF \
- -Dbuiltin_clang=ON \
- -Dbuiltin_cling=ON \
- -Dbuiltin_llvm=ON \
- -Dbuiltin_lz4=OFF \
- -Dbuiltin_lzma=OFF \
- -Dbuiltin_nlohmannjson=ON \
- -Dbuiltin_openui5=ON \
- -Dbuiltin_pcre=OFF \
- -Dbuiltin_unuran=OFF \
- -Dbuiltin_xrootd=OFF \
- -Dbuiltin_xxhash=OFF \
- -Dbuiltin_zlib=OFF \
- -Dbuiltin_zstd=OFF \
- -Dccache=OFF \
- -Dcefweb=OFF \
- -Dclingtest=OFF \
- -Dcocoa=OFF \
- -Dcompression_default=zlib \
- -Dcoverage=OFF \
- -Dcuda=OFF \
- -Dcudnn=OFF \
- -Dcxx_modules=OFF \
- -Ddataframe=ON \
- -Ddavix=OFF \
- -Ddcache=OFF \
- -Ddev=OFF \
- -Ddistcc=OFF \
- -Dexceptions=ON \
- -Dfail-on-missing=ON \
- -Dfcgi=OFF \
- -Dfitsio=ON \
- -Dfortran=ON \
- -Dgdml=ON \
- -Dgfal=OFF \
- -Dgminimal=OFF \
- -Dgnuinstall=OFF \
- -Dgsl_shared=ON \
- -Dmathmore=ON \
- -Dgviz=OFF \
- -Dhttp=ON \
- -Djemalloc=OFF \
- -Dlibcxx=OFF \
- -Dmacos_native=OFF \
- -Dmemory_termination=OFF \
- -Dminimal=OFF \
- -Dminuit2=ON \
- -Dmlp=ON \
- -Dmonalisa=OFF \
- -Dmpi=OFF \
- -Dmysql=OFF \
- -Dodbc=OFF \
- -Dopengl=ON \
- -Doracle=OFF \
- -Dpgsql=OFF \
- -Dpyroot=ON \
- -Dpyroot_legacy=OFF \
- -Dpythia6=OFF \
- -Dpythia6_nolink=OFF \
- -Dpythia8=OFF \
- -Dqt5web=OFF \
- -Dr=OFF \
- -Droofit=ON \
- -Droot7=ON \
- -Drootbench=OFF \
- -Droottest=OFF \
- -Drpath=OFF \
- -Druntime_cxxmodules=ON \
- -Dshadowpw=OFF \
- -Dshared=ON \
- -Dsoversion=ON \
- -Dspectrum=ON \
- -Dsqlite=OFF \
- -Dssl=ON \
- -Dtcmalloc=OFF \
- -Dtest_distrdf_pyspark=OFF \
- -Dtesting=OFF \
- -Dtmva=ON \
- -Dtmva-cpu=ON \
- -Dtmva-gpu=OFF \
- -Dtmva-pymva=ON \
- -Dtmva-rmva=OFF \
- -Dunuran=OFF \
- -During=OFF \
- -Dvc=OFF \
- -Dvdt=OFF \
- -Dveccore=OFF \
- -Dvmc=OFF \
- -Dwebgui=ON \
- -Dwin_broken_tests=OFF \
- -Dwinrtdebug=OFF \
- -Dx11=ON \
- -Dxml=ON \
- -Dxproofd=OFF \
- -Dxrootd=OFF \
- -DCMAKE_BUILD_TYPE=Release ../src
- make
- make install/strip DESTDIR=$PKG
- find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneded 2> /dev/null || true
- find $PKG$PREFIX/man -type f -exec gzip -9 {} \;
- mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
- # We are still in build directory
- # Copy documentation to system; also to ROOTSYS (ROOT expects it there)
- cp -a README/ README.md LICENSE LGPL2_1.txt ../src/CONTRIBUTING.md \
- $PKG/usr/doc/$PRGNAM-$VERSION
- find $PKG/usr/doc/$PRGNAM-$VERSION -type f -exec chmod 644 {} \;
- cp -a README/ LICENSE \
- $PKG$PREFIX
- chmod -R 644 $PKG$PREFIX/README
- chmod -R 644 $PKG$PREFIX/LICENSE
- cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
- # Install some profile.d scripts to use the right paths
- mkdir -p $PKG/etc/profile.d
- # Start with tcsh
- echo "setenv ROOTSYS $PREFIX" > $PKG/etc/profile.d/root.csh
- echo "set path = ( \$path $PREFIX/bin )" >> $PKG/etc/profile.d/root.csh
- echo "setenv MANPATH \${MANPATH}:$PREFIX/man" >> $PKG/etc/profile.d/root.csh
- echo "if ( ! \$?PYTHONPATH ) then" >> $PKG/etc/profile.d/root.csh
- echo "setenv PYTHONPATH $PREFIX/lib" >> $PKG/etc/profile.d/root.csh
- echo "else" >> $PKG/etc/profile.d/root.csh
- echo "if ( \"\$PYTHONPATH\" != \"\") then" >> $PKG/etc/profile.d/root.csh
- echo "setenv PYTHONPATH \$PYTHONPATH:$PREFIX/lib">> $PKG/etc/profile.d/root.csh
- echo "else" >> $PKG/etc/profile.d/root.csh
- echo "setenv PYTHONPATH $PREFIX/lib" >> $PKG/etc/profile.d/root.csh
- echo "endif" >> $PKG/etc/profile.d/root.csh
- echo "endif" >> $PKG/etc/profile.d/root.csh
- # And bash
- echo "ROOTSYS=$PREFIX" > $PKG/etc/profile.d/root.sh
- echo "PATH=\$PATH:$PREFIX/bin" >> $PKG/etc/profile.d/root.sh
- echo "MANPATH=\$MANPATH:$PREFIX/man" >> $PKG/etc/profile.d/root.sh
- echo "if [ -z \"\${PYTHONPATH}\" ]; then" >> $PKG/etc/profile.d/root.sh
- echo " export PYTHONPATH=$PREFIX/lib" >> $PKG/etc/profile.d/root.sh
- echo "else" >> $PKG/etc/profile.d/root.sh
- echo " export PYTHONPATH=\$PYTHONPATH:$PREFIX/lib" \
- >> $PKG/etc/profile.d/root.sh
- echo "fi" >> $PKG/etc/profile.d/root.sh
- chmod +x $PKG/etc/profile.d/root.*
- mkdir -p $PKG/etc/ld.so.conf.d
- echo "$PREFIX/lib" > $PKG/etc/ld.so.conf.d/root.conf
- mkdir -p $PKG/install
- cat $CWD/slack-desc > $PKG/install/slack-desc
- cat $CWD/doinst.sh > $PKG/install/doinst.sh
- cd $PKG
- /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
|