#!/bin/sh

set -e

case "$1" in
    configure)
         update-alternatives --force  \
             --install  /usr/include/cudnn.h                                                   libcudnn                                    /usr/include/aarch64-linux-gnu/cudnn_v9.h                                \
             126 \
             --slave    /usr/lib/aarch64-linux-gnu/libcudnn.so                                 libcudnn_so                                 /usr/lib/aarch64-linux-gnu/libcudnn.so.9                                 \
             --slave    /usr/lib/aarch64-linux-gnu/libcudnn_adv.so                             libcudnn_adv_so                             /usr/lib/aarch64-linux-gnu/libcudnn_adv.so.9                             \
             --slave    /usr/lib/aarch64-linux-gnu/libcudnn_cnn.so                             libcudnn_cnn_so                             /usr/lib/aarch64-linux-gnu/libcudnn_cnn.so.9                             \
             --slave    /usr/lib/aarch64-linux-gnu/libcudnn_engines_precompiled.so             libcudnn_engines_precompiled_so             /usr/lib/aarch64-linux-gnu/libcudnn_engines_precompiled.so.9             \
             --slave    /usr/lib/aarch64-linux-gnu/libcudnn_engines_runtime_compiled.so        libcudnn_engines_runtime_compiled_so        /usr/lib/aarch64-linux-gnu/libcudnn_engines_runtime_compiled.so.9        \
             --slave    /usr/lib/aarch64-linux-gnu/libcudnn_graph.so                           libcudnn_graph_so                           /usr/lib/aarch64-linux-gnu/libcudnn_graph.so.9                           \
             --slave    /usr/lib/aarch64-linux-gnu/libcudnn_heuristic.so                       libcudnn_heuristic_so                       /usr/lib/aarch64-linux-gnu/libcudnn_heuristic.so.9                       \
             --slave    /usr/lib/aarch64-linux-gnu/libcudnn_ops.so                             libcudnn_ops_so                             /usr/lib/aarch64-linux-gnu/libcudnn_ops.so.9                             \
                                       \
             --slave    /usr/include/cudnn_adv.h                                               cudnn_adv_h                                 /usr/include/aarch64-linux-gnu/cudnn_adv_v9.h                            \
             --slave    /usr/include/cudnn_backend.h                                           cudnn_backend_h                             /usr/include/aarch64-linux-gnu/cudnn_backend_v9.h                        \
             --slave    /usr/include/cudnn_cnn.h                                               cudnn_cnn_h                                 /usr/include/aarch64-linux-gnu/cudnn_cnn_v9.h                            \
             --slave    /usr/include/cudnn_graph.h                                             cudnn_graph_h                               /usr/include/aarch64-linux-gnu/cudnn_graph_v9.h                          \
             --slave    /usr/include/cudnn_ops.h                                               cudnn_ops_h                                 /usr/include/aarch64-linux-gnu/cudnn_ops_v9.h                            \
             --slave    /usr/include/cudnn_version.h                                           cudnn_version_h                             /usr/include/aarch64-linux-gnu/cudnn_version_v9.h

        # enable alternatives link
        update-alternatives --set                                                              libcudnn                                    /usr/include/aarch64-linux-gnu/cudnn_v9.h

        # explicit ldconfig due to alternatives
        ldconfig
        ;;
esac



exit 0
