#!/bin/sh
if [ $then
echo "Export file name required."
exit 1
fi
expfile="$1"
expbase=`basename $expfile`
echo ====== BUILT_PRODUCTS_DIR ${BUILT_PRODUCTS_DIR} ======
echo ====== INNER_PRODUCT_SUBPATH ${INNER_PRODUCT_SUBPATH} ======
if [ "${BUILT_PRODUCTS_DIR}/${expbase}.timestamp" -nt "${BUILT_PRODUCTS_DIR}/${INNER_PRODUCT_SUBPATH}" ]; then
echo "${BUILT_PRODUCTS_DIR}/${INNER_PRODUCT_SUBPATH} is up to date."
exit 0
fi
if [ -e ${BUILT_PRODUCTS_DIR}/${INNER_PRODUCT_SUBPATH} ]
then
binary_file=${BUILT_PRODUCTS_DIR}/${INNER_PRODUCT_SUBPATH}
elif [ -e ${DSTROOT}/${INSTALL_PATH}/${INNER_PRODUCT_SUBPATH} ]
then
binary_file=${DSTROOT}/${INSTALL_PATH}/${INNER_PRODUCT_SUBPATH}
else
echo ==== Can not find linked Security binary ====
exit 1
fi
echo "Scanning $binary_file"
ARCHS=`lipo -info "$binary_file" | awk -F : '{print $3}'`
for arch in $ARCHS
do
echo "Generating exports file ${BUILT_PRODUCTS_DIR}/${expbase}_$arch"
nm -gp -arch $arch "$binary_file" \
| egrep -v '^/| U _' \
| awk '{print $3}' \
| egrep '_(|tf|ti|C)(|Q[2-9])8Security|_(N|ZN|ZNK|ZTTN|ZTVN)8Security|_ZN9KeySchema|^_(Sec|CSSM|Authorization)' \
| cat - "$expfile" \
| sort -u > "${BUILT_PRODUCTS_DIR}/${expbase}_$arch"
echo nmedit -s "${BUILT_PRODUCTS_DIR}/${expbase}_$arch" -arch $arch "$binary_file"
nmedit -s "${BUILT_PRODUCTS_DIR}/${expbase}_$arch" -arch $arch "$binary_file"
done
touch "${BUILT_PRODUCTS_DIR}/${expbase}.timestamp"