# # Copyright (c) 2000-2011 Apple Inc. All rights reserved. # # @APPLE_LICENSE_HEADER_START@ # # The contents of this file constitute Original Code as defined in and # are subject to the Apple Public Source License Version 1.1 (the # "License"). You may not use this file except in compliance with the # License. Please obtain a copy of the License at # http://www.apple.com/publicsource and read it before using this file. # # This Original Code and all software distributed under the License are # distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER # EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, # INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the # License for the specific language governing rights and limitations # under the License. # # @APPLE_LICENSE_HEADER_END@ # # # Mach Operating System # Copyright (c) 1986 Carnegie-Mellon University # All rights reserved. The CMU software License Agreement specifies # the terms and conditions for use and redistribution. # export MakeInc_cmd=${SRCROOT}/makedefs/MakeInc.cmd export MakeInc_def=${SRCROOT}/makedefs/MakeInc.def export MakeInc_rule=${SRCROOT}/makedefs/MakeInc.rule export MakeInc_dir=${SRCROOT}/makedefs/MakeInc.dir include $(MakeInc_cmd) include $(MakeInc_def) # # XXX: CFLAGS # CFLAGS+= -include meta_features.h -DDRIVER_PRIVATE \ -D_KERNEL_BUILD -DKERNEL_BUILD -DMACH_KERNEL -DBSD_BUILD \ -DBSD_KERNEL_PRIVATE -DLP64_DEBUG=0 # # Directories for mig generated files # COMP_SUBDIRS = # # Make sure we don't remove this by accident if interrupted at the wrong # time. # .PRECIOUS: Makefile # # Theses macros are filled in by the config program depending on the # current configuration. The MACHDEP macro is replaced by the # contents of the machine dependent makefile template and the others # are replaced by the corresponding symbol definitions for the # configuration. # %OBJS %CFILES %CXXFILES %SFILES %MACHDEP # # Machine-independent per-file flags # dp_backing_file.o_CFLAGS_ADD += -Wshorten-64-to-32 ubc_subr.o_CFLAGS_ADD += -Wshorten-64-to-32 vnode_pager.o_CFLAGS_ADD += -Wshorten-64-to-32 vm_unix.o_CFLAGS_ADD += -Wshorten-64-to-32 pthread_synch.o_CFLAGS_ADD += -Wno-unused-parameter -Wno-missing-prototypes pthread_support.o_CFLAGS_ADD += -Wno-unused-parameter -Wno-missing-prototypes # Objects that don't want -Wsign-compare OBJS_NO_SIGN_COMPARE = \ radix.o \ route.o \ rtsock.o \ dhcp_options.o \ igmp.o \ in_cksum.o \ ip_divert.o \ ip_dummynet.o \ ip_flow.o \ ip_fw2.o \ ip_fw2_compat.o \ ip_icmp.o \ ip_input.o \ ip_output.o \ raw_ip.o \ tcp_cache.o \ tcp_input.o \ tcp_output.o \ tcp_subr.o \ tcp_usrreq.o \ tcp_timer.o \ udp_usrreq.o \ ah_input.o \ ah_core.o \ ah_output.o \ esp_core.o \ esp_input.o \ esp_output.o \ esp_rijndael.o \ ipsec.o \ dest6.o \ frag6.o \ icmp6.o \ in6.o \ in6_src.o \ in6_cksum.o \ ip6_fw.o \ ip6_forward.o \ in6_ifattach.o \ ip6_input.o \ ip6_output.o \ ipcomp_input.o \ ipcomp_output.o \ in6_proto.o \ mld6.o \ nd6.o \ nd6_nbr.o \ nd6_prproxy.o \ nd6_rtr.o \ raw_ip6.o \ route6.o \ scope6.o \ udp6_usrreq.o \ key.o \ keysock.o \ keydb.o \ des_setkey.o \ uipc_mbuf.o \ uipc_mbuf2.o \ uipc_socket.o \ uipc_socket2.o $(foreach file,$(OBJS_NO_SIGN_COMPARE),$(eval $(call add_perfile_cflags,$(file),-Wno-sign-compare))) # Objects that don't want -Wcast-align warning (8474835) OBJS_NO_CAST_ALIGN = \ BTree.o \ BTreeAllocate.o \ BTreeMiscOps.o \ BTreeNodeOps.o \ BTreeScanner.o \ BTreeTreeOps.o \ CatalogUtilities.o \ audit_bsm_token.o \ audit_pipe.o \ audit_session.o \ bsd_i386.o \ decmpfs.o \ dtrace.o \ fasttrap.o \ fasttrap_isa.o \ fbt_arm.o \ fbt_x86.o \ hfs_attrlist.o \ hfs_btreeio.o \ hfs_catalog.o \ hfs_cnode.o \ hfs_endian.o \ hfs_hotfiles.o \ hfs_link.o \ hfs_quota.o \ hfs_readwrite.o \ hfs_search.o \ hfs_vfsops.o \ hfs_vnops.o \ hfs_xattr.o \ if_bond.o \ ip6_fw.o \ ip_dummynet.o \ ip_fw2.o \ kern_credential.o \ kern_descrip.o \ kern_event.o \ kern_exec.o \ kern_lockf.o \ kern_subr.o \ km.o \ lockstat.o \ mach_loader.o \ memdev.o \ nfs4_subs.o \ nfs4_vnops.o \ nfs_boot.o \ nfs_gss.o \ nfs_serv.o \ nfs_socket.o \ nfs_srvcache.o \ nfs_subs.o \ nfs_syscalls.o \ nfs_vfsops.o \ nfs_vnops.o \ proc_info.o \ pthread_synch.o \ qsort.o \ sdt.o \ shadow.o \ spec_vnops.o \ subr_log.o \ subr_prof.o \ sys_generic.o \ sys_pipe.o \ systemcalls.o \ systrace.o \ tcp_lro.o \ tty.o \ tty_compat.o \ tty_dev.o \ tty_ptmx.o \ tty_pty.o \ ubc_subr.o \ uipc_usrreq.o \ vfs_attrlist.o \ vfs_fsevents.o \ vfs_journal.o \ vfs_lookup.o \ vfs_syscalls.o \ vfs_utfconv.o \ vfs_vnops.o \ vfs_xattr.o \ vn.o \ munge.o \ aes.o \ aeskey.o \ sdt_arm.o \ uipc_mbuf.o \ kern_guarded.o $(foreach file,$(OBJS_NO_CAST_ALIGN),$(eval $(call add_perfile_cflags,$(file),-Wno-cast-align))) # # This rule insures that the subr_prof.c does NOT get compiled with # profiling. It implements mcount() and profiling it leads to recursion. # subr_prof.o_CFLAGS_RM = -pg # Rebuild if per-file overrides change ${OBJS}: $(firstword $(MAKEFILE_LIST)) # Rebuild if global compile flags change $(COBJS): .CFLAGS .CFLAGS: ALWAYS $(_v)$(REPLACECONTENTS) $@ $(KCC) $(CFLAGS) $(INCFLAGS) $(CXXOBJS): .CXXFLAGS .CXXFLAGS: ALWAYS $(_v)$(REPLACECONTENTS) $@ $(KC++) $(CXXFLAGS) $(INCFLAGS) $(SOBJS): .SFLAGS .SFLAGS: ALWAYS $(_v)$(REPLACECONTENTS) $@ $(S_KCC) $(SFLAGS) $(INCFLAGS) $(COMPONENT).filelist: $(OBJS) @echo LDFILELIST $(COMPONENT) $(_v)for obj in ${OBJS}; do \ echo $(TARGET)/$(CURRENT_KERNEL_CONFIG)/$${obj}; \ done > $(COMPONENT).filelist MAKESYSCALLS = $(SRCROOT)/bsd/kern/makesyscalls.sh init_sysent.c: $(SRCROOT)/bsd/kern/syscalls.master $(MAKESYSCALLS) @echo "Generating $@ from $<"; $(_v)$(MAKESYSCALLS) $< table > /dev/null syscalls.c: $(SRCROOT)/bsd/kern/syscalls.master $(MAKESYSCALLS) @echo "Generating $@ from $<"; $(_v)$(MAKESYSCALLS) $< names > /dev/null audit_kevents.c: $(SRCROOT)/bsd/kern/syscalls.master $(MAKESYSCALLS) @echo "Generating $@ from $<"; $(_v)$(MAKESYSCALLS) $< audit > /dev/null do_all: $(COMPONENT).filelist do_build_all:: do_all %RULES include $(MakeInc_rule) include $(MakeInc_dir)