xref: /xnu-11215/bsd/conf/Makefile.template (revision 8d741a5d)
1#
2# Copyright (c) 2000-2020 Apple Inc. All rights reserved.
3#
4# @APPLE_LICENSE_HEADER_START@
5#
6# The contents of this file constitute Original Code as defined in and
7# are subject to the Apple Public Source License Version 1.1 (the
8# "License").  You may not use this file except in compliance with the
9# License.  Please obtain a copy of the License at
10# http://www.apple.com/publicsource and read it before using this file.
11#
12# This Original Code and all software distributed under the License are
13# distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14# EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15# INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16# FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
17# License for the specific language governing rights and limitations
18# under the License.
19#
20# @APPLE_LICENSE_HEADER_END@
21#
22
23#
24# Mach Operating System
25# Copyright (c) 1986 Carnegie-Mellon University
26# All rights reserved.  The CMU software License Agreement specifies
27# the terms and conditions for use and redistribution.
28#
29
30export MakeInc_cmd=${SRCROOT}/makedefs/MakeInc.cmd
31export MakeInc_def=${SRCROOT}/makedefs/MakeInc.def
32export MakeInc_rule=${SRCROOT}/makedefs/MakeInc.rule
33export MakeInc_dir=${SRCROOT}/makedefs/MakeInc.dir
34
35include $(MakeInc_cmd)
36include $(MakeInc_def)
37
38#
39# XXX: CFLAGS
40#
41CFLAGS+= -include meta_features.h -DDRIVER_PRIVATE \
42	-D_KERNEL_BUILD -DKERNEL_BUILD -DMACH_KERNEL -DBSD_BUILD \
43	-DBSD_KERNEL_PRIVATE \
44        -Warray-bounds-pointer-arithmetic
45SFLAGS+= -include meta_features.h
46
47#
48# Directories for mig generated files
49#
50COMP_SUBDIRS =
51
52#
53#  Make sure we don't remove this by accident if interrupted at the wrong
54#  time.
55#
56.PRECIOUS: Makefile
57
58#
59#  Theses macros are filled in by the config program depending on the
60#  current configuration.  The MACHDEP macro is replaced by the
61#  contents of the machine dependent makefile template and the others
62#  are replaced by the corresponding symbol definitions for the
63#  configuration.
64#
65
66%OBJS
67
68%LIBOBJS
69
70%CFILES
71
72%CXXFILES
73
74%SFILES
75
76%MACHDEP
77
78tcp_cubic.o_CWARNFLAGS_ADD += -Wno-error=implicit-int-float-conversion
79
80#
81# Enforce semantic types
82#
83
84SEMANTIC_TYPES_SRC = $(notdir $(wildcard ${SRCROOT}/bsd/vm/*.c))
85SEMANTIC_TYPES_OBJ = $(SEMANTIC_TYPES_SRC:.c=.o)
86
87define FORCE_UNSAFE_TYPES
88$1_CFLAGS_ADD += -DVM_UNSAFE_TYPES
89endef
90
91$(foreach file,$(SEMANTIC_TYPES_OBJ),$(eval $(call FORCE_UNSAFE_TYPES, $(file))))
92kern_mman.o_CFLAGS_ADD += -DVM_UNSAFE_TYPES
93
94#
95# Diagnostic opt-outs.  We need to make this list empty.
96#
97# DO NOT ADD MORE HERE.
98#
99# -Wno-address-of-packed-member
100ah_core.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
101ah_input.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
102dlil.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
103esp_input.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
104esp_output.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
105frag6.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
106icmp6.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
107if_bridge.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
108if_ipsec.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
109if_ports_used.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
110if_stf.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
111in6_cksum.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
112in6_gif.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
113ip6_forward.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
114ip6_input.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
115ip6_output.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
116ipsec.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
117iptap.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
118mld6.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
119mptcp_opt.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
120nd6.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
121nd6_nbr.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
122nd6_prproxy.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
123nd6_rtr.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
124necp.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
125packet_mangler.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
126pf_ioctl.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
127pf_norm.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
128pktap.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
129raw_ip6.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
130tcp_input.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
131tcp_subr.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
132udp6_output.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
133udp6_usrreq.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
134udp_usrreq.o_CWARNFLAGS_ADD += -Wno-address-of-packed-member
135# -Wno-cast-align
136audit_bsm_token.o_CWARNFLAGS_ADD += -Wno-cast-align
137audit_pipe.o_CWARNFLAGS_ADD += -Wno-cast-align
138audit_session.o_CWARNFLAGS_ADD += -Wno-cast-align
139bind_vnops.o_CWARNFLAGS_ADD += -Wno-cast-align
140dtrace.o_CWARNFLAGS_ADD += -Wno-cast-align
141fasttrap.o_CWARNFLAGS_ADD += -Wno-cast-align
142fasttrap_isa.o_CWARNFLAGS_ADD += -Wno-cast-align
143fbt.o_CWARNFLAGS_ADD += -Wno-cast-align
144fbt_arm.o_CWARNFLAGS_ADD += -Wno-cast-align
145fbt_x86.o_CWARNFLAGS_ADD += -Wno-cast-align
146if_bridge.o_CWARNFLAGS_ADD += -Wno-cast-align
147if_bond.o_CWARNFLAGS_ADD += -Wno-cast-align
148kern_credential.o_CWARNFLAGS_ADD += -Wno-cast-align
149kern_descrip.o_CWARNFLAGS_ADD += -Wno-cast-align
150kern_event.o_CWARNFLAGS_ADD += -Wno-cast-align
151kern_exec.o_CWARNFLAGS_ADD += -Wno-cast-align
152kern_guarded.o_CWARNFLAGS_ADD += -Wno-cast-align
153kern_lockf.o_CWARNFLAGS_ADD += -Wno-cast-align
154kern_subr.o_CWARNFLAGS_ADD += -Wno-cast-align
155km.o_CWARNFLAGS_ADD += -Wno-cast-align
156mach_loader.o_CWARNFLAGS_ADD += -Wno-cast-align
157memdev.o_CWARNFLAGS_ADD += -Wno-cast-align
158munge.o_CWARNFLAGS_ADD += -Wno-cast-align
159nfs_gss.o_CWARNFLAGS_ADD += -Wno-cast-align
160nfs_serv.o_CWARNFLAGS_ADD += -Wno-cast-align
161nfs_socket.o_CWARNFLAGS_ADD += -Wno-cast-align
162nfs_srvcache.o_CWARNFLAGS_ADD += -Wno-cast-align
163nfs_subs.o_CWARNFLAGS_ADD += -Wno-cast-align
164nfs_syscalls.o_CWARNFLAGS_ADD += -Wno-cast-align
165proc_info.o_CWARNFLAGS_ADD += -Wno-cast-align
166qsort.o_CWARNFLAGS_ADD += -Wno-cast-align
167sdt.o_CWARNFLAGS_ADD += -Wno-cast-align
168sdt_arm.o_CWARNFLAGS_ADD += -Wno-cast-align
169shadow.o_CWARNFLAGS_ADD += -Wno-cast-align
170spec_vnops.o_CWARNFLAGS_ADD += -Wno-cast-align
171subr_log.o_CWARNFLAGS_ADD += -Wno-cast-align
172sys_generic.o_CWARNFLAGS_ADD += -Wno-cast-align
173sys_pipe.o_CWARNFLAGS_ADD += -Wno-cast-align
174systemcalls.o_CWARNFLAGS_ADD += -Wno-cast-align
175systrace.o_CWARNFLAGS_ADD += -Wno-cast-align
176tty.o_CWARNFLAGS_ADD += -Wno-cast-align
177tty_compat.o_CWARNFLAGS_ADD += -Wno-cast-align
178tty_dev.o_CWARNFLAGS_ADD += -Wno-cast-align
179ubc_subr.o_CWARNFLAGS_ADD += -Wno-cast-align
180uipc_mbuf.o_CWARNFLAGS_ADD += -Wno-cast-align
181uipc_usrreq.o_CWARNFLAGS_ADD += -Wno-cast-align
182vfs_attrlist.o_CWARNFLAGS_ADD += -Wno-cast-align
183vfs_fsevents.o_CWARNFLAGS_ADD += -Wno-cast-align
184vfs_syscalls.o_CWARNFLAGS_ADD += -Wno-cast-align
185vfs_utfconv.o_CWARNFLAGS_ADD += -Wno-cast-align
186vfs_vnops.o_CWARNFLAGS_ADD += -Wno-cast-align
187vfs_xattr.o_CWARNFLAGS_ADD += -Wno-cast-align
188vn.o_CWARNFLAGS_ADD += -Wno-cast-align
189# -Wno-cast-qual
190dis_tables.o_CWARNFLAGS_ADD += -Wno-cast-qual
191# -Wno-format
192dlil.o_CWARNFLAGS_ADD += -Wno-format
193in_rmx.o_CWARNFLAGS_ADD += -Wno-format
194in6_rmx.o_CWARNFLAGS_ADD += -Wno-format
195route.o_CWARNFLAGS_ADD += -Wno-format
196# -Wno-format-extra-args
197dlil.o_CWARNFLAGS_ADD += -Wno-format-extra-args
198kpi_interface.o_CWARNFLAGS_ADD += -Wno-format-extra-args
199in_rmx.o_CWARNFLAGS_ADD += -Wno-format-extra-args
200in6_rmx.o_CWARNFLAGS_ADD += -Wno-format-extra-args
201route.o_CWARNFLAGS_ADD += -Wno-format-extra-args
202# -Wno-format-invalid-specifier
203dlil.o_CWARNFLAGS_ADD += -Wno-format-invalid-specifier
204in_rmx.o_CWARNFLAGS_ADD += -Wno-format-invalid-specifier
205in6_rmx.o_CWARNFLAGS_ADD += -Wno-format-invalid-specifier
206kpi_interface.o_CWARNFLAGS_ADD += -Wno-format-invalid-specifier
207route.o_CWARNFLAGS_ADD += -Wno-format-invalid-specifier
208# -Wno-implicit-int-conversion
209audit.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
210audit_bsm.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
211audit_bsm_errno.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
212audit_bsm_token.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
213audit_worker.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
214content_filter.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
215devfs_fdesc_support.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
216devfs_vnops.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
217dis_tables.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
218dtrace.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
219fasttrap.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
220fasttrap_isa.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
221fbt_arm.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
222flow_agg.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
223flowadv.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
224if_bond.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
225if_bridge.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
226if_fake.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
227if_stf.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
228if_utun.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
229if_vlan.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
230in6_gif.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
231in6_pcb.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
232in_gif.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
233km.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
234necp.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
235network_agent.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
236ntstat.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
237null_vnops.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
238pf.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
239pf_norm.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
240shadow.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
241skpc.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
242spec_vnops.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
243systemcalls.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
244systrace.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
245sysv_msg.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
246sysv_sem.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
247uipc_mbuf.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
248vfs_quota.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
249vsock_domain.o_CWARNFLAGS_ADD += -Wno-implicit-int-conversion
250# -Wno-shorten-64-to-32
251audit_bsm.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
252audit_bsm_token.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
253audit_pipe.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
254audit_session.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
255audit_syscalls.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
256audit_worker.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
257bind_vnops.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
258devfs_fdesc_support.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
259devfs_tree.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
260devfs_vnops.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
261devtimer.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
262dis_tables.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
263doc_tombstone.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
264dtrace.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
265dtrace_ptss.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
266esp_chachapoly.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
267fasttrap.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
268fasttrap_isa.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
269if_bond.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
270if_bridge.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
271if_fake.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
272if_gif.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
273if_stf.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
274if_utun.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
275if_vlan.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
276in6_rmx.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
277in_rmx.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
278iptap.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
279kern_fork.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
280kern_malloc.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
281kern_overrides.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
282
283lockprof.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
284mem.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
285memdev.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
286nd6_rtr.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
287necp.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
288necp_client.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
289network_agent.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
290ntstat.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
291null_vnops.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
292pf.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
293pf_norm.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
294pf_pbuf.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
295profile_prvd.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
296profile_runtime.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
297sdt.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
298shadow.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
299skpc.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
300spec_vnops.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
301stubs.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
302systemcalls.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
303sysv_msg.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
304sysv_sem.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
305sysv_shm.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
306uipc_mbuf.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
307unix_signal.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
308ux_exception.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
309vfs_cluster.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
310vfs_quota.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
311vfs_subr.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
312vfs_support.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
313vn.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
314xcpm.o_CWARNFLAGS_ADD += -Wno-shorten-64-to-32
315# -Wno-sign-compare
316dest6.o_CWARNFLAGS_ADD += -Wno-sign-compare
317dhcp_options.o_CWARNFLAGS_ADD += -Wno-sign-compare
318esp_chachapoly.o_CWARNFLAGS_ADD += -Wno-sign-compare
319frag6.o_CWARNFLAGS_ADD += -Wno-sign-compare
320in6.o_CWARNFLAGS_ADD += -Wno-sign-compare
321in6_cksum.o_CWARNFLAGS_ADD += -Wno-sign-compare
322in6_proto.o_CWARNFLAGS_ADD += -Wno-sign-compare
323radix.o_CWARNFLAGS_ADD += -Wno-sign-compare
324route6.o_CWARNFLAGS_ADD += -Wno-sign-compare
325scope6.o_CWARNFLAGS_ADD += -Wno-sign-compare
326uipc_mbuf.o_CWARNFLAGS_ADD += -Wno-sign-compare
327# -Wno-sign-conversion
328audit.o_CWARNFLAGS_ADD += -Wno-sign-conversion
329audit_arg.o_CWARNFLAGS_ADD += -Wno-sign-conversion
330audit_bsd.o_CWARNFLAGS_ADD += -Wno-sign-conversion
331audit_bsm.o_CWARNFLAGS_ADD += -Wno-sign-conversion
332audit_bsm_klib.o_CWARNFLAGS_ADD += -Wno-sign-conversion
333audit_bsm_token.o_CWARNFLAGS_ADD += -Wno-sign-conversion
334audit_mac.o_CWARNFLAGS_ADD += -Wno-sign-conversion
335audit_pipe.o_CWARNFLAGS_ADD += -Wno-sign-conversion
336audit_session.o_CWARNFLAGS_ADD += -Wno-sign-conversion
337audit_syscalls.o_CWARNFLAGS_ADD += -Wno-sign-conversion
338audit_worker.o_CWARNFLAGS_ADD += -Wno-sign-conversion
339bind_vfsops.o_CWARNFLAGS_ADD += -Wno-sign-conversion
340bind_vnops.o_CWARNFLAGS_ADD += -Wno-sign-conversion
341blist.o_CWARNFLAGS_ADD += -Wno-sign-conversion
342bpf.o_CWARNFLAGS_ADD += -Wno-sign-conversion
343bsd_init.o_CWARNFLAGS_ADD += -Wno-sign-conversion
344bsd_stubs.o_CWARNFLAGS_ADD += -Wno-sign-conversion
345cbrtf.o_CWARNFLAGS_ADD += -Wno-sign-conversion
346chunklist.o_CWARNFLAGS_ADD += -Wno-sign-conversion
347content_filter.o_CWARNFLAGS_ADD += -Wno-sign-conversion
348cpu_in_cksum_gen.o_CWARNFLAGS_ADD += -Wno-sign-conversion
349cuckoo_hashtable_test.o_CWARNFLAGS_ADD += -Wno-sign-conversion
350decmpfs.o_CWARNFLAGS_ADD += -Wno-sign-conversion
351dest6.o_CWARNFLAGS_ADD += -Wno-sign-conversion
352devfs_fdesc_support.o_CWARNFLAGS_ADD += -Wno-sign-conversion
353devfs_tree.o_CWARNFLAGS_ADD += -Wno-sign-conversion
354devfs_vfsops.o_CWARNFLAGS_ADD += -Wno-sign-conversion
355devfs_vnops.o_CWARNFLAGS_ADD += -Wno-sign-conversion
356devtimer.o_CWARNFLAGS_ADD += -Wno-sign-conversion
357dhcp_options.o_CWARNFLAGS_ADD += -Wno-sign-conversion
358dis_tables.o_CWARNFLAGS_ADD += -Wno-sign-conversion
359disassembler.o_CWARNFLAGS_ADD += -Wno-sign-conversion
360doc_tombstone.o_CWARNFLAGS_ADD += -Wno-sign-conversion
361dtrace.o_CWARNFLAGS_ADD += -Wno-sign-conversion
362dtrace_glue.o_CWARNFLAGS_ADD += -Wno-sign-conversion
363dtrace_isa.o_CWARNFLAGS_ADD += -Wno-sign-conversion
364dtrace_ptss.o_CWARNFLAGS_ADD += -Wno-sign-conversion
365dtrace_subr.o_CWARNFLAGS_ADD += -Wno-sign-conversion
366dtrace_subr_arm.o_CWARNFLAGS_ADD += -Wno-sign-conversion
367ether_if_module.o_CWARNFLAGS_ADD += -Wno-sign-conversion
368ether_inet6_pr_module.o_CWARNFLAGS_ADD += -Wno-sign-conversion
369ether_inet_pr_module.o_CWARNFLAGS_ADD += -Wno-sign-conversion
370fasttrap.o_CWARNFLAGS_ADD += -Wno-sign-conversion
371fasttrap_isa.o_CWARNFLAGS_ADD += -Wno-sign-conversion
372fbt.o_CWARNFLAGS_ADD += -Wno-sign-conversion
373fbt_arm.o_CWARNFLAGS_ADD += -Wno-sign-conversion
374fbt_x86.o_CWARNFLAGS_ADD += -Wno-sign-conversion
375fifo_vnops.o_CWARNFLAGS_ADD += -Wno-sign-conversion
376flowhash.o_CWARNFLAGS_ADD += -Wno-sign-conversion
377frag6.o_CWARNFLAGS_ADD += -Wno-sign-conversion
378if.o_CWARNFLAGS_ADD += -Wno-sign-conversion
379if_bond.o_CWARNFLAGS_ADD += -Wno-sign-conversion
380if_bridge.o_CWARNFLAGS_ADD += -Wno-sign-conversion
381if_fake.o_CWARNFLAGS_ADD += -Wno-sign-conversion
382if_gif.o_CWARNFLAGS_ADD += -Wno-sign-conversion
383if_ipsec.o_CWARNFLAGS_ADD += -Wno-sign-conversion
384if_llatbl.o_CWARNFLAGS_ADD += -Wno-sign-conversion
385if_loop.o_CWARNFLAGS_ADD += -Wno-sign-conversion
386if_low_power_mode.o_CWARNFLAGS_ADD += -Wno-sign-conversion
387if_pflog.o_CWARNFLAGS_ADD += -Wno-sign-conversion
388if_stf.o_CWARNFLAGS_ADD += -Wno-sign-conversion
389if_utun.o_CWARNFLAGS_ADD += -Wno-sign-conversion
390if_vlan.o_CWARNFLAGS_ADD += -Wno-sign-conversion
391imageboot.o_CWARNFLAGS_ADD += -Wno-sign-conversion
392in6.o_CWARNFLAGS_ADD += -Wno-sign-conversion
393in6_cga.o_CWARNFLAGS_ADD += -Wno-sign-conversion
394in6_cksum.o_CWARNFLAGS_ADD += -Wno-sign-conversion
395in6_gif.o_CWARNFLAGS_ADD += -Wno-sign-conversion
396in6_pcb.o_CWARNFLAGS_ADD += -Wno-sign-conversion
397in6_proto.o_CWARNFLAGS_ADD += -Wno-sign-conversion
398in6_rmx.o_CWARNFLAGS_ADD += -Wno-sign-conversion
399in_gif.o_CWARNFLAGS_ADD += -Wno-sign-conversion
400in_rmx.o_CWARNFLAGS_ADD += -Wno-sign-conversion
401instr_size.o_CWARNFLAGS_ADD += -Wno-sign-conversion
402ip6_forward.o_CWARNFLAGS_ADD += -Wno-sign-conversion
403ip6_id.o_CWARNFLAGS_ADD += -Wno-sign-conversion
404iptap.o_CWARNFLAGS_ADD += -Wno-sign-conversion
405kern_acct.o_CWARNFLAGS_ADD += -Wno-sign-conversion
406kern_authorization.o_CWARNFLAGS_ADD += -Wno-sign-conversion
407kern_clock.o_CWARNFLAGS_ADD += -Wno-sign-conversion
408kern_control.o_CWARNFLAGS_ADD += -Wno-sign-conversion
409kern_core.o_CWARNFLAGS_ADD += -Wno-sign-conversion
410kern_credential.o_CWARNFLAGS_ADD += -Wno-sign-conversion
411kern_cs.o_CWARNFLAGS_ADD += -Wno-sign-conversion
412kern_descrip.o_CWARNFLAGS_ADD += -Wno-sign-conversion
413kern_event.o_CWARNFLAGS_ADD += -Wno-sign-conversion
414kern_exit.o_CWARNFLAGS_ADD += -Wno-sign-conversion
415kern_fork.o_CWARNFLAGS_ADD += -Wno-sign-conversion
416kern_guarded.o_CWARNFLAGS_ADD += -Wno-sign-conversion
417kern_kpc.o_CWARNFLAGS_ADD += -Wno-sign-conversion
418kern_lockf.o_CWARNFLAGS_ADD += -Wno-sign-conversion
419kern_malloc.o_CWARNFLAGS_ADD += -Wno-sign-conversion
420kern_memorystatus.o_CWARNFLAGS_ADD += -Wno-sign-conversion
421kern_memorystatus_freeze.o_CWARNFLAGS_ADD += -Wno-sign-conversion
422kern_memorystatus_notify.o_CWARNFLAGS_ADD += -Wno-sign-conversion
423kern_mib.o_CWARNFLAGS_ADD += -Wno-sign-conversion
424kern_mman.o_CWARNFLAGS_ADD += -Wno-sign-conversion
425kern_ntptime.o_CWARNFLAGS_ADD += -Wno-sign-conversion
426kern_overrides.o_CWARNFLAGS_ADD += -Wno-sign-conversion
427kern_persona.o_CWARNFLAGS_ADD += -Wno-sign-conversion
428kern_physio.o_CWARNFLAGS_ADD += -Wno-sign-conversion
429kern_proc.o_CWARNFLAGS_ADD += -Wno-sign-conversion
430kern_prot.o_CWARNFLAGS_ADD += -Wno-sign-conversion
431kern_resource.o_CWARNFLAGS_ADD += -Wno-sign-conversion
432kern_shutdown.o_CWARNFLAGS_ADD += -Wno-sign-conversion
433kern_sig.o_CWARNFLAGS_ADD += -Wno-sign-conversion
434kern_subr.o_CWARNFLAGS_ADD += -Wno-sign-conversion
435kern_symfile.o_CWARNFLAGS_ADD += -Wno-sign-conversion
436kern_synch.o_CWARNFLAGS_ADD += -Wno-sign-conversion
437kern_time.o_CWARNFLAGS_ADD += -Wno-sign-conversion
438km.o_CWARNFLAGS_ADD += -Wno-sign-conversion
439kpi_mbuf.o_CWARNFLAGS_ADD += -Wno-sign-conversion
440kpi_protocol.o_CWARNFLAGS_ADD += -Wno-sign-conversion
441kpi_socketfilter.o_CWARNFLAGS_ADD += -Wno-sign-conversion
442kpi_vfs.o_CWARNFLAGS_ADD += -Wno-sign-conversion
443lockprof.o_CWARNFLAGS_ADD += -Wno-sign-conversion
444mach_loader.o_CWARNFLAGS_ADD += -Wno-sign-conversion
445mach_process.o_CWARNFLAGS_ADD += -Wno-sign-conversion
446mem.o_CWARNFLAGS_ADD += -Wno-sign-conversion
447memdev.o_CWARNFLAGS_ADD += -Wno-sign-conversion
448monotonic.o_CWARNFLAGS_ADD += -Wno-sign-conversion
449munge.o_CWARNFLAGS_ADD += -Wno-sign-conversion
450nd6_prproxy.o_CWARNFLAGS_ADD += -Wno-sign-conversion
451nd6_send.o_CWARNFLAGS_ADD += -Wno-sign-conversion
452necp.o_CWARNFLAGS_ADD += -Wno-sign-conversion
453necp_client.o_CWARNFLAGS_ADD += -Wno-sign-conversion
454netboot.o_CWARNFLAGS_ADD += -Wno-sign-conversion
455network_agent.o_CWARNFLAGS_ADD += -Wno-sign-conversion
456ntstat.o_CWARNFLAGS_ADD += -Wno-sign-conversion
457null_vfsops.o_CWARNFLAGS_ADD += -Wno-sign-conversion
458null_vnops.o_CWARNFLAGS_ADD += -Wno-sign-conversion
459packet_mangler.o_CWARNFLAGS_ADD += -Wno-sign-conversion
460pf.o_CWARNFLAGS_ADD += -Wno-sign-conversion
461pf_norm.o_CWARNFLAGS_ADD += -Wno-sign-conversion
462pf_pbuf.o_CWARNFLAGS_ADD += -Wno-sign-conversion
463pf_table.o_CWARNFLAGS_ADD += -Wno-sign-conversion
464posix_sem.o_CWARNFLAGS_ADD += -Wno-sign-conversion
465posix_shm.o_CWARNFLAGS_ADD += -Wno-sign-conversion
466process_policy.o_CWARNFLAGS_ADD += -Wno-sign-conversion
467profile_prvd.o_CWARNFLAGS_ADD += -Wno-sign-conversion
468profile_runtime.o_CWARNFLAGS_ADD += -Wno-sign-conversion
469radix.o_CWARNFLAGS_ADD += -Wno-sign-conversion
470randomdev.o_CWARNFLAGS_ADD += -Wno-sign-conversion
471route6.o_CWARNFLAGS_ADD += -Wno-sign-conversion
472routefs_ops.o_CWARNFLAGS_ADD += -Wno-sign-conversion
473scope6.o_CWARNFLAGS_ADD += -Wno-sign-conversion
474sdt.o_CWARNFLAGS_ADD += -Wno-sign-conversion
475sdt_arm.o_CWARNFLAGS_ADD += -Wno-sign-conversion
476sdt_x86.o_CWARNFLAGS_ADD += -Wno-sign-conversion
477shadow.o_CWARNFLAGS_ADD += -Wno-sign-conversion
478spec_vnops.o_CWARNFLAGS_ADD += -Wno-sign-conversion
479subr_log.o_CWARNFLAGS_ADD += -Wno-sign-conversion
480subr_prf.o_CWARNFLAGS_ADD += -Wno-sign-conversion
481sys_coalition.o_CWARNFLAGS_ADD += -Wno-sign-conversion
482sys_generic.o_CWARNFLAGS_ADD += -Wno-sign-conversion
483sys_pipe.o_CWARNFLAGS_ADD += -Wno-sign-conversion
484sys_reason.o_CWARNFLAGS_ADD += -Wno-sign-conversion
485sys_ulock.o_CWARNFLAGS_ADD += -Wno-sign-conversion
486systemcalls.o_CWARNFLAGS_ADD += -Wno-sign-conversion
487systrace.o_CWARNFLAGS_ADD += -Wno-sign-conversion
488sysv_msg.o_CWARNFLAGS_ADD += -Wno-sign-conversion
489sysv_sem.o_CWARNFLAGS_ADD += -Wno-sign-conversion
490sysv_shm.o_CWARNFLAGS_ADD += -Wno-sign-conversion
491tcp_cc.o_CWARNFLAGS_ADD += -Wno-sign-conversion
492tcp_cubic.o_CWARNFLAGS_ADD += -Wno-sign-conversion
493ubc_subr.o_CWARNFLAGS_ADD += -Wno-sign-conversion
494uipc_mbuf.o_CWARNFLAGS_ADD += -Wno-sign-conversion
495unix_signal.o_CWARNFLAGS_ADD += -Wno-sign-conversion
496unix_startup.o_CWARNFLAGS_ADD += -Wno-sign-conversion
497ux_exception.o_CWARNFLAGS_ADD += -Wno-sign-conversion
498vfs_attrlist.o_CWARNFLAGS_ADD += -Wno-sign-conversion
499vfs_bio.o_CWARNFLAGS_ADD += -Wno-sign-conversion
500vfs_cache.o_CWARNFLAGS_ADD += -Wno-sign-conversion
501vfs_cluster.o_CWARNFLAGS_ADD += -Wno-sign-conversion
502vfs_cprotect.o_CWARNFLAGS_ADD += -Wno-sign-conversion
503vfs_disk_conditioner.o_CWARNFLAGS_ADD += -Wno-sign-conversion
504vfs_fsevents.o_CWARNFLAGS_ADD += -Wno-sign-conversion
505vfs_fslog.o_CWARNFLAGS_ADD += -Wno-sign-conversion
506vfs_init.o_CWARNFLAGS_ADD += -Wno-sign-conversion
507vfs_lookup.o_CWARNFLAGS_ADD += -Wno-sign-conversion
508vfs_quota.o_CWARNFLAGS_ADD += -Wno-sign-conversion
509vfs_subr.o_CWARNFLAGS_ADD += -Wno-sign-conversion
510vfs_syscalls.o_CWARNFLAGS_ADD += -Wno-sign-conversion
511vfs_utfconv.o_CWARNFLAGS_ADD += -Wno-sign-conversion
512vfs_vnops.o_CWARNFLAGS_ADD += -Wno-sign-conversion
513vfs_xattr.o_CWARNFLAGS_ADD += -Wno-sign-conversion
514vm_compressor_backing_file.o_CWARNFLAGS_ADD += -Wno-sign-conversion
515vm_unix.o_CWARNFLAGS_ADD += -Wno-sign-conversion
516vn.o_CWARNFLAGS_ADD += -Wno-sign-conversion
517vnode_pager.o_CWARNFLAGS_ADD += -Wno-sign-conversion
518# -Wconditional-uninitialized
519doc_tombstone.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
520kpi_vfs.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
521vfs_attrlist.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
522vfs_bio.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
523vfs_cache.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
524vfs_cluster.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
525vfs_conf.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
526vfs_cprotect.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
527vfs_disk_conditioner.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
528vfs_fsevents.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
529vfs_fslog.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
530vfs_init.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
531vfs_io_compression_stats.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
532vfs_lookup.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
533vfs_quota.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
534vfs_subr.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
535vfs_support.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
536vfs_syscalls.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
537vfs_unicode.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
538vfs_utfconf.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
539vfs_vnops.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
540vfs_xattr.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
541vnode_if.o_CWARNFLAGS_ADD += -Wconditional-uninitialized
542# -Wxnu-typed-allocators
543kern_malloc.o_CWARNFLAGS_ADD += -Wno-xnu-typed-allocators
544# -Wno-vla
545ah_core.o_CWARNFLAGS_ADD += -Wno-vla
546bpf.o_CWARNFLAGS_ADD += -Wno-vla
547dtrace.o_CWARNFLAGS_ADD += -Wno-vla
548esp_rijndael.o_CWARNFLAGS_ADD += -Wno-vla
549kern_debug.o_CWARNFLAGS_ADD += -Wno-vla
550kern_exec.o_CWARNFLAGS_ADD += -Wno-vla
551kpi_socket.o_CWARNFLAGS_ADD += -Wno-vla
552monotonic.o_CWARNFLAGS_ADD += -Wno-vla
553necp.o_CWARNFLAGS_ADD += -Wno-vla
554ntstat.o_CWARNFLAGS_ADD += -Wno-vla
555sysv_sem.o_CWARNFLAGS_ADD += -Wno-vla
556
557# In the case of PGO/coverage build, disable LTO for profile_runtime_data.
558# This is to prevent a global compiler_rt variable from being optimized out.
559ifneq (,$(filter 1,$(BUILD_PROFILE) $(BUILD_CODE_COVERAGE)))
560profile_runtime_data.o_CFLAGS_ADD += $(CFLAGS_NOLTO_FLAG)
561endif
562
563#
564# Machine-independent per-file flags
565#
566
567#
568# This rule insures that the subr_prof.c does NOT get compiled with
569# profiling. It implements mcount() and profiling it leads to recursion.
570#
571
572subr_prof.o_CFLAGS_RM = -pg
573
574# Rebuild if per-file overrides change
575${OBJS}: $(firstword $(MAKEFILE_LIST))
576
577# Rebuild if global compile flags change
578$(COBJS): .CFLAGS
579.CFLAGS: ALWAYS
580	$(_v)$(REPLACECONTENTS) $@ $(KCC) $(CFLAGS) $(INCFLAGS)
581$(CXXOBJS): .CXXFLAGS
582.CXXFLAGS: ALWAYS
583	$(_v)$(REPLACECONTENTS) $@ $(KC++) $(CXXFLAGS) $(INCFLAGS)
584$(SOBJS): .SFLAGS
585.SFLAGS: ALWAYS
586	$(_v)$(REPLACECONTENTS) $@ $(S_KCC) $(SFLAGS) $(INCFLAGS)
587
588$(COMPONENT).filelist: $(OBJS)
589	@$(LOG_LDFILELIST) $(COMPONENT)
590	$(_v)for obj in ${OBJS}; do	\
591		 $(ECHO) $(TARGET)/$(CURRENT_KERNEL_CONFIG)/$${obj}; \
592	done > $(COMPONENT).filelist
593
594$(COMPONENT).libfilelist: $(LIBOBJS)
595	@$(LOG_LDFILELIST) "lib$(COMPONENT)"
596	$(_v)for obj in ${LIBOBJS}; do	\
597		 $(ECHO) $(TARGET)/$(CURRENT_KERNEL_CONFIG)/$${obj}; \
598	done > $(COMPONENT).libfilelist
599
600MAKESYSCALLS = $(SRCROOT)/bsd/kern/makesyscalls.sh
601
602init_sysent.c: $(TARGET)/bsd.syscalls.master
603	@$(LOG_GENERATE) "$@$(Color0) from $(ColorF)$(<F)$(Color0)"
604	$(_v)$(MAKESYSCALLS) $< table > /dev/null
605
606syscalls.c: $(TARGET)/bsd.syscalls.master
607	@$(LOG_GENERATE) "$@$(Color0) from $(ColorF)$(<F)$(Color0)"
608	$(_v)$(MAKESYSCALLS) $< names > /dev/null
609
610audit_kevents.c: $(TARGET)/bsd.syscalls.master
611	@$(LOG_GENERATE) "$@$(Color0) from $(ColorF)$(<F)$(Color0)"
612	$(_v)$(MAKESYSCALLS) $< audit > /dev/null
613
614systrace_args.c: $(TARGET)/bsd.syscalls.master
615	@$(LOG_GENERATE) "$@$(Color0) from $(ColorF)$(<F)$(Color0)"
616	$(_v)$(MAKESYSCALLS) $< systrace > /dev/null
617
618ifeq ($(RC_ProjectName),xnu_libraries)
619do_all: $(COMPONENT).libfilelist
620else
621do_all: $(COMPONENT).filelist
622endif
623
624do_build_all:: do_all
625
626%RULES
627
628include $(MakeInc_rule)
629include $(MakeInc_dir)
630