1#!/bin/sh 2 3LIBS="libr/cons/libr_cons.a libr/util/libr_util.a libr/bin/libr_bin.a libr/anal/libr_anal.a libr/bp/libr_bp.a libr/hash/libr_hash.a libr/debug/libr_debug.a shlr/sdb/src/libsdb.a libr/core/libr_core.a libr/main/libr_main.a libr/fs/libr_fs.a libr/syscall/libr_syscall.a shlr/java/libr_java.a shlr/zip/librz.a libr/socket/libr_socket.a libr/anal/libr_anal.a libr/flag/libr_flag.a libr/search/libr_search.a libr/reg/libr_reg.a libr/config/libr_config.a libr/io/libr_io.a libr/parse/libr_parse.a libr/bp/libr_bp.a libr/asm/libr_asm.a libr/bp/libr_bp.a libr/egg/libr_egg.a libr/anal/libr_anal.a libr/magic/libr_magic.a libr/lang/libr_lang.a libr/fs/libr_fs.a shlr/grub/libgrubfs.a shlr/capstone/libcapstone.a shlr/gdb/lib/libgdbr.a shlr/tree-sitter/libtree-sitter.a shlr/radare2-shell-parser/libshell-parser.a" 4cd .. 5 6LIB=libr.a 7TMP=.ar.tmp 8 9IOSVER=1 10if [ -n "${IOSVER}" ]; then 11 RANLIB="xcrun --sdk iphoneos ranlib" 12 AR="xcrun --sdk iphoneos ar" 13else 14 RANLIB=ranlib 15 AR=ar 16fi 17 18rm -rf ${TMP} 19mkdir -p ${TMP} 20for a in ${LIBS} ; do 21 ${RANLIB} $a 22 file "$a" | grep -q universal 23 if [ $? = 0 ]; then 24 ARCHS=`lipo -info $a | cut -d : -f 3-` 25 else 26 ARCHS="" 27 fi 28 if [ -n "${ARCHS}" ]; then 29 for b in ${ARCHS} ; do 30 mkdir -p "$TMP/$a/$b" 31 ORIG="$PWD/$a.$b" 32 lipo -thin $b -output $a.$b $a 33 echo "cd $TMP/$a/$b : ${AR} -x $ORIG" 34 ( cd $TMP/$a/$b ; ${AR} -x $ORIG ) 35 rm -f $a.$b 36 done 37 else 38 mkdir -p "${TMP}/${a}" 39 ORIG="$PWD/$a" 40 ( cd $TMP/$a ; ${AR} -x $ORIG ) 41 echo $a 42 fi 43done 44 45cd ${TMP} 46OBJS=`find * -iname *.o` 47if [ -z "${OBJS}" ]; then 48 echo 49 echo "Cannot find any object" 50 echo 51 exit 1 52else 53 rm -f "${LIB}" 54 ${AR} -qv "${LIB}" ${OBJS} 55 ${RANLIB} "${LIB}" 56fi 57