12345678910111213141516171819202122232425262728293031323334353637 |
- # 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 := $(patsubst %/,%,$(dir $(patsubst %/,%,$(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_OPTS =
- ifdef WINDOWS
- PROTOC = python $(NANOPB_DIR)/generator/protoc
- else
- PROTOC = $(NANOPB_DIR)/generator/protoc
- endif
- endif
- # Rule for building .pb.c and .pb.h
- %.pb.c %.pb.h: %.proto $(wildcard %.options)
- $(PROTOC) $(PROTOC_OPTS) --nanopb_out=. $<
|