73 lines · 1.8 KB · Text
RawDownload
#!/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 $# in0|1|2)        echo "$usage" >&2        exit 1        ;;esac command=$1library=$2shift 2 case $command incr)        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