bsd.sys.mk revision 220863
117000Salanb# $FreeBSD: head/share/mk/bsd.sys.mk 220863 2011-04-19 18:09:21Z dim $ 217000Salanb# 317000Salanb# This file contains common settings used for building FreeBSD 417000Salanb# sources. 517000Salanb 617000Salanb# Enable various levels of compiler warning checks. These may be 717000Salanb# overridden (e.g. if using a non-gcc compiler) by defining NO_WARNS. 817000Salanb 917000Salanb# for GCC: http://gcc.gnu.org/onlinedocs/gcc-3.0.4/gcc_3.html#IDX143 1017000Salanb 1117000Salanb# the default is gnu99 for now 1217000SalanbCSTD ?= gnu99 1317000Salanb 1417000Salanb.if ${CSTD} == "k&r" 1517000SalanbCFLAGS += -traditional 1617000Salanb.elif ${CSTD} == "c89" || ${CSTD} == "c90" 1717000SalanbCFLAGS += -std=iso9899:1990 1817000Salanb.elif ${CSTD} == "c94" || ${CSTD} == "c95" 1917000SalanbCFLAGS += -std=iso9899:199409 2017000Salanb.elif ${CSTD} == "c99" 2117000SalanbCFLAGS += -std=iso9899:1999 2217000Salanb.else 2317000SalanbCFLAGS += -std=${CSTD} 2417000Salanb.endif 2517000Salanb.if !defined(NO_WARNS) 2617000Salanb# -pedantic is problematic because it also imposes namespace restrictions 2717000Salanb#CFLAGS += -pedantic 2817000Salanb. if defined(WARNS) 2917000Salanb. if ${WARNS} >= 1 3017000SalanbCWARNFLAGS += -Wsystem-headers 3117000Salanb. if !defined(NO_WERROR) 3217000SalanbCWARNFLAGS += -Werror 3317000Salanb. endif 3417000Salanb. endif 3517000Salanb. if ${WARNS} >= 2 3617000SalanbCWARNFLAGS += -Wall -Wno-format-y2k 3717000Salanb. endif 3817000Salanb. if ${WARNS} >= 3 3917000SalanbCWARNFLAGS += -W -Wno-unused-parameter -Wstrict-prototypes\ 4017000Salanb -Wmissing-prototypes -Wpointer-arith 4117000Salanb. endif 4217000Salanb. if ${WARNS} >= 4 4317000SalanbCWARNFLAGS += -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch\ 4417000Salanb -Wshadow -Wunused-parameter 4517000Salanb. if !defined(NO_WCAST_ALIGN) 4617408SalanbCWARNFLAGS += -Wcast-align 4717000Salanb. endif 4817000Salanb. endif 4917000Salanb# BDECFLAGS 5017000Salanb. if ${WARNS} >= 6 5117000SalanbCWARNFLAGS += -Wchar-subscripts -Winline -Wnested-externs\ 5217000Salanb -Wredundant-decls -Wold-style-definition 5317000Salanb. endif 5417000Salanb. if ${WARNS} >= 2 && ${WARNS} <= 4 5517000Salanb# XXX Delete -Wuninitialized by default for now -- the compiler doesn't 5617000Salanb# XXX always get it right. 5717000SalanbCWARNFLAGS += -Wno-uninitialized 5817000Salanb. endif 5917408SalanbCWARNFLAGS += -Wno-pointer-sign 6017000Salanb. endif 6117000Salanb 6217408Salanb. if defined(FORMAT_AUDIT) 6317162SalanbWFORMAT = 1 6417000Salanb. endif 6517000Salanb. if defined(WFORMAT) 6617000Salanb. if ${WFORMAT} > 0 6717000Salanb#CWARNFLAGS += -Wformat-nonliteral -Wformat-security -Wno-format-extra-args 6817000SalanbCWARNFLAGS += -Wformat=2 -Wno-format-extra-args 6917000Salanb. if !defined(NO_WERROR) 7017000SalanbCWARNFLAGS += -Werror 7117000Salanb. endif 7217000Salanb. endif 7317000Salanb. endif 7417000Salanb. if defined(NO_WFORMAT) 7517000SalanbCWARNFLAGS += -Wno-format 7617000Salanb. endif 7717000Salanb.endif 7817000Salanb 7917000Salanb.if defined(IGNORE_PRAGMA) 8017000SalanbCWARNFLAGS += -Wno-unknown-pragmas 8117000Salanb.endif 8217000Salanb 8317000Salanb.if ${MK_SSP} != "no" && ${MACHINE_CPUARCH} != "ia64" && \ 8417000Salanb ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips" 8517000Salanb# Don't use -Wstack-protector as it breaks world with -Werror. 8617000SalanbSSP_CFLAGS ?= -fstack-protector 8717000SalanbCFLAGS += ${SSP_CFLAGS} 8817000Salanb.endif 8917000Salanb 9017000Salanb# Allow user-specified additional warning flags 9117000SalanbCFLAGS += ${CWARNFLAGS} 9217000Salanb