87 lines
1.7 KiB
Plaintext
87 lines
1.7 KiB
Plaintext
|
#!/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$
|
||
|
#-- 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)
|
||
|
# collect these options and values
|
||
|
args="$args $1 $2"
|
||
|
shift
|
||
|
;;
|
||
|
|
||
|
-l*|-L*)
|
||
|
# 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
|