#! /bin/sh
#
# linkmodule for Python
# Chris Herborth (chrish@qnx.com)
#
# This is covered by the same copyright/licensing terms as the rest of
# Python.
#
# Shell script to build shared library versions of the modules; since
# the change to the *ahem* "proper" import/export mechanism, this script
# is much simpler.  It handles PowerPC and x86, too.
#
# This is called by the Modules/Makefile as $(LDSHARED):
#
# $(LDSHARED) foomodule.o -o foomodule$(SO)
#
# Could also be called as:
#
# $(LDSHARED)  readline.o  -L/boot/home/config/lib -lreadline -ltermcap \
# -o readline$(SO)
#
# so we need to preserve the arguments, sort of.

# Make sure we got reasonable arguments.
TARGET=""
ARGS=""

while [ "$#" != "0" ]; do
	case "$1" in
		-o)	TARGET="$2"; shift; shift;;
		*)	ARGS="$ARGS $1"; shift;;
	esac
done

if [ "$TARGET" = "" ] ; then
	echo "Usage:"
	echo
	echo "	$0 [args] -o foomodule.so [args] foomodule.o [args]"
	echo
	echo "Where:"
	echo
	echo "	[args]	normal compiler arguments"
	exit 1
fi

# The shared libraries and glue objects we need to link against; these
# libs are overkill for most of the standard modules, but it makes life
# in this shell script easier.
LIBS="-lbe -lnet -lroot"

case $BE_HOST_CPU in
	ppc)
		# Boy, do we need a lot of crap...
		GLUE_LOC=/boot/develop/lib/ppc
		GLUE="${GLUE_LOC}/glue-noinit.a ${GLUE_LOC}/init_term_dyn.o"
		case $(uname -r) in
			4.0*) CC="mwcc -xms -export pragma -nodup" ;;
			*) CC="mwcc -shared -export pragma -nodup" ;;
		esac
		;;

	x86)
		# We don't need as much crap here...
		GLUE=""
		CC="gcc -nostart -Wl,-soname=${TARGET}"
		;;

	*)
		# What the?!?
		echo "$0 doesn't support $BE_HOST_CPU systems..."
		echo "You're on your own... I'd be surprised if this works."
		GLUE=""
		CC="cc"
		;;
esac

# Now link that shared lib...
$CC -o $TARGET $ARGS $GLUE $LIBS
