]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/conf/Makefile.template
xnu-1699.22.81.tar.gz
[apple/xnu.git] / bsd / conf / Makefile.template
index 85c7fc6ccdf9c6f7f3b14d774f6c5dd6875b98fa..8691ce70522af058027208440060414e49e2ec34 100644 (file)
@@ -1,31 +1,23 @@
 #
 # 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@
 #
 
 #
@@ -51,13 +43,80 @@ include $(MakeInc_def)
 #
 # 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
@@ -110,15 +169,30 @@ ${OBJS}: ${OBJSDEPS}
 
 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
 
@@ -126,4 +200,3 @@ do_build_all: do_depend
 
 include $(MakeInc_rule)
 include $(MakeInc_dir)
-