]> git.saurik.com Git - apple/libc.git/blame - xcodescripts/headers.sh
Libc-1353.11.2.tar.gz
[apple/libc.git] / xcodescripts / headers.sh
CommitLineData
ad3c9f2a
A
1#!/bin/bash
2set -x
3
ad3c9f2a
A
4# Installs Libc header files
5
507116e3
A
6if [ -n "${DRIVERKIT}" -a -z "${DRIVERKITSDK}" ]; then
7 # Run script in the mode that installs public DriverKit SDK headers first:
8 # required to get the correct header unifdef ordering, that mode strips out more
9 # and rewrites all headers under the parent directory (/System/DriverKit)
10 DRIVERKITSDK=1 SDK_INSTALL_HEADERS_ROOT="${SDK_INSTALL_ROOT}" "${BASH}" -e "$0"
11fi
12
ad3c9f2a
A
13MKDIR="mkdir -p"
14INSTALL=install
15MV=mv
16ECHO=echo
17CHMOD=chmod
18CP=cp
19UNIFDEF=unifdef
20FIND=find
21RM=rm
22ED=ed
23XARGS=xargs
24GREP=grep
25FGREP=fgrep
26
27eval $(${SRCROOT}/xcodescripts/generate_features.pl --bash)
28UNIFDEFARGS=$(${SRCROOT}/xcodescripts/generate_features.pl --unifdef)
29
70ad1dc8
A
30if [[ "${DEPLOYMENT_LOCATION}" == "NO" ]] ; then
31 HDRROOT=${BUILT_PRODUCTS_DIR}
32else
33 HDRROOT=${DSTROOT}
34fi
35
507116e3
A
36INCDIR=${HDRROOT}/${SDK_INSTALL_HEADERS_ROOT}/usr/include
37LOCINCDIR=${HDRROOT}/${SDK_INSTALL_HEADERS_ROOT}/usr/local/include
38SYSTEMFRAMEWORK=${HDRROOT}/${SDK_INSTALL_HEADERS_ROOT}/System/Library/Frameworks/System.framework
39KERNELFRAMEWORK=${HDRROOT}/${SDK_INSTALL_HEADERS_ROOT}/System/Library/Frameworks/Kernel.framework
ad3c9f2a
A
40
41PRIVHDRS=${SYSTEMFRAMEWORK}/Versions/B/PrivateHeaders
42PRIVKERNELHDRS=${KERNELFRAMEWORK}/Versions/A/PrivateHeaders
43INSTALLMODE=$([[ `id -u` -eq 0 ]] && echo 444 || echo 644)
44
507116e3
A
45if [ -z "${DRIVERKITSDK}" ]; then
46
ad3c9f2a 47INSTHDRS=(
ad3c9f2a
A
48 ${SRCROOT}/gen/get_compat.h
49 ${SRCROOT}/gen/execinfo.h
50)
51
52INC_INSTHDRS=(
e07eda1a
A
53 __wctype.h
54 _ctype.h
23e20b00 55 _locale.h
e07eda1a
A
56 _regex.h
57 _stdio.h
23e20b00
A
58 _types.h
59 _wctype.h
60 _xlocale.h
507116e3 61 _ctermid.h
23e20b00
A
62 aio.h
63 alloca.h
64 ar.h
65 assert.h
66 asm.h
67 bitstring.h
68 cpio.h
69 crt_externs.h
70 ctype.h
71 db.h
72 dirent.h
73 disktab.h
74 err.h
75 errno.h
76 fcntl.h
77 fmtmsg.h
78 fnmatch.h
79 fsproperties.h
80 fstab.h
81 fts.h
82 ftw.h
83 getopt.h
84 glob.h
85 inttypes.h
86 iso646.h
87 langinfo.h
88 libc.h
89 libgen.h
90 limits.h
91 locale.h
92 memory.h
93 monetary.h
94 monitor.h
95 mpool.h
96 ndbm.h
97 nlist.h
98 paths.h
99 printf.h
100 poll.h
101 ranlib.h
102 readpassphrase.h
103 regex.h
104 runetype.h
105 search.h
106 semaphore.h
107 sgtty.h
108 signal.h
109 stab.h
110 standards.h
23e20b00
A
111 stddef.h
112 stdio.h
113 stdint.h
114 stdlib.h
115 strhash.h
116 string.h
117 stringlist.h
118 strings.h
119 struct.h
120 sysexits.h
121 syslog.h
122 tar.h
123 termios.h
124 time.h
125 timeconv.h
126 ttyent.h
127 ulimit.h
128 unistd.h
129 util.h
130 utime.h
131 vis.h
132 wchar.h
133 wctype.h
134 wordexp.h
135 xlocale.h
ad3c9f2a
A
136)
137if [ "x${FEATURE_LEGACY_RUNE_APIS}" == "x1" ]; then
138 INC_INSTHDRS=( "${INC_INSTHDRS[@]}" rune.h )
139fi
140if [ "x${FEATURE_LEGACY_UTMP_APIS}" == "x1" ]; then
141 INC_INSTHDRS=( "${INC_INSTHDRS[@]}" utmp.h )
142fi
143
144INC_INSTHDRS=(
145 "${INC_INSTHDRS[@]/#/${SRCROOT}/include/}"
146 ${SRCROOT}/include/FreeBSD/nl_types.h
147 ${SRCROOT}/include/NetBSD/utmpx.h
148 ${SRCROOT}/stdtime/FreeBSD/tzfile.h
149)
6465356a 150INSTHDRS=( "${INSTHDRS[@]}" "${INC_INSTHDRS[@]}" )
ad3c9f2a 151
6465356a 152INC_ARPA_INSTHDRS=( ftp.h inet.h nameser_compat.h telnet.h tftp.h )
ad3c9f2a
A
153ARPA_INSTHDRS=( "${INC_ARPA_INSTHDRS[@]/#/${SRCROOT}/include/arpa/}" )
154
23e20b00
A
155if [ "x${FEATURE_THERM_NOTIFICATION_APIS}" == "x1" ]; then
156 INC_THERM_INSTHDRS=( OSThermalNotification.h )
157 THERM_INSTHDRS=( "${INC_THERM_INSTHDRS[@]/#/${SRCROOT}/include/libkern/}" )
ad3c9f2a 158fi
ad3c9f2a 159
23e20b00 160INC_PROTO_INSTHDRS=( routed.h rwhod.h talkd.h timed.h )
ad3c9f2a
A
161PROTO_INSTHDRS=( "${INC_PROTO_INSTHDRS[@]/#/${SRCROOT}/include/protocols/}" )
162
b061a43b 163INC_SECURE_INSTHDRS=( _common.h _string.h _strings.h _stdio.h )
ad3c9f2a
A
164SECURE_INSTHDRS=( "${INC_SECURE_INSTHDRS[@]/#/${SRCROOT}/include/secure/}" )
165
166SYS_INSTHDRS=( ${SRCROOT}/include/sys/acl.h ${SRCROOT}/include/sys/statvfs.h )
167
168INC_XLOCALE_INSTHDRS=(
23e20b00
A
169 __wctype.h
170 _ctype.h
171 _inttypes.h
172 _langinfo.h
173 _monetary.h
174 _regex.h
175 _stdio.h
176 _stdlib.h
177 _string.h
178 _time.h
179 _wchar.h
180 _wctype.h
ad3c9f2a
A
181)
182XLOCALE_INSTHDRS=( "${INC_XLOCALE_INSTHDRS[@]/#/${SRCROOT}/include/xlocale/}" )
183
6465356a
A
184TYPES_INSTHDRS=(
185 ${SRCROOT}/include/_types/_intmax_t.h
186 ${SRCROOT}/include/_types/_nl_item.h
187 ${SRCROOT}/include/_types/_uint16_t.h
188 ${SRCROOT}/include/_types/_uint32_t.h
189 ${SRCROOT}/include/_types/_uint64_t.h
190 ${SRCROOT}/include/_types/_uint8_t.h
191 ${SRCROOT}/include/_types/_uintmax_t.h
192 ${SRCROOT}/include/_types/_wctrans_t.h
193 ${SRCROOT}/include/_types/_wctype_t.h
194)
195
ad3c9f2a 196LOCALHDRS=(
23e20b00 197 ${SRCROOT}/darwin/libc_private.h
ad3c9f2a 198 ${SRCROOT}/gen/utmpx_thread.h
ad3c9f2a 199 ${SRCROOT}/nls/FreeBSD/msgcat.h
70ad1dc8
A
200 ${SRCROOT}/gen/thread_stack_pcs.h
201 ${SRCROOT}/libdarwin/h/dirstat.h
ad3c9f2a
A
202)
203
23e20b00 204OS_LOCALHDRS=( ${SRCROOT}/os/assumes.h ${SRCROOT}/os/debug_private.h )
6465356a 205
ad3c9f2a 206PRIV_INSTHDRS=(
ad3c9f2a
A
207 ${SRCROOT}/stdlib/FreeBSD/atexit.h
208)
209
210PRIV_BTREEHDRS=(
211 ${SRCROOT}/db/btree/FreeBSD/btree.h
212 ${SRCROOT}/db/btree/FreeBSD/bt_extern.h
213)
214
23e20b00
A
215SYS_INSTHDRS=(
216 ${SRCROOT}/include/sys/acl.h
217 ${SRCROOT}/include/sys/rbtree.h
218 ${SRCROOT}/include/sys/statvfs.h
219)
ad3c9f2a
A
220PRIVUUID_INSTHDRS=( ${SRCROOT}/uuid/namespace.h )
221
507116e3
A
222else # DRIVERKITSDK
223
224# Public DriverKit SDK headers
225
226UNIFDEFARGS="${UNIFDEFARGS} -U_USE_EXTENDED_LOCALES_"
227
228INC_INSTHDRS=(
229 __wctype.h
230 _ctype.h
231 _locale.h
232 _stdio.h
233 _types.h
234 _wctype.h
235 alloca.h
236 assert.h
237 ctype.h
238 inttypes.h
239 limits.h
240 locale.h
241 runetype.h
242 stddef.h
243 stdio.h
244 stdint.h
245 stdlib.h
246 string.h
247 strings.h
248 time.h
249 wchar.h
250 wctype.h
251)
252
253TYPES_INSTHDRS=(
254 ${SRCROOT}/include/_types/_intmax_t.h
255 ${SRCROOT}/include/_types/_uint16_t.h
256 ${SRCROOT}/include/_types/_uint32_t.h
257 ${SRCROOT}/include/_types/_uint64_t.h
258 ${SRCROOT}/include/_types/_uint8_t.h
259 ${SRCROOT}/include/_types/_uintmax_t.h
260 ${SRCROOT}/include/_types/_wctrans_t.h
261 ${SRCROOT}/include/_types/_wctype_t.h
262)
263
264INC_INSTHDRS=(
265 "${INC_INSTHDRS[@]/#/${SRCROOT}/include/}"
266)
267INSTHDRS=( "${INSTHDRS[@]}" "${INC_INSTHDRS[@]}" )
268
269INC_SECURE_INSTHDRS=( _common.h _string.h _strings.h _stdio.h )
270SECURE_INSTHDRS=( "${INC_SECURE_INSTHDRS[@]/#/${SRCROOT}/include/secure/}" )
271
272fi # DRIVERKITSDK
273
274if [ -n "${INSTHDRS}" ]; then
275${MKDIR} ${INCDIR}
ad3c9f2a 276${INSTALL} -m ${INSTALLMODE} ${INSTHDRS[@]} ${INCDIR}
507116e3
A
277fi
278if [ -n "${ARPA_INSTHDRS}" ]; then
279${MKDIR} ${INCDIR}/arpa
ad3c9f2a 280${INSTALL} -m ${INSTALLMODE} ${ARPA_INSTHDRS[@]} ${INCDIR}/arpa
23e20b00 281fi
507116e3
A
282if [ -n "${THERM_INSTHDRS}" ]; then
283${MKDIR} ${INCDIR}/libkern
23e20b00 284${INSTALL} -m ${INSTALLMODE} ${THERM_INSTHDRS[@]} ${INCDIR}/libkern
6465356a 285fi
507116e3
A
286if [ -n "${PROTO_INSTHDRS}" ]; then
287${MKDIR} ${INCDIR}/protocols
ad3c9f2a 288${INSTALL} -m ${INSTALLMODE} ${PROTO_INSTHDRS[@]} ${INCDIR}/protocols
507116e3
A
289fi
290if [ -n "${SECURE_INSTHDRS}" ]; then
291${MKDIR} ${INCDIR}/secure
ad3c9f2a 292${INSTALL} -m ${INSTALLMODE} ${SECURE_INSTHDRS[@]} ${INCDIR}/secure
507116e3
A
293fi
294if [ -n "${SYS_INSTHDRS}" ]; then
295${MKDIR} ${INCDIR}/sys
ad3c9f2a 296${INSTALL} -m ${INSTALLMODE} ${SYS_INSTHDRS[@]} ${INCDIR}/sys
507116e3
A
297fi
298if [ -n "${XLOCALE_INSTHDRS}" ]; then
299${MKDIR} ${INCDIR}/xlocale
ad3c9f2a 300${INSTALL} -m ${INSTALLMODE} ${XLOCALE_INSTHDRS[@]} ${INCDIR}/xlocale
507116e3
A
301fi
302if [ -n "${TYPES_INSTHDRS}" ]; then
303${MKDIR} ${INCDIR}/_types
6465356a 304${INSTALL} -m ${INSTALLMODE} ${TYPES_INSTHDRS[@]} ${INCDIR}/_types
507116e3
A
305fi
306if [ -n "${LOCALHDRS}" ]; then
ad3c9f2a
A
307${MKDIR} ${LOCINCDIR}
308${INSTALL} -m ${INSTALLMODE} ${LOCALHDRS[@]} ${LOCINCDIR}
507116e3
A
309fi
310if [ -n "${OS_LOCALHDRS}" ]; then
311${MKDIR} ${LOCINCDIR}/os
6465356a 312${INSTALL} -m ${INSTALLMODE} ${OS_LOCALHDRS[@]} ${LOCINCDIR}/os
507116e3
A
313fi
314if [ -n "${PRIV_INSTHDRS}" ]; then
315${MKDIR} ${PRIVHDRS}
ad3c9f2a 316${INSTALL} -m ${INSTALLMODE} ${PRIV_INSTHDRS[@]} ${PRIVHDRS}
507116e3
A
317fi
318if [ -n "${PRIV_BTREEHDRS}" ]; then
319${MKDIR} ${PRIVHDRS}/btree
ad3c9f2a 320${INSTALL} -m ${INSTALLMODE} ${PRIV_BTREEHDRS[@]} ${PRIVHDRS}/btree
507116e3
A
321fi
322if [ -n "${SYS_INSTHDRS}" ]; then
323${MKDIR} ${PRIVHDRS}/sys
ad3c9f2a 324${INSTALL} -m ${INSTALLMODE} ${SYS_INSTHDRS[@]} ${PRIVHDRS}/sys
507116e3
A
325fi
326if [ -n "${PRIVUUID_INSTHDRS}" ]; then
327${MKDIR} ${PRIVHDRS}/uuid
ad3c9f2a 328${INSTALL} -m ${INSTALLMODE} ${PRIVUUID_INSTHDRS[@]} ${PRIVHDRS}/uuid
507116e3 329${MKDIR} ${PRIVKERNELHDRS}/uuid
ad3c9f2a 330${INSTALL} -m ${INSTALLMODE} ${PRIVUUID_INSTHDRS[@]} ${PRIVKERNELHDRS}/uuid
507116e3
A
331fi
332if [ -f "${INCDIR}/asm.h" ]; then
333${MKDIR} ${PRIVHDRS}/machine
334${MV} ${INCDIR}/asm.h ${PRIVHDRS}/machine
335fi
ad3c9f2a 336
507116e3 337for i in `${FIND} "${HDRROOT}/${SDK_INSTALL_HEADERS_ROOT}" -name \*.h -print0 | ${XARGS} -0 ${GREP} -l '^//Begin-Libc'`; do
ad3c9f2a
A
338 ${CHMOD} u+w $i &&
339 ${ECHO} ${ED} - $i \< ${SRCROOT}/xcodescripts/strip-header.ed &&
340 ${ED} - $i < ${SRCROOT}/xcodescripts/strip-header.ed &&
341 ${CHMOD} u-w $i || exit 1;
342done
507116e3 343for i in `${FIND} "${HDRROOT}/${SDK_INSTALL_HEADERS_ROOT}" -name \*.h -print0 | ${XARGS} -0 ${FGREP} -l -e UNIFDEF -e OPEN_SOURCE -e _USE_EXTENDED_LOCALES_`; do
ad3c9f2a
A
344 ${CHMOD} u+w $i &&
345 ${CP} $i $i.orig &&
346 ${ECHO} ${UNIFDEF} ${UNIFDEFARGS} $i.orig \> $i &&
347 { ${UNIFDEF} ${UNIFDEFARGS} $i.orig > $i || [ $? -ne 2 ]; } &&
348 ${RM} $i.orig &&
349 ${CHMOD} u-w $i || exit 1;
350done
351
352exit 0