#!/bin/sh

if [ "`id -u`" != "0" ]; then
 echo "You must be root to use this program!"
 exit 0
fi

if [ $# -lt 1 -o $# -gt 3 ]; then
  echo -n "usage: `basename $0` " 
  echo "<--pre|--preun|--post|--postun> [<kernel-release> [pkg-count]]"
  exit 0
fi

if [ $# -gt 1 ]; then
  kver="$2"
else
  kver="`uname -r`"
fi

libdir="lib"
test "`uname -i`" == "x86_64" && libdir="lib64"

ext=ko
LD_OPTIONS="-d -r -o"

test -f /usr/X11R6/$libdir/modules/drivers/fglrx_drv.o
if [ $? -eq 0 ]; then
  fver="`strings /usr/X11R6/$libdir/modules/drivers/fglrx_drv.o | \
         grep "ATI Proprietary Linux Driver Version Identifier" | cut -d ":" -f 2`"
else
  exit 0
fi

if [ "$1" == "--post" ]; then
if [ -r /lib/modules/scripts/fglrx/${kver}/fglrx-linux.o-${fver} -a \
     -r /lib/modules/scripts/fglrx/libfglrx_ip.a.GCC4-${fver} ]; then
    ld $LD_OPTIONS /lib/modules/${kver}/kernel/drivers/char/drm/fglrx.$ext \
      /lib/modules/scripts/fglrx/${kver}/fglrx-linux.o-${fver} \
      /lib/modules/scripts/fglrx/libfglrx_ip.a.GCC4-${fver}
    # Bug 39949
    depmod -a ${kver}
else
  echo
  echo "WARNING: fglrx kernel interface (fglrx-linux.o) or fglrx binary-only"
  echo "         part (libfglrx_ip.a.GCC4) is missing."
  echo
  echo "Missing file(s):"
  test -r /lib/modules/scripts/fglrx/${kver}/fglrx-linux.o-${fver} ||
    echo " /lib/modules/scripts/fglrx/${kver}/fglrx-linux.o-${fver}"
  test -r /lib/modules/scripts/fglrx/libfglrx_ip.a.GCC4-${fver} || 
    echo " /lib/modules/scripts/fglrx/libfglrx_ip.a.GCC4-${fver}"
  echo
  exit 1
fi
fi

if [ "$1" == "--preun" ]; then
  rm -f /lib/modules/${kver}/kernel/drivers/char/drm/fglrx.$ext
fi
