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