diff options
| author | su_v <suv-sf@users.sourceforge.net> | 2015-01-15 22:57:32 +0000 |
|---|---|---|
| committer | ~suv <suv-sf@users.sourceforge.net> | 2015-01-15 22:57:32 +0000 |
| commit | 58dc8ae74bd3840018b27c6c8b80cbdafd5041f6 (patch) | |
| tree | 38f636e072db2633502b73fbc5b159af63df6c1e /packaging/macosx/ports/python/py-numpy/files/wrapper-template | |
| parent | for symbol description, report 'id' if 'title' does not exist. (diff) | |
| parent | packaging/macosx: sync launcher-quartz-no-macintegration.sh with default laun... (diff) | |
| download | inkscape-58dc8ae74bd3840018b27c6c8b80cbdafd5041f6.tar.gz inkscape-58dc8ae74bd3840018b27c6c8b80cbdafd5041f6.zip | |
Update for osx packaging (CFBundleDocumentTypes, local portfiles for Python modules, support symlinks to launcher script)
(bzr r13856)
Diffstat (limited to 'packaging/macosx/ports/python/py-numpy/files/wrapper-template')
| -rwxr-xr-x | packaging/macosx/ports/python/py-numpy/files/wrapper-template | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/packaging/macosx/ports/python/py-numpy/files/wrapper-template b/packaging/macosx/ports/python/py-numpy/files/wrapper-template new file mode 100755 index 000000000..48936d107 --- /dev/null +++ b/packaging/macosx/ports/python/py-numpy/files/wrapper-template @@ -0,0 +1,143 @@ +#!/bin/sh +COMPILER='@@@' +SUFFIX='---' +PREFIX='&&&' +OUTPUT_O='NO' +OUTPUT='' +NAMED_OUTPUT='' +LASTFILE='' +INTEL='NO' +SIZE32='NO' +SIZE64='NO' +NEWARGS='' + +SKIP='NO' + +for arg in $@ +do + if [ $SKIP = 'ARCH' ]; then + # intercept -arch option and set SIZEXX + SKIP='NO' + if [ $arg = 'x86_64' ] || [ $arg = 'ppc64' ]; then + SIZE64='YES' + else + SIZE32='YES' + fi + + # which architecture are we compiling for? + if [ $arg = 'x86_64' ] || [ $arg = 'i386' ]; then + INTEL='YES' + fi + + elif [ $arg = '-arch' ]; then + SKIP='ARCH' + + elif [ $arg = '--version' ]; then + ${COMPILER} --version + exit 0 + + else + NEWARGS+="$arg " + + # if the -c option is given, the output is .o + if [ $arg = '-c' ]; then + OUTPUT_O='YES' + fi + + # if the output file is given by a -o option, record it + if [ $SKIP = 'O' ]; then + SKIP='NO' + NAMED_OUTPUT=$arg + fi + + if [ $arg = '-o' ]; then + SKIP='O' + fi + + # Note each file ending by ${SUFFIX} and remember the last one + # Transform them in .o + if `echo $arg | grep -q "${SUFFIX}$"`; then + LASTFILE=$arg + OUTPUT+=`echo $arg | sed "s/${SUFFIX}/\.o/"` + OUTPUT+=' ' + fi + fi +done + +# What is the output? + +if [ ${NAMED_OUTPUT}"X" != "X" ]; then + OUTPUT=$NAMED_OUTPUT + +elif [ $OUTPUT_O = 'NO' ]; then + # It is an executable whose is name is the LASTFILE without suffix + OUTPUT=`echo ${LASTFILE} | sed "s/${SUFFIX}//"` +fi + +# Othewise, the output is just the ${OUTPUT} variable as computed before + +# For some reason, -dynamiclib and -lpython2.6 are missing when linking +# .so files. Add them, except if -bundle is set (incompatible switches) +if [ `echo $OUTPUT | sed -E 's|.*\.||'` = "so" ] && \ + ! `echo $NEWARGS | grep -q bundle`; then + NEWARGS="${NEWARGS} ${PREFIX}/lib/libpython2.6.dylib -dynamiclib" +fi + +# Now, compile + +if [ $SIZE32 = 'NO' ] && [ $SIZE64 = 'NO' ]; then + # No size indication given, just proceed with default + if `${COMPILER} $NEWARGS`; then + exit 0 + else + exit 1 + fi + +elif [ $SIZE32 = 'YES' ] && [ $SIZE64 = 'NO' ]; then + # 32-bit + if `${COMPILER} -m32 $NEWARGS`; then + exit 0 + else + exit 1 + fi + +elif [ $SIZE32 = 'NO' ] && [ $SIZE64 = 'YES' ]; then + # 64-bit + if `${COMPILER} -m64 $NEWARGS`; then + exit 0 + else + exit 1 + fi + +else + # Universal case + if `${COMPILER} -m32 $NEWARGS`; then + for filename in ${OUTPUT} + do + mv ${filename} ${filename}.32 + done + + if `${COMPILER} -m64 $NEWARGS`; then + for filename in ${OUTPUT} + do + mv ${filename} ${filename}.64 + if [ $INTEL = 'YES' ]; then + lipo -create -arch x86_64 ${filename}.64 \ + -arch i386 ${filename}.32 \ + -output ${filename} + else + lipo -create -arch ppc64 ${filename}.64 \ + -arch ppc ${filename}.32 \ + -output ${filename} + fi + + rm -f ${filename}.32 ${filename}.64 + done + else + exit 1 + fi + else + exit 1 + fi +fi +exit 0 |
