1#!/bin/sh 2# 3# Truly fake ar, using a directory to store object files. 4# 5# Donn Cave, donn@oz.net 6 7usage='Usage: ar-fake cr libpython.dir obj.o ... 8 ar-fake d libpython.dir obj.o ... 9 ar-fake so libpython.dir libpython.so' 10 11case $# in 120|1|2) 13 echo "$usage" >&2 14 exit 1 15 ;; 16esac 17 18command=$1 19library=$2 20shift 2 21 22case $command in 23cr) 24 if test -d $library 25 then : 26 else 27 mkdir $library 28 fi 29 if cp -p $* $library 30 then 31 # To force directory modify date, create or delete a file. 32 if test -e $library/.tch 33 then rm $library/.tch 34 else echo tch > $library/.tch 35 fi 36 exit 0 37 fi 38 ;; 39d) 40 if test -d $library 41 then 42 cd $library 43 rm -f $* 44 fi 45 ;; 46so) 47 case $BE_HOST_CPU in 48 ppc) 49 # In case your libpython.a refers to any exotic libraries, 50 # mwld needs to know that here. The following hack makes 51 # a couple of assumptions about Modules/Makefile. If it 52 # doesn't work, you may as well add the necessary libraries 53 # here explicitly instead. 54 extralibs=$( 55 (cd Modules; make -f Makefile -n link) | 56 sed -n 's/.*\.so \(.*\) -o python.*/\1/p' 57 ) 58 mwld -xms -export pragma -nodup -o $1 $library/* $extralibs 59 ;; 60 x86) 61 ld -shared -soname $(basename $1) -o $1 $library/* 62 ;; 63 esac 64 status=$? 65 cd $(dirname $1) 66 ln -sf $PWD lib 67 exit $status 68 ;; 69*) 70 echo "$usage" >&2 71 exit 1 72 ;; 73esac 74