listup_binaries(){ find . -type f | while read o; do case "$o" in *) t="`file -b \"$o\"`" case "$t" in *"Mach-O"*" executable"*) ;; *"current ar archive"*|*"ar archive random library"*) ;; *"Mach-O"*" dynamically linked shared library"*) ;; *"Mach-O"*" object"*) ;; *"Mach-O"*" bundle"*) ;; *) continue ;; esac ;; esac echo "$o" done } listup_headers(){ find . -type f | while read o; do case "$o" in *.h|*.hpp) t="`file -b \"$o\"`" case "$t" in *"program text"*) ;; *) continue ;; esac ;; *) continue ;; esac echo "$o" done } { [ -d .arch_i386 ] || mkdir .arch_i386 && (cd ../sbcl-1.0.42-ubagami-build && listup_binaries) > .arch_i386/.binaries.lst && tar -C ../sbcl-1.0.42-ubagami-build --files-from=.arch_i386/.binaries.lst -cf - | (cd .arch_i386 && tar xvf -) && (cd ../sbcl-1.0.42-ubagami-build && listup_headers) > .arch_i386/.headers.lst && tar -C ../sbcl-1.0.42-ubagami-build --files-from=.arch_i386/.headers.lst -cf - | (cd .arch_i386 && tar xvf -) } && { [ -d .arch_ppc ] || mkdir .arch_ppc && (cd ../sbcl-1.0.42-mitsuha-build && listup_binaries) > .arch_ppc/.binaries.lst && tar -C ../sbcl-1.0.42-mitsuha-build --files-from=.arch_ppc/.binaries.lst -cf - | (cd .arch_ppc && tar xvf -) && (cd ../sbcl-1.0.42-mitsuha-build && listup_headers) > .arch_ppc/.headers.lst && tar -C ../sbcl-1.0.42-mitsuha-build --files-from=.arch_ppc/.headers.lst -cf - | (cd .arch_ppc && tar xvf -) } && { cat .arch_ppc/.headers.lst | while read h; do diff .arch_ppc/"$h" .arch_i386/"$h" > /dev/null 2>&1 || { echo univarsalized header: "$h" cat < "$h" && #if defined(__ppc__) || defined(__ppc64__) `cat .arch_ppc/"$h"` #elif defined(__i386__) || defined(__x86_64__) `cat .arch_i386/"$h"` #endif /* defined(__arch__) */ EOF touch -r .arch_ppc/"$h" "$h" } done } && { (cd .arch_ppc && listup_binaries) | while read o; do [ -d "`dirname \"$o\"`" ] || mkdir -p "`dirname \"$o\"`" && echo lipo -create -output "$o" -arch ppc .arch_ppc/"$o" -arch i386 .arch_i386/"$o" lipo -create -output "$o" -arch ppc .arch_ppc/"$o" -arch i386 .arch_i386/"$o" && touch -r .arch_ppc/"$o" "$o" done }