Difference for ./config from version 1.42 to 1.43

version 1.42version 1.43
Line 2
Line 2
 goto begin goto begin
 syntax: syntax:
   echo ''   echo ''
   echo 'Usage: config [debug] [tcl] [fftw] [<build_dir>/]<arch>[.comment] [suffix]'   echo 'This script will create a build directory for NAMD.'
   echo 'Environment variable NAMD_BUILD_BASE may point to scratch directory.' 
   echo ''   echo ''
   echo '<arch>: '    echo 'Usage: config [<build_dir>/]<arch>[.comment] [options]'
   ( cd arch ; ls -1 *.arch |sed -e 's/\.arch//' | egrep -v 'template' | pr -2 -t)   echo ''
    echo 'Options (defaults are set in arch subdirectory):'
    echo '  --tcl-prefix <directory containing lib and include>'
    echo '  --with-tcl (default)  --without-tcl'
    echo '  --fftw-prefix <directory containing lib and include>'
    echo '  --with-fftw (default)  --without-fftw'
    echo '  --charm-base <Charm++ base build directory containing src>'
    echo '  --charm-arch <subdirectory of Charm++ base build directory>'
    echo '  --charm-opts <options to pass to charmc (quote list)>'
    echo '  --cxx <C++ compiler command>'
    echo '  --cxx-opts <C++ compiler options (quote list)>'
    echo '  --cxx-noalias-opts <C++ compiler options (quote list)>'
    echo '  --cxx-thread-opts <C++ compiler options (quote list)>'
    echo '  --cc <C compiler command>'
    echo '  --cc-opts <C compiler options (quote list)>'
    echo '  --with-debug  (sets all opts to -g)'
    echo '  --arch-suffix <suffix for NAMD platform printed at startup>'
    echo ''
    if ( $?PRINT_ARCH_LIST ) then
      set ARCH_PAT = ''
      set ARCH_PAT2 = 'XXX'
      switch ( `uname -s` )
        case Linux:
          set ARCH_PAT = Linux
          switch ( `uname -p` )
            case i686:
              set ARCH_PAT = Linux-i686
            breaksw
            case x86_64:
              set ARCH_PAT = Linux-amd64
              set ARCH_PAT2 = CRAY-XT
            breaksw
            case ppc:
              set ARCH_PAT2 = BlueGene
            breaksw
            case ppc64:
              set ARCH_PAT2 = BlueGene
            breaksw
          endsw
        breaksw
        case SunOS:
          set ARCH_PAT = Solaris
          switch ( `uname -p` )
            case sparc:
              set ARCH_PAT = Solaris-Sparc
            breaksw
          endsw
        breaksw
      endsw
      echo 'Possible options for <arch> on this machine: ' 
      ( cd arch ; ls -1 $ARCH_PAT*.arch $ARCH_PAT2*.arch |sed -e 's/\.arch//' | egrep -v 'template' | pr -2 -t)
      if ( XX$ARCH_PAT != XX ) then
        echo ''
        echo 'ls arch/*.arch to see all known platforms'
      endif
    else
      echo 'config with no arguments lists available <arch> options.'
    endif
   echo ''   echo ''
   exit 1   exit 1
  
Line 18
Line 74
  
 begin: begin:
  
   if ($#argv < 1) goto syntax   # defaults
    set use_debug = 0
    set use_tcl = 1
    set use_fftw = 1
  
    if ($#argv < 1) then
      set PRINT_ARCH_LIST
      goto syntax
    endif
  
   if ( $1 == debug ) then   if ( $1 == debug ) then
     set use_debug = 1     set use_debug = 1
     shift     shift
   else 
     set use_debug = 0 
   endif   endif
  
   if ($#argv < 1) goto syntax   if ($#argv < 1) goto syntax
   if ( $1 == tcl ) then   if ( $1 == tcl ) then
     set use_tcl = 1     echo 'The "tcl" flag is not needed; use of tcl is assumed.'
     shift     shift
   else 
     set use_tcl = 0 
   endif   endif
  
   if ($#argv < 1) goto syntax   if ($#argv < 1) goto syntax
   if ( $1 == fftw ) then   if ( $1 == fftw ) then
     set use_fftw = 1     echo 'The "fftw" flag is not needed; use of fftw is assumed.'
     shift     shift
   else 
     set use_fftw = 0 
   endif   endif
  
   if ($#argv < 1) goto syntax   if ($#argv < 1) goto syntax
Line 49
Line 108
   endif   endif
  
   if ($#argv < 1) goto syntax   if ($#argv < 1) goto syntax
    if ( $1 =~ --* ) goto syntax
  
   set BUILD_DIR=$1 ; shift   set BUILD_DIR=$1 ; shift
   if ( x$BUILD_DIR == x ) goto syntax   if ( x$BUILD_DIR == x ) goto syntax
   set DIR=`pwd`; 
    if ( -e $BUILD_DIR ) goto exists
  
   set ARCH=$BUILD_DIR:t   set ARCH=$BUILD_DIR:t
   if ( ! -f arch/$ARCH.arch ) set ARCH=$ARCH:r   if ( ! -f arch/$ARCH.arch ) set ARCH=$ARCH:r
   if ( ! -f arch/$ARCH.arch ) goto syntax   if ( ! -f arch/$ARCH.arch ) then
      echo "ERROR: Platform $ARCH not found in directory arch"
      set PRINT_ARCH_LIST
      goto syntax
    else
      echo ''
      echo "Selected arch file arch/$ARCH.arch contains:"
      echo ''
      cat arch/$ARCH.arch
    endif
  
    endif
  
    if ( $#argv > 0 && $1 !~ --* ) then
      set ARCH_SUFFIX = -$1
      shift
    endif
  
    while ( $#argv > 0 )
      if ( $1 !~ --* ) then
        echo "ERROR: Expected an option beginning with -- but found $1"
        goto syntax
      endif
      switch ( $1 )
  
        case --arch-suffix:
          shift
          set ARCH_SUFFIX = -$1
        breaksw
  
        case --with-debug:
          set use_debug = 1
        breaksw
  
        case --with-tcl:
          set use_tcl = 1
        breaksw
        case --without-tcl:
          set use_tcl = 0
        breaksw
        case --tcl-prefix:
          shift
          if ( ! -d $1 ) then
            echo "ERROR: No such directory $1"
            goto syntax
          endif
          set TCL_PREFIX=$1
        breaksw
  
        case --with-fftw:
          set use_fftw = 1
        breaksw
        case --without-fftw:
          set use_fftw = 0
        breaksw
        case --fftw-prefix:
          shift
          if ( ! -d $1 ) then
            echo "ERROR: No such directory $1"
            goto syntax
          endif
          set FFTW_PREFIX=$1
        breaksw
  
        case --charm-base:
          shift
          if ( ! -d $1 ) then
            echo "ERROR: No such directory $1"
            goto syntax
          endif
          set CHARM_BASE=$1
        breaksw
        case --charm-arch:
          shift
          set CHARM_ARCH=$1
        breaksw
        case --charm-opts:
          shift
          set CHARM_OPTS=$1
        breaksw
  
        case --cxx:
          shift
          set CXX=$1
        breaksw
        case --cxx-opts:
          shift
          set CXX_OPTS=$1
        breaksw
        case --cxx-noalias-opts:
          shift
          set CXX_NOALIAS_OPTS=$1
        breaksw
        case --cxx-thread-opts:
          shift
          set CXX_THREAD_OPTS=$1
        breaksw
        case --cc:
          shift
          set CC=$1
        breaksw
        case --cc-opts:
          shift
          set CC_OPTS=$1
        breaksw
  
        default
          echo "ERROR: unknown option $1"
          goto syntax
        breaksw
      endsw
  
      shift
    end
  
    if ( $?CHARM_BASE && $?CHARM_ARCH ) then
      if ( ! -d $CHARM_BASE/$CHARM_ARCH ) then
        echo "ERROR: No such directory $CHARM_BASE/$CHARM_ARCH"
        goto syntax
      endif
    endif
  
    if ( $?CHARM_BASE ) then
      if ( $CHARM_BASE !~ /* ) set CHARM_BASE = .rootdir/$CHARM_BASE
    endif
  
    set DIR=`pwd`;
  
   set BUILD_LINK = $BUILD_DIR   set BUILD_LINK = $BUILD_DIR
    # Environment variable NAMD_BUILD_BASE may point to scratch directory.
   if ( $BUILD_DIR:t == $BUILD_DIR && $?NAMD_BUILD_BASE ) then   if ( $BUILD_DIR:t == $BUILD_DIR && $?NAMD_BUILD_BASE ) then
     if ( -d $BUILD_DIR:t ) goto exists     if ( -e $BUILD_DIR ) goto exists
     set UNIQ = `date '+%Y-%b-%d'`-$$     set UNIQ = `date '+%Y-%b-%d'`-$$
     set BUILD_DIR = $NAMD_BUILD_BASE/${UNIQ}_$BUILD_DIR     set BUILD_DIR = $NAMD_BUILD_BASE/${UNIQ}_$BUILD_DIR
     echo "Creating link: $BUILD_DIR to $BUILD_LINK"     echo "Creating link: $BUILD_DIR to $BUILD_LINK"
     ln -s $BUILD_DIR $BUILD_LINK     ln -s $BUILD_DIR $BUILD_LINK
   endif   endif
  
   if ( -d $BUILD_DIR ) goto exists   if ( -e $BUILD_DIR ) goto exists
   echo "Creating directory: $BUILD_DIR"   echo "Creating directory: $BUILD_DIR"
   mkdir $BUILD_DIR   mkdir $BUILD_DIR
   cd $BUILD_DIR   cd $BUILD_DIR
Line 77
Line 266
  
   echo "Creating link: $ROOTDIR to .rootdir"   echo "Creating link: $ROOTDIR to .rootdir"
   ln -s $ROOTDIR .rootdir   ln -s $ROOTDIR .rootdir
   echo "Creating Makearch" 
    echo "Writing build options to $BUILD_LINK/Make.config"
   if ( $ARCH =~ *Win* ) then   if ( $ARCH =~ *Win* ) then
    cat .rootdir/Make.charm >! Makearch    cat .rootdir/Make.charm >! Make.config
    cat .rootdir/arch/$ARCH.arch >> Makearch    cat .rootdir/arch/$ARCH.arch >> Make.config
   else   else
    echo include .rootdir/Make.charm >! Makearch    echo include .rootdir/Make.charm >! Make.config
    echo include .rootdir/arch/$ARCH.arch >> Makearch    echo include .rootdir/arch/$ARCH.arch >> Make.config
    endif
    if ( $?CHARM_BASE ) then
      echo "CHARMBASE = $CHARM_BASE" >> Make.config
    else if ( -de .rootdir/charm-6.0 ) then
      echo "Using Charm++ 6.0 build found in main build directory"
      echo 'CHARMBASE = .rootdir/charm-6.0' >> Make.config
    else if ( -de $HOME/charm-6.0 ) then
      echo "Using Charm++ 6.0 build found in $HOME/charm-6.0"
      echo 'CHARMBASE = $(HOME)/charm-6.0' >> Make.config
   endif   endif
   echo 'CHARM = $(CHARMBASE)/$(CHARMARCH)' >> Makearch   if ( $?CHARM_ARCH ) then
      echo "CHARMARCH = $CHARM_ARCH" >> Make.config
    endif
    if ( $?CHARM_OPTS ) then
      echo "CHARMOPTS = $CHARM_OPTS" >> Make.config
    endif
    echo 'CHARM = $(CHARMBASE)/$(CHARMARCH)' >> Make.config
    if ( ! $?ARCH_SUFFIX ) then
   set ARCH_SUFFIX = ""   set ARCH_SUFFIX = ""
   if ( $ARCH =~ *-Scyld* ) set ARCH_SUFFIX = -Scyld   if ( $ARCH =~ *-Scyld* ) set ARCH_SUFFIX = -Scyld
   if ( $ARCH =~ *-Clustermatic* ) set ARCH_SUFFIX = -Clustermatic   if ( $ARCH =~ *-Clustermatic* ) set ARCH_SUFFIX = -Clustermatic
Line 95
Line 301
   if ( $ARCH =~ *-VMI* ) set ARCH_SUFFIX = ${ARCH_SUFFIX}-VMI   if ( $ARCH =~ *-VMI* ) set ARCH_SUFFIX = ${ARCH_SUFFIX}-VMI
   if ( $ARCH =~ *-TCP* ) set ARCH_SUFFIX = ${ARCH_SUFFIX}-TCP   if ( $ARCH =~ *-TCP* ) set ARCH_SUFFIX = ${ARCH_SUFFIX}-TCP
   if ( $ARCH =~ *-GM* ) set ARCH_SUFFIX = ${ARCH_SUFFIX}-GM   if ( $ARCH =~ *-GM* ) set ARCH_SUFFIX = ${ARCH_SUFFIX}-GM
      if ( $ARCH =~ *-MX* ) set ARCH_SUFFIX = ${ARCH_SUFFIX}-MX
   if ( $ARCH =~ *-Elan* ) set ARCH_SUFFIX = ${ARCH_SUFFIX}-Elan   if ( $ARCH =~ *-Elan* ) set ARCH_SUFFIX = ${ARCH_SUFFIX}-Elan
   if ($#argv > 0) then 
     set ARCH_SUFFIX = -$1 
     shift 
   endif   endif
   echo NAMD_PLATFORM = \$\(NAMD_ARCH\)${ARCH_SUFFIX} >> Makearch   echo NAMD_PLATFORM = \$\(NAMD_ARCH\)${ARCH_SUFFIX} >> Make.config
  
   if ( $ARCH =~ *Win32* ) then   if ( $ARCH =~ *Win32* ) then
    cat .rootdir/arch/Win32.base >> Makearch    cat .rootdir/arch/Win32.base >> Make.config
    if ( $use_tcl ) cat .rootdir/arch/Win32.tcl >> Makearch    if ( $use_tcl ) cat .rootdir/arch/Win32.tcl >> Make.config
    if ( $use_fftw ) cat .rootdir/arch/Win32.fftw >> Makearch    if ( $use_fftw ) cat .rootdir/arch/Win32.fftw >> Make.config
   else if ( $ARCH =~ *Win64* ) then   else if ( $ARCH =~ *Win64* ) then
    cat .rootdir/arch/Win64.base >> Makearch    cat .rootdir/arch/Win64.base >> Make.config
    if ( $use_tcl ) cat .rootdir/arch/Win64.tcl >> Makearch    if ( $use_tcl ) cat .rootdir/arch/Win64.tcl >> Make.config
    if ( $use_fftw ) cat .rootdir/arch/Win64.fftw >> Makearch    if ( $use_fftw ) cat .rootdir/arch/Win64.fftw >> Make.config
   else   else
    echo 'include .rootdir/arch/$(NAMD_ARCH)$(NAMD_SUBARCH).base' >> Makearch    echo 'include .rootdir/arch/$(NAMD_ARCH).base' >> Make.config
    if ( $use_tcl ) echo 'include .rootdir/arch/$(NAMD_ARCH)$(NAMD_SUBARCH).tcl' >> Makearch    if ( $use_tcl ) echo 'include .rootdir/arch/$(NAMD_ARCH).tcl' >> Make.config
    if ( $use_fftw ) echo 'include .rootdir/arch/$(NAMD_ARCH)$(NAMD_SUBARCH).fftw' >> Makearch    if ( $use_fftw ) echo 'include .rootdir/arch/$(NAMD_ARCH).fftw' >> Make.config
    if ( $use_debug ) then   endif
     echo 'CXXOPTS = -g' >> Makearch 
     echo 'CXXTHREADOPTS = -g' >> Makearch   if ( $use_tcl ) then
     echo 'CXXSIMPARAMOPTS = -g' >> Makearch     if ( $?TCL_PREFIX ) then
     echo 'CXXNOALIASOPTS = -g' >> Makearch       echo "TCLDIR = $TCL_PREFIX" >> Make.config
     echo 'COPTS = -g' >> Makearch     else if ( -de .rootdir/tcl/lib && -de .rootdir/tcl/include ) then
        echo "Using Tcl build found in main build directory"
        echo 'TCLDIR = .rootdir/tcl' >> Make.config
      else if ( -de $HOME/tcl/lib && -de $HOME/tcl/include ) then
        echo "Using Tcl build found in $HOME/tcl"
        echo 'TCLDIR = $(HOME)/tcl' >> Make.config
      endif
    endif
  
    if ( $use_fftw ) then
      if ( $?FFTW_PREFIX ) then
        echo "FFTDIR = $FFTW_PREFIX" >> Make.config
      else if ( -de .rootdir/fftw/lib && -de .rootdir/fftw/include ) then
        echo "Using FFTW build found in main build directory"
        echo 'FFTDIR = .rootdir/fftw' >> Make.config
      else if ( -de $HOME/fftw/lib && -de $HOME/fftw/include ) then
        echo "Using FFTW build found in $HOME/fftw"
        echo 'FFTDIR = $(HOME)/fftw' >> Make.config
      endif
    endif
  
    if ( $?CXX ) then
      echo "CXX = $CXX" >> Make.config
    endif
    if ( $?CXX_OPTS ) then
      echo "CXXOPTS = $CXX_OPTS" >> Make.config
    endif    endif
    if ( $?CXX_NOALIAS_OPTS ) then
      echo "CXXNOALIASOPTS = $CXX_NOALIAS_OPTS" >> Make.config
   endif   endif
    if ( $?CXX_THREAD_OPTS ) then
      echo "CXXTHREADOPTS = $CXX_THREAD_OPTS" >> Make.config
    endif
    if ( $?CC ) then
      echo "CC = $CC" >> Make.config
    endif
    if ( $?CC_OPTS ) then
      echo "COPTS = $CC_OPTS" >> Make.config
    endif
  
    if ( $use_debug ) then
      echo 'CXXOPTS = -g' >> Make.config
      echo 'CXXTHREADOPTS = -g' >> Make.config
      echo 'CXXSIMPARAMOPTS = -g' >> Make.config
      echo 'CXXNOALIASOPTS = -g' >> Make.config
      echo 'COPTS = -g' >> Make.config
    endif
  
   echo "Linking Makefiles"   echo "Linking Makefiles"
   if ( $ARCH =~ *Win* ) then   if ( $ARCH =~ *Win* ) then
    cp .rootdir/Makefile ./Makefile    cp .rootdir/Makefile ./Makefile
Line 148
Line 398
     ln -s .rootdir/plugins ./plugins     ln -s .rootdir/plugins ./plugins
     ln -s .rootdir/psfgen ./sb     ln -s .rootdir/psfgen ./sb
   endif   endif
   echo "Creating dpme2 and linking files" 
   (cd $DIR/dpme2;find . -name CVS -prune -o -type d -print )|sed -e s@.@@> temp.d   echo ''
   (cd $DIR/dpme2;find . -name CVS -prune -o -type f -print )|sed -e s@.@@> temp.f   echo "Generated $BUILD_LINK/Make.config contains the following:"
   awk '{print "mkdir dpme2"$1;}' < temp.d > temp.m   echo ''
   awk '{print "ln -s ../.rootdir dpme2"$1;}' < temp.d >> temp.m   cat Make.config
   awk '{print "ln -s .rootdir/dpme2"$1" dpme2"$1;}' < temp.f > temp.l 
   sh temp.m   echo ''
   sh temp.l 
   rm -f temp.d temp.f temp.m temp.l 
   echo "Creating dpmta-2.6 and linking files" 
   (cd $DIR/dpmta-2.6;find . -name CVS -prune -o -type d -print )|sed -e s@.@@> temp.d 
   (cd $DIR/dpmta-2.6;find . -name CVS -prune -o -type f -print )|sed -e s@.@@> temp.f 
   awk '{print "mkdir dpmta-2.6"$1;}' < temp.d > temp.m 
   awk '{print "ln -s ../.rootdir dpmta-2.6"$1;}' < temp.d >> temp.m 
   awk '{print "ln -s .rootdir/dpmta-2.6"$1" dpmta-2.6"$1;}' < temp.f > temp.l 
   sh temp.m 
   sh temp.l 
   rm -f temp.d temp.f temp.m temp.l 
   echo "You are ready to do a make in directory $BUILD_LINK now."   echo "You are ready to do a make in directory $BUILD_LINK now."


Legend:
Removed in v.1.42 
changed lines
 Added in v.1.43



Made by using version 1.53 of cvs2html