diff --git a/GNUmakefile b/GNUmakefile
index 306eaf19baf..d5052e0fbb2 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -22,6 +22,7 @@ Blender Convenience Targets
    * developer:     Enable faster builds, error checking and tests, recommended for developers.
    * ninja:         Use ninja build tool for faster builds.
    * ccache:        Use ccache for faster rebuilds.
+   * tornavis-lite: Build lite adding mechanical blender deps.
 
    Note: when passing in multiple targets their order is not important.
    So for a fast build you can for e.g. run 'make lite ccache ninja'.
@@ -126,6 +127,9 @@ Utilities
    * update_code:
      Updates git and all submodules but not svn.
 
+   * tornavis-apply:
+     Applies mechanical Blender patches.
+
    * format:
      Format source code using clang-format & autopep8 (uses PATHS if passed in). For example::
 
@@ -261,6 +265,11 @@ ifneq "$(findstring lite, $(MAKECMDGOALS))" ""
 	BUILD_DIR:=$(BUILD_DIR)_lite
 	CMAKE_CONFIG_ARGS:=-C"$(BLENDER_DIR)/build_files/cmake/config/blender_lite.cmake" $(CMAKE_CONFIG_ARGS)
 endif
+ifneq "$(findstring mbleder-lite, $(MAKECMDGOALS))" ""
+	BUILD_DIR:=$(BUILD_DIR)_lite
+	CMAKE_CONFIG_ARGS:=-C"$(BLENDER_DIR)/build_files/cmake/config/blender_lite.cmake" $(CMAKE_CONFIG_ARGS)
+	CMAKE_CONFIG_ARGS:=-DWITH_BOOST=YES $(CMAKE_CONFIG_ARGS)
+endif
 ifneq "$(findstring release, $(MAKECMDGOALS))" ""
 	BUILD_DIR:=$(BUILD_DIR)_release
 	CMAKE_CONFIG_ARGS:=-C"$(BLENDER_DIR)/build_files/cmake/config/blender_release.cmake" $(CMAKE_CONFIG_ARGS)
@@ -392,6 +401,7 @@ bpy: all
 developer: all
 ninja: all
 ccache: all
+tornavis-lite: all
 
 # -----------------------------------------------------------------------------
 # Build dependencies
@@ -575,6 +585,9 @@ format: .FORCE
 	@$(PYTHON) tools/utils_maintenance/autopep8_format_paths.py --autopep8-command="$(AUTOPEP8)" $(PATHS)
 
 
+tornavis-apply: .FORCE
+	@$(PYTHON) ./build_files/utils/apply_tornavis_patches.py
+
 # -----------------------------------------------------------------------------
 # Documentation
 #
diff --git a/build_files/utils/apply_tornavis_patches.py b/build_files/utils/apply_tornavis_patches.py
new file mode 100644
index 00000000000..920a6adaee4
--- /dev/null
+++ b/build_files/utils/apply_tornavis_patches.py
@@ -0,0 +1,108 @@
+#!/usr/bin/env python3
+#
+# Mechanical Blender
+
+"""
+"make mblender" for applying mblender patches on current source.
+"""
+
+import argparse
+import sys
+import os
+
+import make_utils
+from make_utils import call
+
+MB_0001 = "https://www.tornavis.org/mblender_patches/patches/mb-0001-operator-repeat.patch"
+MB_0002 = "https://www.tornavis.org/mblender_patches/patches/mb-0002-readme-file.patch"
+MB_0003 = "https://www.tornavis.org/mblender_patches/patches/mb-0003-mblender-make-target-windows.patch"
+MB_0004 = "https://www.tornavis.org/mblender_patches/patches/mb-0004-mblender-make-target-linux.patch"
+MB_0005 = "https://www.tornavis.org/mblender_patches/patches/mb-0005-splash-changes.patch"
+MB_0006 = "https://www.tornavis.org/mblender_patches/patches/mb-0006-allow-no-modal-transform.patch"
+MB_0007 = "https://www.tornavis.org/mblender_patches/patches/mb-0007-transform-flags.patch"
+MB_0008 = "https://www.tornavis.org/mblender_patches/patches/mb-0008-mblender-core.patch"
+MB_0009 = "https://www.tornavis.org/mblender_patches/patches/mb-0009-addon-menu-references.patch"
+MB_0010 = "https://www.tornavis.org/mblender_patches/patches/mb-0010-url-presets.patch"
+MB_0011 = "https://www.tornavis.org/mblender_patches/patches/mb-0011-operator-handlers.patch"
+MB_0012 = "https://www.tornavis.org/mblender_patches/patches/mb-0012-custom-splash.patch"
+MB_0013 = "https://www.tornavis.org/mblender_patches/patches/mb-0013-blender-top-bar.patch"
+MB_0013_BIN = "https://www.tornavis.org/mblender_patches/patches/mb-0013-blender-top-bar.tar"
+MB_0014 = "https://www.tornavis.org/mblender_patches/patches/mb-0014-bpy-images.patch"
+MB_0015 = "https://www.tornavis.org/mblender_patches/patches/mb-0015-image-ui.patch"
+MB_0016 = "https://www.tornavis.org/mblender_patches/patches/mb-0016-create-object-with-custom-orientation.patch"
+
+
+def parse_arguments() -> argparse.Namespace:
+    parser = argparse.ArgumentParser()
+    parser.add_argument("--git-command", default="git")
+    parser.add_argument("--wget-command", default="wget")
+    return parser.parse_args()
+
+
+args = parse_arguments()
+git_command = args.git_command
+wget_command = args.wget_command
+
+tmp_file = "/tmp/mblender.patch"
+tmp_file2 = "/tmp/mblender.tar"
+
+if make_utils.command_missing(git_command):
+    sys.stderr.write("git not found, can't checkout test files\n")
+    sys.exit(1)
+
+if make_utils.command_missing(wget_command):
+    sys.stderr.write("wget not found, used for downloading patches\n")
+    sys.exit(1)
+
+
+if __name__ == "__main__":
+
+    call([wget_command, MB_0001, "-O", tmp_file])
+    call([git_command, "apply", tmp_file])
+
+    call([wget_command, MB_0002, "-O", tmp_file])
+    call([git_command, "apply", tmp_file])
+
+    call([wget_command, MB_0003, "-O", tmp_file])
+    call([git_command, "apply", tmp_file])
+
+    # MB-0004 Already applied
+
+    call([wget_command, MB_0005, "-O", tmp_file])
+    call([git_command, "apply", tmp_file])
+
+    call([wget_command, MB_0006, "-O", tmp_file])
+    call([git_command, "apply", tmp_file])
+
+    call([wget_command, MB_0007, "-O", tmp_file])
+    call([git_command, "apply", tmp_file])
+
+    call([wget_command, MB_0008, "-O", tmp_file])
+    call([git_command, "apply", tmp_file])
+
+    call([wget_command, MB_0009, "-O", tmp_file])
+    call([git_command, "apply", tmp_file])
+
+    call([wget_command, MB_0010, "-O", tmp_file])
+    call([git_command, "apply", tmp_file])
+    
+    call([wget_command, MB_0011, "-O", tmp_file])
+    call([git_command, "apply", tmp_file])
+    
+    call([wget_command, MB_0012, "-O", tmp_file])
+    call([git_command, "apply", tmp_file])
+    
+    call([wget_command, MB_0013, "-O", tmp_file])
+    call([git_command, "apply", tmp_file])
+    
+    call([wget_command, MB_0013_BIN, "-O", tmp_file2])
+    call(["cmake","-E","tar", "xf", tmp_file2])
+    
+    call([wget_command, MB_0014, "-O", tmp_file])
+    call([git_command, "apply", tmp_file])
+    
+    call([wget_command, MB_0015, "-O", tmp_file])
+    call([git_command, "apply", tmp_file])
+    
+    call([wget_command, MB_0016, "-O", tmp_file])
+    call([git_command, "apply", tmp_file])
diff --git a/source/blender/tornavis/patches/MB_0004.h b/source/blender/tornavis/patches/MB_0004.h
new file mode 100644
index 00000000000..ddf2a41c228
--- /dev/null
+++ b/source/blender/tornavis/patches/MB_0004.h
@@ -0,0 +1 @@
+/* Empty File */
