xref: /freebsd/share/mk/bsd.sys.mk (revision d086ded32300bc0f33fb1574d0bcfccfbc60881d)
1# $FreeBSD$
2#
3# This file contains common settings used for building FreeBSD
4# sources.
5
6# Enable various levels of compiler warning checks.  These may be
7# overridden (e.g. if using a non-gcc compiler) by defining NO_WARNS.
8
9# for GCC:  http://gcc.gnu.org/onlinedocs/gcc-3.0.4/gcc_3.html#IDX143
10
11.if !defined(NO_WARNS)
12. if defined(WARNS)
13.  if ${WARNS} > 0
14CFLAGS		+=	-Wsystem-headers
15.   if !defined(NO_WERROR)
16CFLAGS		+=	-Werror
17.   endif
18.  endif
19.  if ${WARNS} > 1
20CFLAGS		+=	-Wall -Wno-format-y2k
21.  endif
22.  if ${WARNS} > 2
23CFLAGS		+=	-W -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith
24.  endif
25.  if ${WARNS} > 3
26CFLAGS		+=	-Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wcast-align
27.  endif
28# BDECFLAGS
29.  if ${WARNS} > 5
30CFLAGS		+=	-Wbad-function-cast -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls
31.  endif
32.  if ${WARNS} > 1 && ${WARNS} < 5
33# XXX Delete -Wuninitialized by default for now -- the compiler doesn't
34# XXX always get it right.
35CFLAGS		+=	-Wno-uninitialized
36.  endif
37. endif
38
39. if defined(FORMAT_AUDIT)
40WFORMAT		=	1
41. endif
42. if defined(WFORMAT)
43.  if ${WFORMAT} > 0
44#CFLAGS		+=	-Wformat-nonliteral -Wformat-security -Wno-format-extra-args
45CFLAGS		+=	-Wformat=2 -Wno-format-extra-args
46.   if !defined(NO_WERROR)
47CFLAGS		+=	-Werror
48.   endif
49.  endif
50. endif
51.endif
52
53# Allow user-specified additional warning flags
54CFLAGS		+=	${CWARNFLAGS}
55