xref: /aosp_15_r20/external/bazelbuild-rules_go/tests/core/cgo/generate_imported_dylib.sh (revision 9bb1b549b6a84214c53be0924760be030e66b93a)
1#!/usr/bin/env bash
2
3set -exo pipefail
4
5cd "$(dirname "$0")"
6
7case "$(uname -s)" in
8  Linux*)
9    cc -shared -o libimported.so imported.c
10    cc -shared -o libversioned.so.2 imported.c
11    ;;
12  Darwin*)
13    cc -shared -Wl,-install_name,@rpath/libimported.dylib -o libimported.dylib imported.c
14    # According to "Mac OS X For Unix Geeks", 4th Edition, Chapter 11, versioned dylib for macOS
15    # should be libversioned.2.dylib.
16    cc -shared -Wl,-install_name,@rpath/libversioned.2.dylib -o libversioned.2.dylib imported.c
17    # However, Oracle Instant Client was distributed as libclntsh.dylib.12.1 with a unversioed
18    # symlink (https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html).
19    # Let's cover this non-standard case as well.
20    cc -shared -Wl,-install_name,@rpath/libversioned.dylib.2 -o libversioned.dylib.2 imported.c
21    ln -fs libversioned.dylib.2 libversioned.dylib
22    ;;
23  *)
24    echo "Unsupported OS: $(uname -s)" >&2
25    exit 1
26esac
27