]> git.saurik.com Git - apple/libc.git/blame_incremental - xcodescripts/headers.sh
Libc-1439.100.3.tar.gz
[apple/libc.git] / xcodescripts / headers.sh
... / ...
CommitLineData
1#!/bin/bash
2set -x
3
4# Installs Libc header files
5
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
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
30if [[ "${DEPLOYMENT_LOCATION}" == "NO" ]] ; then
31 HDRROOT=${BUILT_PRODUCTS_DIR}
32else
33 HDRROOT=${DSTROOT}
34fi
35
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
40
41PRIVHDRS=${SYSTEMFRAMEWORK}/Versions/B/PrivateHeaders
42PRIVKERNELHDRS=${KERNELFRAMEWORK}/Versions/A/PrivateHeaders
43INSTALLMODE=$([[ `id -u` -eq 0 ]] && echo 444 || echo 644)
44
45if [ -z "${DRIVERKITSDK}" ]; then
46
47INSTHDRS=(
48 ${SRCROOT}/gen/get_compat.h
49 ${SRCROOT}/gen/execinfo.h
50)
51
52INC_INSTHDRS=(
53 __wctype.h
54 _ctype.h
55 _locale.h
56 _regex.h
57 _stdio.h
58 _types.h
59 _wctype.h
60 _xlocale.h
61 _ctermid.h
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
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
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)
150INSTHDRS=( "${INSTHDRS[@]}" "${INC_INSTHDRS[@]}" )
151
152INC_ARPA_INSTHDRS=( ftp.h inet.h nameser_compat.h telnet.h tftp.h )
153ARPA_INSTHDRS=( "${INC_ARPA_INSTHDRS[@]/#/${SRCROOT}/include/arpa/}" )
154
155if [ "x${FEATURE_THERM_NOTIFICATION_APIS}" == "x1" ]; then
156 INC_THERM_INSTHDRS=( OSThermalNotification.h )
157 THERM_INSTHDRS=( "${INC_THERM_INSTHDRS[@]/#/${SRCROOT}/include/libkern/}" )
158fi
159
160INC_PROTO_INSTHDRS=( routed.h rwhod.h talkd.h timed.h )
161PROTO_INSTHDRS=( "${INC_PROTO_INSTHDRS[@]/#/${SRCROOT}/include/protocols/}" )
162
163INC_SECURE_INSTHDRS=( _common.h _string.h _strings.h _stdio.h )
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=(
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
181)
182XLOCALE_INSTHDRS=( "${INC_XLOCALE_INSTHDRS[@]/#/${SRCROOT}/include/xlocale/}" )
183
184MODULEMAPS=(
185 ${SRCROOT}/include/_types.modulemap
186 ${SRCROOT}/include/stdint.modulemap
187)
188
189TYPES_INSTHDRS=(
190 ${SRCROOT}/include/_types/_intmax_t.h
191 ${SRCROOT}/include/_types/_nl_item.h
192 ${SRCROOT}/include/_types/_uint16_t.h
193 ${SRCROOT}/include/_types/_uint32_t.h
194 ${SRCROOT}/include/_types/_uint64_t.h
195 ${SRCROOT}/include/_types/_uint8_t.h
196 ${SRCROOT}/include/_types/_uintmax_t.h
197 ${SRCROOT}/include/_types/_wctrans_t.h
198 ${SRCROOT}/include/_types/_wctype_t.h
199)
200
201LOCALHDRS=(
202 ${SRCROOT}/darwin/libc_private.h
203 ${SRCROOT}/gen/utmpx_thread.h
204 ${SRCROOT}/nls/FreeBSD/msgcat.h
205 ${SRCROOT}/gen/thread_stack_pcs.h
206 ${SRCROOT}/libdarwin/h/dirstat.h
207 ${SRCROOT}/darwin/subsystem.h
208)
209
210OS_LOCALHDRS=( ${SRCROOT}/os/assumes.h ${SRCROOT}/os/debug_private.h )
211
212PRIV_INSTHDRS=(
213 ${SRCROOT}/stdlib/FreeBSD/atexit.h
214)
215
216PRIV_BTREEHDRS=(
217 ${SRCROOT}/db/btree/FreeBSD/btree.h
218 ${SRCROOT}/db/btree/FreeBSD/bt_extern.h
219)
220
221SYS_INSTHDRS=(
222 ${SRCROOT}/include/sys/acl.h
223 ${SRCROOT}/include/sys/rbtree.h
224 ${SRCROOT}/include/sys/statvfs.h
225)
226
227PRIVUUID_INSTHDRS=( ${SRCROOT}/uuid/namespace.h )
228
229else # DRIVERKITSDK
230
231# Public DriverKit SDK headers
232
233UNIFDEFARGS="${UNIFDEFARGS} -U_USE_EXTENDED_LOCALES_"
234
235INC_INSTHDRS=(
236 __wctype.h
237 _ctype.h
238 _locale.h
239 _stdio.h
240 _types.h
241 _wctype.h
242 alloca.h
243 assert.h
244 ctype.h
245 inttypes.h
246 limits.h
247 locale.h
248 runetype.h
249 stddef.h
250 stdio.h
251 stdint.h
252 stdlib.h
253 string.h
254 strings.h
255 time.h
256 wchar.h
257 wctype.h
258)
259
260TYPES_INSTHDRS=(
261 ${SRCROOT}/include/_types/_intmax_t.h
262 ${SRCROOT}/include/_types/_uint16_t.h
263 ${SRCROOT}/include/_types/_uint32_t.h
264 ${SRCROOT}/include/_types/_uint64_t.h
265 ${SRCROOT}/include/_types/_uint8_t.h
266 ${SRCROOT}/include/_types/_uintmax_t.h
267 ${SRCROOT}/include/_types/_wctrans_t.h
268 ${SRCROOT}/include/_types/_wctype_t.h
269)
270
271INC_INSTHDRS=(
272 "${INC_INSTHDRS[@]/#/${SRCROOT}/include/}"
273)
274INSTHDRS=( "${INSTHDRS[@]}" "${INC_INSTHDRS[@]}" )
275
276INC_SECURE_INSTHDRS=( _common.h _string.h _strings.h _stdio.h )
277SECURE_INSTHDRS=( "${INC_SECURE_INSTHDRS[@]/#/${SRCROOT}/include/secure/}" )
278
279fi # DRIVERKITSDK
280
281if [ -n "${INSTHDRS}" ]; then
282${MKDIR} ${INCDIR}
283${INSTALL} -m ${INSTALLMODE} ${INSTHDRS[@]} ${INCDIR}
284fi
285if [ -n "${ARPA_INSTHDRS}" ]; then
286${MKDIR} ${INCDIR}/arpa
287${INSTALL} -m ${INSTALLMODE} ${ARPA_INSTHDRS[@]} ${INCDIR}/arpa
288fi
289if [ -n "${THERM_INSTHDRS}" ]; then
290${MKDIR} ${INCDIR}/libkern
291${INSTALL} -m ${INSTALLMODE} ${THERM_INSTHDRS[@]} ${INCDIR}/libkern
292fi
293if [ -n "${PROTO_INSTHDRS}" ]; then
294${MKDIR} ${INCDIR}/protocols
295${INSTALL} -m ${INSTALLMODE} ${PROTO_INSTHDRS[@]} ${INCDIR}/protocols
296fi
297if [ -n "${SECURE_INSTHDRS}" ]; then
298${MKDIR} ${INCDIR}/secure
299${INSTALL} -m ${INSTALLMODE} ${SECURE_INSTHDRS[@]} ${INCDIR}/secure
300fi
301if [ -n "${SYS_INSTHDRS}" ]; then
302${MKDIR} ${INCDIR}/sys
303${INSTALL} -m ${INSTALLMODE} ${SYS_INSTHDRS[@]} ${INCDIR}/sys
304fi
305if [ -n "${XLOCALE_INSTHDRS}" ]; then
306${MKDIR} ${INCDIR}/xlocale
307${INSTALL} -m ${INSTALLMODE} ${XLOCALE_INSTHDRS[@]} ${INCDIR}/xlocale
308fi
309if [ -n "${TYPES_INSTHDRS}" ]; then
310${MKDIR} ${INCDIR}/_types
311${INSTALL} -m ${INSTALLMODE} ${TYPES_INSTHDRS[@]} ${INCDIR}/_types
312fi
313if [ -n "${MODULEMAPS}" ]; then
314${MKDIR} ${INCDIR}
315${INSTALL} -m ${INSTALLMODE} ${MODULEMAPS[@]} ${INCDIR}
316fi
317if [ -n "${LOCALHDRS}" ]; then
318${MKDIR} ${LOCINCDIR}
319${INSTALL} -m ${INSTALLMODE} ${LOCALHDRS[@]} ${LOCINCDIR}
320fi
321if [ -n "${OS_LOCALHDRS}" ]; then
322${MKDIR} ${LOCINCDIR}/os
323${INSTALL} -m ${INSTALLMODE} ${OS_LOCALHDRS[@]} ${LOCINCDIR}/os
324fi
325if [ -n "${PRIV_INSTHDRS}" ]; then
326${MKDIR} ${PRIVHDRS}
327${INSTALL} -m ${INSTALLMODE} ${PRIV_INSTHDRS[@]} ${PRIVHDRS}
328fi
329if [ -n "${PRIV_BTREEHDRS}" ]; then
330${MKDIR} ${PRIVHDRS}/btree
331${INSTALL} -m ${INSTALLMODE} ${PRIV_BTREEHDRS[@]} ${PRIVHDRS}/btree
332fi
333if [ -n "${SYS_INSTHDRS}" ]; then
334${MKDIR} ${PRIVHDRS}/sys
335${INSTALL} -m ${INSTALLMODE} ${SYS_INSTHDRS[@]} ${PRIVHDRS}/sys
336fi
337if [ -n "${PRIVUUID_INSTHDRS}" ]; then
338${MKDIR} ${PRIVHDRS}/uuid
339${INSTALL} -m ${INSTALLMODE} ${PRIVUUID_INSTHDRS[@]} ${PRIVHDRS}/uuid
340${MKDIR} ${PRIVKERNELHDRS}/uuid
341${INSTALL} -m ${INSTALLMODE} ${PRIVUUID_INSTHDRS[@]} ${PRIVKERNELHDRS}/uuid
342fi
343if [ -f "${INCDIR}/asm.h" ]; then
344${MKDIR} ${PRIVHDRS}/machine
345${MV} ${INCDIR}/asm.h ${PRIVHDRS}/machine
346fi
347
348for i in `${FIND} "${HDRROOT}/${SDK_INSTALL_HEADERS_ROOT}" -name \*.h -print0 | ${XARGS} -0 ${GREP} -l '^//Begin-Libc'`; do
349 ${CHMOD} u+w $i &&
350 ${ECHO} ${ED} - $i \< ${SRCROOT}/xcodescripts/strip-header.ed &&
351 ${ED} - $i < ${SRCROOT}/xcodescripts/strip-header.ed &&
352 ${CHMOD} u-w $i || exit 1;
353done
354for 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
355 ${CHMOD} u+w $i &&
356 ${CP} $i $i.orig &&
357 ${ECHO} ${UNIFDEF} ${UNIFDEFARGS} $i.orig \> $i &&
358 { ${UNIFDEF} ${UNIFDEFARGS} $i.orig > $i || [ $? -ne 2 ]; } &&
359 ${RM} $i.orig &&
360 ${CHMOD} u-w $i || exit 1;
361done
362
363exit 0