#
# Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved.
#
-# @APPLE_LICENSE_OSREFERENCE_HEADER_START@
+# @APPLE_LICENSE_HEADER_START@
#
-# This file contains Original Code and/or Modifications of Original Code
-# as defined in and that are subject to the Apple Public Source License
-# Version 2.0 (the 'License'). You may not use this file except in
-# compliance with the License. The rights granted to you under the
-# License may not be used to create, or enable the creation or
-# redistribution of, unlawful or unlicensed copies of an Apple operating
-# system, or to circumvent, violate, or enable the circumvention or
-# violation of, any terms of an Apple operating system software license
-# agreement.
-#
-# Please obtain a copy of the License at
-# http://www.opensource.apple.com/apsl/ and read it before using this
-# file.
-#
-# The 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, QUIET ENJOYMENT OR NON-INFRINGEMENT.
-# Please see the License for the specific language governing rights and
-# limitations under the License.
-#
-# @APPLE_LICENSE_OSREFERENCE_HEADER_END@
+# 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@
#
#
#
# XXX: CFLAGS
#
-CFLAGS+= -imacros meta_features.h -DARCH_PRIVATE -DKERNEL -DDRIVER_PRIVATE \
+CFLAGS+= -include meta_features.h -DARCH_PRIVATE -DDRIVER_PRIVATE \
-D_KERNEL_BUILD -DKERNEL_BUILD -DMACH_KERNEL -DBSD_BUILD \
- -DBSD_KERNEL_PRIVATE -DNCPUS=1 -Wno-four-char-constants -fpascal-strings \
- -D__APPLE__ -DLP64KERN=1 -DLP64_DEBUG=0 -I.
-
-# XXX: ld flags for bsd.o
-export LDFLAGS_COMPONENT += -keep_private_externs
+ -DBSD_KERNEL_PRIVATE -DLP64KERN=1 -DLP64_DEBUG=0 -I. $(CFLAGS_INLINE_CONFIG)
+
+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
+
+# 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_mroute.o \
+ ip_output.o \
+ raw_ip.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_mroute.o \
+ ip6_output.o \
+ ipcomp_input.o \
+ ipcomp_output.o \
+ in6_proto.o \
+ mld6.o \
+ nd6.o \
+ nd6_nbr.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)))
#
# Directories for mig generated files
LDOBJS = $(OBJS)
-$(COMPONENT).o: $(LDOBJS)
- @echo "[ creating $(COMPONENT).o ]"
- @echo [ updating $(COMPONENT).o ${BSD_KERNEL_CONFIG} ]
- $(LD) $(LDFLAGS_COMPONENT) -o $(COMPONENT).o ${LDOBJS}
+$(COMPONENT).filelist: $(LDOBJS)
+ @echo LDFILELIST $(COMPONENT)
+ $(_v)( for obj in ${LDOBJS}; do \
+ echo $(TARGET)$(COMP_OBJ_DIR)/$(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_depend: do_all
- ${MD} -u Makedep -f -d `ls *.d`;
-
-do_all: $(COMPONENT).o
+ $(_v)${MD} -u Makedep -f -d `ls *.d`;
+
+do_all: $(COMPONENT).filelist
do_build_all: do_depend
include $(MakeInc_rule)
include $(MakeInc_dir)
-