#!/bin/sh
############################################################################
#
#  gemenv.sh 
#
#  This source file sets up the N-AWIPS environment.
#
##
# Log:
# T. Piper/SAIC		01/08	Created from .profile
# T. Piper/SAIC         11/07   HP only:  Added -lXp and -lXext to XLIBS
# T. Piper/SAIC         11/07   All:  Moved $OS_BIN to the head of $PATH
# S. Jacobs/NCEP        12/07   Added options for GCC4/GFORTRAN
# T. Piper/SAIC         01/08   Removed $OS_LIB/<>.a environment variables
# T. Piper/SAIC         01/08   Removed GEMEXE and GEMOLB
# T. Piper/SAIC         03/08   Modified NA_OS to include word size on Linux
############################################################################
#
#  IMPORTANT:  The system environment variable NAWIPS must be
#		set in the site's .profile startup file.
#
#========================================================================
#
#  Set the operating system environment variable.
#  /bin/uname is available on most UNIX systems.
#
if [ -x /bin/uname ]
then
    export OS=`/bin/uname`
else
    echo
    echo "What type of workstation are you using?"
    echo
    echo "Find the command /bin/uname, and insert the correct"
    echo "information in this file."
    echo
fi

#
#  Set the OS version, OS_VER, and the OS release, OS_REL.
#
OS_VER=""
OS_REL=""

case $OS in
    AIX )
# IBM
	export OS_VER=`/bin/uname -v`
	;;

    HP-UX )
# Hewlett-Packard
	export OS="HPUX"
	export OS_VER=`/bin/uname -r | cut -f2 -d.`
	;;

    IRIX|IRIX64 )
# Silicon Graphics
	export OS_VER=`/bin/uname -r | cut -f1 -d.`
	export OS_VER=`/bin/uname -r | cut -f2 -d.`

# Fix for IRIX64
	if [ $OS = "IRIX64" ]
	then
	    export OS="IRIX"
	fi
	;;

    Linux )
# Linux
	export OS_VER=`/bin/uname -r | cut -f1 -d.`
	export OS_REL=`/bin/uname -r | cut -f2 -d.`
	MTCHECK=`echo $MACHTYPE | cut -c1-6`
        if [ $MTCHECK == x86_64 ]
	then
	    export OS_BIT=64
	else
	    export OS_BIT=32
	fi
	entrp=`/bin/uname -r | awk -F. '{print $NF}'| /bin/tr "[A-Z]" "[a-z]"`
	if [ $entrp = "el" ] || [ $entrp = "elsmp" ]
	then
	    export OS_REL=`echo $OS_REL`el
	fi
	;;

    SunOS )
# Sun Micro Systems
	export OS_VER=`/bin/uname -r | cut -f1 -d.`
	;;

    * )
	echo "What type of UNIX do you have?"
	echo
	echo "Find the command /bin/uname, and insert the correct"
	echo "information in the .cshrc file."
	echo
	;;
esac

#
#  Set NA_OS to the lowercase equivalent of OS.
#  Add the Version number to the name and for Linux, also add the release number.
#
if [ $OS = "Linux" ]
then
    export NA_OS=`echo $OS | /bin/tr "[A-Z]" "[a-z]"``echo $OS_VER`.`echo ${OS_REL}$OS_BIT`
else
    export NA_OS=`echo $OS | /bin/tr "[A-Z]" "[a-z]"``echo $OS_VER`
fi

#
#========================================================================
#  Set N-AWIPS system environment variables.
#
export GEMPAK=$NAWIPS/gempak

export OS_ROOT=$NAWIPS/os/$NA_OS
export OS_BIN=$OS_ROOT/bin
export OS_INC=$OS_ROOT/include
export OS_LIB=$OS_ROOT/lib

export GEMDATA=$GEMPAK/data
export GEMERR=$GEMPAK/error
export GEMHLP=$GEMPAK/help
export GEMINC=$GEMPAK/include
export GEMMAPS=$GEMPAK/maps
export GEMNTS=$GEMPAK/nts
export GEMPARM=$GEMPAK/parm
export GEMPDF=$GEMPAK/pdf
export GEMTBL=$GEMPAK/tables
export GEMPTXT=$GEMPAK/txt/programs
export GEMGTXT=$GEMPAK/txt/gemlib

export MEL_BUFR_TABLES=$GEMPAK/tables/melbufr
export NMAP_RESTORE=$GEMNTS/nmap/restore

#
#========================================================================
#  Set X/Motif search paths.
#
export XMICONSEARCHPATH=$NAWIPS/icons/%N/%B
export XUSERFILESEARCHPATH=./%N:$HOME/%N:$HOME/Resource/%N:$NAWIPS/resource/%N

#
#  Set operating system specific path and MANPATH.
#
case $OS in
    AIX )
	PATH=$PATH:/usr/vac/bin:/usr/ucb
	MANPATH=/usr/man:/usr/share/man:/usr/vac/man/%L:/usr/vacpp/man/%L
	export MANPATH=$MANPATH/:$OS_ROOT/man:$OS_ROOT/share/man
	;;

    HPUX )
	PATH=$PATH:/usr/contrib/bin/X11:/usr/contrib/bin:/opt/imake/bin
	autologout=0
	;;

    IRIX )
	PATH=$PATH:/usr/bsd

#  X-Windows Resource Path
	if [ $OS_VER -ge 5 ]
	then
	    export XUSERFILESEARCHPATH=$HOME/.desktop-`hostname`/%N:./%N:$HOME/%N:$HOME/Resource/%N:$NAWIPS/resource/%N
	else
	    export XUSERFILESEARCHPATH=./%N:$HOME/%N:$HOME/Resource/%N:$NAWIPS/resource/%N
	fi
	;;

    Linux )
	autologout=0
	;;

    SunOS )
	PATH=$PATH:/usr/ccs/bin:/usr/ucb:/usr/openwin/bin
	MANPATH=/opt/SUNWspro/man:/usr/openwin/man:/usr/man
	export MANPATH=$MANPATH:$OS_ROOT/man:$OS_ROOT/share/man
	;;

    * )
	echo
	echo "WARNING..."
	echo
	echo "The path has not been set properly."
	echo
	;;
esac

PATH=.:$OS_BIN:$PATH:$NAWIPS/bin
PATH=$PATH:$NAWIPS/scripts/ez:$NAWIPS/scripts/nawips
export PATH=$PATH:$NAWIPS/scripts/prnt

#
#========================================================================
#  Set compilation and link flags for C and FORTRAN.
#
export AR="ar"
export CC="cc"
export FC="f77"
export LD="ld"
export RM="rm -f"
export ARFLAGS="rv"
export BUFRFLAGS="-O"
export LDFLAGS="-L$OS_LIB -s"
export INCLUDES="-I$GEMINC -I$NAWIPS/os/$NA_OS/include"

case $OS in
    AIX )
	export CC="cc -qlanglvl=extc99"
	export CFLAGS="$INCLUDES -D$OS"
	export FFLAGS="$INCLUDES -qsuppress=1501-510"
	export XLIBS="-lXm -lXt -lX11"
	export BUFRFLAGS="-O -D_SYS_TYPES_H"
	export OBJECT_MODE="32"
	;;

    HPUX )
	export FC="f90"
	export CFLAGS="$INCLUDES -D$OS +DA1.1"
	export FFLAGS="$INCLUDES +DA1.1"
	export LDFLAGS="$LDFLAGS +DA1.1"
	export XLIBS="-lXm -lXt -lX11 -lXp -lXext -lmalloc"
	;;

    IRIX )
	export CFLAGS="$INCLUDES -D$OS -DUNDERSCORE -I/usr/Motif-2.1/include"
	export FFLAGS="$INCLUDES -I/usr/Motif-2.1/include"
	export LDFLAGS="$LDFLAGS -L/usr/Motif-2.1/lib32 -woff 85"
	export XLIBS="-lXm -lXt -lX11 -lPW"
	;;

    Linux )
	export CC="gcc"
	export FC="g77"
# Uncomment the following for GCC4/GFORTRAN
#	export CC="gcc4"
#	export FC="gfortran"

	export BUFRFLAGS="-DNO_MSG_IPC -ansi $BUFRFLAGS"
	export CFLAGS="$INCLUDES -D$OS -DUNDERSCORE -I/usr/X11R6/include"

	export FFLAGS="$INCLUDES -fno-second-underscore"
# Uncomment the following for GCC4/GFORTRAN
#	export FFLAGS="$INCLUDES -fno-second-underscore -fdlines-as-comments -ffixed-line-length-none"

	export XLIBS="-lXm -lXt -lX11 -lSM -lICE -lXp -lXext -lXmu"
	if [ $OS_BIT == "32" ]
	then
	    export LDFLAGS="$LDFLAGS -L/usr/X11R6/lib"
	else
	    export CFLAGS="$CFLAGS -DG_64BIT"
	    export LDFLAGS="$LDFLAGS -L/usr/X11R6/lib64"
	fi
	;;

    SunOS )
	export CFLAGS="$INCLUDES -D$OS -DUNDERSCORE"
	export FFLAGS="$INCLUDES -silent"
	export XLIBS="-lXm -lXt -lX11"
	;;

    OSF1 )
	export CFLAGS="$INCLUDES -D$OS -DUNDERSCORE"
	export FFLAGS="$INCLUDES -O0"
	export XLIBS="-lXm -lXt -lX11"
	;;

    ULTRIX )
	export CFLAGS="$INCLUDES -D$OS -DUNDERSCORE"
	export FFLAGS="$INCLUDES"
	export XLIBS="-lXm -lXt -lX11"
	;;

    * )
	echo
	echo "WARNING..."
	echo
	echo "No compiler options have been set."
	echo
	;;
esac

#
#========================================================================
#  Set printer variables. 
#
export NPRINTER=""
export NLPDEST=""

case $OS in
    AIX )
	export LP="lpr"
	export LPFLAG="-P"
	export LPAODT="mpage -lo1 -z$LP -Z$LPFLAG"
	export LPAODTFLAG="-P"
	;;
    HPUX )
	export LP="lp"
	export LPFLAG="-d"
	export LPAODT="mpage -lo1 -z$LP -Z$LPFLAG"
	export LPAODTFLAG="-P"
	;;
    IRIX )
	export LP="lpr"
	export LPFLAG="-P"
	export LPAODT="mpage -lo1 -z$LP -Z$LPFLAG"
	export LPAODTFLAG="-P"
	;;
    Linux )
	export LP="lpr"
	export LPFLAG="-P"
	export LPAODT="mpage -lo1 -z$LP -Z$LPFLAG"
	export LPAODTFLAG="-P"
	;;
    SunOS )
	export LP="lpr"
	export LPFLAG="-P"
	export LPAODT="mpage -lo1 -z$LP -Z$LPFLAG"
	export LPAODTFLAG="-P"
	;;
    * )
	echo
	echo "WARNING..."
	echo
	echo "The print command has not been set properly."
	echo
	;;
esac

#
# Set the default X server.
#
if [ ${DISPLAY:-setdisplay} = setdisplay ]
then
    if [ ${REMOTEHOST:-islocal} != islocal ]
    then
	export DISPLAY=${REMOTEHOST}:0
    else
	export DISPLAY=:0
    fi
fi
