]> git.saurik.com Git - apple/xnu.git/blob - bsd/sys/make_symbol_aliasing.sh
xnu-7195.101.1.tar.gz
[apple/xnu.git] / bsd / sys / make_symbol_aliasing.sh
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
25 function usage() {
26 echo "Usage: $0 <sdk> <output>" 1>&2
27 exit 1
28 }
29
30 if [ $# -ne 2 ]; then
31 usage
32 fi
33
34 SDKROOT="$1"
35 OUTPUT="$2"
36
37 AVAILABILITY_PL="${SDKROOT}/${DRIVERKITROOT}/usr/local/libexec/availability.pl"
38
39 if [ ! -x "${AVAILABILITY_PL}" ] ; then
40 echo "Unable to locate ${AVAILABILITY_PL} (or not executable)" >&2
41 exit 1
42 fi
43
44 {
45 cat <<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
77 EOF
78
79 for 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
95 done
96
97 for 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 ""
122 done
123 } > "$OUTPUT"
124