74 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable 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
 |