]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/sys/make_symbol_aliasing.sh
xnu-6153.121.1.tar.gz
[apple/xnu.git] / bsd / sys / make_symbol_aliasing.sh
index fa5f0e33cd066f625f54b41f50604bb65863eec3..8e98dee4b4130144ffc59a75ae4033f5a6b5ffe8 100755 (executable)
 # @APPLE_OSREFERENCE_LICENSE_HEADER_END@
 #
 
+function usage() {
+    echo "Usage: $0 <sdk> <output>" 1>&2
+    exit 1
+}
+
+if [ $# -ne 2 ]; then
+    usage
+fi
+
+SDKROOT="$1"
+OUTPUT="$2"
+
+AVAILABILITY_PL="${SDKROOT}/${DRIVERKITROOT}/usr/local/libexec/availability.pl"
+
+if [ ! -x "${AVAILABILITY_PL}" ] ; then
+    echo "Unable to locate ${AVAILABILITY_PL} (or not executable)" >&2
+    exit 1
+fi
+           
 {
 cat <<EOF
 /* Copyright (c) 2010 Apple Inc. All rights reserved.
@@ -57,7 +76,7 @@ cat <<EOF
 
 EOF
 
-for ver in $(${SDKROOT}/usr/local/libexec/availability.pl --ios) ; do
+for ver in $(${AVAILABILITY_PL} --ios) ; do
     ver_major=${ver%.*}
     ver_minor=${ver#*.}
     value=$(printf "%d%02d00" ${ver_major} ${ver_minor})
@@ -70,11 +89,25 @@ for ver in $(${SDKROOT}/usr/local/libexec/availability.pl --ios) ; do
     echo ""
 done
 
-for ver in $(${SDKROOT}/usr/local/libexec/availability.pl --macosx) ; do
-    ver_major=${ver%.*}
-    ver_minor=${ver#*.}
-    value=$(printf "%d%d0" ${ver_major} ${ver_minor})
-    str=$(printf "__MAC_%d_%d" ${ver_major} ${ver_minor})
+for ver in $(${AVAILABILITY_PL} --macosx) ; do
+    set -- $(echo "$ver" | tr '.' ' ')
+    ver_major=$1
+    ver_minor=$2
+    ver_rel=$3
+    if [ -z "$ver_rel" ]; then
+       ver_rel=0
+    fi
+    if [ "$ver_major" -lt 10 -o \( "$ver_major" -eq 10 -a "$ver_minor" -lt 10 \) ]; then
+       value=$(printf "%d%d0" ${ver_major} ${ver_minor})
+       str=$(printf "__MAC_%d_%d" ${ver_major} ${ver_minor})
+    else
+       value=$(printf "%d%02d%02d" ${ver_major} ${ver_minor} ${ver_rel})
+       if [ "$ver_rel" -gt 0 ]; then
+           str=$(printf "__MAC_%d_%d_%d" ${ver_major} ${ver_minor} ${ver_rel})
+       else
+           str=$(printf "__MAC_%d_%d" ${ver_major} ${ver_minor})
+       fi
+    fi
     echo "#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= ${value}"
     echo "#define __DARWIN_ALIAS_STARTING_MAC_${str}(x) x"
     echo "#else"
@@ -82,5 +115,5 @@ for ver in $(${SDKROOT}/usr/local/libexec/availability.pl --macosx) ; do
     echo "#endif"
     echo ""
 done
-} > $1
+} > "$OUTPUT"