| 
									
										
										
										
											2000-10-09 16:46:02 +00:00
										 |  |  | #!/bin/sh | 
					
						
							| 
									
										
										
										
											1998-12-18 15:37:14 +00:00
										 |  |  | # | 
					
						
							| 
									
										
										
										
											2000-10-09 16:46:02 +00:00
										 |  |  | #  Truly fake ar, using a directory to store object files. | 
					
						
							| 
									
										
										
										
											1998-12-18 15:37:14 +00:00
										 |  |  | # | 
					
						
							| 
									
										
										
										
											2000-10-09 16:46:02 +00:00
										 |  |  | #     Donn Cave, donn@oz.net | 
					
						
							| 
									
										
										
										
											1998-12-18 15:37:14 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-10-09 16:46:02 +00:00
										 |  |  | usage='Usage: ar-fake cr libpython.dir obj.o ... | 
					
						
							|  |  |  |        ar-fake d libpython.dir obj.o ... | 
					
						
							|  |  |  |        ar-fake so libpython.dir libpython.so' | 
					
						
							| 
									
										
										
										
											1998-12-18 15:37:14 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-10-09 16:46:02 +00:00
										 |  |  | case $# in | 
					
						
							|  |  |  | 0|1|2) | 
					
						
							|  |  |  |         echo "$usage" >&2 | 
					
						
							|  |  |  |         exit 1 | 
					
						
							|  |  |  |         ;; | 
					
						
							| 
									
										
										
										
											1998-12-18 15:37:14 +00:00
										 |  |  | esac | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-10-09 16:46:02 +00:00
										 |  |  | 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) | 
					
						
							| 
									
										
										
										
											2001-01-19 00:31:10 +00:00
										 |  |  |                 #  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 | 
					
						
							| 
									
										
										
										
											2000-10-09 16:46:02 +00:00
										 |  |  |                 ;; | 
					
						
							|  |  |  |         x86) | 
					
						
							| 
									
										
										
										
											2001-01-19 00:31:10 +00:00
										 |  |  |                 ld -shared -soname $(basename $1) -o $1 $library/* | 
					
						
							| 
									
										
										
										
											2000-10-09 16:46:02 +00:00
										 |  |  |                 ;; | 
					
						
							|  |  |  |         esac | 
					
						
							|  |  |  |         status=$? | 
					
						
							|  |  |  |         cd $(dirname $1) | 
					
						
							|  |  |  |         ln -sf $PWD lib | 
					
						
							|  |  |  |         exit $status | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  | *) | 
					
						
							|  |  |  |         echo "$usage" >&2 | 
					
						
							|  |  |  |         exit 1 | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  | esac |