#!/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