blob: 4a06e3bbdd741eb0e011b2f4e66a3dfda1d330b4 [file] [log] [blame]
Fred Draked3590222000-10-09 16:46:02 +00001#!/bin/sh
Guido van Rossum060f24c1998-12-18 15:37:14 +00002#
Fred Draked3590222000-10-09 16:46:02 +00003# Truly fake ar, using a directory to store object files.
Guido van Rossum060f24c1998-12-18 15:37:14 +00004#
Fred Draked3590222000-10-09 16:46:02 +00005# Donn Cave, donn@oz.net
Guido van Rossum060f24c1998-12-18 15:37:14 +00006
Fred Draked3590222000-10-09 16:46:02 +00007usage='Usage: ar-fake cr libpython.dir obj.o ...
8 ar-fake d libpython.dir obj.o ...
9 ar-fake so libpython.dir libpython.so'
Guido van Rossum060f24c1998-12-18 15:37:14 +000010
Fred Draked3590222000-10-09 16:46:02 +000011case $# in
120|1|2)
13 echo "$usage" >&2
14 exit 1
15 ;;
Guido van Rossum060f24c1998-12-18 15:37:14 +000016esac
17
Fred Draked3590222000-10-09 16:46:02 +000018command=$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 mwld -xms -export pragma -nodup -o $1 $library/*
50 ;;
51 x86)
52 gcc -nostart -Wl,-soname=$(basename $1) -o $1 $library/*
53 ;;
54 esac
55 status=$?
56 cd $(dirname $1)
57 ln -sf $PWD lib
58 exit $status
59 ;;
60*)
61 echo "$usage" >&2
62 exit 1
63 ;;
64esac