head	2.78;
access;
symbols;
locks; strict;
comment	@# @;


2.78
date	97.07.30.19.57.56;	author jyelon;	state dead;
branches;
next	2.77;

2.77
date	97.07.30.17.30.54;	author jyelon;	state Exp;
branches;
next	2.76;

2.76
date	97.07.28.20.13.18;	author milind;	state Exp;
branches;
next	2.75;

2.75
date	97.07.23.16.54.57;	author milind;	state Exp;
branches;
next	2.74;

2.74
date	97.07.18.21.20.59;	author milind;	state Exp;
branches;
next	2.73;

2.73
date	97.07.17.16.23.19;	author milind;	state Exp;
branches;
next	2.72;

2.72
date	97.07.17.15.51.38;	author milind;	state Exp;
branches;
next	2.71;

2.71
date	97.07.15.21.09.45;	author jyelon;	state Exp;
branches;
next	2.70;

2.70
date	97.07.07.23.17.22;	author jyelon;	state Exp;
branches;
next	2.69;

2.69
date	97.05.05.13.46.57;	author jyelon;	state Exp;
branches;
next	2.68;

2.68
date	97.03.14.20.23.45;	author milind;	state Exp;
branches;
next	2.67;

2.67
date	96.11.23.02.25.33;	author milind;	state Exp;
branches;
next	2.66;

2.66
date	96.11.20.06.45.20;	author jyelon;	state Exp;
branches;
next	2.65;

2.65
date	96.11.08.22.22.44;	author brunner;	state Exp;
branches;
next	2.64;

2.64
date	96.08.04.04.28.55;	author jyelon;	state Exp;
branches;
next	2.63;

2.63
date	96.08.01.21.10.24;	author jyelon;	state Exp;
branches;
next	2.62;

2.62
date	96.07.02.21.21.25;	author jyelon;	state Exp;
branches;
next	2.61;

2.61
date	96.06.12.20.02.58;	author jyelon;	state Exp;
branches;
next	2.60;

2.60
date	96.06.10.21.18.06;	author jyelon;	state Exp;
branches;
next	2.59;

2.59
date	96.05.15.21.36.39;	author jyelon;	state Exp;
branches;
next	2.58;

2.58
date	96.05.08.01.26.24;	author knauff;	state Exp;
branches;
next	2.57;

2.57
date	96.04.29.20.17.01;	author jyelon;	state Exp;
branches;
next	2.56;

2.56
date	96.04.17.16.05.02;	author jyelon;	state Exp;
branches;
next	2.55;

2.55
date	96.04.16.22.45.25;	author jyelon;	state Exp;
branches;
next	2.54;

2.54
date	96.04.10.20.10.19;	author jyelon;	state Exp;
branches;
next	2.53;

2.53
date	96.04.09.22.56.10;	author jyelon;	state Exp;
branches;
next	2.52;

2.52
date	96.04.07.19.16.52;	author jyelon;	state Exp;
branches;
next	2.51;

2.51
date	96.01.17.04.08.19;	author jyelon;	state Exp;
branches;
next	2.50;

2.50
date	95.11.02.23.25.51;	author sanjeev;	state Exp;
branches;
next	2.49;

2.49
date	95.11.02.16.52.07;	author sanjeev;	state Exp;
branches;
next	2.48;

2.48
date	95.11.02.16.30.46;	author sanjeev;	state Exp;
branches;
next	2.47;

2.47
date	95.11.01.22.22.51;	author jyelon;	state Exp;
branches;
next	2.46;

2.46
date	95.10.30.20.59.59;	author jyelon;	state Exp;
branches;
next	2.45;

2.45
date	95.10.27.15.12.56;	author sanjeev;	state Exp;
branches;
next	2.44;

2.44
date	95.10.25.19.58.07;	author jyelon;	state Exp;
branches;
next	2.43;

2.43
date	95.10.20.18.38.18;	author jyelon;	state Exp;
branches;
next	2.42;

2.42
date	95.10.13.18.14.48;	author jyelon;	state Exp;
branches;
next	2.41;

2.41
date	95.10.10.06.14.48;	author jyelon;	state Exp;
branches;
next	2.40;

2.40
date	95.10.02.18.56.02;	author knauff;	state Exp;
branches;
next	2.39;

2.39
date	95.09.27.22.22.20;	author jyelon;	state Exp;
branches;
next	2.38;

2.38
date	95.08.30.19.08.55;	author sanjeev;	state Exp;
branches;
next	2.37;

2.37
date	95.07.25.19.36.45;	author knauff;	state Exp;
branches;
next	2.36;

2.36
date	95.07.22.23.43.45;	author jyelon;	state Exp;
branches;
next	2.35;

2.35
date	95.07.19.22.15.12;	author jyelon;	state Exp;
branches;
next	2.34;

2.34
date	95.07.12.16.29.30;	author jyelon;	state Exp;
branches;
next	2.33;

2.33
date	95.07.07.16.55.26;	author jyelon;	state Exp;
branches;
next	2.32;

2.32
date	95.07.07.01.06.47;	author jyelon;	state Exp;
branches;
next	2.31;

2.31
date	95.07.07.00.53.41;	author jyelon;	state Exp;
branches;
next	2.30;

2.30
date	95.07.03.18.05.26;	author gursoy;	state Exp;
branches;
next	2.29;

2.29
date	95.06.29.21.28.13;	author narain;	state Exp;
branches;
next	2.28;

2.28
date	95.06.22.22.30.13;	author gursoy;	state Exp;
branches;
next	2.27;

2.27
date	95.06.22.20.42.20;	author jyelon;	state Exp;
branches;
next	2.26;

2.26
date	95.06.21.08.49.59;	author jyelon;	state Exp;
branches;
next	2.25;

2.25
date	95.06.21.08.24.48;	author jyelon;	state Exp;
branches;
next	2.24;

2.24
date	95.06.21.07.59.04;	author jyelon;	state Exp;
branches;
next	2.23;

2.23
date	95.06.20.23.19.35;	author jyelon;	state Exp;
branches;
next	2.22;

2.22
date	95.06.20.23.16.52;	author jyelon;	state Exp;
branches;
next	2.21;

2.21
date	95.06.20.23.11.53;	author jyelon;	state Exp;
branches;
next	2.20;

2.20
date	95.06.20.22.56.55;	author jyelon;	state Exp;
branches;
next	2.19;

2.19
date	95.06.20.20.10.58;	author jyelon;	state Exp;
branches;
next	2.18;

2.18
date	95.06.20.19.19.42;	author jyelon;	state Exp;
branches;
next	2.17;

2.17
date	95.06.20.19.11.55;	author jyelon;	state Exp;
branches;
next	2.16;

2.16
date	95.06.20.18.34.29;	author jyelon;	state Exp;
branches;
next	2.15;

2.15
date	95.06.19.23.03.40;	author jyelon;	state Exp;
branches;
next	2.14;

2.14
date	95.06.19.23.01.34;	author jyelon;	state Exp;
branches;
next	2.13;

2.13
date	95.06.19.22.58.38;	author jyelon;	state Exp;
branches;
next	2.12;

2.12
date	95.06.15.18.14.59;	author jyelon;	state Exp;
branches;
next	2.11;

2.11
date	95.06.14.23.16.28;	author jyelon;	state Exp;
branches;
next	2.10;

2.10
date	95.06.14.22.59.44;	author jyelon;	state Exp;
branches;
next	2.9;

2.9
date	95.06.14.22.16.32;	author sanjeev;	state Exp;
branches;
next	2.8;

2.8
date	95.06.13.16.59.58;	author jyelon;	state Exp;
branches;
next	2.7;

2.7
date	95.06.13.16.20.38;	author jyelon;	state Exp;
branches;
next	2.6;

2.6
date	95.06.13.12.02.36;	author jyelon;	state Exp;
branches;
next	2.5;

2.5
date	95.06.13.11.52.31;	author jyelon;	state Exp;
branches;
next	2.4;

2.4
date	95.06.13.11.29.16;	author jyelon;	state Exp;
branches;
next	2.3;

2.3
date	95.06.13.07.47.08;	author jyelon;	state Exp;
branches;
next	2.2;

2.2
date	95.06.13.07.20.21;	author jyelon;	state Exp;
branches;
next	2.1;

2.1
date	95.06.13.06.46.34;	author jyelon;	state Exp;
branches;
next	2.0;

2.0
date	95.06.02.17.24.13;	author brunner;	state Exp;
branches;
next	;


desc
@@


2.78
log
@*** empty log message ***
@
text
@#!/bin/csh -f
############################################################################
# RCS INFORMATION:
#
#       $RCSfile: charmc,v $
#       $Author: jyelon $      $Locker: jyelon $              $State: Exp $
#       $Revision: 2.77 $        $Date: 1997/07/30 17:30:54 $
#
############################################################################
# DESCRIPTION:
#
############################################################################
# REVISION HISTORY:
#
############################################################################



##############################################################################
#
# Initialize the main controlling variables, setup error handler
#
# ALL variables used by this script should be initialized here.
#
##############################################################################

unsetenv MACHTYPE
unsetenv SEQUENTIAL
unsetenv LANGUAGE
unsetenv BALANCE
unsetenv MEMORY
unsetenv TRACEMODE
unsetenv VERBOSE
unsetenv SAVE
unsetenv PURIFY
unsetenv OVERRIDE_CC
unsetenv OVERRIDE_CXX
unsetenv OVERRIDE_LD
unsetenv OVERRIDE_LDXX
unsetenv OPTS_CPP       ; set OPTS_CPP = ()
unsetenv OPTS_LDRO      ; set OPTS_LDRO = ()
unsetenv OPTS_CC        ; set OPTS_CC = ()
unsetenv OPTS_CXX       ; set OPTS_CXX = ()
unsetenv OPTS_LD        ; set OPTS_LD = ()
unsetenv OPTS_LDXX      ; set OPTS_LDXX = ()
unsetenv OBJECT
unsetenv COPIES         ; set COPIES = ()
unsetenv LIBRARIES      ; set LIBRARIES = ()
unsetenv FILES          ; set FILES = ()
unsetenv OBJECTFILES    ; set OBJECTFILES = ()
unsetenv DELETE         ; set DELETE = ()
unsetenv MAINOBJ        ; set MAINOBJ = ()
unsetenv GENCPM         ; set GENCPM = ()
unsetenv DEBUG_MODE
unsetenv OPTIMIZE_MODE
unsetenv USE_RELIABLE_CC
unsetenv USE_FASTEST_CC
unsetenv ECHOCMD        ; set ECHOCMD=(unset echo)

##############################################################################
#
# Parse the arguments
#
# Don't do any analysis in here, just the parsing.
#
##############################################################################


set argindex=1
while ($argindex <= $#argv)
    set arg=$argv[$argindex]
    @@ argindex = $argindex + 1

    switch ($arg)
        case "-machine"
            set MACHTYPE=$argv[$argindex]
            @@ argindex = $argindex + 1
            breaksw

        case "-seq"
	    set SEQUENTIAL=yes
            breaksw

        case "-language"
            set LANGUAGE=$argv[$argindex]
            @@ argindex = $argindex + 1
            breaksw

	case "-balance"
            set BALANCE=$argv[$argindex]
            @@ argindex = $argindex + 1
            breaksw

        case "-queue"
            echo "Warning: -queue currently being ignored."
            @@ argindex = $argindex + 1
            breaksw

        case "-memory"
            echo "Warning: -memory currently being ignored."
            @@ argindex = $argindex + 1
            breaksw

	case "-tracemode"
            set TRACEMODE=$argv[$argindex]
            @@ argindex = $argindex + 1
            breaksw

        case "-verbose"
            set VERBOSE=1
            set ECHOCMD=(set echo)
            breaksw

        case "-save"
            set SAVE=1
            breaksw

        case "-purify"
            set PURIFY=1
            breaksw

        case "-use-reliable-cc"
	    set USE_RELIABLE_CC=1
            breaksw

	case "-use-fastest-cc"
	    set USE_FASTEST_CC=1
            breaksw
 
        case "-cc"
            set OVERRIDE_CC=( $argv[$argindex] )
            @@ argindex = $argindex + 1
            breaksw

        case "-c++"
            set OVERRIDE_CXX=( $argv[$argindex] )
            @@ argindex = $argindex + 1
            breaksw

        case "-ld"
            set OVERRIDE_LD=( $argv[$argindex] )
            @@ argindex = $argindex + 1
            breaksw

        case "-ld++"
	    set OVERRIDE_LDXX=( $argv[$argindex] )
            @@ argindex = $argindex + 1
            breaksw

        case "-cpp-option"
	    set OPTS_CPP=( $OPTS_CPP $argv[$argindex] )
	    @@ argindex = $argindex + 1
	    breaksw

        case "-ldro-option"
	    set OPTS_LDRO=( $OPTS_LDRO $argv[$argindex] )
	    @@ argindex = $argindex + 1
            breaksw

        case "-cc-option"
            set OPTS_CC=( $OPTS_CC $argv[$argindex] )
            @@ argindex = $argindex + 1
            breaksw

        case "-c++-option"
            set OPTS_CXX=( $OPTS_CXX $argv[$argindex] )
            @@ argindex = $argindex + 1
            breaksw

        case "-ld-option"
            set OPTS_LD=( $OPTS_LD $argv[$argindex] )
            @@ argindex = $argindex + 1
            breaksw

        case "-ld++-option"
	    set OPTS_LDXX=( $OPTS_LDXX $argv[$argindex] )
            @@ argindex = $argindex + 1
            breaksw
	    
        case "-c":
            # This is ignored.
            breaksw

	case "-o":
            set OBJECT=$argv[$argindex]
            @@ argindex = $argindex + 1
            breaksw

	case "-cp"
	    set COPIES=($argv[$argindex] $COPIES)
	    @@ argindex = $argindex + 1
            breaksw

        case "-gen-cpm"
            set GENCPM=($GENCPM $argv[$argindex])
            @@ argindex = $argindex + 1
            breaksw

        case "-D*"
            set OPTS_CPP=( $OPTS_CPP "$arg" )
            set OPTS_CC= ( $OPTS_CC  "$arg" )
            set OPTS_CXX=( $OPTS_CXX "$arg" )
            breaksw

        case "-I*"
            set OPTS_CPP=( $OPTS_CPP "$arg" )
            set OPTS_CC= ( $OPTS_CC  "$arg" )
            set OPTS_CXX=( $OPTS_CXX "$arg" )
            breaksw

        case "-L*"
            set OPTS_LDRO=( $OPTS_LDRO "$arg" )
            set OPTS_LD=  ( $OPTS_LD   "$arg" )
            set OPTS_LDXX=( $OPTS_LDXX "$arg" )
            breaksw

        case "-g"
	    set DEBUG_MODE=1
            breaksw

	case "-O"
	    set OPTIMIZE_MODE=1
            breaksw

	case "-NO"
	    unset OPTIMIZE_MODE
            breaksw

	case "-pg"
	    set OPTS_CC= ( $OPTS_CC $arg )
	    set OPTS_CXX= ( $OPTS_CC $arg )
	    set OPTS_LD= ( $OPTS_CC $arg )
	    set OPTS_LDXX= ( $OPTS_CC $arg )
            breaksw

        case "-O*"
            set OPTS_CC= ( $OPTS_CC $arg )
            set OPTS_CXX=( $OPTS_CXX $arg )
            breaksw

        case "-l*"
            set LIBRARIES=( $LIBRARIES $arg )
            breaksw

        case "-s"
            set OPTS_LD=  ( $OPTS_LD   $arg )
	    set OPTS_LDXX=( $OPTS_LDXX $arg )
            breaksw

        case "-*"
            echo "passing unrecognized option $arg to all compilers and linkers"
	    set OPTS_CPP= ( $OPTS_CPP  $arg )
            set OPTS_CC=  ( $OPTS_CC   $arg )
            set OPTS_CXX= ( $OPTS_CXX  $arg )
            set OPTS_LD=  ( $OPTS_LD   $arg )
	    set OPTS_LDXX=( $OPTS_LDXX $arg )
            set OPTS_LDRO=( $OPTS_LDRO $arg )
            breaksw

        case "*.*"
            set FILES=( $FILES "$arg" )
            breaksw
        
        default:
            echo "Unrecognized argument $arg"
            exit 1

    endsw
end

##############################################################################
#
# The following section identifies CHARMBIN, the charm binary-directory.
#
##############################################################################

set ORIGDIR=`pwd`

# Try to find CHARMBIN by looking in directory where charmc is

if ($?CHARMBIN == 0) then
    set SCRIPT=$0
    if ($SCRIPT:h != $SCRIPT:t) then
        cd $SCRIPT:h
        set SCRIPT=$SCRIPT:t
    else
        foreach dir ($path)
            if (-x $dir/$SCRIPT && ! -d $dir/$SCRIPT) then
                cd $dir
                break
            endif
        end
    endif
    while (x`find $SCRIPT -type l -print` == x$SCRIPT)
        set SCRIPT=`ls -al ./$SCRIPT:t | sed -e "s@@.*-> @@@@"`
        if ($SCRIPT:h != $SCRIPT:t) then
            cd $SCRIPT:h
            set SCRIPT=$SCRIPT:t
        endif
    end
    set CHARMBIN=`pwd`
endif

# Give an error message

if ($?CHARMBIN == 0) then
    echo ''
    echo 'Error - cannot find the charm binary directory.'
    echo ''
    echo 'Normally, charmc and the other charm scripts automatically'
    echo 'locate the charm binary directory, using the following strategy:'
    echo ''
    echo '  Step 1. It looks in the directory specified in $CHARMBIN'
    echo ''
    echo '  Step 2. It looks in the directory from which charmc was run.'
    echo ''
    echo 'If it searches both these places, and doesnt find the charm'
    echo 'files, it will give up.'
    echo ''
    exit 1
    endif
endif

if ($?MACHTYPE) then
    if (-d $CHARMBIN/../../$MACHTYPE/bin) then
        cd $CHARMBIN/../../$MACHTYPE/bin
	set CHARMBIN=`pwd`
    else
        echo 'error - there is no installed charm for "'$MACHTYPE'"'
        exit 1
    endif
endif

if ($?CHARMLIB == 0) then
    cd $CHARMBIN/../lib
    set CHARMLIB=`pwd`
endif
if ($?CHARMINC == 0) then
    cd $CHARMBIN/../include
    set CHARMINC=`pwd`
endif

##############################################################################
#
# Load machine-specific configuration data, then handle overrides to it.
#
##############################################################################

source $CHARMINC/conv-mach.csh

if ( $?USE_RELIABLE_CC ) then
    set CMK_CC=( $CMK_CC_RELIABLE )
endif

if ( $?USE_FASTEST_CC ) then
    set CMK_CC=( $CMK_CC_FASTEST )
endif

if ($?SEQUENTIAL) then
    set CMK_CC=( $CMK_SEQ_CC )
    set CMK_LD=( $CMK_SEQ_LD )
    set CMK_CXX=( $CMK_SEQ_CXX )
    set CMK_LDXX=( $CMK_SEQ_LDXX )
endif

if ($?OVERRIDE_CC) then
    set CMK_CC[1]=""
    set CMK_CC = ( $OVERRIDE_CC $CMK_CC )
endif

if ($?OVERRIDE_CXX) then
    set CMK_CXX[1]=""
    set CMK_CXX = ( $OVERRIDE_CXX $CMK_CXX )
endif

if ($?OVERRIDE_LD) then
    set CMK_LD[1]=""
    set CMK_LD = ( $OVERRIDE_LD $CMK_LD )
endif

if ($?PURIFY == 1) then
    set CMK_LD = ( purify $CMK_LD )
    set CMK_LDXX = ( purify $CMK_LDXX )
endif

if ($?OVERRIDE_LDXX) then
    set CMK_LDXX[1]=""
    set CMK_LDXX = ( $OVERRIDE_LDXX $CMK_LDXX )
endif

if ($?DEBUG_MODE) then
    set OPTS_CC  = ( $CMK_C_DEBUG $OPTS_CC )
    set OPTS_CXX = ( $CMK_CXX_DEBUG $OPTS_CXX )
    set OPTS_LD  = ( $CMK_C_DEBUG $OPTS_LD )
    set OPTS_LDXX = ( $CMK_CXX_DEBUG $OPTS_LDXX )
endif

if ($?OPTIMIZE_MODE) then
    set OPTS_CC  = ( $CMK_C_OPTIMIZE $OPTS_CC )
    set OPTS_CXX = ( $CMK_CXX_OPTIMIZE $OPTS_CXX )
    set OPTS_LD  = ( $CMK_C_OPTIMIZE $OPTS_LD )
    set OPTS_LDXX = ( $CMK_CXX_OPTIMIZE $OPTS_LDXX )
endif

onintr failure

##############################################################################
#
# Check for valid choice of LANGUAGE
#
##############################################################################

if ($?LANGUAGE == 0) then
    set LANGUAGE=charm
    if ($?SEQUENTIAL) set LANGUAGE=c
endif

switch ($LANGUAGE)
    case "c"
    case "C"
    case "c++"
    case "C++"
	if ($?SEQUENTIAL == 0) then
	    echo "Language $LANGUAGE is for sequential programs"
	    goto failure
	endif
	breaksw
    case "charm" 
    case "charm++" 
    case "converse"
    case "converse++"
	if ($?SEQUENTIAL == 1) then
	    echo "Language $LANGUAGE is for parallel programs"
	    goto failure
	endif
        breaksw
    default:
        echo "charmc: Unrecognized choice of language $LANGUAGE"
	goto failure
endsw

cd $ORIGDIR

##############################################################################
#
# Preprocess the GEN-CPM files
#
##############################################################################

foreach FILE ($GENCPM)
    set BASE=$FILE:r
    set TMP=$BASE:t.TMP
    set DELETE=($DELETE $TMP.c $TMP.i)
    ($ECHOCMD ; /bin/rm -f $BASE.cpm.h $TMP.c)
    ($ECHOCMD ; touch $BASE.cpm.h)
    ($ECHOCMD ; /bin/ln -s $FILE $TMP.c)
    ($ECHOCMD ; $CMK_CPP_C $OPTS_CPP -I$CHARMINC $TMP.c > $TMP.i)
    if ($status) goto failure
    ($ECHOCMD ; $CHARMBIN/conv-cpm $TMP.i $BASE.cpm.h)
    if ($status) goto failure
end

##############################################################################
#
# Compile all specified files
#
# All temporary files named *.TMP.* for easy cleanup.
#
##############################################################################

foreach FILE ($FILES)
  set BASE=$FILE:r
  set TMP=$BASE:t.TMP
  if (${BASE}.o != $FILE) then
      if ($?VERBOSE) echo "compiling $FILE."
      /bin/rm -f $BASE.o $BASE.f.o
  endif
  switch ($FILE)
    case "*.p"
      set DELETE=($DELETE $BASE.headers)
      ($ECHOCMD ; $CMK_CPP_CHARM $OPTS_CPP -I$CHARMINC $BASE.p > $TMP.cpp)
      ($ECHOCMD ; $CHARMBIN/charmfilter < $TMP.cpp | $CMK_M4 > $TMP.space)
      ($ECHOCMD ; $CHARMBIN/charmxlat $TMP.space $TMP.c)
      if ($status) goto failure
      ($ECHOCMD ; $CMK_CC $OPTS_CC -I$CHARMINC -c $TMP.c -o $TMP.o)
      if ($status) goto failure
      if ($?OBJECT == 0) then
          ($ECHOCMD ; /bin/mv $TMP.o $BASE.o)
      else
          set OBJECTFILES=( $OBJECTFILES $TMP.o )
      endif
      breaksw
    case "*.P"
      # Put pgm.P into pgm.TMP.P.C because CC needs source files to end with .C
      echo '#include "ckdefs.h"' > $TMP.P.C
      echo '#include "chare.h"' >> $TMP.P.C
      echo '#include "c++interface.h"' >> $TMP.P.C
      echo '#line 1 "'$BASE.P'"' >> $TMP.P.C
      /bin/cat $BASE.P >> $TMP.P.C
      ($ECHOCMD ; $CMK_CXXPP $OPTS_CPP -I$CHARMINC $TMP.P.C > $TMP.cpp)
      ($ECHOCMD ; $CHARMBIN/$CMK_XLATPP $TMP.cpp $TMP.xlat)
      if ($status) goto failure
      ($ECHOCMD ; /bin/cat $BASE.headers > $TMP.$CMK_CPP_SUFFIX)
      ($ECHOCMD ; /bin/cat $TMP.xlat >> $TMP.$CMK_CPP_SUFFIX)
      ($ECHOCMD ; $CMK_CXX $OPTS_CXX -I$CHARMINC -c $TMP.$CMK_CPP_SUFFIX -o $TMP.o)
      if ($status) goto failure
      if ($?OBJECT == 0) then
        ($ECHOCMD ; /bin/mv $TMP.o $BASE.o)
      else
        set OBJECTFILES=( $OBJECTFILES $TMP.o )
      endif
      breaksw
    case "*.ci"
      ($ECHOCMD ; $CHARMBIN/charmxi $BASE.ci)
      if ($status) goto failure
      breaksw
    case "*.c"
      ($ECHOCMD ; $CMK_CC $OPTS_CC -I$CHARMINC -c $BASE.c -o $BASE.o)
      if ($status) goto failure
      if ($?OBJECT) then
	if ($OBJECT != $BASE.o) set DELETE=( $DELETE $BASE.o )
        set OBJECTFILES=( $OBJECTFILES $BASE.o )
      endif
      breaksw
    case "*.c"
      ($ECHOCMD ; $CMK_CC $OPTS_CC -I$CHARMINC -c $BASE.c -o $BASE.o)
      if ($status) goto failure
      if ($?OBJECT) then
	if ($OBJECT != $BASE.o) set DELETE=( $DELETE $BASE.o )
        set OBJECTFILES=( $OBJECTFILES $BASE.o )
      endif
      breaksw
    case "*.s"
      ($ECHOCMD ; $CMK_CC $OPTS_CC -I$CHARMINC -c $BASE.s -o $BASE.o)
      if ($status) goto failure
      if ($?OBJECT) then
	if ($OBJECT != $BASE.o) set DELETE=( $DELETE $BASE.o )
        set OBJECTFILES=( $OBJECTFILES $BASE.o )
      endif
      breaksw
    case "*.C"
      ($ECHOCMD ; $CMK_CXX $OPTS_CXX -I$CHARMINC -c $BASE.C -o $BASE.o)
      if ($status) goto failure
      if ($?OBJECT) then
	if ($OBJECT != $BASE.o) set DELETE=( $DELETE $BASE.o )
        set OBJECTFILES=( $OBJECTFILES $BASE.o )
      endif
      breaksw
    case "*.cxx"
      ($ECHOCMD ; $CMK_CXX $OPTS_CXX -I$CHARMINC -c $BASE.cxx -o $BASE.o)
      if ($status) goto failure
      if ($?OBJECT) then
	if ($OBJECT != $BASE.o) set DELETE=( $DELETE $BASE.o )
        set OBJECTFILES=( $OBJECTFILES $BASE.o )
      endif
      breaksw
    case "*.f"
    case "*.F"
    case "*.fc"
    case "*.FC"
      echo "charmc: I'm not yet smart enough to compile $FILE"
      goto failure
    case "*.o"
    case "*.a"
      set OBJECTFILES=( $OBJECTFILES $BASE.o )
      breaksw
    default:
      echo "file with unrecognized extension $FILE"
      goto failure
  endsw
end

##############################################################################
#
#                        POSSIBLY, SKIP LINK-STEP
#
# 1. No $OBJECT may be specified at all --- its just a compilation.
# 2. If $OBJECT is a ".a" file, a library is created from $OBJECTFILES.
# 3. If $OBJECT is a ".o" file, then an "LDRO" is created from $OBJECTFILES.
# 4. Language may be sequential.  Do a quick and easy linkage.
#
#               in any of these cases, the full link step is skipped.
#
##############################################################################

if ($?OBJECT == 0) goto success

switch ($OBJECT)
  case "*.o":
    if (($#FILES == 1)&&($#OBJECTFILES == 1)) then
        if ($OBJECT != $OBJECTFILES) then
            rm -f $OBJECT
            ($ECHOCMD ; /bin/mv $OBJECTFILES $OBJECT)
            if ($status) goto failure
        endif
    else
        rm -f $OBJECT
        ($ECHOCMD ; $CMK_LDRO $OBJECT $OPTS_LDRO $OBJECTFILES)
        if ($status) goto failure
    endif
    goto copyobj

  case "*.a":
    ($ECHOCMD ; rm -f $OBJECT)
    ($ECHOCMD ; $CMK_AR $OBJECT $OBJECTFILES)
    if ($status) goto failure
    ($ECHOCMD ; $CMK_RANLIB $OBJECT)
    if ($status) goto failure
    goto copyobj
endsw

switch ($LANGUAGE)
    case "c"
    case "C"
        ($ECHOCMD ; $CMK_SEQ_LD $OPTS_LD -o $OBJECT $OBJECTFILES -L$CHARMLIB $LIBRARIES $CMK_SEQ_LIBS)
        if ($status) goto failure
        goto copyobj
        breaksw
    case "c++"
    case "C++"    
        ($ECHOCMD ; $CMK_SEQ_LDXX $OPTS_LD -o $OBJECT $OBJECTFILES -L$CHARMLIB $LIBRARIES $CMK_SEQ_LIBS)
        if ($status) goto failure
        goto copyobj
        breaksw
endsw

##############################################################################
#
# Some quick consistency checks prior to full link-step
#
# Check for valid choice of TRACEMODE
# Check for valid choice of BALANCE
# Check for compatibility among BALANCE and TRACEMODE
#
##############################################################################

# Check for valid choice of TRACEMODE

if (($LANGUAGE == charm) || ($LANGUAGE == charm++)) then

    if (! -e $CHARMLIB/libck-trace-none.a) then
        echo "charmc: charm libraries not installed."
        goto failure
    endif
    
    if ($?TRACEMODE == 0) set TRACEMODE=none

    if (! -e $CHARMLIB/libck-trace-$TRACEMODE.a) then
       echo "charmc : No such tracemode $TRACEMODE"
       (cd $CHARMLIB ; ls -al libck-trace-*)
       goto failure
    endif

endif

# Check for valid choice of BALANCE

if (($LANGUAGE == charm) || ($LANGUAGE == charm++)) then

    if ($?BALANCE == 0) set BALANCE=rand

    # Check that TRACEMODE is compatible with BALANCE

    if ($TRACEMODE == replay) then
        if ($?BALANCE == 0) set BALANCE=replay
        if ($BALANCE != replay) then
            echo "Ignoring -balance $BALANCE, incompatible with -tracemode replay"
        endif
        set BALANCE=replay
    endif

endif

# Check that the BAL_OBJ exists

if (($LANGUAGE == charm) || ($LANGUAGE == charm++)) then

    if ($BALANCE:h == $BALANCE) then
       set BAL_OBJ = $CHARMLIB/libck-ldb-$BALANCE.o
    else
       set BAL_OBJ = $BALANCE
    endif
    
    if (! -e $BAL_OBJ) then
       if ($BALANCE == $BAL_OBJ) then
    	echo "charmc : Could not find load balancer object $BAL_OBJ"
       else
    	echo "charmc : Unknown load balancer $BALANCE"
    	(cd $CHARMLIB ; ls -al libck-ldb-*)
       endif
       goto failure
    endif

endif

###############################################################################
# 
# Make sure all temp-files created during linkage get deleted.
#
###############################################################################

set DELETE=(CHARMC-PRE.TMP.xxx CHARMC-PRE.TMP.nm $DELETE)
set DELETE=(CHARMC-MOD.TMP.dat CHARMC-MOD.TMP.c CHARMC-MOD.TMP.o $DELETE)
rm -f CHARMC-PRE.TMP.xxx CHARMC-PRE.TMP.nm
rm -f CHARMC-MOD.TMP.dat CHARMC-MOD.TMP.c CHARMC-MOD.TMP.o

###############################################################################
#
# 			Create CHARMC-MOD.TMP.c
#
# This file contains the function _CK_module_init_fn, which
# initializes each charm or charm++ module in turn.   Its creation
# is highly system-dependent, which is why I have all these
# nested if-statements here.
#
###############################################################################

if (($LANGUAGE == charm) || ($LANGUAGE == charm++)) then
    if ($LANGUAGE == charm) then
	echo '_CK_module_init_fn() {}' > CHARMC-MOD.TMP.c
	($ECHOCMD ; $CMK_CC $OPTS_CC -c -o CHARMC-MOD.TMP.o CHARMC-MOD.TMP.c)
        ($ECHOCMD ; $CMK_LD $OPTS_LD -o CHARMC-PRE.TMP.xxx -L$CHARMLIB \
                      $BAL_OBJ $OBJECTFILES $LIBRARIES \
		      CHARMC-MOD.TMP.o -lck-core -lck-trace-$TRACEMODE \
                      -lck-cplus-n -lconv-cplus-n -lconv-core \
		      -lck-defmain-std -lcharm $CMK_LIBS -lm)
    else if ($LANGUAGE == charm++) then
	echo '_CK_module_init_fn() {}' > CHARMC-MOD.TMP.c
	($ECHOCMD ; $CMK_CC $OPTS_CC -c -o CHARMC-MOD.TMP.o CHARMC-MOD.TMP.c)
        ($ECHOCMD ; $CMK_LDXX $OPTS_LDXX -o CHARMC-PRE.TMP.xxx -L$CHARMLIB \
		      $BAL_OBJ $OBJECTFILES $LIBRARIES \
		      CHARMC-MOD.TMP.o -lck-core -lck-trace-$TRACEMODE \
                      -lck-cplus-y -lconv-cplus-y -lconv-core \
		      -lck-defmain-cpp -lcharm $CMK_LIBS -lm)
    endif
    rm -f CHARMC-PRE.TMP.nm
    strings -a CHARMC-PRE.TMP.xxx | awk '/^charmc autoinit / { print $3; }' > CHARMC-PRE.TMP.nm
    sort < CHARMC-PRE.TMP.nm | uniq > CHARMC-MOD.TMP.dat
    echo 'Charm Modules: '`cat CHARMC-MOD.TMP.dat`
    rm -f CHARMC-MOD.TMP.c
    awk '{print "extern void _CK_"$1"_init();";}' < CHARMC-MOD.TMP.dat >> CHARMC-MOD.TMP.c
    echo '_CK_module_init_fn()' >> CHARMC-MOD.TMP.c
    echo '{' >> CHARMC-MOD.TMP.c
    awk '{print "_CK_"$1"_init();";}' < CHARMC-MOD.TMP.dat >> CHARMC-MOD.TMP.c
    echo '}' >> CHARMC-MOD.TMP.c
    ($ECHOCMD ; $CMK_CC $OPTS_CC -c CHARMC-MOD.TMP.c)
    if ($status) goto failure
endif

###############################################################################
#
#                               Finally, LINK
#
###############################################################################

switch ($LANGUAGE)
    case "charm"
        ($ECHOCMD ; $CMK_LD $OPTS_LD -o $OBJECT -L$CHARMLIB \
                      CHARMC-MOD.TMP.o $BAL_OBJ $OBJECTFILES \
                      $LIBRARIES -lck-core -lck-trace-$TRACEMODE \
                      -lck-cplus-n -lconv-cplus-n -lconv-core \
		      -lck-defmain-std -lcharm $CMK_LIBS -lm)
        breaksw
    case "charm++"
        ($ECHOCMD ; $CMK_LDXX $OPTS_LDXX -o $OBJECT -L$CHARMLIB \
		      CHARMC-MOD.TMP.o $BAL_OBJ $OBJECTFILES \
                      $LIBRARIES -lck-core -lck-trace-$TRACEMODE \
                      -lck-cplus-y -lconv-cplus-y -lconv-core \
		      -lck-defmain-cpp -lcharm $CMK_LIBS -lm)
        breaksw
    case "converse"
        ($ECHOCMD ; $CMK_LD $OPTS_LD -o $OBJECT -L$CHARMLIB \
		      $OBJECTFILES $LIBRARIES -lconv-cplus-n -lconv-core\
		      $CMK_LIBS -lm)
        breaksw
    case "converse++"
        ($ECHOCMD ; $CMK_LDXX $OPTS_LDXX -o $OBJECT -L$CHARMLIB \
		      $OBJECTFILES $LIBRARIES -lconv-cplus-y -lconv-core \
		      $CMK_LIBS -lm)
        breaksw
endsw

########################################################################
#
# Copy conv-host to user directory if it is present in installation.
#
########################################################################

if (-e $CHARMBIN/conv-host) then
    /bin/rm -f conv-host
    /bin/ln -s $CHARMBIN/conv-host conv-host
endif

########################################################################
#
# copyobj: if -cp specified, copy the resulting output file.
#
########################################################################

copyobj:

foreach x ($COPIES)
    if ($x != $OBJECT) then
	set COPY=$x
	if (-d $COPY) set COPY=$COPY/$OBJECT
        ($ECHOCMD ; /bin/rm -f $COPY ; /bin/cp $OBJECT $COPY)
    endif
end

goto success

########################################################################
#
# Clean up files and exit
#
########################################################################

success:

    set STATUS=0
    goto end

failure:

    echo 'charmc: aborting.'
    set STATUS=1
    goto end

end:

    if ($?SAVE == 0) then
        foreach FILE ($FILES)
            set BASE=$FILE:r
            set TMP=$BASE:t.TMP
            /bin/rm -f $TMP.P.C $TMP.cpp $TMP.space $TMP.xlat $TMP.o
            /bin/rm -f $TMP.c $TMP.c.0.h $TMP.c.1.h $TMP.c.2.h
            /bin/rm -f $TMP.i $TMP.$CMK_CPP_SUFFIX
        end
        rm -f core $DELETE
    endif
    exit ($STATUS)
@


2.77
log
@*** empty log message ***
@
text
@d6 2
a7 2
#       $Author: milind $      $Locker:  $              $State: Exp $
#       $Revision: 2.76 $        $Date: 1997/07/28 20:13:18 $
@


2.76
log
@Fixed bugs due to ckfutures declarations in c++interface.h
Also, wrote macros for node numbering in exemplar.
@
text
@d7 1
a7 1
#       $Revision: 2.75 $        $Date: 1997/07/23 16:54:57 $
d724 3
a726 3
		      CHARMC-MOD.TMP.o -lck-core -lcharm -lck-trace-$TRACEMODE \
                      -lck-cplus-n -lconv-cplus-n -lconv-core -lck-defmain-std\
		      $CMK_LIBS -lm)
d732 3
a734 3
		      CHARMC-MOD.TMP.o -lck-core -lcharm -lck-trace-$TRACEMODE \
                      -lck-cplus-y -lconv-cplus-y -lconv-core -lck-defmain-cpp\
		      $CMK_LIBS -lm)
d760 3
a762 3
                      $LIBRARIES -lck-core -lcharm -lck-trace-$TRACEMODE \
                      -lck-cplus-n -lconv-cplus-n -lconv-core -lck-defmain-std\
		      $CMK_LIBS -lm)
d767 3
a769 3
                      $LIBRARIES -lck-core -lcharm -lck-trace-$TRACEMODE \
                      -lck-cplus-y -lconv-cplus-y -lconv-core -lck-defmain-cpp\
		      $CMK_LIBS -lm)
@


2.75
log
@Made Converse run on Exemplar.
@
text
@d7 1
a7 1
#       $Revision: 2.74 $        $Date: 1997/07/18 21:20:59 $
d724 1
a724 1
		      CHARMC-MOD.TMP.o -lck-core -lck-trace-$TRACEMODE \
d732 1
a732 1
		      CHARMC-MOD.TMP.o -lck-core -lck-trace-$TRACEMODE \
d760 1
a760 1
                      $LIBRARIES -lck-core -lck-trace-$TRACEMODE \
d767 1
a767 1
                      $LIBRARIES -lck-core -lck-trace-$TRACEMODE \
@


2.74
log
@all files of the form perf-*.c have been changed to trace-*.c, with
name expansions. For example, perf-proj.c has been changed to
trace-projections.c.
performance.h has been renamed as trace.h, and perfio.c has been
renamed as traceio.c.
Corresponding changes have been made in the Makefile too.
Earlier, there used to be three libck-core-*.a where * was projections,
summary or none. Now, there will be a single libck-core.a and
three libck-trace-*.a where *=projections, summary and none.
The execmode parameter to charmc script has been renamed as
tracemode.
Also, the perfModuleInit function has been renamed as traceModuleInit,
RecdPerfMsg => RecdTraceMsg
CollectPerfFromNodes => CollectTraceFromNodes
@
text
@d7 1
a7 1
#       $Revision: 2.73 $        $Date: 1997/07/17 16:23:19 $
d394 2
d401 2
@


2.73
log
@Fixed a minor bug in charmc script that would cause it to abort
because either strings or awk set $status to 1 on HPs.
@
text
@d7 1
a7 1
#       $Revision: 2.72 $        $Date: 1997/07/17 15:51:38 $
d32 1
a32 1
unsetenv EXECMODE
d104 2
a105 2
	case "-execmode"
            set EXECMODE=$argv[$argindex]
d627 1
a627 1
# Check for valid choice of EXECMODE
d629 1
a629 1
# Check for compatibility among BALANCE and EXECMODE
d633 1
a633 1
# Check for valid choice of EXECMODE
d637 1
a637 1
    if (! -e $CHARMLIB/libck-core-notrace.a) then
d642 1
a642 1
    if ($?EXECMODE == 0) set EXECMODE=notrace
d644 3
a646 3
    if (! -e $CHARMLIB/libck-core-$EXECMODE.a) then
       echo "charmc : No such execmode $EXECMODE"
       (cd $CHARMLIB ; ls -al libck-core-*)
d658 1
a658 1
    # Check that EXECMODE is compatible with BALANCE
d660 1
a660 1
    if ($EXECMODE == replay) then
d663 1
a663 1
            echo "Ignoring -balance $BALANCE, incompatible with -execmode replay"
d720 1
a720 1
		      CHARMC-MOD.TMP.o -lck-core-$EXECMODE \
d728 1
a728 1
		      CHARMC-MOD.TMP.o -lck-core-$EXECMODE \
d756 1
a756 1
                      $LIBRARIES -lck-core-$EXECMODE \
d763 1
a763 1
                      $LIBRARIES -lck-core-$EXECMODE \
@


2.72
log
@Fixed module initialization on SP3.
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker:  $              $State: Exp $
#       $Revision: 2.71 $        $Date: 1997/07/15 21:09:45 $
d732 1
a733 1
    if ($status) goto failure
@


2.71
log
@Got rid of the ^$#*&&$ NM stuff once and for all!
@
text
@d7 1
a7 1
#       $Revision: 2.70 $        $Date: 1997/07/07 23:17:22 $
d732 1
a732 1
    strings CHARMC-PRE.TMP.xxx | awk '/^charmc autoinit / { print $3; }' > CHARMC-PRE.TMP.nm
@


2.70
log
@Redesigned default-main so there's a C and a C++ version.
@
text
@d7 1
a7 1
#       $Revision: 2.69 $        $Date: 1997/05/05 13:46:57 $
d715 1
a715 3
    if ($CMK_LDRO_WORKS) then
        ($ECHOCMD ; $CMK_LDRO CHARMC-PRE.TMP.xxx $OPTS_LDRO -L$CHARMLIB $OBJECTFILES $LIBRARIES $BAL_OBJ)
    else if ($LANGUAGE == charm) then
d732 1
a732 1
    $CMK_NM CHARMC-PRE.TMP.xxx | csh -fc "$CMK_NM_FILTER" > CHARMC-PRE.TMP.nm
d734 1
a734 1
    awk '(/^_CK_.*_init$/&&(\!/^_CK_.*_struct_init$/)) { print substr($1, 5, length($1)-9); }' < CHARMC-PRE.TMP.nm | sort | uniq > CHARMC-MOD.TMP.dat
@


2.69
log
@*** empty log message ***
@
text
@d6 2
a7 2
#       $Author: milind $      $Locker:  $              $State: Exp $
#       $Revision: 2.68 $        $Date: 1997/03/14 20:23:45 $
d723 1
a723 1
                      -lck-cplus-n -lconv-cplus-n -lconv-core -lck-defmain \
d731 1
a731 1
                      -lck-cplus-y -lconv-cplus-y -lconv-core -lck-defmain \
d759 1
a759 1
                      -lck-cplus-n -lconv-cplus-n -lconv-core -lck-defmain \
d766 1
a766 1
                      -lck-cplus-y -lconv-cplus-y -lconv-core -lck-defmain \
@


2.68
log
@Made MAXLOGBUFSIZE in projections a commandline parameter.
One can now specify it as "+logsize 10000" on the program
command line.
@
text
@d7 1
a7 1
#       $Revision: 2.67 $        $Date: 1996/11/23 02:25:33 $
d515 16
@


2.67
log
@Fixed several subtle bugs in the converse runtime for convex
exemplar.
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker:  $              $State: Exp $
#       $Revision: 2.66 $        $Date: 1996/11/20 06:45:20 $
d35 1
d118 4
d379 5
@


2.66
log
@Repaired rob's HP/C++ mods.
@
text
@d6 2
a7 2
#       $Author: brunner $      $Locker:  $              $State: Exp $
#       $Revision: 2.65 $        $Date: 1996/11/08 22:22:44 $
d697 1
a697 1
                      -lck-cplus-n -lconv-core -lconv-cplus-n -lck-defmain \
d705 1
a705 1
                      -lck-cplus-y -lconv-core -lconv-cplus-y -lck-defmain \
d733 1
a733 1
                      -lck-cplus-n -lconv-core -lconv-cplus-n -lck-defmain \
d740 1
a740 1
                      -lck-cplus-y -lconv-core -lconv-cplus-y -lck-defmain \
d745 1
a745 1
		      $OBJECTFILES $LIBRARIES -lconv-core -lconv-cplus-n \
d750 1
a750 1
		      $OBJECTFILES $LIBRARIES -lconv-core -lconv-cplus-y \
@


2.65
log
@Put _main in for HP-UX CC compilation.  It is ignored according to the
CMK_USE_HP_MAIN_FIX flag.
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker:  $              $State: Exp $
#       $Revision: 2.64 $        $Date: 1996/08/04 04:28:55 $
d599 1
a599 1
# Executable-Linking section.
a603 2
# Create CHARMC-MOD.TMP.o
# Do the linkage.
d697 1
a697 1
                      -lck-cplus-n -lconv-core -lck-defmain \
d705 1
a705 1
                      -lck-cplus-y -lconv-core -lck-defmain \
d733 1
a733 1
                      -lck-cplus-n -lconv-core -lck-defmain \
d740 1
a740 1
                      -lck-cplus-y -lconv-core -lck-defmain \
d745 1
a745 1
		      $OBJECTFILES $LIBRARIES -lconv-core -lck-cplus-n \
d750 2
a751 1
		      $OBJECTFILES $LIBRARIES -lconv-core $CMK_LIBS -lm)
@


2.64
log
@Restructured to allow two methods of nm.
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker: jyelon $              $State: Exp $
#       $Revision: 2.63 $        $Date: 1996/08/01 21:10:24 $
d747 2
a748 1
		      $OBJECTFILES $LIBRARIES -lconv-core $CMK_LIBS -lm)
@


2.63
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.62 $        $Date: 1996/07/02 21:21:25 $
d391 2
d399 4
a402 1
if ($?LANGUAGE == 0) set LANGUAGE=charm
d409 5
d418 4
d425 1
a427 2
onintr failure

d545 1
a545 1
# Link-Step: there are three kinds of link-phases.
d547 6
a552 3
# 1. If $OBJECT is a ".a" file, a library is created from $OBJECTFILES.
# 2. If $OBJECT is a ".o" file, then an "LDRO" is created from $OBJECTFILES.
# 3. If $OBJECT is otherwise, then an executable is created.
d580 1
d582 13
a594 3
  default:
    goto exelink

a608 21
exelink:

if ($?SEQUENTIAL) then
    switch ($LANGUAGE)
        case "charm"
        case "c"
        case "C"
            ($ECHOCMD ; $CMK_SEQ_LD $OPTS_LD -o $OBJECT $OBJECTFILES -L$CHARMLIB $LIBRARIES $CMK_SEQ_LIBS)
            breaksw
        case "c++"
        case "C++"    
            ($ECHOCMD ; $CMK_SEQ_LDXX $OPTS_LD -o $OBJECT $OBJECTFILES -L$CHARMLIB $LIBRARIES $CMK_SEQ_LIBS)
            breaksw
        default
            echo 'Illegal choice of language for sequential program'
            goto failure
    endsw
    if ($status) goto failure
    goto copyobj
endif

d611 1
a611 1
if ($LANGUAGE != converse) then
d630 1
a630 1
if ($LANGUAGE != converse) then
d648 1
a648 1
if ($LANGUAGE != converse) then
d668 57
a724 1
########################################################################
d726 1
a726 1
# Select linkers and libraries based on language.
d728 1
a728 1
########################################################################
a730 6
    case "c"
    case "C"
    case "c++"
    case "C++"
        echo 'Illegal choice of language for parallel program'
        goto failure
d732 1
a732 1
	set LOADER=($CMK_LD $OPTS_LD -L$CHARMLIB \
d736 1
a736 1
		      $CMK_LIBS -lm )
d739 1
a739 1
        set LOADER =($CMK_LDXX $OPTS_LDXX -L$CHARMLIB \
d743 1
a743 1
		      $CMK_LIBS -lm )
d746 2
a747 4
        set LOADER = ($CMK_LD $OPTS_LD -L$CHARMLIB \
		      CHARMC-MOD.TMP.o \
                      $OBJECTFILES $LIBRARIES \
        	      -lconv-core $CMK_LIBS -lm )
d750 2
a751 4
        set LOADER = ($CMK_LDXX $OPTS_LD -L$CHARMLIB \
		      CHARMC-MOD.TMP.o \
                      $OBJECTFILES $LIBRARIES \
                      -lconv-core $CMK_LIBS -lm )
a753 43

########################################################################
#
# Linkage is wierd.  First, we create a dummy module-init function
# with nothing in it.  We then do a trial linkage.  We use NM to scan
# the executable thereby produced, to see which modules need
# initialization.  We then build a true module-init function, and
# redo the linkage.
#
########################################################################

set DELETE=(CHARMC-PGM.TMP.exe CHARMC-PGM.TMP.nm $DELETE)
set DELETE=(CHARMC-MOD.TMP.dat CHARMC-MOD.TMP.c CHARMC-MOD.TMP.o $DELETE)
rm -f CHARMC-PGM.TMP.exe CHARMC-MOD.TMP.nm
rm -f CHARMC-MOD.TMP.dat CHARMC-MOD.TMP.c CHARMC-MOD.TMP.o

if ($?VERBOSE) echo "Creating dummy CHARMC-MOD.TMP.c"
echo '_CK_module_init_fn() {}' > CHARMC-MOD.TMP.c
($ECHOCMD ; $CMK_CC $OPTS_CC -c CHARMC-MOD.TMP.c)
if ($status) goto failure
($ECHOCMD ; $LOADER -o CHARMC-PGM.TMP.exe)
if ($status) goto failure
$CMK_NM CHARMC-PGM.TMP.exe | csh -fc "$CMK_NM_FILTER" > CHARMC-PGM.TMP.nm
if ($status) goto failure
awk '(/^_CK_.*_init$/&&(\!/^_CK_.*_struct_init$/)) { print substr($1, 5, length($1)-9); }' < CHARMC-PGM.TMP.nm | sort | uniq > CHARMC-MOD.TMP.dat
if ( -z CHARMC-MOD.TMP.dat ) then
    echo 'Charm Modules: none.'
    /bin/mv CHARMC-PGM.TMP.exe $OBJECT
else
    echo 'Charm Modules: '`cat CHARMC-MOD.TMP.dat`
    if ($?VERBOSE) echo "Creating real CHARMC-MOD.TMP.c"
    awk '{print "extern void _CK_"$1"_init();";}' < CHARMC-MOD.TMP.dat >> CHARMC-MOD.TMP.c
    rm -f CHARMC-MOD.TMP.c
    echo '_CK_module_init_fn()' > CHARMC-MOD.TMP.c
    echo '{' >> CHARMC-MOD.TMP.c
    awk '{print "_CK_"$1"_init();";}' < CHARMC-MOD.TMP.dat >> CHARMC-MOD.TMP.c
    echo '}' >> CHARMC-MOD.TMP.c
    ($ECHOCMD ; $CMK_CC $OPTS_CC -c CHARMC-MOD.TMP.c)
    if ($status) goto failure
    echo "linking $OBJECT with -language $LANGUAGE"
    ($ECHOCMD ; $LOADER -o $OBJECT)
    if ($status) goto failure
endif
@


2.62
log
@changed /usr/bin/touch to just touch
@
text
@d7 1
a7 1
#       $Revision: 2.61 $        $Date: 1996/06/12 20:02:58 $
d474 1
a474 1
      ($ECHOCMD ; $CHARMBIN/charmxlat++ $TMP.cpp $TMP.xlat)
@


2.61
log
@Changed message 'No charm modules' to 'Charm modules: none'
@
text
@d7 1
a7 1
#       $Revision: 2.60 $        $Date: 1996/06/10 21:18:06 $
d428 1
a428 1
    ($ECHOCMD ; /usr/bin/touch $BASE.cpm.h)
@


2.60
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.59 $        $Date: 1996/05/15 21:36:39 $
d728 1
a728 1
    echo 'No charm modules.'
@


2.59
log
@Got rid of LDRO
@
text
@d6 2
a7 2
#       $Author: knauff $      $Locker: jyelon $              $State: Exp $
#       $Revision: 2.58 $        $Date: 1996/05/08 01:26:24 $
d458 1
a458 1
      ($ECHOCMD ; $CMK_CC $OPTS_CC -I$CHARMINC -c $TMP.c)
d478 1
a478 1
      ($ECHOCMD ; $CMK_CXX $OPTS_CXX -I$CHARMINC -c $TMP.$CMK_CPP_SUFFIX)
d491 1
a491 1
      ($ECHOCMD ; $CMK_CC $OPTS_CC -I$CHARMINC -c $BASE.c)
d499 1
a499 1
      ($ECHOCMD ; $CMK_CXX $OPTS_CXX -I$CHARMINC -c $BASE.C)
d507 1
a507 1
      ($ECHOCMD ; $CMK_CXX $OPTS_CXX -I$CHARMINC -c $BASE.cxx)
@


2.58
log
@Needed OPTS_LDXX to come after the object files for linking
Charm++ stuff.
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker: knauff $              $State: Exp $
#       $Revision: 2.57 $        $Date: 1996/04/29 20:17:01 $
d407 1
d675 7
d683 4
a686 17
        set PRELOAD=($CMK_LDRO CHARMC-USR.TMP.o $OPTS_LDRO -L$CHARMLIB \
                      $OBJECTFILES $LIBRARIES $BAL_OBJ)
        set LOADER =($CMK_LDXX -o $OBJECT \
		      CHARMC-USR.TMP.o CHARMC-MOD.TMP.o \
                      $CHARMLIB/libck-core-$EXECMODE.a \
        	      $CHARMLIB/libck-cplus-y.a \
        	      $CHARMLIB/libconv-core.a \
		      $CMK_LIBS $OPTS_LDXX -lm )
        breaksw
    case "charm"
        set PRELOAD=($CMK_LDRO CHARMC-USR.TMP.o $OPTS_LDRO -L$CHARMLIB \
                      $OBJECTFILES $LIBRARIES $BAL_OBJ)
	set LOADER=($CMK_LD $OPTS_LD -o $OBJECT \
		      CHARMC-USR.TMP.o CHARMC-MOD.TMP.o \
        	      $CHARMLIB/libck-core-$EXECMODE.a \
        	      $CHARMLIB/libck-cplus-n.a \
        	      $CHARMLIB/libconv-core.a \
d690 10
a699 6
        set PRELOAD=($CMK_LDRO CHARMC-USR.TMP.o $OPTS_LDRO -L$CHARMLIB \
                      $OBJECTFILES $LIBRARIES)
        set LOADER = ($CMK_LD $OPTS_LD -o $OBJECT \
		      CHARMC-USR.TMP.o CHARMC-MOD.TMP.o \
        	      $CHARMLIB/libconv-core.a \
		      $CMK_LIBS -lm )
d705 5
a709 3
# Bind together user-specified objects and libraries, thereby
# creating CHARMC-USR.TMP.o, then 'nm' that file, thereby yielding
# a list of function names in CHARMC-USR.TMP.nm
d713 4
a716 1
echo "linking $OBJECT with -language $LANGUAGE"
d718 3
a720 2
set DELETE=(CHARMC-USR.TMP.o CHARMC-USR.TMP.nm $DELETE)
($ECHOCMD ; $PRELOAD)
d722 1
a722 2

$CMK_NM CHARMC-USR.TMP.o | csh -fc "$CMK_NM_FILTER" > CHARMC-USR.TMP.nm
d724 1
a724 19


########################################################################
#
# Scan user-object for initialization functions, create CHARMC-MOD.TMP.o
#
########################################################################

if ($?VERBOSE) echo "Creating CHARMC-MOD.TMP.c"
set DELETE=(CHARMC-MOD.TMP.dat CHARMC-MOD.TMP.c CHARMC-MOD.TMP.o $DELETE)
rm -f CHARMC-MOD.TMP.dat CHARMC-MOD.TMP.c CHARMC-MOD.TMP.o
awk '(/^_CK_.*_init$/&&(\!/^_CK_.*_struct_init$/)) { print substr($1, 5, length($1)-9); }' < CHARMC-USR.TMP.nm | sort | uniq > CHARMC-MOD.TMP.dat
echo 'Charm Modules: '`cat CHARMC-MOD.TMP.dat`
awk '{print "extern void _CK_"$1"_init();";}' < CHARMC-MOD.TMP.dat >> CHARMC-MOD.TMP.c
echo '_CK_module_init_fn()' >> CHARMC-MOD.TMP.c
echo '{' >> CHARMC-MOD.TMP.c
awk '{print "_CK_"$1"_init();";}' < CHARMC-MOD.TMP.dat >> CHARMC-MOD.TMP.c
echo '}' >> CHARMC-MOD.TMP.c
($ECHOCMD ; $CMK_CC $OPTS_CC -c CHARMC-MOD.TMP.c)
d726 18
a743 10

########################################################################
#
# Scan user-object for the function 'user_main', if not defined,
# add libck-defmain to list of object files.
#
########################################################################

if (! { (egrep '^user_main$' < CHARMC-USR.TMP.nm >& /dev/null) }) then
    set LOADER=($LOADER $CHARMLIB/libck-defmain.o)
a744 9

########################################################################
#
# Finally, link.
#
########################################################################

($ECHOCMD ; $LOADER)
if ($status) goto failure
@


2.57
log
@Inserted -L option into OPTS_LDRO
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker: jyelon $              $State: Exp $
#       $Revision: 2.56 $        $Date: 1996/04/17 16:05:02 $
d677 1
a677 1
        set LOADER =($CMK_LDXX $OPTS_LDXX -o $OBJECT \
d682 1
a682 1
		      $CMK_LIBS -lm )
@


2.56
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.55 $        $Date: 1996/04/16 22:45:25 $
d207 1
@


2.55
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.54 $        $Date: 1996/04/10 20:10:19 $
d52 1
d189 5
d411 23
a441 4
onintr failure

cd $ORIGDIR

d451 1
a483 14
    case "*.cpm"
      ($ECHOCMD ; /bin/rm -f $BASE.cpm.h $TMP.c)
      ($ECHOCMD ; /usr/bin/touch $BASE.cpm.h ; /bin/ln -s $BASE.cpm $TMP.c)
      ($ECHOCMD ; $CMK_CPP_C $OPTS_CPP -I$CHARMINC $TMP.c > $TMP.i)
      ($ECHOCMD ; $CHARMBIN/conv-cpm $TMP.i $BASE.cpm.h)
      if ($status) goto failure
      ($ECHOCMD ; $CMK_CC $OPTS_CC -I$CHARMINC -c $TMP.c)
      if ($status) goto failure
      if ($?OBJECT == 0) then
          ($ECHOCMD ; /bin/mv $TMP.o $BASE.o)
      else
          set OBJECTFILES=( $OBJECTFILES $TMP.o )
      endif
      breaksw
d812 2
a813 2
            /bin/rm -f $TMP.P.C $TMP.cpp $TMP.space $TMP.xlat $TMP.o $BASE.headers
            /bin/rm -f $TMP.c $TMP.c.0.h $TMP.c.1.h $TMP.c.2.h $BASE.cpm.h
@


2.54
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.53 $        $Date: 1996/04/09 22:56:10 $
d426 1
a426 1
      ($ECHOCMD ; $CMK_CPP $OPTS_CPP -I$CHARMINC $BASE.p > $TMP.cpp)
d458 14
d593 5
a799 4
            # Warning: do not delete $BASE.anything or you can easily delete
            # the user's source files.  (Remember, people frequently use the
            # same extension for multiple purposes.)  If it's a temp file,
            # put TMP in its name.
d801 2
a802 1
            /bin/rm -f $TMP.c $TMP.c.0.h $TMP.c.1.h $TMP.c.2.h $TMP.$CMK_CPP_SUFFIX
@


2.53
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.52 $        $Date: 1996/04/07 19:16:52 $
d558 1
@


2.52
log
@Fixed some miscellaneous bugs
@
text
@d7 1
a7 1
#       $Revision: 2.51 $        $Date: 1996/01/17 04:08:19 $
d350 2
d393 6
a398 2
    case "charm"
    case "charm++"
d458 4
d557 13
a569 1
    ($ECHOCMD ; $CMK_SEQ_LD $OPTS_LD -o $OBJECT $OBJECTFILES -L$CHARMLIB $LIBRARIES $CMK_SEQ_LIBS)
d635 6
@


2.51
log
@*** empty log message ***
@
text
@d6 2
a7 2
#       $Author: sanjeev $      $Locker: jyelon $              $State: Exp $
#       $Revision: 2.50 $        $Date: 1995/11/02 23:25:51 $
a26 2
onintr failure

d56 1
d108 2
a109 1
            set VERBOSE=yes
a202 1
	    set OPTS_LDRO=( $OPTS_LDRO "$arg" )
d217 7
d254 1
a254 1
            goto failure
d308 1
a308 1
    goto failure
d318 1
a318 1
        goto failure
d407 2
d420 3
a422 6
      if ($?VERBOSE) echo "$CMK_CPP $OPTS_CPP -I$CHARMINC $BASE.p > $TMP.cpp"
      $CMK_CPP $OPTS_CPP -I$CHARMINC $BASE.p > $TMP.cpp
      if ($?VERBOSE) echo "$CHARMBIN/charmfilter < $TMP.cpp | $CMK_M4 > $TMP.space"
      $CHARMBIN/charmfilter < $TMP.cpp | $CMK_M4 > $TMP.space
      if ($?VERBOSE) echo "$CHARMBIN/charmxlat $TMP.space $TMP.c"
      $CHARMBIN/charmxlat $TMP.space $TMP.c
d424 1
a424 2
      if ($?VERBOSE) echo "$CMK_CC $OPTS_CC -I$CHARMINC -c $TMP.c"
      $CMK_CC $OPTS_CC -I$CHARMINC -c $TMP.c
d427 1
a427 2
          if ($?VERBOSE) echo "/bin/mv $TMP.o $BASE.o"
          /bin/mv $TMP.o $BASE.o
d433 1
a433 1
# Put pgm.P into pgm.TMP.P.C because CC needs source files to end with .C
d439 2
a440 8
      if ($?VERBOSE) echo "$CMK_CXXPP $OPTS_CPP -I$CHARMINC $TMP.P.C > $TMP.cpp"
      $CMK_CXXPP $OPTS_CPP -I$CHARMINC $TMP.P.C > $TMP.cpp

#     if ($?VERBOSE) echo "$CHARMBIN/charmfilter++ $TMP.cpp | $CMK_M4 > $TMP.space"
#     $CHARMBIN/charmfilter++ $TMP.cpp | $CMK_M4 > $TMP.space

      if ($?VERBOSE) echo "$CHARMBIN/charmxlat++ $TMP.cpp $TMP.xlat"
      $CHARMBIN/charmxlat++ $TMP.cpp $TMP.xlat
d442 3
a444 8

      if ($?VERBOSE) echo "/bin/cat $BASE.headers > $BASE.$CMK_CPP_SUFFIX"
      /bin/cat $BASE.headers > $BASE.$CMK_CPP_SUFFIX
      if ($?VERBOSE) echo "/bin/cat $TMP.xlat >> $BASE.$CMK_CPP_SUFFIX"
      /bin/cat $TMP.xlat >> $BASE.$CMK_CPP_SUFFIX

      if ($?VERBOSE) echo "$CMK_CXX $OPTS_CXX -I$CHARMINC -c $BASE.$CMK_CPP_SUFFIX"
      $CMK_CXX $OPTS_CXX -I$CHARMINC -c $BASE.$CMK_CPP_SUFFIX
d446 4
a449 3

      if ($?OBJECT != 0) then
        set OBJECTFILES=( $OBJECTFILES $BASE.o )
a450 7

#     if ($?OBJECT == 0) then
#       if ($?VERBOSE) echo "/bin/mv $TMP.o $BASE.o"
#       /bin/mv $TMP.o $BASE.o
#     else
#       set OBJECTFILES=( $OBJECTFILES $TMP.o )
#     endif
d453 1
a453 2
      if ($?VERBOSE) echo "$CMK_CC $OPTS_CC -I$CHARMINC -c $BASE.c"
      $CMK_CC $OPTS_CC -I$CHARMINC -c $BASE.c
d461 1
a461 2
      if ($?VERBOSE) echo "$CMK_CXX $OPTS_CXX -I$CHARMINC -c $BASE.C"
      $CMK_CXX $OPTS_CXX -I$CHARMINC -c $BASE.C
d469 1
a469 2
      if ($?VERBOSE) echo "$CMK_CXX $OPTS_CXX -I$CHARMINC -c $BASE.cxx"
      $CMK_CXX $OPTS_CXX -I$CHARMINC -c $BASE.cxx
d483 1
d509 1
a509 2
            if ($?VERBOSE) echo mv $OBJECTFILES $OBJECT
            mv $OBJECTFILES $OBJECT
d514 1
a514 2
        if ( $?VERBOSE ) echo $CMK_LDRO $OBJECT $OPTS_LDRO $OBJECTFILES
        $CMK_LDRO $OBJECT $OPTS_LDRO $OBJECTFILES
d520 2
a521 4
    if ( $?VERBOSE ) echo rm -f $OBJECT
    rm -f $OBJECT
    if ( $?VERBOSE ) echo $CMK_AR $OBJECT $OBJECTFILES
    $CMK_AR $OBJECT $OBJECTFILES
d523 1
a523 2
    if ( $?VERBOSE ) echo $CMK_RANLIB $OBJECT
    $CMK_RANLIB $OBJECT
d547 1
a547 2
    if ($?VERBOSE) $CMK_SEQ_LD $OPTS_LD -o $OBJECT $OBJECTFILES -L$CHARMLIB $LIBRARIES $CMK_SEQ_LIBS
    $CMK_SEQ_LD $OPTS_LD -o $OBJECT $OBJECTFILES -L$CHARMLIB $LIBRARIES $CMK_SEQ_LIBS
d654 1
a654 2
if ($?VERBOSE) echo $PRELOAD
$PRELOAD
d677 1
a677 2
if ($?VERBOSE) echo $CMK_CC $OPTS_CC -c CHARMC-MOD.TMP.c
$CMK_CC $OPTS_CC -c CHARMC-MOD.TMP.c
d697 1
a697 2
if ($?VERBOSE) echo $LOADER
$LOADER
d723 1
a723 2
        if ($?VERBOSE) echo rm -f $COPY ";" ln $OBJECT $COPY
        rm -f $COPY ; cp $OBJECT $COPY
d757 1
a757 1
            /bin/rm -f $TMP.c $TMP.c.0.h $TMP.c.1.h $TMP.c.2.h
@


2.50
log
@fixes for Charm++ translation
@
text
@d6 2
a7 2
#       $Author: sanjeev $      $Locker:  $              $State: Exp $
#       $Revision: 2.49 $        $Date: 1995/11/02 16:52:07 $
d778 5
a782 1
            /bin/rm -f $TMP.P.C $TMP.cpp $TMP.space $TMP.xlat $TMP.o $BASE.$CMK_CPP_SUFFIX $BASE.headers
@


2.49
log
@removed $MACHTYPE from argument to charmfilter++
@
text
@d6 2
a7 2
#       $Author: sanjeev $      $Locker: sanjeev $              $State: Exp $
#       $Revision: 2.48 $        $Date: 1995/11/02 16:30:46 $
d431 4
a434 1
      echo '#line 1 "'$BASE.P'"' > $TMP.P.C
d438 6
a443 4
      if ($?VERBOSE) echo "$CHARMBIN/charmfilter++ $TMP.cpp | $CMK_M4 > $TMP.space"
      $CHARMBIN/charmfilter++ $TMP.cpp | $CMK_M4 > $TMP.space
      if ($?VERBOSE) echo "$CHARMBIN/charmxlat++ $TMP.space $TMP.C"
      $CHARMBIN/charmxlat++ $TMP.space $TMP.C
d445 8
a452 2
      if ($?VERBOSE) echo "$CMK_CXX $OPTS_CXX -I$CHARMINC -c $TMP.C"
      $CMK_CXX $OPTS_CXX -I$CHARMINC -c $TMP.C
d454 3
a456 5
      if ($?OBJECT == 0) then
        if ($?VERBOSE) echo "/bin/mv $TMP.o $BASE.o"
        /bin/mv $TMP.o $BASE.o
      else
        set OBJECTFILES=( $OBJECTFILES $TMP.o )
d458 7
d778 2
a779 2
            /bin/rm -f $TMP.P.C $TMP.C $TMP.cpp $TMP.space $TMP.o
            /bin/rm -f $TMP.c $TMP.c.0.h $TMP.c.1.h $TMP.c.2.h $BASE:t.headers
@


2.48
log
@added machine-name argument to charmfilter++
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker: sanjeev $              $State: Exp $
#       $Revision: 2.47 $        $Date: 1995/11/01 22:22:51 $
d436 1
a436 1
      $CHARMBIN/charmfilter++ $MACHTYPE $TMP.cpp | $CMK_M4 > $TMP.space
@


2.47
log
@*** empty log message ***
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker: jyelon $              $State: Exp $
#       $Revision: 2.46 $        $Date: 1995/10/30 20:59:59 $
d436 1
a436 1
      $CHARMBIN/charmfilter++ $TMP.cpp | $CMK_M4 > $TMP.space
@


2.46
log
@added CMK_SEQ_LIBS
@
text
@d6 2
a7 2
#       $Author: sanjeev $      $Locker: jyelon $              $State: Exp $
#       $Revision: 2.45 $        $Date: 1995/10/27 15:12:56 $
d560 1
a560 1
if ($?EXECMODE == 0) set EXECMODE=notrace
d562 8
a569 4
if (! -e $CHARMLIB/libck-core-$EXECMODE.a) then
   echo "charmc : No such execmode $EXECMODE"
   (cd $CHARMLIB ; ls -al libck-core-*)
   goto failure
d574 1
a574 1
if ($?BALANCE == 0) set BALANCE=rand
d576 1
a576 1
# Check that EXECMODE is compatible with BALANCE
d578 8
a585 4
if ($EXECMODE == replay) then
    if ($?BALANCE == 0) set BALANCE=replay
    if ($BALANCE != replay) then
        echo "Ignoring -balance $BALANCE, incompatible with -execmode replay"
d587 1
a587 1
    set BALANCE=replay
d592 17
a608 5
if ($BALANCE:h == $BALANCE) then
   set BAL_OBJ = $CHARMLIB/libck-ldb-$BALANCE.o
else
   set BAL_OBJ = $BALANCE
endif
a609 8
if (! -e $BAL_OBJ) then
   if ($BALANCE == $BAL_OBJ) then
	echo "charmc : Could not find load balancer object $BAL_OBJ"
   else
	echo "charmc : Unknown load balancer $BALANCE"
	(cd $CHARMLIB ; ls -al libck-ldb-*)
   endif
   goto failure
@


2.45
log
@removed stdio.h
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker: sanjeev $              $State: Exp $
#       $Revision: 2.44 $        $Date: 1995/10/25 19:58:07 $
d552 2
a553 2
    if ($?VERBOSE) $CMK_SEQ_LD $OPTS_LD -o $OBJECT $OBJECTFILES -L$CHARMLIB $LIBRARIES
    $CMK_SEQ_LD $OPTS_LD -o $OBJECT $OBJECTFILES -L$CHARMLIB $LIBRARIES
@


2.44
log
@added -use-reliable-cc, -use-fastest-cc, -NO
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker: jyelon $              $State: Exp $
#       $Revision: 2.43 $        $Date: 1995/10/20 18:38:18 $
d430 2
a431 2
      echo '#include <stdio.h>' > $TMP.P.C
      echo '#line 1 "'$BASE.P'"' >> $TMP.P.C
a432 3
# For heavens sake, dont change CMK_CXX to CMK_CPP below ! The preprocessor
# for Charm++ is "g++ -E", not "cpp". Ive fixed it before, but someone keeps
# screwing it up again.  -- Sanjeev 8/30/95
@


2.43
log
@added support for -g and -O portably across platforms.
@
text
@d7 1
a7 1
#       $Revision: 2.42 $        $Date: 1995/10/13 18:14:48 $
d56 2
d116 8
d214 4
d333 8
d430 3
a432 6
      echo 'extern "C" {' > $TMP.P.c
      echo '#include <stdio.h>' >> $TMP.P.c
      echo '}' >> $TMP.P.c
      echo '#line 1 "'$BASE.P'"' >> $TMP.P.c
      /bin/cat $BASE.P >> $TMP.P.c

d436 2
a437 2
      if ($?VERBOSE) echo "$CMK_CXXPP $OPTS_CPP -I$CHARMINC $TMP.P.c > $TMP.cpp"
      $CMK_CXXPP $OPTS_CPP -I$CHARMINC $TMP.P.c > $TMP.cpp
d753 1
a753 1
            /bin/rm -f $TMP.P.c $TMP.C $TMP.cpp $TMP.space $TMP.o
@


2.42
log
@Changed defmain and unimain to .o files because of LDRO/nm tricks.
@
text
@d7 1
a7 1
#       $Revision: 2.41 $        $Date: 1995/10/10 06:14:48 $
d54 2
d197 5
a201 2
            set OPTS_CC=  ( $OPTS_CC   $arg )
            set OPTS_CXX= ( $OPTS_CXX  $arg )
d342 10
@


2.41
log
@Changed a lot of '.o' files into '.a' files.
@
text
@d6 2
a7 2
#       $Author: knauff $      $Locker: jyelon $              $State: Exp $
#       $Revision: 2.40 $        $Date: 1995/10/02 18:56:02 $
d653 1
a653 1
    set LOADER=($LOADER $CHARMLIB/libck-defmain.a)
@


2.40
log
@Changed CMK_CXX -E for preprocessing Charm++ files to CMK_CXXPP.
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker: knauff $              $State: Exp $
#       $Revision: 2.39 $        $Date: 1995/09/27 22:22:20 $
d531 1
a531 1
if (! -e $CHARMLIB/libck-core-$EXECMODE.o) then
d581 3
a583 3
                      $CHARMLIB/libck-core-$EXECMODE.o \
        	      $CHARMLIB/libck-cplus-y.o \
        	      $CHARMLIB/libconv-core.o \
d591 3
a593 3
        	      $CHARMLIB/libck-core-$EXECMODE.o \
        	      $CHARMLIB/libck-cplus-n.o \
        	      $CHARMLIB/libconv-core.o \
d601 1
a601 1
        	      $CHARMLIB/libconv-core.o \
d653 1
a653 1
    set LOADER=($LOADER $CHARMLIB/libck-defmain.o)
@


2.39
log
@fixed a bug (OPTS_LD instead of OPTS_LDXX)
@
text
@d6 2
a7 2
#       $Author: sanjeev $      $Locker: jyelon $              $State: Exp $
#       $Revision: 2.38 $        $Date: 1995/08/30 19:08:55 $
d402 2
a403 2
      if ($?VERBOSE) echo "$CMK_CXX -E $OPTS_CPP -I$CHARMINC $TMP.P.c > $TMP.cpp"
      $CMK_CXX -E $OPTS_CPP -I$CHARMINC $TMP.P.c > $TMP.cpp
@


2.38
log
@Changed CMK_CPP to CMK_CXX for Charm++.
@
text
@d6 2
a7 2
#       $Author: knauff $      $Locker: sanjeev $              $State: Exp $
#       $Revision: 2.37 $        $Date: 1995/07/25 19:36:45 $
d21 1
a21 1
# Initialize the main controlling variables, then setup error handler
d28 1
a196 2
            set OPTS_LD=  ( $OPTS_LD   $arg )
            set OPTS_LDXX=( $OPTS_LDXX $arg )
d220 1
d569 5
a573 1
# Select linkers
d576 1
a576 1
    case "charm"
d579 1
a579 1
	set LOADER=($CMK_LD $OPTS_LD -o $OBJECT \
d581 2
a582 2
        	      $CHARMLIB/libck-core-$EXECMODE.o \
        	      $CHARMLIB/libck-cplus-n.o \
d586 1
a586 1
    case "charm++"
d589 1
a589 1
        set LOADER =($CMK_LDXX $OPTS_LD -o $OBJECT \
d591 2
a592 2
                      $CHARMLIB/libck-core-$EXECMODE.o \
        	      $CHARMLIB/libck-cplus-y.o \
d606 7
a612 2
# Bind together user-specified objects and libraries,
# thereby creating CHARMC-USR.TMP.o and CHARMC-USR.TMP.nm
a620 4
#
# 'nm' the user-specified code, to find function names.
#

d624 3
d628 2
d635 1
a635 1
echo 'Modules: '`cat CHARMC-MOD.TMP.dat`
d645 6
a650 1
# Scan user-object for user_main, if none, set MAINOBJ
d656 6
d666 5
a670 1
# Copy conv-host
d679 1
a679 1
# copyobj: if more than one -o specified, copy the resulting object file.
d690 1
a690 1
        rm -f $COPY ; ln $OBJECT $COPY
@


2.37
log
@Fixed a problem with compiling *.P: $CMK_CXX was being used for
preprocessing, instead of $CMK_CPP
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker: knauff $              $State: Exp $
#       $Revision: 2.36 $        $Date: 1995/07/22 23:43:45 $
d398 6
a403 2
      if ($?VERBOSE) echo "$CMK_CPP -E $OPTS_CPP -I$CHARMINC $TMP.P.c > $TMP.cpp"
      $CMK_CPP -E $OPTS_CPP -I$CHARMINC $TMP.P.c > $TMP.cpp
@


2.36
log
@*** empty log message ***
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker: jyelon $              $State: Exp $
#       $Revision: 2.35 $        $Date: 1995/07/19 22:15:12 $
d398 2
a399 2
      if ($?VERBOSE) echo "$CMK_CXX -E $OPTS_CPP -I$CHARMINC $TMP.P.c > $TMP.cpp"
      $CMK_CXX -E $OPTS_CPP -I$CHARMINC $TMP.P.c > $TMP.cpp
@


2.35
log
@; ci -u $x:t)
set x=charm/src/Common/conv-core/converse.h ; echo $x; (cd $x:h ; ci -u $x:t)
@
text
@d7 1
a7 1
#       $Revision: 2.34 $        $Date: 1995/07/12 16:29:30 $
a470 1
    rm -f $OBJECT
d473 1
d479 1
d527 4
a530 10
if (-e $CHARMLIB/libckn-core-$EXECMODE.o) then
   set LIBCLASS=ckn
else
   if (-e $CHARMLIB/libckd-core-$EXECMODE.o) then
      set LIBCLASS=ckd
   else
      echo "charmc : No such execmode $EXECMODE"
      (cd $CHARMLIB ; ls -al libck?-core-*)
      goto failure
   endif
d550 1
a550 1
   set BAL_OBJ = $CHARMLIB/lib${LIBCLASS}-ldb-$BALANCE.o
d560 1
a560 1
	(cd $CHARMLIB ; ls -al lib${LIBCLASS}-ldb-*)
d573 2
a574 2
        	      $CHARMLIB/lib${LIBCLASS}-core-$EXECMODE.o \
        	      $CHARMLIB/lib${LIBCLASS}-cplus-n.o \
d583 2
a584 2
                      $CHARMLIB/lib${LIBCLASS}-core-$EXECMODE.o \
        	      $CHARMLIB/lib${LIBCLASS}-cplus-y.o \
d634 1
a634 1
    set LOADER=($LOADER $CHARMLIB/lib${LIBCLASS}-defmain.o)
@


2.34
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.33 $        $Date: 1995/07/07 16:55:26 $
a31 1
unsetenv QUEUE
d89 1
a89 1
            set QUEUE=$argv[$argindex]
d94 1
a94 1
            echo "Warning: -memory currently not being dealt with."
a505 1
# Check for valid choice of QUEUE
d507 1
a507 1
# Check for compatibility among BALANCE, QUEUE, and EXECMODE
a537 10
# Check for valid choice of QUEUE

if ($?QUEUE == 0) set QUEUE=super

if (! -e $CHARMLIB/libconv-qs-$QUEUE.o) then
   echo "charmc: Unknown queueing strategy $QUEUE"
   (cd $CHARMLIB ; ls -al libconv-qs-*)
   goto failure
endif

d542 1
a542 1
# Check that EXECMODE is compatible with QUEUE and BALANCE
a544 1
    if ($?QUEUE == 0) set QUEUE=replay
a545 3
    if ($QUEUE != replay) then
        echo "Ignoring -queue $QUEUE, incompatible with -execmode replay"
    endif
a548 1
    set QUEUE=replay
a551 8
# Check that BALANCE is compatible with QUEUE

if ( $BALANCE == btok ) then
    if ( ($QUEUE != bfifo) && ($QUEUE != bstack) ) then
        echo "WARNING : btok strategy needs bfifo or bstack queueing strategy"
    endif
endif

a580 1
        	      $CHARMLIB/libconv-qs-$QUEUE.o \
a590 1
        	      $CHARMLIB/libconv-qs-$QUEUE.o \
a598 1
        	      $CHARMLIB/libconv-qs-$QUEUE.o \
@


2.33
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.32 $        $Date: 1995/07/07 01:06:47 $
d542 1
a542 1
if ($?QUEUE == 0) set QUEUE=fifo
@


2.32
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.31 $        $Date: 1995/07/07 00:53:41 $
d666 1
a666 1
if (!{ (egrep '^user_main$' < CHARMC-USR.TMP.nm >& /dev/null) }) then
@


2.31
log
@*** empty log message ***
@
text
@d6 2
a7 2
#       $Author: gursoy $      $Locker:  $              $State: Exp $
#       $Revision: 2.30 $        $Date: 1995/07/03 18:05:26 $
d595 36
d637 2
a638 2
if ($?VERBOSE) echo $CMK_LDRO CHARMC-USR.TMP.o $OPTS_LDRO -L$CHARMLIB $OBJECTFILES $LIBRARIES
$CMK_LDRO CHARMC-USR.TMP.o $OPTS_LDRO -L$CHARMLIB $OBJECTFILES $LIBRARIES
d640 5
a659 1

d666 3
a668 34
set MAINOBJ=$CHARMLIB/lib${LIBCLASS}-defmain.o
if { (egrep '^user_main$' < CHARMC-USR.TMP.nm >& /dev/null) } set MAINOBJ=

# Perform final linkage

switch ($LANGUAGE)
    case "charm"
	set LOADER=($CMK_LD $OPTS_LD -o $OBJECT \
		      CHARMC-USR.TMP.o CHARMC-MOD.TMP.o $MAINOBJ \
        	      $CHARMLIB/lib${LIBCLASS}-core-$EXECMODE.o \
        	      $BAL_OBJ \
        	      $CHARMLIB/lib${LIBCLASS}-cplus-n.o \
        	      $CHARMLIB/libconv-core.o \
        	      $CHARMLIB/libconv-qs-$QUEUE.o \
		      $CMK_LIBS -lm )
        breaksw
    case "charm++"
        set LOADER =($CMK_LDXX $OPTS_LD -o $OBJECT \
		      CHARMC-USR.TMP.o CHARMC-MOD.TMP.o $MAINOBJ \
                      $CHARMLIB/lib${LIBCLASS}-core-$EXECMODE.o \
        	      $BAL_OBJ \
        	      $CHARMLIB/lib${LIBCLASS}-cplus-y.o \
        	      $CHARMLIB/libconv-core.o \
        	      $CHARMLIB/libconv-qs-$QUEUE.o \
		      $CMK_LIBS -lm )
        breaksw
    case "converse"
        set LOADER = ($CMK_LD $OPTS_LD -o $OBJECT \
		      CHARMC-USR.TMP.o CHARMC-MOD.TMP.o $MAINOBJ \
        	      $CHARMLIB/libconv-core.o \
        	      $CHARMLIB/libconv-qs-$QUEUE.o \
		      $CMK_LIBS -lm )
        breaksw
endsw
@


2.30
log
@changed charm_main to user_main
@
text
@d6 2
a7 2
#       $Author: narain $      $Locker: gursoy $              $State: Exp $
#       $Revision: 2.29 $        $Date: 1995/06/29 21:28:13 $
d23 2
a26 21
set OPTS_CPP=()
set OPTS_LDRO=()
set OPTS_CC=()
set OPTS_CXX=()
set OPTS_LD=()
set OPTS_LDXX=()

unset OVERRIDE_CC
unset OVERRIDE_CXX
unset OVERRIDE_LD
unset OVERRIDE_LDXX

set FILES=()
set OBJECTFILES=()
set LIBRARIES=()
set DELETE=()
set COPIES=()
set MAINOBJ=()
unset OBJECT
unset SEQUENTIAL
unset VERBOSE
d28 26
d601 2
a602 2
if ($?VERBOSE) echo $CMK_LDRO CHARMC-USR.TMP.o $BAL_OBJ $OPTS_LDRO -L$CHARMLIB $OBJECTFILES $LIBRARIES
$CMK_LDRO CHARMC-USR.TMP.o $BAL_OBJ $OPTS_LDRO -L$CHARMLIB $OBJECTFILES $LIBRARIES
d636 1
a636 2
#        	      $BAL_OBJ \
        	      $CHARMLIB/lib${LIBCLASS}-ldbvars.o \
d646 1
a646 2
#        	      $BAL_OBJ \
        	      $CHARMLIB/lib${LIBCLASS}-ldbvars.o \
@


2.29
log
@Added ldbvar object, -balance option to specify local ldb object
@
text
@d6 2
a7 2
#       $Author: gursoy $      $Locker:  $              $State: Exp $
#       $Revision: 2.28 $        $Date: 1995/06/22 22:30:13 $
d617 1
a617 1
# Scan user-object for charm_main, if none, set MAINOBJ
d620 1
a620 1
if { (egrep '^charm_main$' < CHARMC-USR.TMP.nm >& /dev/null) } set MAINOBJ=
@


2.28
log
@replaced nm with $CMK_NM
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker: gursoy $              $State: Exp $
#       $Revision: 2.27 $        $Date: 1995/06/22 20:42:20 $
a546 6
if (! -e $CHARMLIB/lib${LIBCLASS}-ldb-$BALANCE.o) then
   echo "charmc : Unknown load balancer $BALANCE"
   (cd $CHARMLIB ; ls -al lib${LIBCLASS}-ldb-*)
   goto failure
endif

d570 18
d594 2
a595 2
if ($?VERBOSE) echo $CMK_LDRO CHARMC-USR.TMP.o $OPTS_LDRO -L$CHARMLIB $OBJECTFILES $LIBRARIES
$CMK_LDRO CHARMC-USR.TMP.o $OPTS_LDRO -L$CHARMLIB $OBJECTFILES $LIBRARIES
d629 2
a630 1
        	      $CHARMLIB/lib${LIBCLASS}-ldb-$BALANCE.o \
d640 2
a641 1
        	      $CHARMLIB/lib${LIBCLASS}-ldb-$BALANCE.o \
@


2.27
log
@*** empty log message ***
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker: jyelon $              $State: Exp $
#       $Revision: 2.26 $        $Date: 1995/06/21 08:49:59 $
d585 1
a585 1
nm CHARMC-USR.TMP.o | csh -fc "$CMK_NM_FILTER" > CHARMC-USR.TMP.nm
@


2.26
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.25 $        $Date: 1995/06/21 08:24:48 $
d473 2
a474 2
        if ( $?VERBOSE ) echo $CMK_LDRO $OBJECT $OBJECTFILES
        $CMK_LDRO $OBJECT $OBJECTFILES
d582 2
a583 2
if ($?VERBOSE) echo "$CMK_LDRO CHARMC-USR.TMP.o $OBJECTFILES -L$CHARMLIB $LIBRARIES"
$CMK_LDRO CHARMC-USR.TMP.o $OBJECTFILES -L$CHARMLIB $LIBRARIES
@


2.25
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.24 $        $Date: 1995/06/21 07:59:04 $
d328 1
a328 1
if ($?OVERRIDE_LD) then
d330 1
a330 1
    set CMK_LDXX = ( $OVERRIDE_LD $CMK_LDXX )
@


2.24
log
@fixed bug, module-list processing now scans libraries too.
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker:  $              $State: Exp $
#       $Revision: 2.23 $        $Date: 1995/06/20 23:19:35 $
d25 2
d28 1
a28 1
set OPTS_CPLUS=()
d30 7
a36 1
set OPTS_CPP=()
d111 1
a111 1
            set OVERRIDE_CPLUS=( $argv[$argindex] )
d120 15
d141 1
a141 1
            set OPTS_CPLUS=( $OPTS_CPLUS $argv[$argindex] )
d150 5
d171 2
a172 2
            set OPTS_CC=( $OPTS_CC "$arg" )
            set OPTS_CPLUS=( $OPTS_CPLUS "$arg" )
d177 2
a178 2
            set OPTS_CC=( $OPTS_CC "$arg" )
            set OPTS_CPLUS=( $OPTS_CPLUS "$arg" )
d182 3
a184 3
            set OPTS_CC=( $OPTS_CC "$arg" )
            set OPTS_CPLUS=( $OPTS_CPLUS "$arg" )
            set OPTS_LD=( $OPTS_LD "$arg" )
d188 4
a191 3
            set OPTS_CC=( $OPTS_CC $arg )
            set OPTS_CPLUS=( $OPTS_CPLUS $arg )
            set OPTS_LD=( $OPTS_LD $arg )
d195 2
a196 2
            set OPTS_CC=( $OPTS_CC $arg )
            set OPTS_CPLUS=( $OPTS_CPLUS $arg )
d204 2
a205 1
            set OPTS_LD=( $OPTS_LD $arg )
d210 5
a214 4
            set OPTS_CC=( $OPTS_CC $arg )
            set OPTS_CPLUS=( $OPTS_CPLUS $arg )
            set OPTS_LD=( $OPTS_LD $arg )
	    set OPTS_CPP=( $OPTS_CPP $arg )
d318 1
a318 1
if ($?OVERRIDE_CPLUS) then
d320 1
a320 1
    set CMK_CXX = ( $OVERRIDE_CPLUS $CMK_CXX )
d399 2
a400 2
      if ($?VERBOSE) echo "$CMK_CXX $OPTS_CPLUS -I$CHARMINC -c $TMP.C"
      $CMK_CXX $OPTS_CPLUS -I$CHARMINC -c $TMP.C
d419 2
a420 2
      if ($?VERBOSE) echo "$CMK_CXX $OPTS_CPLUS -I$CHARMINC -c $BASE.C"
      $CMK_CXX $OPTS_CPLUS -I$CHARMINC -c $BASE.C
d428 2
a429 2
      if ($?VERBOSE) echo "$CMK_CXX $OPTS_CPLUS -I$CHARMINC -c $BASE.cxx"
      $CMK_CXX $OPTS_CPLUS -I$CHARMINC -c $BASE.cxx
d473 2
a474 2
        if ( $?VERBOSE ) echo $CMK_LDRO $OBJECT $OPTS_LD $OBJECTFILES
        $CMK_LDRO $OBJECT $OPTS_LD $OBJECTFILES
d582 2
a583 2
if ($?VERBOSE) echo "$CMK_LDRO CHARMC-USR.TMP.o $OPTS_LD $OBJECTFILES -L$CHARMLIB $LIBRARIES"
$CMK_LDRO CHARMC-USR.TMP.o $OPTS_LD $OBJECTFILES -L$CHARMLIB $LIBRARIES
@


2.23
log
@*** empty log message ***
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker: jyelon $              $State: Exp $
#       $Revision: 2.22 $        $Date: 1995/06/20 23:16:52 $
d442 2
a443 2
        if ( $?VERBOSE ) echo $CMK_LDRO $OBJECT $OBJECTFILES
        $CMK_LDRO $OBJECT $OBJECTFILES
d472 1
a472 1
# Create MODULES.TMP.o
d545 35
a579 1
# Identify the libraries to use
d583 8
a590 7
        set OBJECTFILES = ($OBJECTFILES \
        	$CHARMLIB/lib${LIBCLASS}-core-$EXECMODE.o \
        	$CHARMLIB/lib${LIBCLASS}-ldb-$BALANCE.o \
        	$CHARMLIB/lib${LIBCLASS}-cplus-n.o \
        	$CHARMLIB/libconv-core.o \
        	$CHARMLIB/libconv-qs-$QUEUE.o )
	set LOADER=($CMK_LD)
d593 8
a600 8
        if ($?MAINOBJ == 0) set MAINOBJ=$CHARMLIB/lib${LIBCLASS}-defmain.o
        set OBJECTFILES = ($OBJECTFILES \
        	$CHARMLIB/lib${LIBCLASS}-core-$EXECMODE.o \
        	$CHARMLIB/lib${LIBCLASS}-ldb-$BALANCE.o \
        	$CHARMLIB/lib${LIBCLASS}-cplus-y.o \
        	$CHARMLIB/libconv-core.o \
        	$CHARMLIB/libconv-qs-$QUEUE.o )
	set LOADER=($CMK_LDXX)
d603 5
a607 4
        set OBJECTFILES = ($OBJECTFILES \
        	$CHARMLIB/libconv-core.o \
        	$CHARMLIB/libconv-qs-$QUEUE.o )
	set LOADER=($CMK_LD)
d611 3
a613 1
set LIBRARIES = ($LIBRARIES $CMK_LIBS -lm)
d615 1
a615 8
# Perform preliminary Linkage of user's object files and charm libraries.

echo "linking $OBJECT with -language $LANGUAGE"

set DELETE=(PRE.TMP.o $DELETE)
if ($?VERBOSE) echo "$CMK_LDRO PRE.TMP.o $OBJECTFILES -L$CHARMLIB $LIBRARIES"
$CMK_LDRO PRE.TMP.o $OBJECTFILES -L$CHARMLIB $LIBRARIES
if ($status) goto failure
a620 29

# Create MODULES.TMP.o

if ($?VERBOSE) echo "Creating MODULES.TMP.c"
set DELETE=(MODULES.TMP.nm MODULES.TMP.dat MODULES.TMP.c MODULES.TMP.o $DELETE)
rm -f MODULES.TMP.nm MODULES.TMP.dat MODULES.TMP.c MODULES.TMP.o
$CMK_NM PRE.TMP.o > MODULES.TMP.nm
csh -fc "$CMK_NM_FILTER" < MODULES.TMP.nm | awk '(/^_CK_.*_init$/&&(\!/^_CK_.*_struct_init$/)) { print substr($1, 5, length($1)-9); }' | sort | uniq > MODULES.TMP.dat
echo 'Modules: '`cat MODULES.TMP.dat`
awk '{print "extern void _CK_"$1"_init();";}' < MODULES.TMP.dat >> MODULES.TMP.c
echo '_CK_module_init_fn()' >> MODULES.TMP.c
echo '{' >> MODULES.TMP.c
awk '{print "_CK_"$1"_init();";}' < MODULES.TMP.dat >> MODULES.TMP.c
echo '}' >> MODULES.TMP.c

if ($?VERBOSE) echo $CMK_CC $OPTS_CC -c MODULES.TMP.c
$CMK_CC $OPTS_CC -c MODULES.TMP.c
if ($status) goto failure

# Decide whether or not to add defmain.

set MAINOBJ=$CHARMLIB/lib${LIBCLASS}-defmain.o
if { (egrep '^charm_main$' MODULES.TMP.nm >& /dev/null) } set MAINOBJ=

# Perform final linkage

if ($?VERBOSE) echo $LOADER $OPTS_LD -o $OBJECT PRE.TMP.o MODULES.TMP.o $MAINOBJ
$LOADER $OPTS_LD -o $OBJECT PRE.TMP.o MODULES.TMP.o $MAINOBJ
if ($status) goto failure
@


2.22
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.21 $        $Date: 1995/06/20 23:11:53 $
d611 2
a612 5
if (! { (egrep '^charm_main$' MODULES.TMP.nm >& /dev/null) }) then
	set MAINOBJ=($CHARMLIB/lib${LIBCLASS}-defmain.o $OBJECTFILES)
else
	set MAINOBJ=
endif
@


2.21
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.20 $        $Date: 1995/06/20 22:56:55 $
a607 1
set OBJECTFILES = ($OBJECTFILES MODULES.TMP.o)
d612 3
a614 1
	set OBJECTFILES=($CHARMLIB/lib${LIBCLASS}-defmain.o $OBJECTFILES)
d619 2
a620 2
if ($?VERBOSE) echo $LOADER $OPTS_LD -o $OBJECT $OBJECTFILES -L$CHARMLIB $LIBRARIES
$LOADER $OPTS_LD -o $OBJECT $OBJECTFILES -L$CHARMLIB $LIBRARIES
@


2.20
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.19 $        $Date: 1995/06/20 20:10:58 $
a544 6
# Decide whether or not to add defmain.

if (! { (grep charm_main MODULES.TMP.nm >& /dev/null) }) then
	set MAINOBJ=$CHARMLIB/lib${LIBCLASS}-defmain.o
endif

d554 1
a554 2
        	$CHARMLIB/libconv-qs-$QUEUE.o \
		$MAINOBJ )
d564 1
a564 2
        	$CHARMLIB/libconv-qs-$QUEUE.o \
		$MAINOBJ )
d577 14
d596 1
a596 1
$CMK_NM $OBJECTFILES > MODULES.TMP.nm
d610 1
a610 1
# Perform the Linkage
d612 5
a616 1
echo "linking $OBJECT with -language $LANGUAGE"
d618 1
a618 1
if ($?VERBOSE) echo "$LOADER $OPTS_LD -o $OBJECT $OBJECTFILES -L$CHARMLIB $LIBRARIES"
a619 1

a620 5

if (-e $CHARMBIN/conv-host) then
    /bin/rm -f conv-host
    /bin/ln -s $CHARMBIN/conv-host conv-host
endif
@


2.19
log
@*** empty log message ***
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker:  $              $State: Exp $
#       $Revision: 2.18 $        $Date: 1995/06/20 19:19:42 $
a544 19
# Create MODULES.TMP.o

if ($?VERBOSE) echo "Creating MODULES.TMP.c"
set DELETE=(MODULES.TMP.nm MODULES.TMP.dat MODULES.TMP.c MODULES.TMP.o $DELETE)
rm -f MODULES.TMP.nm MODULES.TMP.dat MODULES.TMP.c MODULES.TMP.o
$CMK_NM $OBJECTFILES > MODULES.TMP.nm
csh -fc "$CMK_NM_FILTER" < MODULES.TMP.nm | awk '(/^_CK_.*_init$/&&(\!/^_CK_.*_struct_init$/)) { print substr($1, 5, length($1)-9); }' | sort | uniq > MODULES.TMP.dat
echo 'Modules: '`cat MODULES.TMP.dat`
awk '{print "extern void _CK_"$1"_init();";}' < MODULES.TMP.dat >> MODULES.TMP.c
echo '_CK_module_init_fn()' >> MODULES.TMP.c
echo '{' >> MODULES.TMP.c
awk '{print "_CK_"$1"_init();";}' < MODULES.TMP.dat >> MODULES.TMP.c
echo '}' >> MODULES.TMP.c

if ($?VERBOSE) echo $CMK_CC $OPTS_CC -c MODULES.TMP.c
$CMK_CC $OPTS_CC -c MODULES.TMP.c
if ($status) goto failure
set OBJECTFILES = ($OBJECTFILES MODULES.TMP.o)

d584 19
@


2.18
log
@*** empty log message ***
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker: jyelon $              $State: Exp $
#       $Revision: 2.17 $        $Date: 1995/06/20 19:11:55 $
d34 1
d548 4
a551 3
set DELETE=(MODULES.TMP.dat MODULES.TMP.c MODULES.TMP.o $DELETE)
rm -f MODULES.TMP.DAT MODULES.TMP.c MODULES.TMP.o
$CMK_NM $OBJECTFILES | csh -fc "$CMK_NM_FILTER" | awk '(/^_CK_.*_init$/&&(\!/^_CK_.*_struct_init$/)) { print substr($1, 5, length($1)-9); }' | sort | uniq > MODULES.TMP.dat
d564 6
a573 1
        if ($?MAINOBJ == 0) set MAINOBJ=$CHARMLIB/lib${LIBCLASS}-defmain.o
@


2.17
log
@automatic module.list code speeded up.
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker:  $              $State: Exp $
#       $Revision: 2.16 $        $Date: 1995/06/20 18:34:29 $
a310 3
	set LIBCPLUS=cplus-n
	set LOADER=($CMK_LD)
        breaksw
d312 1
a312 2
        set LIBCPLUS=cplus-y
	set LOADER=($CMK_LDXX)
d564 30
a593 6
set OBJECTFILES = ($OBJECTFILES \
	$CHARMLIB/lib${LIBCLASS}-core-$EXECMODE.o \
	$CHARMLIB/lib${LIBCLASS}-ldb-$BALANCE.o \
	$CHARMLIB/lib${LIBCLASS}-$LIBCPLUS.o \
	$CHARMLIB/libconv-core.o \
	$CHARMLIB/libconv-qs-$QUEUE.o )
a595 4

if ($?MAINOBJ == 0) set MAINOBJ=$CHARMLIB/lib${LIBCLASS}-defmain.o

set OBJECTFILES=($MAINOBJ $OBJECTFILES)
@


2.16
log
@*** empty log message ***
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker: jyelon $              $State: Exp $
#       $Revision: 2.15 $        $Date: 1995/06/19 23:03:40 $
d550 6
a555 9
set DELETE=(MODULES.TMP.d1 MODULES.TMP.d2 MODULES.TMP.c MODULES.TMP.o $DELETE)
rm -f MODULES.TMP.d1 MODULES.TMP.d2 MODULES.TMP.c MODULES.TMP.o
touch MODULES.TMP.d1 MODULES.TMP.c
foreach x ($OBJECTFILES)
    csh -fc "$CMK_NM $x|$CMK_NM_FILTER|egrep '^_CK_.*_init"'$'"'|egrep -v '^_CK_.*_struct_init"'$'"'|sed -e 's@@_CK_@@@@' -e 's@@_init"'$'"@@@@' >> MODULES.TMP.d1"
end
sort < MODULES.TMP.d1 | uniq > MODULES.TMP.d2
echo 'Modules: '`cat MODULES.TMP.d2`
awk '{print "extern void _CK_"$1"_init();";}' < MODULES.TMP.d2 >> MODULES.TMP.c
d558 1
a558 1
awk '{print "_CK_"$1"_init();";}' < MODULES.TMP.d2 >> MODULES.TMP.c
d561 1
@


2.15
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.14 $        $Date: 1995/06/19 23:01:34 $
d550 3
a552 3
set DELETE=(MODULES.TMP.dat MODULES.TMP.c MODULES.TMP.o $DELETE)
rm -f MODULES.TMP.dat MODULES.TMP.c MODULES.TMP.o
touch MODULES.TMP.dat MODULES.TMP.c
d554 1
a554 1
    csh -fc "$CMK_NM $x|$CMK_NM_FILTER|egrep '^_CK_.*_init"'$'"'|egrep -v '^_CK_.*_struct_init"'$'"'|sed -e 's@@_CK_@@@@' -e 's@@_init"'$'"@@@@' >> MODULES.TMP.dat"
d556 3
a558 2
echo 'Modules: '`cat MODULES.TMP.dat`
awk '{print "extern void _CK_"$1"_init();";}' < MODULES.TMP.dat >> MODULES.TMP.c
d561 1
a561 1
awk '{print "_CK_"$1"_init();";}' < MODULES.TMP.dat >> MODULES.TMP.c
@


2.14
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.12 $        $Date: 1995/06/15 18:14:59 $
d475 1
a475 1
# Create module-init.TMP.o
@


2.13
log
@module.list now handled automagically.
@
text
@d202 1
a202 1
set ORIGDIR=$cwd
d226 1
a226 1
    set CHARMBIN=$cwd
d252 1
a252 1
	set CHARMBIN=$cwd
d261 1
a261 1
    set CHARMLIB=$cwd
d265 1
a265 1
    set CHARMINC=$cwd
d550 1
d554 1
a554 1
    eval "$CMK_NM $x|$CMK_NM_FILTER"|egrep '^_CK_.*_init$' >> MODULES.TMP.dat
d556 2
a557 1
awk '{print "extern void "$1"();";}' < MODULES.TMP.dat >> MODULES.TMP.c
d560 1
a560 1
awk '{print $1"();";}" < MODULES.TMP.dat >> MODULES.TMP.c
a565 1
set DELETE=(MODULES.TMP.dat MODULES.TMP.c MODULES.TMP.o $DELETE)
d641 1
a642 1
    rm -f core $DELETE
@


2.12
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.11 $        $Date: 1995/06/14 23:16:28 $
a139 10
	case "-modules":
	    set MOD_LIST = $argv[$argindex]
	    @@ argindex = $argindex + 1
	    breaksw

	case "-module_file":
	    set MOD_FILE = $argv[$argindex]
	    @@ argindex = $argindex + 1
	    breaksw

d548 1
a548 1
# Create module-init.TMP.o, if needed.
d550 15
a564 33
if ( $?MOD_FILE ) then
  if (! -e $MOD_FILE) then
    echo 'No such module file '$MOD_FILE
    goto failure
  endif
  if ( $?MOD_LIST ) then
    echo 'You specified both -modules and -module_list, this is illegal.'
    goto failure
  endif
  set MOD_LIST=(`cat $MOD_FILE`)
endif

if (( $?MOD_LIST == 0) && (-e module.list)) then
    set MOD_LIST=(`cat module.list`)
endif

if ( $?MOD_LIST ) then
    rm -f module-init.TMP.c module-init.TMP.o
    echo Modules: $MOD_LIST
    echo " " > module-init.TMP.c
    foreach i ( $MOD_LIST)
      echo 'extern void _CK_'$i'_init();' >> module-init.TMP.c
    end
    echo '_CK_module_init_fn()' >> module-init.TMP.c
      echo '{' >> module-init.TMP.c
    foreach i ( $MOD_LIST)
      echo '      _CK_'$i'_init();' >> module-init.TMP.c
    end
    echo '}' >> module-init.TMP.c
    $CMK_CC $OPTS_CC -c module-init.TMP.c
    if ($status) goto failure
    set OBJECTFILES = ($OBJECTFILES module-init.TMP.o)
endif
@


2.11
log
@no -cwd
@
text
@d7 1
a7 1
#       $Revision: 2.10 $        $Date: 1995/06/14 22:59:44 $
d25 10
a34 8
set OPTS_CC=
set OPTS_CPLUS=
set OPTS_LD=
set OPTS_CPP=
set FILES=
set OBJECTFILES=
set LIBRARIES=
set DELETE=
d135 5
d459 1
a459 1
    goto success
d470 1
a470 1
    goto success
d496 1
a496 1
    goto success
d623 17
d649 1
d654 1
d660 1
@


2.10
log
@*** empty log message ***
@
text
@d6 2
a7 2
#       $Author: sanjeev $      $Locker: jyelon $              $State: Exp $
#       $Revision: 2.9 $        $Date: 1995/06/14 22:16:32 $
a54 6
            breaksw

        case "-cwd"
            set CHARMBIN=.
            set CHARMLIB=.
            set CHARMINC=.
@


2.9
log
@Charm++ preprocessor is "g++ -E", not cpp
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker: sanjeev $              $State: Exp $
#       $Revision: 2.8 $        $Date: 1995/06/13 16:59:58 $
a451 4
            if (! -e $OBJECT:r.$FILES:e) then
                if ($?VERBOSE) echo ln -s $FILES $OBJECT:r.$FILES:e
                ln -s $FILES $OBJECT:r.$FILES:e
            endif
@


2.8
log
@*** empty log message ***
@
text
@d6 2
a7 2
#       $Author: jyelon $      $Locker: jyelon $              $State: Exp $
#       $Revision: 2.7 $        $Date: 1995/06/13 16:20:38 $
d373 2
a374 2
      if ($?VERBOSE) echo "$CMK_CPP $OPTS_CPP -I$CHARMINC $TMP.P.c > $TMP.cpp"
      $CMK_CPP $OPTS_CPP -I$CHARMINC $TMP.P.c > $TMP.cpp
@


2.7
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.6 $        $Date: 1995/06/13 12:02:36 $
a31 1
set CONVERSE=
d33 2
a34 1
set SEQUENTIAL=
d64 1
a64 1
	    set SEQUENTIAL=1
d93 1
a93 1
            set VERBOSE=1
d235 1
a235 1
    set CHARMBIN=`pwd`
d261 1
a261 1
	set CHARMBIN=`pwd`
d268 8
a275 2
if ($?CHARMLIB == 0) set CHARMLIB=$CHARMBIN/../lib
if ($?CHARMINC == 0) set CHARMINC=$CHARMBIN/../include
d447 9
a455 7
    if (($#FILES == 1)&&($#OBJECTFILES == 1)&&($OBJECT != $OBJECTFILES)) then
        if ($?VERBOSE) echo mv $OBJECTFILES $OBJECT
        mv $OBJECTFILES $OBJECT
        if ($status) goto failure
        if (! -e $OBJECT:r.$FILES:e) then
            if ($?VERBOSE) echo ln -s $FILES $OBJECT:r.$FILES:e
            ln -s $FILES $OBJECT:r.$FILES:e
d608 1
a608 1
if ($?MAINOBJ == 0) set MAINOBJ=$CHARMLIB/lib${LIBCLASS}-defmain
@


2.6
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.5 $        $Date: 1995/06/13 11:52:31 $
d498 1
a498 1
if (-e $CHARMLIB/libckn-core-$EXECMODE.a) then
d501 1
a501 1
   if (-e $CHARMLIB/libckd-core-$EXECMODE.a) then
d514 1
a514 1
if (! -e $CHARMLIB/libconv-qs-$QUEUE.a) then
d524 1
a524 1
if (! -e $CHARMLIB/lib${LIBCLASS}-ldb-$BALANCE.a) then
d591 6
a596 7
set LIBRARIES = ($LIBRARIES \
	-l${LIBCLASS}-core-$EXECMODE \
	-l${LIBCLASS}-ldb-$BALANCE \
	-l${LIBCLASS}-$LIBCPLUS \
	-lconv-core \
	-lconv-qs-$QUEUE \
	$CMK_LIBS -lm)
d598 5
a602 5
if ($?MAINOBJ) then
   set OBJECTFILES=($MAINOBJ $OBJECTFILES)
else
   set LIBRARIES=(-l${LIBCLASS}-defmain $LIBRARIES)
endif
@


2.5
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.4 $        $Date: 1995/06/13 11:29:16 $
d374 2
a375 2
      if ($?VERBOSE) echo "$CMK_CXX $OPTS_CPLUS -I$CHARMINC $TMP.C"
      $CMK_CXX $OPTS_CPLUS -I$CHARMINC $TMP.C
d394 2
a395 2
      if ($?VERBOSE) echo "$CMK_CXX $OPTS_CPLUS -I$CHARMINC $BASE.C"
      $CMK_CXX $OPTS_CPLUS -I$CHARMINC $BASE.C
d403 2
a404 2
      if ($?VERBOSE) echo "$CMK_CXX $OPTS_CPLUS -I$CHARMINC $BASE.cxx"
      $CMK_CXX $OPTS_CPLUS -I$CHARMINC $BASE.cxx
@


2.4
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.3 $        $Date: 1995/06/13 07:47:08 $
d396 9
@


2.3
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.2 $        $Date: 1995/06/13 07:20:21 $
d131 1
a131 1
            set NOLINK=1
a337 1
  if ($?OBJECT == 0) set OBJECT=$BASE:t
d354 1
a354 1
      if ($?NOLINK) then
d377 1
a377 1
      if ($?NOLINK) then
d388 2
a389 2
      if ($?NOLINK == 0) then
	set DELETE=( $DELETE $BASE.o )
d397 2
a398 2
      if ($?NOLINK == 0) then
        set DELETE=( $DELETE $BASE.o )
a416 1

d427 1
a427 1
if ($?NOLINK) goto success
d477 7
@


2.2
log
@*** empty log message ***
@
text
@d7 1
a7 1
#       $Revision: 2.1 $        $Date: 1995/06/13 06:46:34 $
a124 4
        case "-purify"
            set PURIFY = yes
            breaksw

a420 36
# Add module-init.TMP.o to OBJECTFILES if a MOD_LIST or MOD_FILE is specified.
#
##############################################################################

if ( $?MOD_FILE ) then
  if (! -e $MOD_FILE) then
    echo 'No such module file '$MOD_FILE
    goto failure
  endif
  if ( $?MOD_LIST ) then
    echo 'You specified both -modules and -module_list, this is illegal.'
    goto failure
  endif
  set MOD_LIST=(`cat $MOD_FILE`)
endif

if ( $?MOD_LIST ) then
    rm -f module-init.TMP.c module-init.TMP.o
    echo Modules: $MOD_LIST
    echo " " > module-init.TMP.c
    foreach i ( $MOD_LIST)
      echo 'extern void _CK_'$i'_init();' >> module-init.TMP.c
    end
    echo '_CK_module_init_fn()' >> module-init.TMP.c
      echo '{' >> module-init.TMP.c
    foreach i ( $MOD_LIST)
      echo '      _CK_'$i'_init();' >> module-init.TMP.c
    end
    echo '}' >> module-init.TMP.c
    $CMK_CC $OPTS_CC -c module-init.TMP.c
    if ($status) goto failure
    set OBJECTFILES = ($OBJECTFILES module-init.TMP.o)
endif

##############################################################################
#
d473 2
d480 2
d496 2
d501 1
a501 2
   echo "No queue strategy $QUEUE"
   echo "current choices are:
d506 2
d516 1
a516 1
# Check that execmode is compatible with queue and balance
d531 2
d539 37
a575 1
echo "linking $OBJECT with -language $LANGUAGE"
d590 4
@


2.1
log
@now smart enough to create libraries and compound .o files.
@
text
@d6 2
a7 2
#       $Author: brunner $      $Locker: jyelon $              $State: Exp $
#       $Revision: 2.0 $        $Date: 1995/06/02 17:24:13 $
d34 1
d63 4
d282 5
@


2.0
log
@Reorganized directory structure
@
text
@d6 2
a7 2
#       $Author: narain $      $Locker:  $              $State: Exp $
#       $Revision: 1.13 $        $Date: 1995/04/25 20:57:09 $
d18 1
d33 1
a37 58
# The following section attempts to locate charm.
#
##############################################################################

set ORIGDIR=$cwd

# Try to find charm root by looking in directory where charmc is

if ($?CHARMROOT == 0) then
    set SCRIPT=$0
    if ($SCRIPT:h != $SCRIPT:t) then
        cd $SCRIPT:h
        set SCRIPT=$SCRIPT:t
    else
        foreach dir ($path)
            if (-x $dir/$SCRIPT && ! -d $dir/$SCRIPT) then
                cd $dir
                break
            endif
        end
    endif
    while (x`find $SCRIPT -type l -print` == x$SCRIPT)
        set SCRIPT=`ls -al ./$SCRIPT:t | sed -e "s@@.*-> @@@@"`
        if ($SCRIPT:h != $SCRIPT:t) then
            cd $SCRIPT:h
            set SCRIPT=$SCRIPT:t
        endif
    end
    cd ..
    set CHARMROOT=`pwd`
    if (! -e $CHARMROOT/include/conv-mach.csh) unset CHARMROOT
    if (! -e $CHARMROOT/lib/libckn-core-notrace.a) unset CHARMROOT
endif

# Give an error message

if ($?CHARMROOT == 0) then
    echo ''
    echo 'Error - cannot find the charm directories.'
    echo ''
    echo 'Normally, charmc and the other charm scripts automatically'
    echo 'locate the charm directory, using the following strategy:'
    echo ''
    echo '  Step 1. It looks in the directory specified in $CHARMROOT.'
    echo ''
    echo '  Step 2. It looks in the directory from which charmc was run.'
    echo ''
    echo '  Step 3. It looks in every directory in your $PATH'
    echo ''
    echo 'If it searches all these places, and doesnt find the charm'
    echo 'files, it will give up.'
    echo ''
    goto failure
    endif
endif

##############################################################################
#
d56 6
d206 1
a206 1
# Check for valid choice of MACHTYPE, and change CHARMROOT if necessary.
d210 47
d258 3
a260 2
    if (-d $CHARMROOT/$MACHTYPE) then
	set CHARMROOT=$CHARMROOT/$MACHTYPE
d262 2
a263 6
       if (-d $CHARMROOT/../$MACHTYPE) then
           set CHARMROOT=$CHARMROOT/../$MACHTYPE
       else
           echo 'error - there is no installed charm for "'$MACHTYPE'"'
           goto failure
       endif
d267 3
d276 1
a276 1
source $CHARMROOT/include/conv-mach.csh
a320 66
# Check for valid choice of EXECMODE
# Check for valid choice of QUEUE
# Check for valid choice of BALANCE
#
##############################################################################

if ($?EXECMODE == 0) set EXECMODE=notrace

if (-e $CHARMROOT/lib/libckn-core-$EXECMODE.a) then
   set LIBCLASS=ckn
else
   if (-e $CHARMROOT/lib/libckd-core-$EXECMODE.a) then
      set LIBCLASS=ckd
   else
      echo "charmc : No such execmode $EXECMODE"
      (cd $CHARMROOT/lib ; ls -al libck?-core-*)
      goto failure
   endif
endif

if ($?QUEUE == 0) set QUEUE=fifo

if (! -e $CHARMROOT/lib/libconv-qs-$QUEUE.a) then
   echo "No queue strategy $QUEUE"
   echo "current choices are:
   (cd $CHARMROOT/lib ; ls -al libconv-qs-*)
   goto failure
endif

if ($?BALANCE == 0) set BALANCE=rand

if (! -e $CHARMROOT/lib/lib${LIBCLASS}-ldb-$BALANCE.a) then
   echo "charmc : Unknown load balancer $BALANCE"
   (cd $CHARMROOT/lib ; ls -al lib${LIBCLASS}-ldb-*)
   goto failure
endif

##############################################################################
#
# Check for compatibility among BALANCE, QUEUE, and EXECMODE
#
##############################################################################

# Check that execmode is compatible with queue and balance

if ($EXECMODE == replay) then
    if ($?QUEUE == 0) set QUEUE=replay
    if ($?BALANCE == 0) set BALANCE=replay
    if ($QUEUE != replay) then
        echo "Ignoring -queue $QUEUE, incompatible with -execmode replay"
    endif
    if ($BALANCE != replay) then
        echo "Ignoring -balance $BALANCE, incompatible with -execmode replay"
    endif
    set QUEUE=replay
    set BALANCE=replay
endif

if ( $BALANCE == btok ) then
    if ( ($QUEUE != bfifo) && ($QUEUE != bstack) ) then
        echo "WARNING : btok strategy needs bfifo or bstack queueing strategy"
    endif
endif

##############################################################################
#
d334 1
a334 1
      echo "compiling $FILE."
d339 6
a344 6
      if ($?VERBOSE) echo "$CMK_CPP $OPTS_CPP -I$CHARMROOT/include $BASE.p > $TMP.cpp"
      $CMK_CPP $OPTS_CPP -I$CHARMROOT/include $BASE.p > $TMP.cpp
      if ($?VERBOSE) echo "$CHARMROOT/bin/charmfilter < $TMP.cpp | $CMK_M4 > $TMP.space"
      $CHARMROOT/bin/charmfilter < $TMP.cpp | $CMK_M4 > $TMP.space
      if ($?VERBOSE) echo "$CHARMROOT/bin/charmxlat $TMP.space $TMP.c"
      $CHARMROOT/bin/charmxlat $TMP.space $TMP.c
d346 2
a347 2
      if ($?VERBOSE) echo "$CMK_CC $OPTS_CC -I$CHARMROOT/include -c $TMP.c -o $TMP.o"
      $CMK_CC $OPTS_CC -I$CHARMROOT/include -c $TMP.c -o $TMP.o
d362 6
a367 6
      if ($?VERBOSE) echo "$CMK_CPP $OPTS_CPP -I$CHARMROOT/include $TMP.P.c > $TMP.cpp"
      $CMK_CPP $OPTS_CPP -I$CHARMROOT/include $TMP.P.c > $TMP.cpp
      if ($?VERBOSE) echo "$CHARMROOT/bin/charmfilter++ $TMP.cpp | $CMK_M4 > $TMP.space"
      $CHARMROOT/bin/charmfilter++ $TMP.cpp | $CMK_M4 > $TMP.space
      if ($?VERBOSE) echo "$CHARMROOT/bin/charmxlat++ $TMP.space $TMP.C"
      $CHARMROOT/bin/charmxlat++ $TMP.space $TMP.C
d369 2
a370 2
      if ($?VERBOSE) echo "$CMK_CXX $OPTS_CPLUS -I$CHARMROOT/include $TMP.C -o $TMP.o"
      $CMK_CXX $OPTS_CPLUS -I$CHARMROOT/include $TMP.C -o $TMP.o
d380 2
a381 2
      if ($?VERBOSE) echo "$CMK_CC $OPTS_CC -I$CHARMROOT/include -c $BASE.c -o $BASE.o"
      $CMK_CC $OPTS_CC -I$CHARMROOT/include -c $BASE.c -o $BASE.o
d384 2
a385 3
        if ($?VERBOSE) echo "/bin/mv $BASE.o $TMP.o"
        /bin/mv $BASE.o $TMP.o
        set OBJECTFILES=( $OBJECTFILES $TMP.o )
d389 2
a390 2
      if ($?VERBOSE) echo "$CMK_CXX $OPTS_CPLUS -I$CHARMROOT/include $BASE.c -o $BASE.o"
      $CMK_CXX $OPTS_CPLUS -I$CHARMROOT/include $BASE.C -o $BASE.o
d393 2
a394 3
        if ($?VERBOSE) echo "/bin/mv $BASE.o $TMP.o"
        /bin/mv $BASE.o $TMP.o
        set OBJECTFILES=( $OBJECTFILES $TMP.o )
d415 1
a415 1
# Create module_init_fn.o
d419 1
a419 5
if ($?NOLINK) goto success

if (-e module-init-fn.c) mv module-init-fn.c module-init-fn.bak

if (( $?MOD_LIST == 0) && ( $?MOD_FILE )) then
d424 4
a430 4
if (( $?MOD_LIST == 0) && ( -e module.list )) then
  set MOD_LIST=(`cat module.list`)
endif

d432 1
d434 1
a434 1
    echo " " > module-init-fn.c
d436 1
a436 1
      echo 'extern void _CK_'$i'_init();' >> module-init-fn.c
d438 2
a439 2
    echo '_CK_module_init_fn()' >> module-init-fn.c
      echo '{' >> module-init-fn.c
d441 1
a441 1
      echo '      _CK_'$i'_init();' >> module-init-fn.c
d443 4
a446 5
    echo '}' >> module-init-fn.c
    $CMK_CC $OPTS_CC -c module-init-fn.c
    set OBJECTFILES = ($OBJECTFILES module-init-fn.o)
else
    echo 'Note: no module list specified.'
d451 52
a502 1
# Link
d506 53
a558 1
link:
d576 3
a578 2
if ($?VERBOSE) echo "$LOADER $OPTS_LD -o $OBJECT $OBJECTFILES -L$CHARMROOT/lib $LIBRARIES"
$LOADER $OPTS_LD -o $OBJECT $OBJECTFILES -L$CHARMROOT/lib $LIBRARIES
d581 1
a581 1
if (-e $CHARMROOT/bin/conv-host) then
d583 1
a583 1
    /bin/ln -s $CHARMROOT/bin/conv-host conv-host
a593 1

d612 1
@
