Fix T53455: Object disappear w/ TrackTo constraint
[blender-staging.git] / GNUmakefile
index 86964e68873e08789c7294bff68d122a53433560..1143ac6e1f13237f93ab2c6a248ff24dd754f830 100644 (file)
@@ -43,6 +43,11 @@ ifndef BUILD_DIR
        BUILD_DIR:=$(shell dirname "$(BLENDER_DIR)")/build_$(OS_NCASE)
 endif
 
+# Dependencies DIR's
+DEPS_SOURCE_DIR:=$(BLENDER_DIR)/build_files/build_environment
+DEPS_BUILD_DIR:=$(BUILD_DIR)/deps
+DEPS_INSTALL_DIR:=$(shell dirname "$(BLENDER_DIR)")/lib/$(OS_NCASE)
+
 # Allow to use alternative binary (pypy3, etc)
 ifndef PYTHON
        PYTHON:=python3
@@ -86,13 +91,7 @@ ifndef NPROCS
        ifeq ($(OS), Linux)
                NPROCS:=$(shell nproc)
        endif
-       ifeq ($(OS), Darwin)
-               NPROCS:=$(shell sysctl -n hw.ncpu)
-       endif
-       ifeq ($(OS), FreeBSD)
-               NPROCS:=$(shell sysctl -n hw.ncpu)
-       endif
-       ifeq ($(OS), NetBSD)
+       ifneq (,$(filter $(OS),Darwin FreeBSD NetBSD))
                NPROCS:=$(shell sysctl -n hw.ncpu)
        endif
 endif
@@ -104,7 +103,7 @@ endif
 CMAKE_CONFIG = cmake $(BUILD_CMAKE_ARGS) \
                      -H"$(BLENDER_DIR)" \
                      -B"$(BUILD_DIR)" \
-                     -DCMAKE_BUILD_TYPE:STRING=$(BUILD_TYPE)
+                     -DCMAKE_BUILD_TYPE_INIT:STRING=$(BUILD_TYPE)
 
 
 # -----------------------------------------------------------------------------
@@ -146,6 +145,27 @@ cycles: all
 headless: all
 bpy: all
 
+# -----------------------------------------------------------------------------
+# Build dependencies
+DEPS_TARGET = install
+ifneq "$(findstring clean, $(MAKECMDGOALS))" ""
+       DEPS_TARGET = clean
+endif
+
+deps: .FORCE
+       @echo
+       @echo Configuring dependencies in \"$(DEPS_BUILD_DIR)\"
+
+       @cmake -H"$(DEPS_SOURCE_DIR)" \
+              -B"$(DEPS_BUILD_DIR)" \
+                  -DHARVEST_TARGET=$(DEPS_INSTALL_DIR)
+
+       @echo
+       @echo Building dependencies ...
+       $(MAKE) -C "$(DEPS_BUILD_DIR)" -s -j $(NPROCS) $(DEPS_TARGET)
+       @echo
+       @echo Dependencies successfully built and installed to $(DEPS_INSTALL_DIR).
+       @echo
 
 # -----------------------------------------------------------------------------
 # Configuration (save some cd'ing around)
@@ -164,6 +184,7 @@ help: .FORCE
        @echo "  * headless  - build without an interface (renderfarm or server automation)"
        @echo "  * cycles    - build Cycles standalone only, without Blender"
        @echo "  * bpy       - build as a python module which can be loaded from python directly"
+       @echo "  * deps      - build library dependencies (intended only for platform maintainers)"
        @echo ""
        @echo "  * config    - run cmake configuration tool to set build options"
        @echo ""
@@ -398,10 +419,16 @@ icons: .FORCE
        "$(BLENDER_DIR)/release/datafiles/prvicons_update.py"
 
 update: .FORCE
+       if [ "$(OS_NCASE)" == "darwin" ] && [ ! -d "../lib/$(OS_NCASE)" ]; then \
+               svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/$(OS_NCASE) ../lib/$(OS_NCASE) ; \
+       fi
        if [ -d "../lib" ]; then \
+               svn cleanup ../lib/* ; \
                svn update ../lib/* ; \
        fi
        git pull --rebase
+       git submodule update --init --recursive
+       git submodule foreach git checkout master
        git submodule foreach git pull --rebase origin master