Improve shared library building support
[openafs.git] / src / config / shlib-build.in
index ff8dc54..e54742b 100644 (file)
@@ -79,8 +79,13 @@ if [ -z "$filename" ] ; then
 fi
 case $sysname in
 rs_aix*)
-    if [ -f "$srcdir/$library.exp" ] ; then
-        export="-bE:$srcdir/$library.exp"
+    if [ -f "$srcdir/$library.map" ] ; then
+       cat $srcdir/$library.map | \
+       awk '/local:/ {inglobal=0};
+            inglobal { sub(/;/,""); print };
+            /global:/ { inglobal=1};' \
+       > $library.exp
+        export="-bE:$library.exp"
     fi
     echo "$linker $export -o $filename $*"
     $linker $export -o "$filename" "$@"
@@ -116,6 +121,21 @@ hp_ux*)
     echo "$linker $export -o $filename $*"
     $linker $export -o "$filename" "$@"
     ;;
+*darwin*)
+    if [ -f "$srcdir/$library.map" ] ; then
+       # For 10.4 and later, the Mac exports list is a list of symbols,
+       # prefixed with an '_'
+       cat $srcdir/$library.map | \
+       awk '/local:/ {inglobal=0};
+            /^[\t ]+#/ {next};
+            inglobal { sub(/;/,""); sub(/[\t ]+/,"_"); print };
+            /global:/ { inglobal=1};' \
+       > $library.exp
+       export="-Wl,-exported_symbols_list,$library.exp"
+    fi
+    echo "$linker $export -o $filename $*"
+    $linker $export -o "$filename" "$@"
+    ;;
 *)
     echo "$linker -o $filename $*"
     $linker -o "$filename" "$@"