diff options
Diffstat (limited to 'Modules/ar_beos')
-rwxr-xr-x | Modules/ar_beos | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/Modules/ar_beos b/Modules/ar_beos new file mode 100755 index 0000000..e7efa75 --- /dev/null +++ b/Modules/ar_beos @@ -0,0 +1,73 @@ +#!/bin/sh +# +# Truly fake ar, using a directory to store object files. +# +# Donn Cave, donn@oz.net + +usage='Usage: ar-fake cr libpython.dir obj.o ... + ar-fake d libpython.dir obj.o ... + ar-fake so libpython.dir libpython.so' + +case $# in +0|1|2) + echo "$usage" >&2 + exit 1 + ;; +esac + +command=$1 +library=$2 +shift 2 + +case $command in +cr) + if test -d $library + then : + else + mkdir $library + fi + if cp -p $* $library + then + # To force directory modify date, create or delete a file. + if test -e $library/.tch + then rm $library/.tch + else echo tch > $library/.tch + fi + exit 0 + fi + ;; +d) + if test -d $library + then + cd $library + rm -f $* + fi + ;; +so) + case $BE_HOST_CPU in + ppc) + # In case your libpython.a refers to any exotic libraries, + # mwld needs to know that here. The following hack makes + # a couple of assumptions about Modules/Makefile. If it + # doesn't work, you may as well add the necessary libraries + # here explicitly instead. + extralibs=$( + (cd Modules; make -f Makefile -n link) | + sed -n 's/.*\.so \(.*\) -o python.*/\1/p' + ) + mwld -xms -export pragma -nodup -o $1 $library/* $extralibs + ;; + x86) + ld -shared -soname $(basename $1) -o $1 $library/* + ;; + esac + status=$? + cd $(dirname $1) + ln -sf $PWD lib + exit $status + ;; +*) + echo "$usage" >&2 + exit 1 + ;; +esac |