PageRenderTime 297ms CodeModel.GetById 161ms app.highlight 3ms RepoModel.GetById 77ms app.codeStats 1ms

/Modules/ar_beos

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