#!/bin/csh

# -----------------------------------------------------------------------------
# Build debugging versions of Sparky on Unix and Linux.  Distribution
# versions are made with the make-sparky script.
#
# Invokes make in Sparky code directory with paths and compiler flags
# appropriate for specific machines.  
#

set HOST		= `hostname`

# -----------------------------------------------------------------------------
# Default paths and compiler options
#
set SPARKY		= /usr/local/src/sparky/code
set PYTHON_PREFIX	= /usr/local
set PYTHON_VERSION	= python2.1
set TK_PREFIX		= /usr/local
set TK_VERSION		= tk8.3
set TCL_VERSION		= tcl8.3
set CXX			= g++
set CXXFLAGS		= "-gstabs+ -Wall -ansi -pedantic"
set CC			= gcc
set LDFLAGS		=
set EXTRALIBS		=
set CXX_RULE_PREFIX	= $SPARKY/c++/
set SPARKY_SCRIPT	= sparky

# -----------------------------------------------------------------------------
# DEC Alpha, Digital Unix 5.1, using g++
#
if ($HOST == feyerabend.cgl.ucsf.edu) then

    set PLATFORM	= /usr/local/src/sparky/platforms/dec5
    set SPARKY_OBJ	= $PLATFORM/sparky-obj
    set SPARKY_INSTALL	= $PLATFORM/sparky-install
    set PYTHON_PREFIX	= $PLATFORM/python-2.1.1
    set TK_PREFIX	= $PLATFORM/tcltk-8.3.4
#    set CXX		= cxx
#    set CC		= cc
# Python header file uses non standard long long.
#    set NOWARN		= "-msg_disable nostdlonglong"
#    set NOWARN		= 
# Need -nopure_cname to get fdopen() and fileno() in stdio.h.
# This is a bug in cxx stdio.h header file.
#    set CXXFLAGS	= "-std strict_ansi -nopure_cname $NOWARN"

# -----------------------------------------------------------------------------
# DEC Alpha, Digital Unix 5.0, using g++ (2.95.2)
#
else if ($HOST == heidegger.cgl.ucsf.edu) then

    set PLATFORM	= /usr/local/src/sparky/platforms/dec5
    set SPARKY_OBJ	= $PLATFORM/sparky-obj-gcc
    set SPARKY_INSTALL	= /usr/heidegger/sparky
    set PYTHON_PREFIX	= $PLATFORM/python-2.1.1
    set TK_PREFIX	= $PLATFORM/tcltk-8.3.4

# -----------------------------------------------------------------------------
# DEC Alpha, Digital Unix 5.1, using DEC compilers
#
else if ($HOST == adenine.cgl.ucsf.edu) then

    set PLATFORM	= /usr/local/src/sparky/platforms/dec5
    set SPARKY_OBJ	= $PLATFORM/sparky-obj-cxx
    set SPARKY_INSTALL	= /usr/local/sparky
    set PYTHON_PREFIX	= $PLATFORM/python-2.1.1
    set TK_PREFIX	= $PLATFORM/tcltk-8.3.4
    set CXX		= cxx
    set CC		= cc
# Need -nopure_cname to get fdopen() and fileno() in stdio.h.
# This is a bug in cxx stdio.h header file.
    set CXXFLAGS	= "-std strict_ansi -nopure_cname"
#    set EXTRALIBS	= -lpthread

# -----------------------------------------------------------------------------
# SGI IRIX 6.5, used for distribution to on site machines
#
else if ($HOST == spinoza.cgl.ucsf.edu || $HOST == larson.cgl.ucsf.edu) then

    set PLATFORM	= /usr/local/src/sparky/platforms/sgi65
    set SPARKY_OBJ	= $PLATFORM/sparky-obj
    set SPARKY_INSTALL	= /usr/local/sparky
    set PYTHON_PREFIX	= $PLATFORM/python-2.1.1
    set TK_PREFIX	= $PLATFORM/tcltk-8.3.4
    set CXX		= CC
# Warnings to suppress.  1209 in my code.  The rest are in system headers
# 1209 = condition expression is constant
# 1424 = unused template argument
# 3201 = unused argument
# 1174 = variable declared but never referenced
# 1110 = statement not reachable
    set NOWARN		= "-DEBUG:suppress=1209,1424,3201,1174,1110"
    set CXXFLAGS	=  -n32 -LANG:std -g -DEBUG:fullwarn=ON $NOWARN"
    set CC		= cc
    set LDFLAGS		= "-n32 -LANG:std"
    set SPARKY_SCRIPT	= sparky-debug

else

    echo You need to set paths and compiler options for host $HOST
    echo in the make-sparky script.
    exit 1

endif

# -----------------------------------------------------------------------------
# Now invoke make.
#

# turn on command echo
set echo		= 1

make -f $SPARKY/Makefile -k \
	"SPARKY=$SPARKY" \
	"SPARKY_OBJ=$SPARKY_OBJ" \
	"SPARKY_INSTALL=$SPARKY_INSTALL" \
	"PYTHON_PREFIX=$PYTHON_PREFIX" \
        "PYTHON_VERSION=$PYTHON_VERSION" \
        "TK_PREFIX=$TK_PREFIX" \
	"TK_VERSION=$TK_VERSION" \
        "TCL_VERSION=$TCL_VERSION" \
	"CXX=$CXX" \
	"CXXFLAGS=$CXXFLAGS" \
	"CC=$CC" \
	"LDFLAGS=$LDFLAGS" \
	"EXTRALIBS=$EXTRALIBS" \
	"CXX_RULE_PREFIX=$CXX_RULE_PREFIX" \
	"SPARKY_SCRIPT=$SPARKY_SCRIPT" \
	$*
