|  | # This is an include file for Makefiles. It provides rules for building | 
|  | # .pb.c and .pb.h files out of .proto, as well the path to nanopb core. | 
|  |  | 
|  | # Path to the nanopb root directory | 
|  | NANOPB_DIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))../) | 
|  |  | 
|  | # Files for the nanopb core | 
|  | NANOPB_CORE = $(NANOPB_DIR)/pb_encode.c $(NANOPB_DIR)/pb_decode.c $(NANOPB_DIR)/pb_common.c | 
|  |  | 
|  | # Check if we are running on Windows | 
|  | ifdef windir | 
|  | WINDOWS = 1 | 
|  | endif | 
|  | ifdef WINDIR | 
|  | WINDOWS = 1 | 
|  | endif | 
|  |  | 
|  | # Check whether to use binary version of nanopb_generator or the | 
|  | # system-supplied python interpreter. | 
|  | ifneq "$(wildcard $(NANOPB_DIR)/generator-bin)" "" | 
|  | # Binary package | 
|  | PROTOC = $(NANOPB_DIR)/generator-bin/protoc | 
|  | 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 | 
|  | else | 
|  | PROTOC_OPTS = --plugin=protoc-gen-nanopb=$(NANOPB_DIR)/generator/protoc-gen-nanopb | 
|  | endif | 
|  | endif | 
|  |  | 
|  | # Rule for building .pb.c and .pb.h | 
|  | %.pb.c %.pb.h: %.proto $(wildcard %.options) | 
|  | $(PROTOC) $(PROTOC_OPTS) --nanopb_out=. $< | 
|  |  |