78 lines · 1.8 KB · Text
RawDownload
#! /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;;	esacdone 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 1fi # 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