local X_MOD KVER                                                    &&
KVER=$(get_kernel_version)                                                &&

#
# Install kernel module 'nvidia.ko'
#
pushd  $SOURCE_DIRECTORY/usr/src/nv                  &&
make  KERNEL_MODLIB=$INSTALL_ROOT/lib/modules/$KVER  \
      KERNEL_UNAME=$KVER                             \
      SYSSRC=$INSTALL_ROOT/lib/modules/$KVER/source  \
      -f Makefile.kbuild  module-install             &&
popd                                                 &&

#
# Install binaries and script
#
pushd  $SOURCE_DIRECTORY/usr/bin  &&
for file in nvidia-bug-report.sh nvidia-settings;  do
  install -v -m 0755  -o root  -g root  $file  $INSTALL_ROOT/usr/bin
done                              &&
popd                              &&
install -v -m 0766  -o root  -g root  nvidia-installer  $INSTALL_ROOT/usr/bin  &&

#
# Install OpenGL headers
#
pushd  $SOURCE_DIRECTORY/usr/include/GL  &&
mkdir  -vp  $INSTALL_ROOT/usr/include/GL/.nvidia &&
# workaround absent file from legacy
cp $INSTALL_ROOT/usr/include/GL/.mesa/glxext.h \
   $INSTALL_ROOT/usr/include/GL/.nvidia/  &&
for file in glext.h gl.h glx.h; do
  install -v -m 0644  -o root  -g root  $file  $INSTALL_ROOT/usr/include/GL/.nvidia/
done                                     &&
popd                                     &&

#
# Install OpenGL libraries
#
pushd  $SOURCE_DIRECTORY/usr/lib  &&

# Fill in the path to libGL.so
sed -i 's|__LIBGL_PATH__|/usr/lib|' libGL.la 
for lib in libGL.la  libGLcore.so.${VERSION/-/.} \
           libnvidia-tls.so.${VERSION/-/.}; do
  install -v -m 0644  -o root  -g root  $lib  $INSTALL_ROOT/usr/lib
done                              &&
mkdir -vp $INSTALL_ROOT/usr/lib/.nvidia \
          $INSTALL_ROOT/usr/lib/xorg/modules/extensions/.nvidia/  &&
cp -vr libGL.so.${VERSION/-/.} $INSTALL_ROOT/usr/lib/.nvidia/ &&
mkdir  -vp  $INSTALL_ROOT/usr/lib/tls &&
install -v -m 0644  -o root  -g root  tls/libnvidia-tls.so.${VERSION/-/.}  \
         $INSTALL_ROOT/usr/lib/tls                                 &&
  #
  # Create library symlinks
  #
  pushd  $INSTALL_ROOT/usr/lib/.nvidia                            &&
  ln  -sfn  libGL.so.${VERSION/-/.}          libGL.so.1          &&
  ln  -sfn  libGL.so.1                       libGL.so            &&
  popd
  pushd  $INSTALL_ROOT/usr/lib                                   &&
  ln  -sfn  libGLcore.so.${VERSION/-/.}      libGLcore.so.1      &&
  ln  -sfn  libnvidia-tls.so.${VERSION/-/.}  libnvidia-tls.so.1  &&
  popd                                                           &&
  pushd  $INSTALL_ROOT/usr/lib/tls                               &&
  ln  -sfn  libnvidia-tls.so.${VERSION/-/.}  libnvidia-tls.so.1  &&
  popd                                                           &&
popd                              &&

#
# Install X11 OpenGL libraries
#
pushd  $SOURCE_DIRECTORY/usr/X11R6/lib  &&
for lib in libXvMCNVIDIA.a libXvMCNVIDIA.so.${VERSION/-/.}; do
  install -v -m 0644  -o root  -g root  $lib  $INSTALL_ROOT/usr/lib
done                                    &&
  #
  # Setup symlinks
  #
  pushd  $INSTALL_ROOT/usr/lib                                     &&
  ln  -sfn  libXvMCNVIDIA.so.${VERSION/-/.}  libXvMCNVIDIA_dynamic.so.1  &&
  popd                                                                   &&
popd                                    &&

#
# Install X11 modules
#
pushd  $SOURCE_DIRECTORY/usr/X11R6/lib/modules/  &&
mkdir -vp $INSTALL_ROOT/usr/lib/xorg/modules/.nvidia/  &&
mkdir -vp $INSTALL_ROOT/usr/lib/xorg/modules/drivers                         &&
for driver in nvidia_drv.o nvidia_drv.so; do
  install -v -m 0644  -o root  -g root            \
     drivers/$driver  $INSTALL_ROOT/usr/lib/xorg/modules/drivers/
done                                            &&
install -v -m 0644  -o root  -g root extensions/libglx.so.${VERSION/-/.} \
        $INSTALL_ROOT/usr/lib/xorg/modules/extensions/.nvidia             &&
#
# Setup symlinks
#
pushd  $INSTALL_ROOT/usr/lib/xorg/modules/extensions/.nvidia  &&
ln  -sfn  libglx.so.${VERSION/-/.}  libglx.so       &&
popd                                                &&
popd                                            &&
popd

#
# Install Freedesktop.org spec
#
mkdir -vp $INSTALL_ROOT/usr/share/applications
install  -m 0644  -o root  -g root                                         \
         $SOURCE_DIRECTORY/usr/share/applications/nvidia-settings.desktop  \
         $INSTALL_ROOT/usr/share/applications                              &&


# Install documentation
#
pushd  $SOURCE_DIRECTORY/usr/share/doc                         &&
if  [  !  -d  $INSTALL_ROOT/usr/share/doc/NVIDIA_GLX-1.0  ];  then
  mkdir  -p  $INSTALL_ROOT/usr/share/doc/NVIDIA_GLX-1.0
fi                                                             &&
cp  -a  *  $INSTALL_ROOT/usr/share/doc/NVIDIA_GLX-1.0          &&

# Install pixmap
popd                                                           &&
mkdir -p $INSTALL_ROOT/usr/share/pixmaps/                      &&
cp  usr/share/pixmaps/nvidia-settings.png  $INSTALL_ROOT/usr/share/pixmaps/       &&

mkdir  -p  $INSTALL_ROOT/usr/share/doc/$SPELL
install  -m 0644  -o root  -g root  $SOURCE_DIRECTORY/LICENSE  \
         $INSTALL_ROOT/usr/share/doc/$SPELL                    &&
install  -m 0644  -o root  -g root  $SOURCE_DIRECTORY/LICENSE  \
         $INSTALL_ROOT/usr/share/doc/NVIDIA_GLX-1.0            &&

#
# Install man pages
#
pushd  $SOURCE_DIRECTORY/usr/share/man/man1  &&
for manual in nvidia-installer.1.gz
do
  install  -m 0644  -o root  -g root  $manual  $INSTALL_ROOT/usr/share/man/man1
done                                         &&
popd
