diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-07-13 04:57:19 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-07-13 04:57:19 +0400 |
commit | bfe11037b5d8bedb7a5185dea2eee00584254d69 (patch) | |
tree | 847fa3aab006df47ef98a4b384619b929fc01417 /build_files | |
parent | ded8ba1d90dade45665b7009f664ea75f2bbfd96 (diff) |
move nan mk files from source/ into build_files/make/
Diffstat (limited to 'build_files')
-rw-r--r-- | build_files/make/nan_compile.mk | 472 | ||||
-rw-r--r-- | build_files/make/nan_definitions.mk | 630 | ||||
-rw-r--r-- | build_files/make/nan_link.mk | 198 | ||||
-rw-r--r-- | build_files/make/nan_subdirs.mk | 78 | ||||
-rw-r--r-- | build_files/make/nan_warn.mk | 167 |
5 files changed, 1545 insertions, 0 deletions
diff --git a/build_files/make/nan_compile.mk b/build_files/make/nan_compile.mk new file mode 100644 index 00000000000..36c315a8e11 --- /dev/null +++ b/build_files/make/nan_compile.mk @@ -0,0 +1,472 @@ +# -*- 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, Stefan Gartner +# +# ***** END GPL LICENSE BLOCK ***** +# +# Compile and archive + +include nan_definitions.mk + +CPPFLAGS ?= $(NAN_CPPFLAGS) + +# common parts --------------------------------------------------- + +# Uncomment next lines to enable integrated game engine +ifneq ($(NAN_NO_KETSJI), true) + CFLAGS += -DGAMEBLENDER=1 + ifeq ($(NAN_USE_BULLET), true) + CFLAGS += -DUSE_BULLET + CCFLAGS += -DUSE_BULLET + endif +else + CPPFLAGS += -DNO_KETSJI +endif + +ifeq ($(BF_PROFILE), true) + CFLAGS += -pg + CCFLAGS += -pg +endif + +ifeq ($(WITH_BF_OPENMP), true) + CFLAGS += -fopenmp + CCFLAGS += -fopenmp +endif + +ifdef NAN_DEBUG + CFLAGS += $(NAN_DEBUG) + CCFLAGS += $(NAN_DEBUG) +endif + +REL_CFLAGS += -DNDEBUG +REL_CCFLAGS += -DNDEBUG +DBG_CFLAGS += -g +DBG_CCFLAGS += -g + +# OS dependent parts --------------------------------------------------- + +ifeq ($(OS),darwin) + CC ?= gcc + CCC ?= g++ + ifeq ($(MACOSX_DEPLOYMENT_TARGET), 10.4) + CC = gcc-4.0 + CCC = g++-4.0 + else + ifeq ($(MACOSX_DEPLOYMENT_TARGET), 10.5) + CC = gcc-4.2 + CCC = g++-4.2 + endif + endif + ifeq ($(CPU),powerpc) + CFLAGS += -pipe -fPIC -mcpu=7450 -mtune=G5 -funsigned-char -fno-strict-aliasing + CCFLAGS += -pipe -fPIC -funsigned-char -fno-strict-aliasing + else + CFLAGS += -pipe -fPIC -funsigned-char + CCFLAGS += -pipe -fPIC -funsigned-char + endif + + + CFLAGS += -arch $(MACOSX_ARCHITECTURE) #-isysroot $(MACOSX_SDK) -mmacosx-version-min=$(MACOSX_MIN_VERS) + CCFLAGS += -arch $(MACOSX_ARCHITECTURE) #-isysroot $(MACOSX_SDK) -mmacosx-version-min=$(MACOSX_MIN_VERS) + + ifeq ($(MACOSX_ARCHITECTURE), $(findstring $(MACOSX_ARCHITECTURE), "i386 x86_64")) + REL_CFLAGS += -O2 -ftree-vectorize -msse -msse2 -msse3 + REL_CCFLAGS += -O2 -ftree-vectorize -msse -msse2 -msse3 + else + REL_CFLAGS += -O2 + REL_CCFLAGS += -O2 + endif + + CPPFLAGS += -D_THREAD_SAFE + + ifeq ($(WITH_COCOA), true) + CPPFLAGS += -DGHOST_COCOA + endif + ifeq ($(USE_QTKIT), true) + CPPFLAGS += -DUSE_QTKIT + endif + + NAN_DEPEND = true + OPENGL_HEADERS = /System/Library/Frameworks/OpenGL.framework + AR = ar + ARFLAGS = ruv + RANLIB = ranlib + ARFLAGSQUIET = ru +endif + +ifeq ($(OS),freebsd) + CC ?= gcc + CCC ?= g++ + JAVAC = javac + JAVAH = javah + CFLAGS += -pipe -fPIC -funsigned-char -fno-strict-aliasing + CCFLAGS += -pipe -fPIC -funsigned-char -fno-strict-aliasing + REL_CFLAGS += -O2 + REL_CCFLAGS += -O2 + CPPFLAGS += -D_THREAD_SAFE + NAN_DEPEND = true + OPENGL_HEADERS = /usr/X11R6/include + JAVA_HEADERS = /usr/local/jdk1.3.1/include + JAVA_SYSTEM_HEADERS = /usr/local/jdk1.3.1/include/freebsd + AR = ar + ARFLAGS = ruv + ARFLAGSQUIET = ru +endif + +ifeq ($(OS),irix) + ifeq ($(IRIX_USE_GCC),true) + CC ?= gcc + CCC ?= g++ + CFLAGS += -fPIC -funsigned-char -fno-strict-aliasing -mabi=n32 -mips4 + CCFLAGS += -fPIC -fpermissive -funsigned-char -fno-strict-aliasing -mabi=n32 -mips4 + REL_CFLAGS += -O2 + REL_CCFLAGS += -O2 + DBG_CFLAGS += -g3 -gdwarf-2 -ggdb + DBG_CCFLAGS += -g3 -gdwarf-2 -ggdb + else + CC ?= cc + CCC ?= CC + CFLAGS += -n32 -mips3 -Xcpluscomm + CCFLAGS += -n32 -mips3 -Xcpluscomm -LANG:std + ifdef MIPS73_ISOHEADERS + CCFLAGS += -LANG:libc_in_namespace_std=off -I$(MIPS73_ISOHEADERS) + else + CCFLAGS += -LANG:libc_in_namespace_std=off + endif + REL_CFLAGS += -n32 -mips3 -O2 -OPT:Olimit=0 + REL_CCFLAGS += -n32 -mips3 -O2 -OPT:Olimit=0 + endif + OPENGL_HEADERS = /usr/include + NAN_DEPEND = true + AR = CC + ARFLAGS = -ar -o + ARFLAGSQUIET = -ar -o +endif + +ifeq ($(OS),linux) + CC ?= gcc + CCC ?= g++ +# CFLAGS += -pipe +# CCFLAGS += -pipe + CFLAGS += -pipe -fPIC -funsigned-char -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 + CCFLAGS += -pipe -fPIC -funsigned-char -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 + REL_CFLAGS += -O2 + REL_CCFLAGS += -O2 + NAN_DEPEND = true + ifeq ($(CPU),alpha) + CFLAGS += -mieee + endif + OPENGL_HEADERS = /usr/X11R6/include + AR = ar + ARFLAGS = ruv + ARFLAGSQUIET = ru +endif + +ifeq ($(OS),openbsd) + CC ?= gcc + CCC ?= g++ + CFLAGS += -pipe -fPIC -funsigned-char -fno-strict-aliasing + CCFLAGS += -pipe -fPIC -funsigned-char -fno-strict-aliasing + REL_CFLAGS += -O2 + REL_CCFLAGS += -O2 + NAN_DEPEND = true + CPPFLAGS += -D__FreeBSD__ + OPENGL_HEADERS = /usr/X11R6/include + AR = ar + ARFLAGS = ruv + ARFLAGSQUIET = ru +endif + +ifeq ($(OS),solaris) + # Adding gcc flag to $CC is not good, however if its not there makesdna wont build - Campbell + ifeq (x86_64, $(findstring x86_64, $(CPU))) + CC ?= gcc -m64 + CCC ?= g++ -m64 + else + CC ?= gcc + CCC ?= g++ + #CC ?= cc + #CCC ?= CC + endif + + JAVAC = javac + JAVAH = javah + CFLAGS += -pipe -fPIC -funsigned-char -fno-strict-aliasing + CCFLAGS += -pipe -fPIC -funsigned-char -fno-strict-aliasing +# CFLAGS += "-fast -xdepend -xarch=v8plus -xO3 -xlibmil -KPIC -DPIC -xchar=unsigned" +# CCFLAGS += "-fast -xdepend -xarch=v8plus -xO3 -xlibmil -xlibmopt -features=tmplife -norunpath -KPIC -DPIC -xchar=unsigned" + + # Note, you might still want to compile a 32 bit binary if you have a 64bit system. if so remove the following lines +# ifeq ($(findstring 64,$(CPU)), 64) +# CFLAGS += -m64 +# CCFLAGS += -m64 +# endif + + REL_CFLAGS += -O2 + REL_CCFLAGS += -O2 + + NAN_DEPEND = true +# ifeq ($(CPU),sparc) + ifeq ($(findstring sparc,$(CPU)), sparc) + OPENGL_HEADERS = /usr/openwin/share/include + CPPFLAGS += -DSUN_OGL_NO_VERTEX_MACROS + JAVA_HEADERS = /usr/java/include + JAVA_SYSTEM_HEADERS = /usr/java/include/solaris + else + # OPENGL_HEADERS = /usr/X11/include/mesa + OPENGL_HEADERS = /usr/X11/include/ + endif + AR = ar + ARFLAGS = ruv + ARFLAGSQUIET = ru +endif + +ifeq ($(OS),windows) + ifeq ($(FREE_WINDOWS),true) + CC ?= gcc + CCC ?= g++ + CFLAGS += -pipe -mno-cygwin -mwindows -funsigned-char -fno-strict-aliasing + CCFLAGS += -pipe -mno-cygwin -mwindows -funsigned-char -fno-strict-aliasing + CPPFLAGS += -DFREE_WINDOWS + REL_CFLAGS += -O2 + REL_CCFLAGS += -O2 + NAN_DEPEND = true + #OPENGL_HEADERS = /usr/include/w32api + OPENGL_HEADERS = ./ + AR = ar + ARFLAGS = ruv + ARFLAGSQUIET = ru + WINRC = $(wildcard *.rc) + RANLIB = ranlib + else + CC ?= $(SRCHOME)/tools/cygwin/cl_wrapper.pl + CCC ?= $(SRCHOME)/tools/cygwin/cl_wrapper.pl + JAVAC = $(SRCHOME)/tools/cygwin/java_wrapper.pl -c + JAVAH = $(SRCHOME)/tools/cygwin/java_wrapper.pl -h + REL_CFLAGS += /O2 + REL_CCFLAGS += /O2 -GX + DBG_CFLAGS += /Fd$(DIR)/debug/ + DBG_CCFLAGS += /Fd$(DIR)/debug/ + CFLAGS += /MT + CCFLAGS += /MT + NAN_DEPEND = true + OPENGL_HEADERS = . + CPPFLAGS += -DWIN32 -D_WIN32 -D__WIN32 + CPPFLAGS += -D_M_IX86 + CPPFLAGS += -I"/cygdrive/c/Program Files/Microsoft Visual Studio/VC98/include" + JAVA_HEADERS = /cygdrive/c/j2sdk1.4.0-beta3/include + JAVA_SYSTEM_HEADERS = /cygdrive/c/j2sdk1.4.0-beta3/include/win32 + CPP = $(SRCHOME)/tools/cygwin/cl_wrapper.pl + AR = ar + ARFLAGS = ruv + ARFLAGSQUIET = ru + WINRC = $(wildcard *.rc) + endif +endif + +ifeq (debug, $(findstring debug, $(MAKECMDGOALS))) + export DEBUG_DIR=debug/ +endif + +ifneq (x$(DEBUG_DIR), x) + CFLAGS +=$(DBG_CFLAGS) + CCFLAGS+=$(DBG_CCFLAGS) +else + CFLAGS +=$(REL_CFLAGS) + CCFLAGS+=$(REL_CCFLAGS) +endif + +# Note: include nan_warn's LEVEL_*_WARNINGS after CC/OS have been set. +include nan_warn.mk + +# compile rules + +default: all + +$(DIR)/$(DEBUG_DIR)%.o: %.c + ifdef NAN_DEPEND + @set -e; $(CC) -M $(CPPFLAGS) $< 2>/dev/null \ + | sed 's@\($*\)\.o[ :]*@$(DIR)/$(DEBUG_DIR)\1.o : @g' \ + > $(DIR)/$(DEBUG_DIR)$*.d; \ + [ -s $(DIR)/$(DEBUG_DIR)$*.d ] || $(RM) $(DIR)/$(DEBUG_DIR)$*.d + endif + ifdef NAN_QUIET + @echo " -- $< -- " + @$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ + else + $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ + endif + +$(DIR)/$(DEBUG_DIR)%.o: %.cpp + ifdef NAN_DEPEND + @set -e; $(CCC) -M $(CPPFLAGS) $< 2>/dev/null \ + | sed 's@\($*\)\.o[ :]*@$(DIR)/$(DEBUG_DIR)\1.o : @g' \ + > $(DIR)/$(DEBUG_DIR)$*.d; \ + [ -s $(DIR)/$(DEBUG_DIR)$*.d ] || $(RM) $(DIR)/$(DEBUG_DIR)$*.d + endif + ifdef NAN_QUIET + @echo " -- $< -- " + @$(CCC) -c $(CCFLAGS) $(CPPFLAGS) $< -o $@ + else + $(CCC) -c $(CCFLAGS) $(CPPFLAGS) $< -o $@ + endif + +$(DIR)/$(DEBUG_DIR)%.o: %.mm + ifdef NAN_DEPEND + @set -e; $(CC) -M $(CPPFLAGS) $< 2>/dev/null \ + | sed 's@\($*\)\.o[ :]*@$(DIR)/$(DEBUG_DIR)\1.o : @g' \ + > $(DIR)/$(DEBUG_DIR)$*.d; \ + [ -s $(DIR)/$(DEBUG_DIR)$*.d ] || $(RM) $(DIR)/$(DEBUG_DIR)$*.d + endif + ifdef NAN_QUIET + @echo " -- $< -- " + @$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ + else + $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ + endif + +$(DIR)/$(DEBUG_DIR)%.o: %.m + ifdef NAN_DEPEND + @set -e; $(CC) -M $(CPPFLAGS) $< 2>/dev/null \ + | sed 's@\($*\)\.o[ :]*@$(DIR)/$(DEBUG_DIR)\1.o : @g' \ + > $(DIR)/$(DEBUG_DIR)$*.d; \ + [ -s $(DIR)/$(DEBUG_DIR)$*.d ] || $(RM) $(DIR)/$(DEBUG_DIR)$*.d + endif + ifdef NAN_QUIET + @echo " -- $< -- " + @$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ + else + $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ + endif + + +$(DIR)/$(DEBUG_DIR)%.res: %.rc +ifeq ($(FREE_WINDOWS),true) + windres $< -O coff -o $@ +else + $(SRCHOME)/tools/cygwin/cl_wrapper.pl - rc /fo$@ $< +endif + +$(DIR)/$(DEBUG_DIR)%.class: %.java + ifdef JARS + $(JAVAC) -verbose -g -deprecation -sourcepath . -classpath "$(JARS)" -d $(DIR)/$(DEBUG_DIR) $< + else + $(JAVAC) -verbose -g -deprecation -d $(DIR)/$(DEBUG_DIR) $< + endif + +$(DIR)/$(DEBUG_DIR)%.h: $(DIR)/$(DEBUG_DIR)%.class + $(JAVAH) -classpath $(DIR)/$(DEBUG_DIR) -d $(DIR)/$(DEBUG_DIR) -jni $* + +%.h: + @echo "WARNING: Fake header creation rule used, dependencies will be remade" + +CSRCS ?= $(wildcard *.c) +CCSRCS ?= $(wildcard *.cpp) +JSRCS ?= $(wildcard *.java) + +ifdef NAN_DEPEND +-include $(CSRCS:%.c=$(DIR)/$(DEBUG_DIR)%.d) $(CCSRCS:%.cpp=$(DIR)/$(DEBUG_DIR)%.d) $(OCCSRCS:$.mm=$(DIR)/$(DEBUG_DIR)%.d) $(OCSRCS:$.m=$(DIR)/$(DEBUG_DIR)%.d) +endif + +OBJS_AR := $(OBJS) +OBJS_AR += $(CSRCS:%.c=%.o) +OBJS_AR += $(CCSRCS:%.cpp=%.o) +OBJS_AR += $(OCCSRCS:%.mm=%.o) +OBJS_AR += $(OCSRCS:%.m=%.o) +OBJS_AR += $(WINRC:%.rc=%.res) + +OBJS += $(CSRCS:%.c=$(DIR)/$(DEBUG_DIR)%.o) +OBJS += $(CCSRCS:%.cpp=$(DIR)/$(DEBUG_DIR)%.o) +OBJS += $(OCCSRCS:%.mm=$(DIR)/$(DEBUG_DIR)%.o) +OBJS += $(OCSRCS:%.m=$(DIR)/$(DEBUG_DIR)%.o) +OBJS += $(WINRC:%.rc=$(DIR)/$(DEBUG_DIR)%.res) + +JCLASS += $(JSRCS:%.java=$(DIR)/$(DEBUG_DIR)%.class) + +LIB_a = $(DIR)/$(DEBUG_DIR)lib$(LIBNAME).a + +$(LIB_a): $(OBJS) + # $OBJS can be empty except for some spaces + ifneq (x, x$(strip $(OBJS))) + ifdef NAN_PARANOID + @$(RM) $(LIB_a) + ifdef NAN_QUIET + @echo " -- lib: lib$(LIBNAME).a -- " + @cd $(DIR)/$(DEBUG_DIR); $(AR) $(ARFLAGSQUIET) $@ $(OBJS_AR) + else + cd $(DIR)/$(DEBUG_DIR); $(AR) $(ARFLAGS) $@ $(OBJS_AR) + endif + else + ifdef NAN_QUIET + @echo " -- lib: lib$(LIBNAME).a -- " + @$(AR) $(ARFLAGSQUIET) $@ $? + else + $(AR) $(ARFLAGS) $@ $? + endif + endif + ifdef RANLIB + $(RANLIB) $@ + endif + endif + +ALLTARGETS ?= $(LIB_a) + +all debug :: makedir $(ALLTARGETS) + +lib: $(LIB_a) + +creator: $(OBJS) + @echo "====> make creator subtarget in `pwd | sed 's/^.*develop\///'`" + @$(MAKE) makedir DIR=$(DIR)/$(DEBUG_DIR)cre + @$(MAKE) lib CSRCS="$(CRE_CSRCS)" LIBNAME=$(LIBNAME)$@ + +publisher: $(OBJS) + @echo "====> make publisher subtarget in `pwd | sed 's/^.*develop\///'`" + @$(MAKE) makedir DIR=$(DIR)/$(DEBUG_DIR)pub + @$(MAKE) lib CSRCS="$(PUB_CSRCS)" LIBNAME=$(LIBNAME)$@ + +player: $(OBJS) + @echo "====> make player subtarget in `pwd | sed 's/^.*develop\///'`" + @$(MAKE) makedir DIR=$(DIR)/player/$(DEBUG_DIR) + @$(MAKE) lib CSRCS="$(SAP_CSRCS)" LIBNAME=$(LIBNAME)$@ + +clean:: optclean debugclean + +optclean:: + @-[ ! -d $(DIR) ] || ( cd $(DIR) && \ + $(RM) *.o *.a *.d *.res ii_files/*.ii *.class *.h ) + +debugclean:: + @-[ ! -d $(DIR)/debug ] || ( cd $(DIR)/debug && \ + $(RM) *.o *.a *.d *.res ii_files/*.ii *.class *.h ) + +.PHONY: makedir +makedir:: + @# don't use mkdir -p. Cygwin will try to make network paths and fail + @[ -d $(DIR) ] || mkdir $(DIR) + @[ -d $(DIR)/debug ] || mkdir $(DIR)/debug + diff --git a/build_files/make/nan_definitions.mk b/build_files/make/nan_definitions.mk new file mode 100644 index 00000000000..d14bdb0a13c --- /dev/null +++ b/build_files/make/nan_definitions.mk @@ -0,0 +1,630 @@ +# -*- 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, Stefan Gartner +# +# ***** END GPL LICENSE BLOCK ***** +# +# set some defaults when these are not overruled (?=) by environment variables +# + +sinclude ../../user-def.mk + +# This warning only takes place once in source/ +ifeq (debug, $(findstring debug, $(MAKECMDGOALS))) + ifeq (all, $(findstring all, $(MAKECMDGOALS))) + export ERRTXT = "ERROR: all and debug targets cannot be used together anymore" + export ERRTXT += "Use something like ..make all && make debug.. instead" + endif +endif + +ifdef ERRTXT +$(error $(ERRTXT)) +endif + +ifndef CONFIG_GUESS + ifeq (debug, $(findstring debug, $(MAKECMDGOALS))) + export DEBUG_DIR = debug/ + export ALL_OR_DEBUG = debug + endif + ifeq (all, $(findstring all, $(MAKECMDGOALS))) + export ALL_OR_DEBUG ?= all + endif + + # First generic defaults for all platforms which should be constant. + # Note: ?= lets these defaults be overruled by environment variables, + export SRCHOME ?= $(NANBLENDERHOME)/source + export CONFIG_GUESS := $(shell ${SRCHOME}/tools/guess/guessconfig) + export OS := $(shell echo ${CONFIG_GUESS} | sed -e 's/-.*//') + export OS_VERSION := $(shell echo ${CONFIG_GUESS} | sed -e 's/^[^-]*-//' -e 's/-[^-]*//') + export CPU := $(shell echo ${CONFIG_GUESS} | sed -e 's/^[^-]*-[^-]*-//') + export MAKE_START := $(shell date "+%H:%M:%S %d-%b-%Y") + export NAN_LIBDIR ?= $(NANBLENDERHOME)/../lib + export NAN_OBJDIR ?= $(NANBLENDERHOME)/obj + # Library Config_Guess DIRectory + export LCGDIR = $(NAN_LIBDIR)/$(CONFIG_GUESS) + # Object Config_Guess DIRectory + export OCGDIR = $(NAN_OBJDIR)/$(CONFIG_GUESS) + + # Determines what targets are built + export WITH_BF_DYNAMICOPENGL ?= true + export WITH_BF_STATICOPENGL ?= false + export WITH_BF_BLENDERGAMEENGINE ?= true + export WITH_BF_BLENDERPLAYER ?= true + ifeq ($(NAN_NO_PLUGIN), true) + export WITH_BF_WEBPLUGIN = false + else + export WITH_BF_WEBPLUGIN ?= false + endif + + export NAN_MOTO ?= $(LCGDIR)/moto + export NAN_ITASC ?= $(LCGDIR)/itasc + + export BF_PROFILE ?= false + export NAN_USE_BULLET ?= true + export NAN_BULLET2 ?= $(LCGDIR)/bullet2 + export NAN_DECIMATION ?= $(LCGDIR)/decimation + export NAN_GUARDEDALLOC ?= $(LCGDIR)/guardedalloc + export NAN_IKSOLVER ?= $(LCGDIR)/iksolver + export NAN_BSP ?= $(LCGDIR)/bsp + export NAN_BOOLOP ?= $(LCGDIR)/boolop + export NAN_AUDASPACE ?= $(LCGDIR)/audaspace + export NAN_STRING ?= $(LCGDIR)/string + export NAN_MEMUTIL ?= $(LCGDIR)/memutil + export NAN_CONTAINER ?= $(LCGDIR)/container + export NAN_ACTION ?= $(LCGDIR)/action + export NAN_GHOST ?= $(LCGDIR)/ghost + export NAN_TEST_VERBOSITY ?= 1 + export NAN_OPENNL ?= $(LCGDIR)/opennl + export NAN_ELBEEM ?= $(LCGDIR)/elbeem + export NAN_SMOKE ?= $(LCGDIR)/smoke + export NAN_SUPERLU ?= $(LCGDIR)/superlu + export NAN_GLEW ?= $(LCGDIR)/glew + ifeq ($(FREE_WINDOWS), true) + export NAN_FFMPEG ?= $(LCGDIR)/gcc/ffmpeg + export NAN_FFMPEGLIBS ?= $(NAN_FFMPEG)/lib/libavformat.a $(NAN_FFMPEG)/lib/libavutil.a $(NAN_FFMPEG)/lib/libavcodec.a $(NAN_FFMPEG)/lib/libavdevice.a + else + export NAN_FFMPEG ?= $(LCGDIR)/ffmpeg + ifeq ($(OS), darwin) + export NAN_FFMPEGLIBS ?= $(NAN_FFMPEG)/lib/libavformat.a $(NAN_FFMPEG)/lib/libavcodec.a $(NAN_FFMPEG)/lib/libswscale.a $(NAN_FFMPEG)/lib/libavutil.a $(NAN_FFMPEG)/lib/libavdevice.a $(NAN_FFMPEG)/lib/libmp3lame.a $(NAN_FFMPEG)/lib/libx264.a $(NAN_FFMPEG)/lib/libxvidcore.a $(NAN_FFMPEG)/lib/libtheora.a $(NAN_FFMPEG)/lib/libtheoradec.a $(NAN_FFMPEG)/lib/libtheoraenc.a $(NAN_FFMPEG)/lib/libvorbis.a $(NAN_FFMPEG)/lib/libvorbisenc.a $(NAN_FFMPEG)/lib/libvorbisfile.a $(NAN_FFMPEG)/lib/libogg.a -lbz2 + else + export NAN_FFMPEGLIBS ?= $(NAN_FFMPEG)/lib/libavformat.a $(NAN_FFMPEG)/lib/libavcodec.a $(NAN_FFMPEG)/lib/libswscale.a $(NAN_FFMPEG)/lib/libavutil.a $(NAN_FFMPEG)/lib/libavdevice.a + endif + endif + export NAN_FFMPEGCFLAGS ?= -I$(NAN_FFMPEG)/include -I$(NANBLENDERHOME)/extern/ffmpeg + + export WITH_OPENEXR ?= true + export WITH_DDS ?= true + export WITH_OPENJPEG ?= true + export WITH_LZO ?= true + export WITH_LZMA ?= true + export NAN_LZO ?= $(LCGDIR)/lzo + export NAN_LZMA ?= $(LCGDIR)/lzma + export WITH_OPENAL ?= false + export WITH_JACK ?= false + export WITH_SNDFILE ?= false + export WITH_FFTW3 ?= false + + ifeq ($(WITH_OPENAL), true) + export NAN_OPENAL ?= /usr + endif + + ifeq ($(WITH_JACK), true) + export NAN_JACK ?= $(LCGDIR)/jack + export NAN_JACKCFLAGS ?= -I$(NAN_JACK)/include/jack + export NAN_JACKLIBS ?= $(NAN_JACK)/lib/libjack.a + endif + + ifeq ($(WITH_SNDFILE),true) + export NAN_SNDFILE ?= $(LCGDIR)/sndfile + export NAN_SNDFILECFLAGS ?= -I$(NAN_SNDFILE)/include + export NAN_SNDFILELIBS ?= $(NAN_SNDFILE)/lib/libsndfile.a $(NAN_SNDFILE)/lib/libFLAC.a $(NAN_SNDFILE)/lib/libogg.a + endif + + ifeq ($(NAN_USE_FFMPEG_CONFIG), true) + export NAN_FFMPEG = $(shell pkg-config --variable=prefix libavcodec) # Assume they are all in the same prefix + export NAN_FFMPEGLIBS = $(shell pkg-config --libs libavcodec libavdevice libavformat libswscale libavutil) + export NAN_FFMPEGCFLAGS = $(shell pkg-config --cflags libavcodec libavdevice libavformat libswscale libavutil) + endif + + ifeq ($(WITH_OPENCOLLADA), true) + export BF_OPENCOLLADA ?= $(LCGDIR)/opencollada + export BF_OPENCOLLADA_INC ?= $(BF_OPENCOLLADA)/include + export BF_OPENCOLLADA_LIBS ?= $(BF_OPENCOLLADA)/lib/libOpenCOLLADASaxFrameworkLoader.a $(BF_OPENCOLLADA)/lib/libOpenCOLLADAFramework.a $(BF_OPENCOLLADA)/lib/libOpenCOLLADABaseUtils.a $(BF_OPENCOLLADA)/lib/libOpenCOLLADAStreamWriter.a $(BF_OPENCOLLADA)/lib/libMathMLSolver.a $(BF_OPENCOLLADA)/lib/libGeneratedSaxParser.a $(BF_OPENCOLLADA)/lib/libUTF.a -lxml2 + export BF_PCRE ?= $(LCGDIR)/pcre + export BF_PCRE_LIBS ?= $(BF_PCRE)/lib/libpcre.a + endif + + export WITH_TIFF ?= true + + # Compare recreated .mo files with committed ones + export BF_VERIFY_MO_FILES ?= true + + # Platform Dependent settings go below: + ifeq ($(OS),darwin) + + export ID = $(shell whoami) + export HOST = $(shell hostname -s) + + # set target arch & os version + # architecture defaults to host arch, can be ppc, ppc64, i386, x86_64 + ifeq ($(CPU),powerpc) + export MACOSX_ARCHITECTURE ?= ppc + else + export MACOSX_ARCHITECTURE ?= i386 + endif + # target os version defaults to 10.4 for ppc & i386 (32 bit), 10.5 for ppc64, x86_64 + ifeq (64,$(findstring 64, $(MACOSX_ARCHITECTURE))) + export MACOSX_MIN_VERS ?= 10.5 + export MACOSX_DEPLOYMENT_TARGET ?= 10.5 + export MACOSX_SDK ?= /Developer/SDKs/MacOSX10.5.sdk + else + export MACOSX_MIN_VERS ?= 10.4 + export MACOSX_DEPLOYMENT_TARGET ?= 10.4 + export MACOSX_SDK ?= /Developer/SDKs/MacOSX10.4u.sdk + endif + + # useful for crosscompiling + ifeq ($(MACOSX_ARCHITECTURE),$(findstring $(MACOSX_ARCHITECTURE), "ppc ppc64")) + export CPU = powerpc + export LCGDIR = $(NAN_LIBDIR)/$(OS)-$(OS_VERSION)-$(CPU) + export OCGDIR = $(NAN_OBJDIR)/$(OS)-$(OS_VERSION)-$(CPU) + endif + ifeq ($(MACOSX_ARCHITECTURE),$(findstring $(MACOSX_ARCHITECTURE),"i386 x86_64")) + export CPU = i386 + export LCGDIR = $(NAN_LIBDIR)/$(OS)-$(OS_VERSION)-$(CPU) + export OCGDIR = $(NAN_OBJDIR)/$(OS)-$(OS_VERSION)-$(CPU) + endif + + export NAN_PYTHON_VERSION = 3.1 + + ifeq ($(NAN_PYTHON_VERSION),3.1) + export PY_FRAMEWORK ?= 0 + export NAN_PYTHON ?= $(LCGDIR)/python + export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/libpython$(NAN_PYTHON_VERSION).a + else + export PY_FRAMEWORK ?= 1 + ifdef PY_FRAMEWORK + export NAN_PYTHON_VERSION ?= 3.1 + export NAN_PYTHON ?= /System/Library/Frameworks/Python.framework/Versions/$(NAN_PYTHON_VERSION) + export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION) + export NAN_PYTHON_LIB ?= -framework Python + else + export NAN_PYTHON ?= /sw + export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION) + export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a + endif + endif + + export NAN_OPENAL ?= $(LCGDIR)/openal + export NAN_JPEG ?= $(LCGDIR)/jpeg + export NAN_PNG ?= $(LCGDIR)/png + export NAN_TIFF ?= $(LCGDIR)/tiff + export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay + export NAN_MESA ?= /usr/src/Mesa-3.1 + export NAN_ZLIB ?= $(LCGDIR)/zlib + export NAN_NSPR ?= $(LCGDIR)/nspr + export NAN_FREETYPE ?= $(LCGDIR)/freetype + export NAN_GETTEXT ?= $(LCGDIR)/gettext + export NAN_GETTEXT_LIB ?= $(NAN_GETTEXT)/lib/libintl.a + ifeq (($CPU), i386) + export NAN_GETTEXT_LIB += $(NAN_GETTEXT)/lib/libintl.a + endif + export NAN_SDL ?= $(LCGDIR)/sdl + export NAN_SDLCFLAGS ?= -I$(NAN_SDL)/include + export NAN_SDLLIBS ?= $(NAN_SDL)/lib/libSDL.a -framework Cocoa -framework IOKit + + export NAN_OPENEXR ?= $(LCGDIR)/openexr + export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/OpenEXR + export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a $(NAN_OPENEXR)/lib/libIlmThread.a + + export NAN_NO_KETSJI=false + + #ifeq ($(CPU), i386) + # export WITH_OPENAL=false + #endif + + # Location of MOZILLA/Netscape header files... + export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include + export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/ + # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB + # if this is not set. + + export NAN_BUILDINFO ?= true + # Be paranoid regarding library creation (do not update archives) + export NAN_PARANOID ?= true + + # enable quicktime by default on OS X + export WITH_QUICKTIME ?= true + + # enable l10n + export INTERNATIONAL ?= true + + export NAN_SAMPLERATE ?= $(LCGDIR)/samplerate + export NAN_SAMPLERATE_LIBS ?= $(NAN_SAMPLERATE)/lib/libsamplerate.a + + # enable building with Cocoa + export WITH_COCOA ?= false + export USE_QTKIT ?= false + # use cocoa and qtkit for 64bit builds + ifeq (64, $(findstring 64, $(MACOSX_ARCHITECTURE))) + export WITH_COCOA = true + export USE_QTKIT = true + endif + + export BF_PCRE = $(LCGDIR)/opencollada + export BF_OPENCOLLADA_LIBS = $(BF_OPENCOLLADA)/lib/libOpenCOLLADASaxFrameworkLoader.a $(BF_OPENCOLLADA)/lib/libOpenCOLLADAFramework.a $(BF_OPENCOLLADA)/lib/libOpenCOLLADABaseUtils.a $(BF_OPENCOLLADA)/lib/libOpenCOLLADAStreamWriter.a $(BF_OPENCOLLADA)/lib/libMathMLSolver.a $(BF_OPENCOLLADA)/lib/libGeneratedSaxParser.a $(BF_OPENCOLLADA)/lib/libUTF.a $(BF_OPENCOLLADA)/lib/libftoa.a $(BF_OPENCOLLADA)/lib/libbuffer.a -lxml2 + + else + ifeq ($(OS),freebsd) + + export ID = $(shell whoami) + export HOST = $(shell hostname -s) + export FREEDESKTOP ?= true + + export NAN_PYTHON ?= /usr/local + export NAN_PYTHON_VERSION ?= 3.1 + export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION) + export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a + export NAN_OPENAL ?= /usr/local + export NAN_JPEG ?= /usr/local + export NAN_PNG ?= /usr/local + export NAN_TIFF ?= /usr/local + export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay + export NAN_MESA ?= /usr/src/Mesa-3.1 + export NAN_ZLIB ?= /usr + export NAN_NSPR ?= /usr/local + export NAN_FREETYPE ?= $(LCGDIR)/freetype + export NAN_GETTEXT ?= $(LCGDIR)/gettext + export NAN_SDL ?= $(shell sdl-config --prefix) + export NAN_SDLLIBS ?= $(shell sdl-config --libs) + export NAN_SDLCFLAGS ?= $(shell sdl-config --cflags) + + # Location of MOZILLA/Netscape header files... + export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include + export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/ + # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB + # if this is not set. + + export NAN_BUILDINFO ?= true + # Be paranoid regarding library creation (do not update archives) + export NAN_PARANOID ?= true + + # enable l10n + # export INTERNATIONAL ?= true + + else + ifeq ($(OS),irix) + + export ID = $(shell whoami) + export HOST = $(shell /usr/bsd/hostname -s) + #export NAN_NO_KETSJI=true + export NAN_JUST_BLENDERDYNAMIC=true + export NAN_PYTHON_VERSION ?= 3.1 + ifeq ($(IRIX_USE_GCC), true) + export NAN_PYTHON ?= $(LCGDIR)/python_gcc + else + export NAN_PYTHON ?= $(LCGDIR)/python + endif + export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION) + export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a -lpthread + export NAN_OPENAL ?= $(LCGDIR)/openal + export NAN_JPEG ?= $(LCGDIR)/jpeg + export NAN_PNG ?= $(LCGDIR)/png + export NAN_TIFF ?= $(LCGDIR)/tiff + export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay + export NAN_MESA ?= /usr/src/Mesa-3.1 + export NAN_ZLIB ?= $(LCGDIR)/zlib + export NAN_NSPR ?= $(LCGDIR)/nspr + export NAN_FREETYPE ?= $(LCGDIR)/freetype + export NAN_ICONV ?= $(LCGDIR)/iconv + export NAN_GETTEXT ?= $(LCGDIR)/gettext + export NAN_GETTEXT_LIB ?= $(NAN_GETTEXT)/lib/libintl.a $(NAN_ICONV)/lib/libiconv.a + export NAN_SDL ?= $(LCGDIR)/sdl + export NAN_SDLLIBS ?= $(NAN_SDL)/lib/libSDL.a + export NAN_SDLCFLAGS ?= -I$(NAN_SDL)/include/SDL + export NAN_FFMPEG ?= $(LCGDIR)/ffmpeg + export NAN_FFMPEGLIBS = $(NAN_FFMPEG)/lib/libavformat.a $(NAN_FFMPEG)/lib/libavcodec.a $(NAN_FFMPEG)/lib/libswscale.a $(NAN_FFMPEG)/lib/libavutil.a $(NAN_FFMPEG)/lib/libavdevice.a $(NAN_FFMPEG)/lib/libogg.a $(NAN_FFMPEG)/lib/libfaad.a $(NAN_FFMPEG)/lib/libmp3lame.a $(NAN_FFMPEG)/lib/libvorbis.a $(NAN_FFMPEG)/lib/libx264.a $(NAN_FFMPEG)/lib/libfaac.a $(NAN_ZLIB)/lib/libz.a + export NAN_FFMPEGCFLAGS ?= -I$(NAN_FFMPEG)/include -I$(NANBLENDERHOME)/extern/ffmpeg + + ifeq ($(IRIX_USE_GCC), true) + export NAN_OPENEXR ?= $(LCGDIR)/openexr/gcc + else + export NAN_OPENEXR ?= $(LCGDIR)/openexr + endif + export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/OpenEXR + export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a $(NAN_OPENEXR)/lib/libIlmThread.a + + # Location of MOZILLA/Netscape header files... + export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include + export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/ + # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB + # if this is not set. + + export NAN_BUILDINFO ?= true + # Be paranoid regarding library creation (do not update archives) + export NAN_PARANOID ?= true + + # enable l10n + export INTERNATIONAL ?= true + + # Different endianess will make it fail, rely on other platforms for checks + export BF_VERIFY_MO_FILES = false + + else + ifeq ($(OS),linux) + + export ID = $(shell whoami) + export HOST = $(shell hostname -s) + export FREEDESKTOP ?= true + + export NAN_PYTHON ?= /usr + export NAN_PYTHON_VERSION ?= 3.1 + export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION) + # Next line if for static python, nan_link.mk uses -lpython$(NAN_PYTHON_VERSION) + #export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a + export NAN_OPENAL ?= /usr + export NAN_JPEG ?= /usr + export NAN_PNG ?= /usr + export NAN_TIFF ?= /usr + export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay + export NAN_MESA ?= /usr + export NAN_ZLIB ?= /usr + export NAN_NSPR ?= $(LCGDIR)/nspr + export NAN_FREETYPE ?= /usr + export NAN_GETTEXT ?= /usr + export NAN_SDL ?= $(shell sdl-config --prefix) + export NAN_SDLLIBS ?= $(shell sdl-config --libs) + export NAN_SDLCFLAGS ?= $(shell sdl-config --cflags) + export NAN_SAMPLERATE ?= /usr + + ifeq ($(WITH_OPENEXR), true) + export NAN_OPENEXR ?= $(shell pkg-config --variable=prefix OpenEXR ) + export NAN_OPENEXR_INC ?= $(shell pkg-config --cflags OpenEXR ) + export NAN_OPENEXR_LIBS ?= $(addprefix ${NAN_OPENEXR}/lib/lib,$(addsuffix .a,$(shell pkg-config --libs-only-l OpenEXR | sed -s "s/-l//g" ))) + endif + + ifeq ($(WITH_FFTW3), true) + export BF_FFTW3 ?= $(shell pkg-config --variable=prefix fftw3 ) + export BF_FFTW3_INC ?= $(shell pkg-config --variable=includedir fftw3 ) + export BF_FFTW3_LIBS ?= $(shell pkg-config --libs fftw3 ) + endif + + # Uncomment the following line to use Mozilla inplace of netscape + + # Location of MOZILLA/Netscape header files... + export NAN_MOZILLA_INC ?= /usr/include/mozilla + export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/ + # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB + # if this is not set. + + export NAN_BUILDINFO ?= true + # Be paranoid regarding library creation (do not update archives) + export NAN_PARANOID ?= true + + # l10n + export INTERNATIONAL ?= true + + export WITH_BINRELOC ?= true + + # enable ffmpeg support + ifndef NAN_NO_FFMPEG + export WITH_FFMPEG ?= true + endif + + ifeq ($(CPU), powerpc) + # Different endianess will make it fail, rely on other platforms for checks + export BF_VERIFY_MO_FILES = false + endif + + else + ifeq ($(OS),openbsd) + + export ID = $(shell whoami) + export HOST = $(shell hostname -s) + export FREEDESKTOP ?= true + + export NAN_PYTHON ?= $(LCGDIR)/python + export NAN_PYTHON_VERSION ?= 3.1 + export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION) + export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a + export NAN_OPENAL ?= $(LCGDIR)/openal + export NAN_JPEG ?= $(LCGDIR)/jpeg + export NAN_PNG ?= $(LCGDIR)/png + export NAN_TIFF ?= $(LCGDIR)/tiff + export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay + export NAN_MESA ?= /usr/src/Mesa-3.1 + export NAN_ZLIB ?= $(LCGDIR)/zlib + export NAN_NSPR ?= $(LCGDIR)/nspr + export NAN_FREETYPE ?= $(LCGDIR)/freetype + export NAN_GETTEXT ?= $(LCGDIR)/gettext + export NAN_SDL ?= $(shell sdl-config --prefix) + export NAN_SDLLIBS ?= $(shell sdl-config --libs) + export NAN_SDLCFLAGS ?= $(shell sdl-config --cflags) + + # Location of MOZILLA/Netscape header files... + export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include + export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/ + # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB + # if this is not set. + + export NAN_BUILDINFO ?= true + # Be paranoid regarding library creation (do not update archives) + export NAN_PARANOID ?= true + + # l10n + #export INTERNATIONAL ?= true + + else + ifeq ($(OS),solaris) + + export ID = $(shell /usr/ucb/whoami) + export HOST = $(shell hostname) + export NAN_PYTHON ?= $(LCGDIR)/python + export NAN_PYTHON_VERSION ?= 3.1 + export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION) + export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a + export NAN_OPENAL ?= $(LCGDIR)/openal + export NAN_JPEG ?= $(LCGDIR)/jpeg + export NAN_PNG ?= $(LCGDIR)/png + export NAN_TIFF ?= /usr + export NAN_TERRAPLAY ?= + export NAN_MESA ?= /usr/X11 + export NAN_ZLIB ?= $(LCGDIR)/zlib + export NAN_NSPR ?= $(LCGDIR)/nspr + export NAN_FREETYPE ?= $(LCGDIR)/freetype + export NAN_GETTEXT ?= $(LCGDIR)/gettext + export NAN_GETTEXT_LIB ?= $(NAN_GETTEXT)/lib/libintl.a $(NAN_GETTEXT)/lib/libiconv.a + export NAN_SDL ?= $(LCGDIR)/sdl + export NAN_SDLCFLAGS ?= -I$(NAN_SDL)/include/SDL + export NAN_SDLLIBS ?= $(NAN_SDL)/lib/libSDL.a + + # this only exists at the moment for i386-64 CPU Types at the moment + export NAN_OPENEXR ?= $(LCGDIR)/openexr + export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/OpenEXR + export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a $(NAN_OPENEXR)/lib/libIlmThread.a -lrt + + # Location of MOZILLA/Netscape header files... + export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include + export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/ + # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB + # if this is not set. + + export NAN_BUILDINFO ?= true + # Be paranoid regarding library creation (do not update archives) + export NAN_PARANOID ?= true + + # l10n + #export INTERNATIONAL ?= true + + else + ifeq ($(OS),windows) + + export ID = $(LOGNAME) + export NAN_PYTHON ?= $(LCGDIR)/python + export NAN_ICONV ?= $(LCGDIR)/iconv + export NAN_PYTHON_VERSION ?= 3.1 + export NAN_OPENAL ?= $(LCGDIR)/openal + export NAN_JPEG ?= $(LCGDIR)/jpeg + export NAN_PNG ?= $(LCGDIR)/png + export NAN_TIFF ?= $(LCGDIR)/tiff + export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay + export NAN_MESA ?= /usr/src/Mesa-3.1 + export NAN_ZLIB ?= $(LCGDIR)/zlib + export NAN_NSPR ?= $(LCGDIR)/nspr + export NAN_GETTEXT ?= $(LCGDIR)/gettext + ifeq ($(FREE_WINDOWS), true) + export NAN_GETTEXT_LIB ?= $(NAN_GETTEXT)/lib/freegettext.a $(NAN_ICONV)/lib/freeiconv.a + export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION) + export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/lib25_vs2005/libpython31.a # NOT TESTED, PROBABLY BROKEN + export NAN_FREETYPE ?= $(LCGDIR)/gcc/freetype + export NAN_SDL ?= $(LCGDIR)/gcc/sdl + export NAN_OPENEXR ?= $(LCGDIR)/gcc/openexr + export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/OpenEXR + export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a + export NAN_PTHREADS ?= $(LCGDIR)/pthreads + else + export NAN_GETTEXT_LIB ?= $(NAN_GETTEXT)/lib/gnu_gettext.lib $(NAN_ICONV)/lib/iconv.lib + export NAN_PYTHON_BINARY ?= python + export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python31.lib # NOT TESTED, PROBABLY BROKEN + export NAN_FREETYPE ?= $(LCGDIR)/freetype + export NAN_SDL ?= $(LCGDIR)/sdl + export NAN_OPENEXR ?= $(LCGDIR)/openexr + export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/IlmImf -I$(NAN_OPENEXR)/include/Imath -I$(NAN_OPENEXR)/include/Iex + export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/IlmImf.lib $(NAN_OPENEXR)/lib/Half.lib $(NAN_OPENEXR)/lib/Iex.lib + endif + export NAN_SDLCFLAGS ?= -I$(NAN_SDL)/include + + export NAN_WINTAB ?= $(LCGDIR)/wintab + + # Location of MOZILLA/Netscape header files... + export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include + export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/ + # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB + # if this is not set. + export NAN_PYTHON_BINARY ?= python + export NAN_BUILDINFO ?= true + # Be paranoid regarding library creation (do not update archives) + export NAN_PARANOID ?= true + + # l10n + export INTERNATIONAL ?= true + + # enable quicktime support + # export WITH_QUICKTIME ?= true + + else # Platform not listed above + + export NAN_PYTHON ?= $(LCGDIR)/python + export NAN_PYTHON_VERSION ?= 3.1 + export NAN_PYTHON_BINARY ?= python + export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a + + export NAN_OPENAL ?= $(LCGDIR)/openal + export NAN_JPEG ?= $(LCGDIR)/jpeg + export NAN_PNG ?= $(LCGDIR)/png + export NAN_TIFF ?= $(LCGDIR)/tiff + export NAN_SDL ?= $(LCGDIR)/sdl + export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay + export NAN_MESA ?= /usr/src/Mesa-3.1 + export NAN_ZLIB ?= $(LCGDIR)/zlib + export NAN_NSPR ?= $(LCGDIR)/nspr + export NAN_FREETYPE ?= $(LCGDIR)/freetype + export NAN_GETTEXT ?= $(LCGDIR)/gettext + export NAN_SDL ?= $(shell sdl-config --prefix) + export NAN_SDLLIBS ?= $(shell sdl-config --libs) + export NAN_SDLCFLAGS ?= $(shell sdl-config --cflags) + + # Location of MOZILLA/Netscape header files... + export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include + export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/ + # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB + # if this is not set. + + export NAN_BUILDINFO ?= true + # Be paranoid regarding library creation (do not update archives) + export NAN_PARANOID ?= true + + # l10n + #export INTERNATIONAL ?= true + + endif # windows + fallback + endif # solaris + endif # openbsd + endif # linux + endif # irix + endif # freebsd + endif # darwin + + # default tiff libs + export NAN_TIFF_LIBS ?= $(NAN_TIFF)/lib/libtiff.a + +endif # CONFIG_GUESS + +# Don't want to build the gameengine? +ifeq ($(NAN_NO_KETSJI), true) + export NAN_JUST_BLENDERDYNAMIC=true +endif diff --git a/build_files/make/nan_link.mk b/build_files/make/nan_link.mk new file mode 100644 index 00000000000..bbf4053b14c --- /dev/null +++ b/build_files/make/nan_link.mk @@ -0,0 +1,198 @@ +# -*- 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 ***** +# +# linking only + +include nan_definitions.mk + +ifdef NAN_DEBUG + LDFLAGS += $(NAN_DEBUG) +endif + +DBG_LDFLAGS += -g + +ifneq (x$(DEBUG_DIR), x) + LDFLAGS+=$(DBG_LDFLAGS) +else + LDFLAGS+=$(REL_LDFLAGS) +endif + +######################## OS dependencies (alphabetic!) ################ + +# default (overriden by windows) +SOEXT = .so + +ifeq ($(OS),darwin) + LLIBS += -lGLU -lGL + LLIBS += -lz -lstdc++ + ifdef USE_OSX10.4STUBS + LLIBS +=-lSystemStubs + endif + ifeq ($(WITH_COCOA), true) + LLIBS += -framework Cocoa + endif + LLIBS += -framework Carbon -framework AGL -framework OpenGL + ifeq ($(WITH_QUICKTIME), true) + ifeq ($(USE_QTKIT), true) + LLIBS += -framework QTKit + else + LLIBS += -framework QuickTime + endif + endif + LLIBS += -framework CoreAudio + LLIBS += -framework AudioUnit -framework AudioToolbox + LDFLAGS += -L/System/Library/Frameworks/OpenGL.framework/Libraries + # useful for crosscompiling + LDFLAGS += -arch $(MACOSX_ARCHITECTURE) #-isysroot $(MACOSX_SDK) -mmacosx-version-min=$(MACOSX_MIN_VERS) + + DBG_LDFLAGS += -L/System/Library/Frameworks/OpenGL.framework/Libraries +endif + +ifeq ($(OS),freebsd) + LLIBS = -L/usr/X11R6/lib -lX11 -lXmu -lXi -lm -lutil -lz -pthread -lc_r + DADD = -lGL -lGLU + DYNLDFLAGS = -shared $(LDFLAGS) + LOPTS = -Wl,--export-dynamic +endif + +ifeq ($(OS),irix) + ifeq ($(IRIX_USE_GCC), true) + LDFLAGS += -mabi=n32 -mips4 + DBG_LDFLAGS += -LD_LAYOUT:lgot_buffer=40 + else + LDFLAGS += -n32 -mips3 + LDFLAGS += -woff 84,171 + endif + LLIBS = -lmovieGL -lGLU -lGL -lXmu -lXext -lXi -lX11 -lc -lm -ldmedia + LLIBS += -lcl -laudio + ifneq ($(IRIX_USE_GCC), true) + LLIBS += -lCio -ldb + endif + LLIBS += -lz -lpthread + DYNLDFLAGS = -shared $(LDFLAGS) +endif + +ifeq ($(OS),linux) + ifeq ($(CPU),alpha) + COMMENT = "MESA 3.1" + LLIBS = -lGL -lGLU -L/usr/X11R6/lib/ -lXmu -lXext -lX11 + LLIBS += -lc -lm -ldl -lutil + LOPTS = -export-dynamic + endif + ifeq ($(CPU),$(findstring $(CPU), "i386 x86_64 ia64 parisc64 powerpc sparc64")) + COMMENT = "MESA 3.1" + LLIBS = -L$(NAN_MESA)/lib -L/usr/X11R6/lib -lXext -lX11 -lXi + LLIBS += -lutil -lc -lm -ldl -lpthread + LLIBS += -L$(NAN_PYTHON)/lib -Wl,-rpath -Wl,$(NAN_PYTHON)/lib -lpython$(NAN_PYTHON_VERSION) + LOPTS = -export-dynamic + DADD = -lGL -lGLU + SADD = $(NAN_MESA)/lib/libGL.a $(NAN_MESA)/lib/libGLU.a + DYNLDFLAGS = -shared $(LDFLAGS) + endif + LLIBS += -lz +endif + +ifeq ($(OS),openbsd) + SADD = /usr/local/lib/libGL.a /usr/local/lib/libGLU.a + SADD += /usr/X11R6/lib/libXmu.a /usr/X11R6/lib/libXext.a + SADD += /usr/X11R6/lib/libX11.a /usr/lib/libm.a -pthread +endif + +ifeq ($(OS),solaris) + ifeq (x86_64, $(findstring x86_64, $(CPU))) + LLIBS = -lrt + LLIBS += -L$(NAN_MESA)/lib/amd64 + else + LLIBS += -L$(NAN_MESA)/lib + endif + + LLIBS += $(NAN_ZLIB)/lib/libz.a -lGLU -lGL -lXmu -lXext -lXi -lX11 -lc -lm -ldl -lsocket -lnsl + DYNLDFLAGS = -shared $(LDFLAGS) +endif + +ifeq ($(OS),windows) + EXT = .exe + SOEXT = .dll + ifeq ($(FREE_WINDOWS),true) + MINGWLIB = /usr/lib/w32api + LDFLAGS += -mwindows -mno-cygwin -mconsole + DADD += -L/usr/lib/w32api -lnetapi32 -lopengl32 -lglu32 -lshfolder + DADD += -L/usr/lib/w32api -lwinmm -lwsock32 + else + DADD = kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib + DADD += advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib + DADD += vfw32.lib winmm.lib opengl32.lib glu32.lib largeint.lib dxguid.lib + DADD += libcmt.lib + LOPTS = /link + LOPTS += /NODEFAULTLIB:"libc" + LOPTS += /NODEFAULTLIB:"libcd" + LOPTS += /NODEFAULTLIB:"libcp" + LOPTS += /NODEFAULTLIB:"libcpd" + LOPTS += /NODEFAULTLIB:"python31" + LOPTS += /NODEFAULTLIB:"msvcrt" + LOPTS += /SUBSYSTEM:CONSOLE + LDFLAGS += /MT + DYNLDFLAGS = /LD + endif +endif + +ifneq ($(OS), irix) + LLIBS += $(NAN_SDLLIBS) +endif + +ifeq ($(WITH_ICONV),true) + LLIBS += $(NAN_ICONV_LIBS) +endif + +ifeq ($(WITH_FFMPEG),true) + LLIBS += $(NAN_FFMPEGLIBS) +endif + +ifeq ($(INTERNATIONAL),true) + LLIBS += $(NAN_GETTEXT_LIB) +endif + +ifeq ($(WITH_BF_OPENMP),true) + LLIBS += -lgomp +endif + +ifeq ($(WITH_FFTW3),true) + LLIBS += $(BF_FFTW3_LIBS) +endif + +ifeq ($(WITH_OPENCOLLADA),true) + LLIBS += $(BF_OPENCOLLADA_LIBS) +endif + +ifeq ($(WITH_TIFF),true) + LLIBS += $(NAN_TIFF_LIBS) +endif + +LLIBS += $(NAN_PYTHON_LIB) diff --git a/build_files/make/nan_subdirs.mk b/build_files/make/nan_subdirs.mk new file mode 100644 index 00000000000..58200a28b67 --- /dev/null +++ b/build_files/make/nan_subdirs.mk @@ -0,0 +1,78 @@ +# -*- 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 ***** +# +# Bounce make to subdirectories. +# Set DIRS, SOURCEDIR. Optionally also reacts on DIR, TESTDIRS. +# + +default: all + +# do not add install here. install target can only be used in intern/ +# top level Makefiles +all debug clean:: +ifdef quicky + @for i in $(quicky); do \ + echo "====> $(MAKE) $@ in $$i";\ + $(MAKE) -C $$i $@ quicky= || exit 1;\ + done + $(MAKE) -C source link || exit 1 + @echo "${quicky}" +else + ifdef DIR + @# Make sure object toplevels are there + @[ -d $(NAN_OBJDIR) ] || mkdir -p $(NAN_OBJDIR) + @[ -d $(LCGDIR) ] || mkdir -p $(LCGDIR) + @[ -d $(OCGDIR) ] || mkdir -p $(OCGDIR) + @[ -d $(OCGDIR)/intern ] || mkdir -p $(OCGDIR)/intern + @[ -d $(OCGDIR)/extern ] || mkdir -p $(OCGDIR)/extern + @# Create object directory + @[ -d $(DIR) ] || mkdir -p $(DIR) + endif + ifdef SOURCEDIR + @for i in $(DIRS); do \ + echo "====> $(MAKE) $@ in $(SOURCEDIR)/$$i" ;\ + $(MAKE) -C $$i $@ || exit 1; \ + done + else + @for i in $(DIRS); do \ + echo "====> $(MAKE) $@ in $$i" ;\ + $(MAKE) -C $$i $@ || exit 1; \ + done + endif +endif + +test:: + ifdef TESTDIRS + @for i in $(TESTDIRS); do \ + echo "====> $(MAKE) $@ in $(SOURCEDIR)/$$i" ;\ + $(MAKE) -C $$i $@ || exit 1; \ + done + endif + diff --git a/build_files/make/nan_warn.mk b/build_files/make/nan_warn.mk new file mode 100644 index 00000000000..c195fb333ab --- /dev/null +++ b/build_files/make/nan_warn.mk @@ -0,0 +1,167 @@ +# -*- 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 + |