#! /bin/sh

SPEC_DIR=${SPEC_DIR:-%%LOCALBASE%%/%%TARGET_PLATFORM%%/lib/snow-specs}

if [ $# != 1 ]; then
  echo "Usage: mksnow <lib>"
  exit 1
fi

LIBRARY_NAME=`basename $1 '.a'`

SPEC_FILE=${SPEC_DIR}/${LIBRARY_NAME}.spec
. $SPEC_FILE

LDSCRIPT=${LIBRARY_NAME}-ldscript
SFILE=${LIBRARY_NAME}_syms.s
OFILE=${LIBRARY_NAME}_syms.o
SSOFILE=${LIBRARY_NAME}.${LIBRARY_MAJORVERSION}.sso

snow-make-ldscript --startaddr=$LIBRARY_ADDRESS > $LDSCRIPT
%%TARGET_PLATFORM%%-ld -T $LDSCRIPT %%LOCALBASE%%/%%TARGET_PLATFORM%%/lib/crti.o \
  %%LOCALBASE%%/%%TARGET_PLATFORM%%/lib/snow/crtbegin.o --whole-archive $LIBRARY_ARCHIVES \
  --no-whole-archive \
  %%LOCALBASE%%/%%TARGET_PLATFORM%%/lib/snow/crtend.o %%LOCALBASE%%/%%TARGET_PLATFORM%%/lib/crtn.o \
  -L%%LOCALBASE%%/%%TARGET_PLATFORM%%/lib/snow $LIBRARY_DEPEND_PATHS \
  -o $SSOFILE
CMD="%%TARGET_PLATFORM%%-objdump --syms $SSOFILE | \
  snow-makesyms --libname $LIBRARY_NAME \
  --majorversion 1 $LIBRARY_STUB_OPTIONS"
for LIB in $LIBRARY_DEPENDS; do
  CMD="$CMD --library $LIB"
done
eval $CMD > $SFILE
%%TARGET_PLATFORM%%-as $SFILE -o $OFILE
%%TARGET_PLATFORM%%-ar rc ${LIBRARY_NAME}.sa $OFILE
%%TARGET_PLATFORM%%-ranlib ${LIBRARY_NAME}.sa

#
# Cleanup.
#
rm $LDSCRIPT
rm $SFILE
rm $OFILE
