mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 03:44:55 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			73 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			73 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
 |