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