Make tests and examples use the bundled protoc
diff --git a/extra/nanopb.mk b/extra/nanopb.mk
index 5c2cff5..16bc376 100644
--- a/extra/nanopb.mk
+++ b/extra/nanopb.mk
@@ -23,10 +23,11 @@
 	PROTOC_OPTS = 
 else
 	# Source only or git checkout
-	PROTOC = protoc
 	ifdef WINDOWS
-		PROTOC_OPTS = --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb.bat
+	    PROTOC = "python $(NANOPB_DIR)/generator/protoc"
+	    PROTOC_OPTS = --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb.bat
 	else
+	    PROTOC = $(NANOPB_DIR)/generator/protoc
 		PROTOC_OPTS = --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb
 	endif
 endif
diff --git a/tests/SConstruct b/tests/SConstruct
index 18c1b04..8335bdf 100644
--- a/tests/SConstruct
+++ b/tests/SConstruct
@@ -9,6 +9,8 @@
 CCFLAGS     Flags to pass to the C compiler
 CXXFLAGS    Flags to pass to the C++ compiler
 LINKFLAGS   Flags to pass to linker
+PROTOC      Path to protoc binary
+PROTOCFLAGS Arguments to pass protoc
 
 For example, for a clang build, use:
 scons CC=clang CXX=clang++
@@ -36,6 +38,8 @@
 if 'CCFLAGS' in ARGUMENTS: env.Append(CCFLAGS = ARGUMENTS['CCFLAGS'])
 if 'CXXFLAGS' in ARGUMENTS: env.Append(CXXFLAGS = ARGUMENTS['CXXFLAGS'])
 if 'LINKFLAGS' in ARGUMENTS: env.Append(LINKFLAGS = ARGUMENTS['LINKFLAGS'])
+if 'PROTOC' in ARGUMENTS: env.Replace(PROTOC = ARGUMENTS['PROTOC'])
+if 'PROTOCFLAGS' in ARGUMENTS: env.Replace(PROTOCFLAGS = ARGUMENTS['PROTOCFLAGS'])
 
 # Add the builders defined in site_init.py
 add_nanopb_builders(env)
diff --git a/tests/site_scons/site_tools/nanopb.py b/tests/site_scons/site_tools/nanopb.py
index 409d86c..f0626c6 100644
--- a/tests/site_scons/site_tools/nanopb.py
+++ b/tests/site_scons/site_tools/nanopb.py
@@ -64,6 +64,11 @@
         # Use protoc bundled with binary package
         return env['ESCAPE'](p1)
 
+    p = os.path.join(n, 'generator', 'protoc')
+    if os.path.exists(p):
+        # Use the grcpio-tools protoc wrapper
+        return env['ESCAPE'](p)
+
     p = env.WhereIs('protoc')
     if p:
         # Use protoc from path