#!/bin/sh # creates or updates a fat binary by replacing or adding a new architecture. # the target file doesn't need to exist - it will be created if not # already present if [ -z "$1" -o -z "$2" ]; then echo "" echo " Usage: updatefat " echo "" echo " Works even if doesn't exist or is not fat." echo "" exit 1 fi thisarch=`lipo -detailed_info "$2"|sed -n 's/.\{0,\}architecture:* \(.\{1,\}\)/\1/p'` if [ -z "$thisarch" ]; then echo "Cannot find out architecture of $2" >&2 exit 2 fi #echo "architecture: $thisarch"; if [ -e "$1" ]; then \ if lipo -detailed_info "$1"|grep "architecture:* $thisarch\$" > /dev/null; then if lipo -info "$1"|grep ^Non-fat > /dev/null; then lipo -create "$2" -o "$1" else lipo -replace "$thisarch" "$2" "$1" -o "$1" fi else lipo -create "$1" "$2" -o "$1" fi else lipo -create "$2" -o "$1" fi