Staging
v0.5.1
v0.5.1
https://github.com/python/cpython
Tip revision: 74f4bd53e03ded8408bcc2de67cf0f5a4ac5b1a1 authored by Barry Warsaw on 23 February 2012, 15:59:38 UTC
Bump some more copyright years (as per PEP 101), since this is the first
Bump some more copyright years (as per PEP 101), since this is the first
Tip revision: 74f4bd5
ld_so_beos
#! /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