build_linklists.sh   [plain text]


#!/bin/bash

# build_linklists.sh
# Libc

# Skip script during installhdrs
if [ "$ACTION" == installhdrs ]; then exit 0; fi
# BUILD_ARCHIVES needs to be set in the project settings
if [ -z "$BUILD_ARCHIVES" ]; then exit 0; fi

[ ! -d "$BUILT_PRODUCTS_DIR" ] && mkdir -p "$BUILT_PRODUCTS_DIR"
[ ! -d "$DERIVED_FILES_DIR" ] && mkdir -p "$DERIVED_FILES_DIR"

NORMAL_LIST="$BUILT_PRODUCTS_DIR/normal.linklist"
DEBUG_LIST="$BUILT_PRODUCTS_DIR/debug.linklist"
INTERPOSABLE_LIST="$DERIVED_FILES_DIR/interposable.list"
UNEXPORT_LIST="$DERIVED_FILES_DIR/unexport.list"

rm -f $NORMAL_LIST
rm -f $DEBUG_LIST
rm -f $INTERPOSABLE_LIST
rm -f $UNEXPORT_LIST

for x in ${BUILD_ARCHIVES[@]}; do
	nm -AUamgf "$BUILT_PRODUCTS_DIR/lib${x}.a" 2>/dev/null | \
		grep '__TEXT,__text' | \
		grep -vE '\$VARIANT' | \
		awk '{ print $NF }' >> $INTERPOSABLE_LIST

	nm -AUamgf "$BUILT_PRODUCTS_DIR/lib${x}.a" 2>/dev/null | \
		awk '/\$VARIANT/ { print $NF }' >> $UNEXPORT_LIST

	echo "$BUILT_PRODUCTS_DIR/lib${x}.a" >> $NORMAL_LIST
	echo "$BUILT_PRODUCTS_DIR/lib${x}_debug.a" >> $DEBUG_LIST
done

touch "$BUILT_PRODUCTS_DIR/deps.c"

exit 0