]> git.saurik.com Git - apple/libc.git/blob - xcodescripts/build_linklists.sh
Libc-1439.100.3.tar.gz
[apple/libc.git] / xcodescripts / build_linklists.sh
1 #!/bin/bash
2
3 # build_linklists.sh
4 # Libc
5
6 # Skip script during installhdrs
7 if [ "$ACTION" == installhdrs ]; then exit 0; fi
8 # BUILD_ARCHIVES needs to be set in the project settings
9 if [ -z "$BUILD_ARCHIVES" ]; then exit 0; fi
10
11 [ ! -d "$BUILT_PRODUCTS_DIR" ] && mkdir -p "$BUILT_PRODUCTS_DIR"
12 [ ! -d "$DERIVED_FILES_DIR" ] && mkdir -p "$DERIVED_FILES_DIR"
13
14 NORMAL_LIST="$BUILT_PRODUCTS_DIR/normal.linklist"
15 DEBUG_LIST="$BUILT_PRODUCTS_DIR/debug.linklist"
16 INTERPOSABLE_LIST="$DERIVED_FILES_DIR/interposable.list"
17 UNEXPORT_LIST="$DERIVED_FILES_DIR/unexport.list"
18
19 rm -f "$NORMAL_LIST"
20 rm -f "$DEBUG_LIST"
21 rm -f "$INTERPOSABLE_LIST"
22 rm -f "$UNEXPORT_LIST"
23
24 for x in ${BUILD_ARCHIVES[@]}; do
25 nm -AUamgf "$BUILT_PRODUCTS_DIR/lib${x}.a" 2>/dev/null | \
26 grep '__TEXT,__text' | \
27 grep -vE '\$VARIANT' | \
28 awk '{ print $NF }' >> "$INTERPOSABLE_LIST"
29
30 nm -AUamgf "$BUILT_PRODUCTS_DIR/lib${x}.a" 2>/dev/null | \
31 awk '/\$VARIANT/ { print $NF }' >> "$UNEXPORT_LIST"
32
33 echo "$BUILT_PRODUCTS_DIR/lib${x}.a" >> "$NORMAL_LIST.libtool"
34 filename=$(printf %s "$BUILT_PRODUCTS_DIR/lib${x}.a" | sed "s/\ /\\\ /g")
35 echo "$filename" >> "$NORMAL_LIST"
36
37 echo "$BUILT_PRODUCTS_DIR/lib${x}_debug.a" >> "$DEBUG_LIST.libtool"
38 filename=$(printf %s "$BUILT_PRODUCTS_DIR/lib${x}_debug.a" | sed "s/\ /\\\ /g")
39 echo "$filename" >> "$DEBUG_LIST"
40 done
41
42 touch "$BUILT_PRODUCTS_DIR/deps.c"
43
44 exit 0