#!/bin/sh
#
# ${RHOME}/tools/GETSYMBOLS

# This code assembles the table of statically loaded C and Fortran
# code which is to be accessed via .C and .Fortran calls.

TOOLS_DIR=`echo $0 | sed 's%/[^/][^/]*$%%'`
TMPDIR=${TMPDIR-/tmp}
ROUTINES=${TMPDIR}/ROUTINES${$}

# Allow `#' comments in `../src/appl/ROUTINES':
sed '
/^#/d
/#/s/#.*//
' ${TOOLS_DIR}/../src/appl/ROUTINES > ${ROUTINES}

sed '
s/F77_SUBROUTINE(\(.*\))/void * F77_SYMBOL(\1)();/
s/C_FUNCTION(\(.*\))/void * \1();/
' ${ROUTINES} > ${TMPDIR}/RFF${$}
${TOOLS_DIR}/move-if-change ${TMPDIR}/RFF${$} FFDecl.h

sed '
s/F77_SUBROUTINE(\(.*\))/	{ F77_QSYMBOL(\1),	F77_SYMBOL(\1)},/
s/C_FUNCTION(\(.*\))/	{ "\1",	\1 },/
' ${ROUTINES} > ${TMPDIR}/RFF${$}
${TOOLS_DIR}/move-if-change ${TMPDIR}/RFF${$} FFTab.h

rm -f ${ROUTINES}