#!/bin/sh
#-----------------------------------------------------------------------------
#-- Name:        distrib/mac/shared-ld-sh
#-- Purpose:     Link a mach-o dynamic shared library for Darwin / Mac OS X
#-- Author:      Gilles Depeyrot
#-- Modified by:
#-- Created:     05.05.2002
#-- RCS-ID:      $Id: shared-ld-sh,v 1.3 2002/12/30 21:16:52 GD Exp $
#-- Copyright:   (c) 2002 Gilles Depeyrot
#-- Licence:     wxWindows licence
#-----------------------------------------------------------------------------

verbose=0
args=""
objects=""

while test $# -gt 0; do
    case $1 in

       -v)
        verbose=1
        ;;

       -o|-compatibility_version|-current_version|-framework|-undefined|-install_name)
        # collect these options and values
        args="$args $1 $2"
        shift
        ;;

       -l*|-L*|-flat_namespace)
        # collect these options
        args="$args $1"
        ;;

       -dynamiclib)
        # skip these options
        ;;

       -*)
        echo "shared-ld: unhandled option '$1'"
        exit 1
        ;;

        *.o)
        # collect object files
        objects="$objects $1"
        ;;

        *)
        echo "shared-ld: unhandled argument '$1'"
        exit 1
        ;;

    esac
    shift
done

#
# Link one module containing all the others
#
if test $verbose = 1; then
    echo "c++ -r -keep_private_externs -nostdlib $objects -o master.$$.o"
fi
c++ -r -keep_private_externs -nostdlib $objects -o master.$$.o
status=$?
if test $status != 0; then
    exit $status
fi

#
# Link the shared library from the single module created
#
if test $verbose = 1; then
    echo "cc -dynamiclib master.$$.o $args"
fi
c++ -dynamiclib master.$$.o $args
status=$?
if test $status != 0; then
    exit $status
fi

#
# Remove intermediate module
#
rm -f master.$$.o

exit 0
