|  | # Include the nanopb provided Makefile rules | 
|  | include ../../extra/nanopb.mk | 
|  |  | 
|  | # Compiler flags to enable all warnings & debug info | 
|  | CFLAGS = -Wall -Werror -g -O0 | 
|  | CFLAGS += -I$(NANOPB_DIR) | 
|  |  | 
|  | # C source code files that are required | 
|  | CSRC  = simple.c                   # The main program | 
|  | CSRC += simple.pb.c                # The compiled protocol definition | 
|  | CSRC += $(NANOPB_DIR)/pb_encode.c  # The nanopb encoder | 
|  | CSRC += $(NANOPB_DIR)/pb_decode.c  # The nanopb decoder | 
|  | CSRC += $(NANOPB_DIR)/pb_common.c  # The nanopb common parts | 
|  |  | 
|  | # Build rule for the main program | 
|  | simple: $(CSRC) | 
|  | $(CC) $(CFLAGS) -osimple $(CSRC) | 
|  |  | 
|  | # Build rule for the protocol | 
|  | simple.pb.c: simple.proto | 
|  | $(PROTOC) $(PROTOC_OPTS) --nanopb_out=. simple.proto | 
|  |  |