#!/bin/csh -fb
#
#
# aimk - Architecture Independent MaKefile
#
# Originally aimk comes from the PVM distribution
#
# (c) 2002 Sun Microsystems, Inc. Use is subject to license terms.  

set noglob

if (! -f $SGE_ROOT/util/arch ) then
   echo "the file \$SGE_ROOT/util/arch does not exist"
   echo "please set \$SGE_ROOT and call this script again."
   echo
   exit 1
endif

set ARCH = `$SGE_ROOT/util/arch`

# common compiler and linker settings 
#
unsetenv LD_LIBRARY_PATH
set CC         = cc
set MAKE       = make
set MAKEFILE   = ../Makefile
set SDIR       = ".."
set CFLAGS     = ""
set LFLAGS     = ""  
set LIBS       = ""
set DEBUG_FLAG = ""
set RANLIB     = echo
set STATIC     = "-static -nostartfiles"
set START_FILE = ""
set KRBLIBS    = ""
set KLFLAGS    = ""
set KLIBS      = ""

unset nomk
set found

while ($#argv >= 1 && $?found)

   switch ("$argv[1]")
   case "-h":
   case "-help":
      echo "aimk options:"
      echo '     -nomk  dont call make - echo architecture and exit'
      echo '     -debug compile with "-g" option'
      echo '     -cc    force usage of "cc" as compiler'
      echo '     -gcc   force usage of "gcc" as compiler'
      exit 0
      breaksw
   case "-nomk":
      set nomk
      set argv = ($argv[2-])
      breaksw
   case "-debug":
      set argv  = ($argv[2-])
      set DEBUG_FLAG = "$DEBUG_FLAG -g"
      breaksw      
   case "-gcc"
      set argv     = ($argv[2-])
      set CC       = gcc
      breaksw
   case "-cc"
      set argv     = ($argv[2-])
      set CC       = cc
      breaksw
   case "-kerberos"
      set argv     = ($argv[2-])
      set KRBLIBS  = "-lkrb"
      set KLFLAGS  = "-L/krb5/lib"
      set KLIBS    = "-lkrb5 -lcrypto -lcom_err"
      breaksw
   default:
      unset found
      breaksw
   endsw
end

set CTOR = ""
set DTOR = ""

set ARCH = `$SGE_ROOT/util/arch`

switch ($ARCH)

case aix43:
case aix51:
   set CFLAGS = "-DAIX -DUSE_STDARG $DEBUG_FLAG $CFLAGS"
   set LFLAGS = "$DEBUG_FLAG $LFLAGS"
   set LIBS = "$LIBS"
   breaksw

case irix65:
   set CFLAGS = "-DIRIX6 $DEBUG_FLAG $CFLAGS"
   set LFLAGS = "$DEBUG_FLAG $LFLAGS"
   set LIBS = "$LIBS"
   set DTOR = "/usr/lib/crt1.o"
   set DTOR = "/usr/lib/crtn.o"
        set STATIC   = "-nostartfiles"
   breaksw

case hp11:
   if ( $CC == gcc ) then
      set CFLAGS = "-Wall -Wstrict-prototypes -DHPUX $DEBUG_FLAG $CFLAGS"
   else
      set CFLAGS = "-Aa -D_HPUX_SOURCE -DHPUX $DEBUG_FLAG $CFLAGS"
   endif
   set LFLAGS = "$DEBUG_FLAG $LFLAGS"
   set LIBS = "$LIBS"
   breaksw

case lx2[46]-x86:
   set CC = gcc
   set CFLAGS = "-O -Wall -Werror -Wstrict-prototypes -DLINUX $DEBUG_FLAG $CFLAGS"
   set LFLAGS = "$DEBUG_FLAG $LFLAGS"
   set LIBS = "$LIBS"
   set START_FILE = "/usr/lib/crti.o /usr/lib/crtbegin.o"
   set CTOR = "/usr/lib/crti.o /usr/lib/crtbegin.o"
   set DTOR = "/usr/lib/crtend.o /usr/lib/crtn.o"
   breaksw

case lx2[46]-amd64:
   set CC = gcc
   set CFLAGS = "-O -Wall -Werror -Wstrict-prototypes -DLINUX64 $DEBUG_FLAG $CFLAGS"
   set LFLAGS = "$DEBUG_FLAG $LFLAGS"
   set LIBS = "$LIBS"
   breaksw

case lx2[46]-ppc*:
   set CC = gcc
   set CFLAGS = "-O -Wall -Werror -Wstrict-prototypes -DLINUX $DEBUG_FLAG $CFLAGS"
   set LFLAGS = "$DEBUG_FLAG $LFLAGS"
   set LIBS = "$LIBS"
   breaksw

case darwin:
   set CC = gcc
   set CFLAGS = "-O -Wall -Werror -Wstrict-prototypes -DDARWIN $DEBUG_FLAG $CFLAGS"
   set LFLAGS = "$DEBUG_FLAG $LFLAGS"
   set LIBS = "$LIBS"
   breaksw

case tru64:
   if ( $CC == gcc ) then
      set CFLAGS = "-Wall -Wstrict-prototypes -D_BSD -DALPHA $DEBUG_FLAG $CFLAGS"
   else
      set CFLAGS = "-std1 -warnprotos -D_BSD -DALPHA $DEBUG_FLAG $CFLAGS -Olimit 1500"
   endif
   set LFLAGS = "$DEBUG_FLAG $LFLAGS"
   set LIBS = "$LIBS"
   breaksw

case sol-sparc:
case sol-sparc64:
        set CC   = "gcc"
   if ( $CC == gcc ) then
      set CFLAGS   = "-DSOLARIS -O -Wall -Wstrict-prototypes -Werror $DEBUG_FLAG $CFLAGS"
   else
      set CFLAGS = "-DSOLARIS -O $DEBUG_FLAG $CFLAGS"
   endif
   set LIBS = "$LIBS -lsocket -lnsl"         
        set STATIC   = "-nostartfiles"
   breaksw

default:
   echo "ERROR: Architecture not yet supported"
   exit 1
endsw

#----------------------------------------
if ($?nomk) then
   echo $ARCH
   exit 0
endif

if ( ! -d $ARCH ) then
   echo "INFO: Architecture directory $ARCH doesn't exist. Making"
   mkdir $ARCH
endif

echo making in $ARCH/
cd $ARCH


$MAKE -f $MAKEFILE "CC=$CC" "CFLAGS=$CFLAGS" "LFLAGS=$LFLAGS $KLFLAGS" \
      "SDIR=$SDIR" "LIBS=$LIBS $KLIBS" "RANLIB=$RANLIB" "STATIC=$STATIC" \
      "ARCH=$ARCH" "START_FILE=$START_FILE" \
      "CTOR=$CTOR" "DTOR=$DTOR" "KRBLIBS=$KRBLIBS" $argv
