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 'GNUmakefile')
-rw-r--r--GNUmakefile81
1 files changed, 73 insertions, 8 deletions
diff --git a/GNUmakefile b/GNUmakefile
index b6741d7e5f0..8446541cfae 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -35,17 +35,33 @@ OS_NCASE:=$(shell uname -s | tr '[A-Z]' '[a-z]')
# Source and Build DIR's
BLENDER_DIR:=$(shell pwd -P)
BUILD_DIR:=$(shell dirname $(BLENDER_DIR))/build/$(OS_NCASE)
+BUILD_TYPE:=Release
+BUILD_CMAKE_ARGS:=""
+# -----------------------------------------------------------------------------
+# additional targets for the build configuration
+
# support 'make debug'
ifneq "$(findstring debug, $(MAKECMDGOALS))" ""
BUILD_DIR:=$(BUILD_DIR)_debug
BUILD_TYPE:=Debug
-else
- BUILD_TYPE:=Release
+endif
+ifneq "$(findstring lite, $(MAKECMDGOALS))" ""
+ BUILD_DIR:=$(BUILD_DIR)_lite
+ BUILD_CMAKE_ARGS:=$(BUILD_CMAKE_ARGS) -C$(BLENDER_DIR)/build_files/cmake/config/blender_lite.cmake
+endif
+ifneq "$(findstring headless, $(MAKECMDGOALS))" ""
+ BUILD_DIR:=$(BUILD_DIR)_bpy
+ BUILD_CMAKE_ARGS:=$(BUILD_CMAKE_ARGS) -C$(BLENDER_DIR)/build_files/cmake/config/blender_headless.cmake
+endif
+ifneq "$(findstring bpy, $(MAKECMDGOALS))" ""
+ BUILD_DIR:=$(BUILD_DIR)_bpy
+ BUILD_CMAKE_ARGS:=$(BUILD_CMAKE_ARGS) -C$(BLENDER_DIR)/build_files/cmake/config/bpy_module.cmake
endif
+# -----------------------------------------------------------------------------
# Get the number of cores for threaded build
NPROCS:=1
ifeq ($(OS), Linux)
@@ -61,14 +77,14 @@ ifeq ($(OS), NetBSD)
NPROCS:=$(shell sysctl -a | grep "hw.ncpu " | cut -d" " -f3 )
endif
-
+# -----------------------------------------------------------------------------
# Build Blender
all:
@echo
@echo Configuring Blender ...
if test ! -f $(BUILD_DIR)/CMakeCache.txt ; then \
- cmake -H$(BLENDER_DIR) -B$(BUILD_DIR) -DCMAKE_BUILD_TYPE:STRING=$(BUILD_TYPE) ; \
+ cmake $(BUILD_CMAKE_ARGS) -H$(BLENDER_DIR) -B$(BUILD_DIR) -DCMAKE_BUILD_TYPE:STRING=$(BUILD_TYPE); \
fi
@echo
@@ -80,9 +96,40 @@ all:
@echo
debug: all
- # pass
-
-# package types
+lite: all
+headless: all
+bpy: all
+
+# -----------------------------------------------------------------------------
+# Helo for build targets
+help:
+ @echo ""
+ @echo "Convenience targets provided for building blender, (multiple at once can be used)"
+ @echo " * debug - build a debug binary"
+ @echo " * lite - disable non essential features for a smaller binary and faster build"
+ @echo " * headless - build without an interface (renderfarm or server automation)"
+ @echo " * bpy - build as a python module which can be loaded from python directly"
+ @echo ""
+ @echo "Project Files for IDE's"
+ @echo " * project_qtcreator - QtCreator Project Files"
+ @echo " * project_netbeans - NetBeans Project Files"
+ @echo " * project_eclipse - Eclipse CDT4 Project Files"
+ @echo ""
+ @echo "Package Targets"
+ @echo " * package_debian - build a debian package"
+ @echo " * package_pacman - build an arch linux pacmanpackage"
+ @echo " * package_archive - build an archive package"
+ @echo ""
+ @echo "Testing Targets (not assosiated with building blender)"
+ @echo " * test - run ctest, currently tests import/export, operator execution and that python modules load"
+ @echo " * test_cmake - runs our own cmake file checker which detects errors in the cmake file list definitions"
+ @echo " * test_pep8 - checks all python script are pep8 which are tagged to use the stricter formatting"
+ @echo " * test_deprecated - checks for deprecation tags in our code which may need to be removed"
+ @echo ""
+
+# -----------------------------------------------------------------------------
+# Packages
+#
package_debian:
cd build_files/package_spec ; DEB_BUILD_OPTIONS="parallel=$(NPROCS)" sh ./build_debian.sh
@@ -93,7 +140,10 @@ package_archive:
make -C $(BUILD_DIR) -s package_archive
@echo archive in "$(BUILD_DIR)/release"
-# forward build targets
+
+# -----------------------------------------------------------------------------
+# Tests
+#
test:
cd $(BUILD_DIR) ; ctest . --output-on-failure
@@ -111,6 +161,21 @@ test_cmake:
test_deprecated:
python3 source/tests/check_deprecated.py
+
+# -----------------------------------------------------------------------------
+# Project Files
+#
+
+project_qtcreator:
+ python3 build_files/cmake/cmake_qtcreator_project.py $(BUILD_DIR)
+
+project_netbeans:
+ python3 build_files/cmake/cmake_netbeans_project.py $(BUILD_DIR)
+
+project_eclipse:
+ cmake -G"Eclipse CDT4 - Unix Makefiles" -H$(BLENDER_DIR) -B$(BUILD_DIR)
+
+
clean:
$(MAKE) -C $(BUILD_DIR) clean