From 92d8f5789ab6fa359d3994c1a0b79522cf8cd019 Mon Sep 17 00:00:00 2001 From: henry <Henry Weller h.weller@opencfd.co.uk> Date: Fri, 24 Jul 2009 11:04:05 +0100 Subject: [PATCH] Moved the ThirdParty build scripts to bin so that they are under the git. --- Allwmake | 2 +- bin/AllcleanThirdParty | 41 +++++++++ bin/AllwmakeLibccmio | 64 ++++++++++++++ bin/AllwmakeThirdParty | 184 +++++++++++++++++++++++++++++++++++++++++ bin/foamMakeGcc | 132 +++++++++++++++++++++++++++++ bin/foamMakeQt | 69 ++++++++++++++++ 6 files changed, 491 insertions(+), 1 deletion(-) create mode 100755 bin/AllcleanThirdParty create mode 100755 bin/AllwmakeLibccmio create mode 100755 bin/AllwmakeThirdParty create mode 100755 bin/foamMakeGcc create mode 100755 bin/foamMakeQt diff --git a/Allwmake b/Allwmake index ca2113e522c..bb2f5ef504c 100755 --- a/Allwmake +++ b/Allwmake @@ -6,7 +6,7 @@ set -x ( cd wmake/src && make ) # build ThirdParty sources -( cd $WM_THIRD_PARTY_DIR && ./Allwmake ) +( cd $WM_THIRD_PARTY_DIR && AllwmakeThirdParty ) src/Allwmake applications/Allwmake diff --git a/bin/AllcleanThirdParty b/bin/AllcleanThirdParty new file mode 100755 index 00000000000..8e2a87eab2d --- /dev/null +++ b/bin/AllcleanThirdParty @@ -0,0 +1,41 @@ +#---------------------------------*- sh -*------------------------------------- +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. +# \\/ M anipulation | +#------------------------------------------------------------------------------ +# License +# This file is part of OpenFOAM. +# +# OpenFOAM is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenFOAM; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +# Script +# AllwcleanThirdParty +# +# Description +# Distribution clean script for ThirdParty +# +#------------------------------------------------------------------------------ +set -x + +(cd gmp-4.2.4 && rm -rf build) +(cd mpfr-2.4.1 && rm -rf build) +(cd gcc-4.3.3 && rm -rf build) +(cd metis-5.0pre2 && make distclean) +(cd openmpi-1.3.3 && make distclean) +(cd paraview-3.6.1 && make distclean) + +# ----------------------------------------------------------------- end-of-file diff --git a/bin/AllwmakeLibccmio b/bin/AllwmakeLibccmio new file mode 100755 index 00000000000..352a4bff0cb --- /dev/null +++ b/bin/AllwmakeLibccmio @@ -0,0 +1,64 @@ +#!/bin/sh +#------------------------------------------------------------------------------ +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. +# \\/ M anipulation | +#------------------------------------------------------------------------------ +# License +# This file is part of OpenFOAM. +# +# OpenFOAM is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenFOAM; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +# Script +# AllwmakeLibccmio +# +# Description +# Get and build CD-adapco's ccmio library +# +#------------------------------------------------------------------------------ +set -x + +packageDir=libccmio-2.6.1 + +if [ ! -d ${packageDir} ] +then + if [ ! -e ${packageDir}.tar.gz ] + then + wget --no-check-certificate \ + https://wci.llnl.gov/codes/visit/3rd_party/${packageDir}.tar.gz + fi + + if [ -e ${packageDir}.tar.gz ] + then + tar -xzf ${packageDir}.tar.gz + else + echo "no ${packageDir}.tar.gz to unpack" + fi +fi + +if [ -d ${packageDir} -a ! -d ${packageDir}/Make ] +then + cp -r wmakeFiles/libccmio/Make ${packageDir}/Make +fi + +if [ -d ${packageDir}/Make ] +then + wmake libso ${packageDir} +fi + + +# ----------------------------------------------------------------- end-of-file diff --git a/bin/AllwmakeThirdParty b/bin/AllwmakeThirdParty new file mode 100755 index 00000000000..f8066ff06f2 --- /dev/null +++ b/bin/AllwmakeThirdParty @@ -0,0 +1,184 @@ +#---------------------------------*- sh -*------------------------------------- +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. +# \\/ M anipulation | +#------------------------------------------------------------------------------ +# License +# This file is part of OpenFOAM. +# +# OpenFOAM is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenFOAM; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +# Script +# AllwmakeThirdParty +# +# Description +# Build script for ThirdParty +# +#------------------------------------------------------------------------------ +set -x + +# export WM settings in a form that GNU configure recognizes +[ -n "$WM_CC" ] && export CC="$WM_CC" +[ -n "$WM_CXX" ] && export CXX="$WM_CXX" +[ -n "$WM_CFLAGS" ] && export CFLAGS="$WM_CFLAGS" +[ -n "$WM_CXXFLAGS" ] && export CXXFLAGS="$WM_CXXFLAGS" +[ -n "$WM_LDFLAGS" ] && export LDFLAGS="$WM_LDFLAGS" + +# wmake libso zlib-1.2.3 + +( cd malloc && ./Allwmake ) + +# +# compile specific mpi libraries +# +case "$WM_MPLIB" in +OPENMPI) + if [ -r $MPI_ARCH_PATH/lib/libmpi.so ] + then + echo "have $WM_MPLIB shared library" + elif [ -r $MPI_ARCH_PATH/lib/libmpi.a ] + then + echo "have $WM_MPLIB static library" + else + ( + cd $MPI_HOME + + make distclean + rm -rf $MPI_ARCH_PATH + + ./configure \ + --prefix=$MPI_ARCH_PATH \ + --disable-mpirun-prefix-by-default \ + --disable-orterun-prefix-by-default \ + --enable-shared --disable-static \ + --disable-mpi-f77 --disable-mpi-f90 --disable-mpi-cxx \ + --disable-mpi-profile + # These lines enable Infiniband support + # --with-openib=/usr/local/ofed \ + # --with-openib-libdir=/usr/local/ofed/lib64 + + make + make install + make distclean + ) + fi + ;; + +LAM) + if [ -r $MPI_ARCH_PATH/lib/libmpi.so ] + then + echo "have $WM_MPLIB shared library" + elif [ -r $MPI_ARCH_PATH/lib/libmpi.a ] + then + echo "have $WM_MPLIB static library" + else + ( + cd $MPI_HOME + + make distclean + rm -rf $MPI_ARCH_PATH + + ./configure \ + --prefix=$MPI_ARCH_PATH \ + --enable-shared \ + --disable-static \ + --without-romio \ + --without-mpi2cpp \ + --without-profiling \ + --without-fc + + make + make install + make distclean + ) + fi + ;; + +MPICH) + if [ -r $MPI_ARCH_PATH/lib/libmpich.so ] + then + echo "have $WM_MPLIB shared library" + elif [ -r $MPI_ARCH_PATH/lib/libmpich.a ] + then + echo "have $WM_MPLIB static library" + else + ( + cd $MPI_HOME + + make distclean + rm -rf $MPI_ARCH_PATH + rm util/machines/machines.* + + ./configure \ + --without-mpe \ + --disable-f77 \ + --disable-f90 \ + --disable-f90modules \ + --disable-c++ \ + --disable-mpedbg \ + --disable-devdebug \ + --disable-debug \ + --enable-sharedlib=$MPI_ARCH_PATH/lib \ + --with-device=ch_p4 \ + -prefix=$MPI_ARCH_PATH + make + make install + make distclean + + if [ -r $MPI_ARCH_PATH ] + then + cd $MPI_ARCH_PATH/bin + for file in * + do + sed s%$MPI_ARCH_PATH%'$MPI_ARCH_PATH'%g $file > temp.$$ + mv temp.$$ $file + chmod ugo+rx $file + done + + cd $MPI_ARCH_PATH/lib + + if [ -r libmpich.so.1.0 ] + then + rm *.so + ln -s libmpich.so.1.0 libmpich.so + fi + fi + ) + fi + ;; + +esac + +# Build scotch +( cd scotch_5.1 && wmake libso src/libscotch ) + +# Build Metis +( cd metis-5.0pre2 && wmake libso GKlib && wmake libso libmetis ) + +# Build parMetis. Requires mpi! +if [ "$WM_MPLIB" = "MPI" -o -d $MPI_ARCH_PATH ] +then + ( cd ParMetis-3.1 && WM_OPTIONS=${WM_OPTIONS}$WM_MPLIB && wmake libso METISLib && wmake libso ParMETISLib ) +fi + + +# Build ParMGridGen +wmake libso ParMGridGen-1.0/MGridGen/IMlib +wmake libso ParMGridGen-1.0/MGridGen/Lib + + +# ----------------------------------------------------------------- end-of-file diff --git a/bin/foamMakeGcc b/bin/foamMakeGcc new file mode 100755 index 00000000000..544825b0b1b --- /dev/null +++ b/bin/foamMakeGcc @@ -0,0 +1,132 @@ +#---------------------------------*- sh -*------------------------------------- +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. +# \\/ M anipulation | +#------------------------------------------------------------------------------ +# License +# This file is part of OpenFOAM. +# +# OpenFOAM is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenFOAM; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +# Script +# foamMakeGcc +# +# Description +# Build script for gmp, mpfr and gcc-4.3.? and gcc-4.4.? +# +#------------------------------------------------------------------------------ +usage() { + while [ "$#" -ge 1 ]; do echo "$1"; shift; done + cat<<USAGE + +usage: ${0##*/} <gcc-4.?.?> ... + +* build gmp, mpfr and gcc-4.3.? and gcc-4.4.? + +USAGE + exit 1 +} + +if [ $# -ne 1 ] +then + usage "gcc version not provided" +fi + +# +# Set the number of cores to build on +# +WM_NCOMPPROCS=1 + +if [ -r /proc/cpuinfo ] +then + WM_NCOMPPROCS=$(egrep "^processor" /proc/cpuinfo | wc -l) + [ $WM_NCOMPPROCS -le 8 ] || WM_NCOMPPROCS=8 +fi + +echo "Building on " $WM_NCOMPPROCS " cores" + +GMP_DIR=$WM_THIRD_PARTY_DIR/gmp-4.2.4 +MPFR_DIR=$WM_THIRD_PARTY_DIR/mpfr-2.4.1 +GCC_DIR=$WM_THIRD_PARTY_DIR/$1 + +GMPROOT=${GMP_DIR}/platforms/$WM_ARCH$WM_COMPILER_ARCH +MPFRROOT=${MPFR_DIR}/platforms/$WM_ARCH$WM_COMPILER_ARCH +GCCROOT=${GCC_DIR}/platforms/$WM_ARCH$WM_COMPILER_ARCH + +# +# Bulid GMP +# +if [ ! -d $GMPROOT ] +then + ( + make distclean \ + && mkdir $GMP_DIR/build \ + && cd $GMP_DIR/build \ + && ../configure ABI=$ABI --prefix=$GMPROOT \ + && make -j $WM_NCOMPPROCS \ + && make install + ) + echo " Finished building gmp." +else + echo " gmp already built." +fi + +export LD_LIBRARY_PATH="$GMPROOT/lib:$LD_LIBRARY_PATH" + +# +# Build MPFR +# +if [ ! -d $MPFRROOT ] +then + ( + make distclean \ + && mkdir $MPFR_DIR/build \ + && cd $MPFR_DIR/build \ + && ../configure ABI=$ABI --prefix=$MPFRROOT --with-gmp=$GMPROOT \ + && make -j $WM_NCOMPPROCS \ + && make install + ) + echo " Finished building mpfr." +else + echo " mprf already built." +fi + +export LD_LIBRARY_PATH="$MPFRROOT/lib:$LD_LIBRARY_PATH" + +# +# Build GCC +# +if [ ! -d $GCCROOT ] +then + ( + make distclean \ + && mkdir $GCC_DIR/build \ + && cd $GCC_DIR/build \ + && ../configure --enable-languages=c,c++ --with-pkgversion='OpenFOAM' \ + --enable-__cxa_atexit --enable-libstdcxx-allocator=new \ + --with-system-zlib --prefix=$GCCROOT \ + --with-mpfr=$MPFRROOT --with-gmp=$GMPROOT \ + && make -j $WM_NCOMPPROCS \ + && make install + ) + echo " Finished building gcc." +else + echo " gcc already built." +fi + + +# ----------------------------------------------------------------- end-of-file diff --git a/bin/foamMakeQt b/bin/foamMakeQt new file mode 100755 index 00000000000..3ce6ea0e9d0 --- /dev/null +++ b/bin/foamMakeQt @@ -0,0 +1,69 @@ +#---------------------------------*- sh -*------------------------------------- +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. +# \\/ M anipulation | +#------------------------------------------------------------------------------ +# License +# This file is part of OpenFOAM. +# +# OpenFOAM is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenFOAM; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +# Script +# foamMakeQt +# +# Description +# Build script for Qt-4.3.5 +# +#------------------------------------------------------------------------------ + +QT_VERSION=4.3.5 +QT_HOME=${WM_THIRD_PARTY_DIR}/qt-x11-opensource-src-${QT_VERSION} +QT_ARCH_PATH=${QT_HOME}/platforms/${WM_OPTIONS} + +if [ ! -d $QT_ARCH_PATH ] +then + cd ${QT_HOME} + + make distclean + + rm -rf ${QT_ARCH_PATH} + + ./configure \ + --prefix=${QT_ARCH_PATH} \ + -nomake demos \ + -nomake examples + + if [ -r /proc/cpuinfo ] + then + WM_NCOMPPROCS=$(egrep "^processor" /proc/cpuinfo | wc -l) + [ $WM_NCOMPPROCS -le 8 ] || WM_NCOMPPROCS=8 + + echo "Building on " $WM_NCOMPPROCS " cores" + + time make -j $WM_NCOMPPROCS + else + time make + fi + + make install + + echo " Finished building Qt-4.3.5." +else + echo " Qt-4.3.5 already built." +fi + +# ----------------------------------------------------------------- end-of-file -- GitLab