/Modules/ar_beos
http://unladen-swallow.googlecode.com/ · Shell · 73 lines · 58 code · 4 blank · 11 comment · 5 complexity · 467e7301472247c65579e4d5811e7f1a MD5 · raw file
- #!/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