Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'build_files/make')
-rwxr-xr-xbuild_files/make/example_scripts/linux_nanmakefiles.sh38
-rwxr-xr-xbuild_files/make/example_scripts/macos_nanmakefiles.sh18
-rwxr-xr-xbuild_files/make/example_scripts/sunos_nanmakefiles.sh35
-rw-r--r--build_files/make/nan_compile.mk474
-rw-r--r--build_files/make/nan_definitions.mk646
-rw-r--r--build_files/make/nan_link.mk202
-rw-r--r--build_files/make/nan_subdirs.mk78
-rw-r--r--build_files/make/nan_warn.mk167
8 files changed, 1658 insertions, 0 deletions
diff --git a/build_files/make/example_scripts/linux_nanmakefiles.sh b/build_files/make/example_scripts/linux_nanmakefiles.sh
new file mode 100755
index 00000000000..aa8d8820681
--- /dev/null
+++ b/build_files/make/example_scripts/linux_nanmakefiles.sh
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+#
+# This is an example script to build things with the Nan Makefiles
+#
+#
+
+rm -f /tmp/.nanguess
+export MAKE=make
+export NANBLENDERHOME=`pwd`
+export MAKEFLAGS="-w -I $NANBLENDERHOME/source --no-print-directory"
+export HMAKE="$NANBLENDERHOME/source/tools/hmake/hmake"
+
+export NAN_PYTHON=/soft/python-2.2.2b1/progeny1
+export NAN_PYTHON_VERSION=2.2
+export NAN_OPENAL=/usr/local
+export NAN_JPEG=/usr/local
+export NAN_PNG=/usr/local
+export NAN_SDL=/usr/local
+export NAN_ODE=/usr/local
+export NAN_ZLIB=/usr/local
+export NAN_FREETYPE=/usr/local
+
+export NAN_MOZILLA_INC=/usr/local/include/mozilla-1.0.1/
+export NAN_MOZILLA_LIB=/usr/local/lib/mozilla-1.0.1/
+#export NAN_NSPR=/scratch/irulan/mein/nspr-4.2.2/mozilla/nsprpub/dist/
+export CPPFLAGS="$CPPFLAGS"
+export CFLAGS="$CFLAGS"
+export INTERNATIONAL=true
+
+$HMAKE -C intern/
+if [ $? -eq 0 ]; then
+ $HMAKE -C source/
+fi
+$HMAKE -C release
+
+#cd release
+#make
diff --git a/build_files/make/example_scripts/macos_nanmakefiles.sh b/build_files/make/example_scripts/macos_nanmakefiles.sh
new file mode 100755
index 00000000000..d2cce204a53
--- /dev/null
+++ b/build_files/make/example_scripts/macos_nanmakefiles.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+rm -f /tmp/.nanguess
+export MAKE=make
+export NANBLENDERHOME=`pwd`
+export MAKEFLAGS="-w -I $NANBLENDERHOME/source --no-print-directory"
+export HMAKE="$NANBLENDERHOME/source/tools/hmake/hmake"
+echo
+echo NANBLENDERHOME : ${NANBLENDERHOME}
+
+export NAN_PYTHON=/sw
+
+$HMAKE -C intern/
+if [ $? -eq 0 ]; then
+ $HMAKE -C source/
+fi
+cd release
+make
diff --git a/build_files/make/example_scripts/sunos_nanmakefiles.sh b/build_files/make/example_scripts/sunos_nanmakefiles.sh
new file mode 100755
index 00000000000..25dd17bebb1
--- /dev/null
+++ b/build_files/make/example_scripts/sunos_nanmakefiles.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+# This is an example build script for SunOS5.8
+
+rm -f /tmp/.nanguess
+export MAKE=make
+export NANBLENDERHOME=`pwd`
+export MAKEFLAGS="-w -I $NANBLENDERHOME/source --no-print-directory"
+export HMAKE="$NANBLENDERHOME/source/tools/hmake/hmake"
+
+export NAN_PYTHON=/soft/python-2.2.2b1/SunOS5.8
+export NAN_PYTHON_VERSION=2.2
+export NAN_OPENAL=/usr/local
+export NAN_JPEG=/usr/local
+export NAN_PNG=/usr/local
+export NAN_SDL=/usr/local
+export NAN_ODE=/usr/local
+export NAN_OPENSSL=/soft/ssl/openssl-0.9.6e
+export NAN_ZLIB=/usr/local
+export NAN_FREETYPE=/usr/local
+
+export NAN_MOZILLA_INC=/usr/local/include/mozilla-1.0.1/
+export NAN_MOZILLA_LIB=/usr/local/lib/mozilla-1.0.1/
+export NAN_NSPR=/scratch/irulan/mein/nspr-4.2.2/mozilla/nsprpub/dist/
+export CPPFLAGS="$CPPFLAGS"
+export CFLAGS="$CFLAGS"
+export INTERNATIONAL=true
+
+$HMAKE -C intern/
+if [ $? -eq 0 ]; then
+ $HMAKE -C source/
+fi
+$HMAKE -C release
+
+#cd release
+#make
diff --git a/build_files/make/nan_compile.mk b/build_files/make/nan_compile.mk
new file mode 100644
index 00000000000..4107bb1820d
--- /dev/null
+++ b/build_files/make/nan_compile.mk
@@ -0,0 +1,474 @@
+# -*- 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 ($(WITH_BF_RAYOPTIMIZATION), true)
+ CCFLAGS += -msse
+ endif
+ 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..d8da2189e6d
--- /dev/null
+++ b/build_files/make/nan_definitions.mk
@@ -0,0 +1,646 @@
+# -*- 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
+
+ #enable raytracing optimization (currently only for i386 and x86_64)
+ ifeq ($(CPU),powerpc)
+ export WITH_BF_RAYOPTIMIZATION ?= false
+ else
+ export WITH_BF_RAYOPTIMIZATION ?= true
+ endif
+
+ export WITH_LCMS ?= false
+ export WITH_CINEON ?= true
+ export WITH_HDR ?= 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
+
+ # default path to lcms, may be overidden in platform sections above or in user-def.mk
+ export BF_LCMS ?= $(LCGDIR)/lcms
+ export BF_LCMS_INC ?= $(BF_LCMS)/include
+ export BF_LCMS_LIBS ?= $(BF_LCMS)/lib/liblcms.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..43fba13f45b
--- /dev/null
+++ b/build_files/make/nan_link.mk
@@ -0,0 +1,202 @@
+# -*- 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
+
+ifeq ($(WITH_LCMS),true)
+ LLIBS += $(BF_LCMS_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
+