blender/source/nan_warn.mk
2010-02-12 13:34:04 +00:00

168 lines
5.2 KiB
Makefile

# -*- mode: gnumakefile; tab-width: 8; indent-tabs-mode: t; -*-
# vim: tabstop=8
#
# $Id$
#
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
# All rights reserved.
#
# The Original Code is: all of this file.
#
# Contributor(s): GSR
#
# ***** END GPL LICENSE BLOCK *****
#
# NaN compiler and linker warning levels
# On some platforms, you will be flooded with system include file warnings.
# Use hmake to filter those away.
#
# Force the correct redefinition
LEVEL_1_C_WARNINGS = -FIX_NAN_WARN1A
LEVEL_1_CPP_WARNINGS = -FIX_NAN_WARN1B
LEVEL_2_C_WARNINGS = -FIX_NAN_WARN2A
LEVEL_2_CPP_WARNINGS = -FIX_NAN_WARN2B
FIX_STUBS_WARNINGS = -FIX_NAN_WARN3
########################################################################
# Level 1: basic C warnings.
ifeq (gcc, $(findstring gcc,$(CC)))
LEVEL_1_C_WARNINGS = -Wall
LEVEL_1_C_WARNINGS += -Wno-char-subscripts
else
ifeq (cc, $(findstring cc,$(CC)))
ifeq ($(OS),irix)
# MIPSpro Compilers
#
# Irix warning info
#
# 1001 # the source file does not end w/ a newline
# 1110 # unreachable statement
# 1201 # trailing comma in enums is nonstandard
# 1209 # constant controlling expressions
# 1355 # extra semicolon is ignored
# 1424 # unreferenced template paramaters
# 1681 # virtual function override
# 3201 # unreferenced formal paramaters
#
LEVEL_1_C_WARNINGS = -fullwarn -woff 1001,1110,1201,1209,1355,1424,1681,3201
endif
endif
ifeq ($(OS),windows)
# Microsoft Compilers and cl_wrapper.pl
LEVEL_1_C_WARNINGS = -Wall
endif
endif
# Level 1: basic CPP warnings.
ifeq (g++, $(findstring g++,$(CCC)))
LEVEL_1_CPP_WARNINGS = -Wall
LEVEL_1_CPP_WARNINGS += -Wno-reorder
else
ifeq (CC, $(findstring CC,$(CCC)))
ifeq ($(OS),irix)
# MIPSpro Compilers
# see warning descriptions above
LEVEL_1_CPP_WARNINGS = -woff 1001,1110,1201,1209,1355,1424,1681,3201
endif
endif
ifeq ($(OS),windows)
# Microsoft Compilers and cl_wrapper.pl
LEVEL_1_CPP_WARNINGS = -Wall
endif
endif
########################################################################
# Level 2: paranoia level C warnings.
# DO NOT REUSE LEVEL_1_ DEFINES.
ifeq (gcc, $(findstring gcc,$(CC)))
LEVEL_2_C_WARNINGS = -Wall
LEVEL_2_C_WARNINGS += -W
# deliberately enable char-subscript warnings
LEVEL_2_C_WARNINGS += -Wshadow
LEVEL_2_C_WARNINGS += -Wpointer-arith
LEVEL_2_C_WARNINGS += -Wbad-function-cast
LEVEL_2_C_WARNINGS += -Wcast-qual
LEVEL_2_C_WARNINGS += -Wcast-align
LEVEL_2_C_WARNINGS += -Waggregate-return
LEVEL_2_C_WARNINGS += -Wstrict-prototypes
LEVEL_2_C_WARNINGS += -Wmissing-prototypes
LEVEL_2_C_WARNINGS += -Wmissing-declarations
LEVEL_2_C_WARNINGS += -Wnested-externs
LEVEL_2_C_WARNINGS += -Wredundant-decls
else
ifeq (cc, $(findstring cc,$(CC)))
ifeq ($(OS),irix)
# MIPSpro Compilers
# see warning descriptions above
LEVEL_2_C_WARNINGS = -fullwarn -woff 1001,1209,1424,3201
endif
ifeq ($(OS),solaris)
# Forte / Sun WorkShop Compilers
LEVEL_2_C_WARNINGS = -v
endif
endif
ifeq ($(OS),windows)
# Microsoft Compilers and cl_wrapper.pl
LEVEL_2_C_WARNINGS = -Wall
endif
endif
# Level 2: paranoia level CPP warnings.
# DO NOT REUSE LEVEL_1_ DEFINES.
ifeq (g++, $(findstring g++,$(CCC)))
LEVEL_2_CPP_WARNINGS = -Wall
LEVEL_2_CPP_WARNINGS += -W
# deliberately enable char-subscript warnings
LEVEL_2_CPP_WARNINGS += -Wshadow
LEVEL_2_CPP_WARNINGS += -Wpointer-arith
LEVEL_2_CPP_WARNINGS += -Wcast-qual
LEVEL_2_CPP_WARNINGS += -Wcast-align
# deliberately disable aggregate-return warnings
LEVEL_2_CPP_WARNINGS += -Wredundant-decls
LEVEL_2_CPP_WARNINGS += -Wreorder
LEVEL_2_CPP_WARNINGS += -Wctor-dtor-privacy
LEVEL_2_CPP_WARNINGS += -Wnon-virtual-dtor
#LEVEL_2_CPP_WARNINGS += -Wold-style-cast
LEVEL_2_CPP_WARNINGS += -Woverloaded-virtual
LEVEL_2_CPP_WARNINGS += -Wsign-promo
LEVEL_2_CPP_WARNINGS += -Wsynth
else
ifeq (CC, $(findstring CC,$(CCC)))
ifeq ($(OS),irix)
# MIPSpro Compilers
# see warning descriptions above
LEVEL_2_CPP_WARNINGS = -fullwarn -woff 1209,1424,3201
endif
endif
ifeq ($(OS),windows)
# Microsoft Compilers and cl_wrapper.pl
LEVEL_2_CPP_WARNINGS = -Wall
endif
endif
########################################################################
# stubs warning fix
ifeq (gcc, $(findstring gcc,$(CC)))
FIX_STUBS_WARNINGS = -Wno-unused
else
FIX_STUBS_WARNINGS =
endif