annotate Modules/ar_beos @ 16798:258dcafe2d0b legacy-trunk

Gustavo Niemeyer <niemeyer@conectiva.com>: Fixed recno support (keys are integers rather than strings). Work around DB bug that cause stdin to be closed by rnopen() when the DB file needed to exist but did not (no longer segfaults). This closes SF tracker patch #403445. Also wrapped some long lines and added whitespace around operators -- FLD.
author Fred Drake <fdrake@acm.org>
date Tue, 27 Feb 2001 18:56:46 +0000
parents 4e2d1c6f2904
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16619
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
1 #!/bin/sh
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
2 #
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
3 # Truly fake ar, using a directory to store object files.
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
4 #
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
5 # Donn Cave, donn@oz.net
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
6
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
7 usage='Usage: ar-fake cr libpython.dir obj.o ...
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
8 ar-fake d libpython.dir obj.o ...
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
9 ar-fake so libpython.dir libpython.so'
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
10
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
11 case $# in
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
12 0|1|2)
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
13 echo "$usage" >&2
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
14 exit 1
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
15 ;;
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
16 esac
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
17
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
18 command=$1
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
19 library=$2
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
20 shift 2
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
21
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
22 case $command in
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
23 cr)
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
24 if test -d $library
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
25 then :
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
26 else
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
27 mkdir $library
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
28 fi
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
29 if cp -p $* $library
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
30 then
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
31 # To force directory modify date, create or delete a file.
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
32 if test -e $library/.tch
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
33 then rm $library/.tch
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
34 else echo tch > $library/.tch
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
35 fi
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
36 exit 0
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
37 fi
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
38 ;;
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
39 d)
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
40 if test -d $library
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
41 then
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
42 cd $library
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
43 rm -f $*
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
44 fi
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
45 ;;
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
46 so)
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
47 case $BE_HOST_CPU in
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
48 ppc)
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
49 # In case your libpython.a refers to any exotic libraries,
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
50 # mwld needs to know that here. The following hack makes
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
51 # a couple of assumptions about Modules/Makefile. If it
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
52 # doesn't work, you may as well add the necessary libraries
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
53 # here explicitly instead.
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
54 extralibs=$(
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
55 (cd Modules; make -f Makefile -n link) |
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
56 sed -n 's/.*\.so \(.*\) -o python.*/\1/p'
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
57 )
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
58 mwld -xms -export pragma -nodup -o $1 $library/* $extralibs
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
59 ;;
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
60 x86)
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
61 ld -shared -soname $(basename $1) -o $1 $library/*
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
62 ;;
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
63 esac
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
64 status=$?
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
65 cd $(dirname $1)
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
66 ln -sf $PWD lib
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
67 exit $status
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
68 ;;
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
69 *)
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
70 echo "$usage" >&2
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
71 exit 1
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
72 ;;
4e2d1c6f2904 Moved BeOS/ar-fake and BeOS/linkmodule to Modules/ar_beos and
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents:
diff changeset
73 esac