#! /bin/bash # # Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana # University Research and Technology # Corporation. All rights reserved. # Copyright (c) 2004-2005 The University of Tennessee and The University # of Tennessee Research Foundation. All rights # reserved. # Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. # Copyright (c) 2007-2008 Cisco, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow # # $HEADER$ # # This script is run on developer copies of PLPA -- *not* distribution # tarballs. #set -x ############################################################################## # # User-definable parameters (search path and minimum supported versions) # # Note: use ';' to separate parameters ############################################################################## ompi_aclocal_search="aclocal" if test ! -z "$ACLOCAL"; then ompi_aclocal_search="$ACLOCAL" fi ompi_autoheader_search="autoheader" if test ! -z "$AUTOHEADER"; then ompi_autoheader_search="$AUTOHEADER" fi ompi_autoconf_search="autoconf" if test ! -z "$AUTOCONF"; then ompi_autoconf_search="$AUTOCONF" fi ompi_libtoolize_search="libtoolize;glibtoolize" if test ! -z "$LIBTOOLIZE"; then ompi_libtoolize_search="$LIBTOOLIZE" fi ompi_automake_search="automake" if test ! -z "$AUTOMAKE"; then ompi_automake_search="$AUTOMAKE" fi ompi_automake_version="1.9.6" ompi_autoconf_version="2.59" ompi_libtool_version="1.5.22" ############################################################################## # # Global variables - should not need to modify defaults # ############################################################################## ompi_aclocal_version="$ompi_automake_version" ompi_autoheader_version="$ompi_autoconf_version" ompi_libtoolize_version="$ompi_libtool_version" # program names to execute ompi_aclocal="" ompi_autoheader="" ompi_autoconf="" ompi_libtoolize="" ompi_automake="" mca_no_configure_components_file="config/mca_no_configure_components.m4" mca_no_config_list_file="mca_no_config_list" mca_no_config_env_file="mca_no_config_env" mca_m4_include_file="mca_m4_config_include.m4" mca_m4_config_env_file="mca_m4_config_env" autogen_subdir_file="autogen.subdirs" ############################################################################ # # Version check - does major,minor,release check (hopefully ignoring # beta et al) # # INPUT: # - minimum version allowable # - version we found # # OUTPUT: # - 0 version is ok # - 1 version is not ok # # SIDE EFFECTS: # none # ############################################################################## check_version() { local min_version="$1" local version="$2" local min_major_version="`echo $min_version | cut -f1 -d.`" local min_minor_version="`echo $min_version | cut -f2 -d.`" local min_release_version="`echo $min_version | cut -f3 -d.`" if test "$min_release_version" = "" ; then min_release_version=0 fi local major_version="`echo $version | cut -f1 -d.`" local minor_version="`echo $version | cut -f2 -d.`" local release_version="`echo $version | cut -f3 -d.`" if test "$release_version" = "" ; then release_version=0 fi if test $min_major_version -lt $major_version ; then return 0 elif test $min_major_version -gt $major_version ; then return 1 fi if test $min_minor_version -lt $minor_version ; then return 0 elif test $min_minor_version -gt $minor_version ; then return 1 fi if test $min_release_version -gt $release_version ; then return 1 fi return 0 } ############################################################################## # # find app - find a version of the given application that is new # enough for use # # INPUT: # - name of application (eg aclocal) # # OUTPUT: # none # # SIDE EFFECTS: # - sets application_name variable to working executable name # - aborts on error finding application # ############################################################################## find_app() { local app_name="$1" local version="0.0.0" local min_version="99.99.99" local found=0 local tmpIFS=$IFS eval "min_version=\"\$ompi_${app_name}_version\"" eval "search_path=\"\$ompi_${app_name}_search\"" IFS=";" for i in $search_path ; do IFS="$tmpIFS" version="`${i} --version 2>&1`" if test "$?" != 0 ; then IFS=";" continue fi version="`echo $version | cut -f2 -d')'`" version="`echo $version | cut -f1 -d' '`" if check_version $min_version $version ; then eval "ompi_${app_name}=\"${i}\"" found=1 break fi done IFS="$tmpIFS" if test "$found" = "0" ; then cat < Errr... there's no configure.in or configure.ac file!" fi if test -n "$fad_cfile"; then auxdir="`grep AC_CONFIG_AUX_DIR $fad_cfile | cut -d\( -f 2 | cut -d\) -f 1`" fi if test -f "$auxdir/$fad_file"; then rm -f "$auxdir/$fad_file" fi fi } ############################################################################## # # run_gnu_tools - run the GNU tools in a given directory # # INPUT: # none # # OUTPUT: # none # # SIDE EFFECTS: # - assumes that the directory is ready to have the GNU tools run # in it (i.e., there's some form of configure.*) # - may preprocess the directory before running the GNU tools # (e.g., generale Makefile.am's from configure.params, etc.) # ############################################################################## run_gnu_tools() { # Find and delete the GNU helper script files find_and_delete config.guess find_and_delete config.sub find_and_delete depcomp find_and_delete compile find_and_delete install-sh find_and_delete ltconfig find_and_delete ltmain.sh find_and_delete missing find_and_delete mkinstalldirs find_and_delete libtool find_and_delete configure # Run the GNU tools echo "*** Running GNU tools" run_and_check $ompi_aclocal run_and_check $ompi_autoheader run_and_check $ompi_autoconf run_and_check $ompi_libtoolize --automake --copy run_and_check $ompi_automake --foreign -a --copy --include-deps } ############################################################################## # # main - do the real work... # ############################################################################## # announce echo "[Checking] prerequisites" # sanity check to make sure user isn't being stupid if test ! -d .svn ; then cat < /dev/null else cat <