1#! /bin/bash - 2# 3# Copyright (c) 2010 Apple Inc. All rights reserved. 4# 5# @APPLE_OSREFERENCE_LICENSE_HEADER_START@ 6# 7# This file contains Original Code and/or Modifications of Original Code 8# as defined in and that are subject to the Apple Public Source License 9# Version 2.0 (the 'License'). You may not use this file except in 10# compliance with the License. Please obtain a copy of the License at 11# http://www.opensource.apple.com/apsl/ and read it before using this 12# file. 13# 14# The Original Code and all software distributed under the License are 15# distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 16# EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 17# INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 18# FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 19# Please see the License for the specific language governing rights and 20# limitations under the License. 21# 22# @APPLE_OSREFERENCE_LICENSE_HEADER_END@ 23# 24 25function usage() { 26 echo "Usage: $0 <sdk> <output>" 1>&2 27 exit 1 28} 29 30if [ $# -ne 2 ]; then 31 usage 32fi 33 34SDKROOT="$1" 35OUTPUT="$2" 36 37AVAILABILITY_PL="${SDKROOT}/${DRIVERKITROOT}/usr/local/libexec/availability.pl" 38 39if [ ! -x "${AVAILABILITY_PL}" ] ; then 40 echo "Unable to locate ${AVAILABILITY_PL} (or not executable)" >&2 41 exit 1 42fi 43 44{ 45cat <<EOF 46/* Copyright (c) 2010 Apple Inc. All rights reserved. 47 * 48 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ 49 * 50 * This file contains Original Code and/or Modifications of Original Code 51 * as defined in and that are subject to the Apple Public Source License 52 * Version 2.0 (the 'License'). You may not use this file except in 53 * compliance with the License. The rights granted to you under the License 54 * may not be used to create, or enable the creation or redistribution of, 55 * unlawful or unlicensed copies of an Apple operating system, or to 56 * circumvent, violate, or enable the circumvention or violation of, any 57 * terms of an Apple operating system software license agreement. 58 * 59 * Please obtain a copy of the License at 60 * http://www.opensource.apple.com/apsl/ and read it before using this file. 61 * 62 * The Original Code and all software distributed under the License are 63 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 64 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 65 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 66 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 67 * Please see the License for the specific language governing rights and 68 * limitations under the License. 69 * 70 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ 71 */ 72 73#ifndef _CDEFS_H_ 74# error "Never use <sys/_symbol_aliasing.h> directly. Use <sys/cdefs.h> instead." 75#endif 76 77EOF 78 79for ver in $(${AVAILABILITY_PL} --ios) ; do 80 set -- $(echo "$ver" | tr '.' ' ') 81 ver_major=$1 82 ver_minor=$2 83 ver_rel=$3 84 if [ -z "$ver_rel" ]; then 85 # don't produce these defines for releases with tertiary release numbers 86 value=$(printf "%d%02d00" ${ver_major} ${ver_minor}) 87 str=$(printf "__IPHONE_%d_%d" ${ver_major} ${ver_minor}) 88 echo "#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= ${value}" 89 echo "#define __DARWIN_ALIAS_STARTING_IPHONE_${str}(x) x" 90 echo "#else" 91 echo "#define __DARWIN_ALIAS_STARTING_IPHONE_${str}(x)" 92 echo "#endif" 93 echo "" 94 fi 95done 96 97for ver in $(${AVAILABILITY_PL} --macosx) ; do 98 set -- $(echo "$ver" | tr '.' ' ') 99 ver_major=$1 100 ver_minor=$2 101 ver_rel=$3 102 if [ -z "$ver_rel" ]; then 103 ver_rel=0 104 fi 105 if [ "$ver_major" -lt 10 -o \( "$ver_major" -eq 10 -a "$ver_minor" -lt 10 \) ]; then 106 value=$(printf "%d%d0" ${ver_major} ${ver_minor}) 107 str=$(printf "__MAC_%d_%d" ${ver_major} ${ver_minor}) 108 else 109 value=$(printf "%d%02d%02d" ${ver_major} ${ver_minor} ${ver_rel}) 110 if [ "$ver_rel" -gt 0 ]; then 111 str=$(printf "__MAC_%d_%d_%d" ${ver_major} ${ver_minor} ${ver_rel}) 112 else 113 str=$(printf "__MAC_%d_%d" ${ver_major} ${ver_minor}) 114 fi 115 fi 116 echo "#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= ${value}" 117 echo "#define __DARWIN_ALIAS_STARTING_MAC_${str}(x) x" 118 echo "#else" 119 echo "#define __DARWIN_ALIAS_STARTING_MAC_${str}(x)" 120 echo "#endif" 121 echo "" 122done 123} > "$OUTPUT" 124 125