| 
									
										
										
										
											2020-04-19 01:47:49 -07:00
										 |  |  | ARDUINO_DIR?=external/ArduinoCore-avr | 
					
						
							|  |  |  | NANOPB_DIR?=external/nanopb | 
					
						
							| 
									
										
										
										
											2020-04-06 19:08:50 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | CC=avr-gcc | 
					
						
							|  |  |  | CXX=avr-g++ | 
					
						
							|  |  |  | OBJCOPY=avr-objcopy | 
					
						
							|  |  |  | OBJDUMP=avr-objdump | 
					
						
							|  |  |  | BINSIZE=avr-size | 
					
						
							|  |  |  | OUT=./bin/ | 
					
						
							|  |  |  | NAME=collar | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CFLAGS?=-Datmega328p\
 | 
					
						
							| 
									
										
										
										
											2020-04-19 01:47:49 -07:00
										 |  |  | 				-Dmega328p\
 | 
					
						
							|  |  |  | 				-mmcu=atmega328p\
 | 
					
						
							|  |  |  | 				-Wl,--gc-sections\
 | 
					
						
							|  |  |  | 				-DF_CPU=16000000L\
 | 
					
						
							|  |  |  | 				-DARDUINO=200\
 | 
					
						
							|  |  |  | 				-DARDUINO_AVR_NANO\
 | 
					
						
							|  |  |  | 				-DARDUINO_ARCH_AVR\
 | 
					
						
							|  |  |  | 				-Os\
 | 
					
						
							|  |  |  | 				-ffunction-sections\
 | 
					
						
							|  |  |  | 				-fdata-sections\
 | 
					
						
							|  |  |  | 				-MMD\
 | 
					
						
							|  |  |  | 				-flto\
 | 
					
						
							|  |  |  | 				-fno-fat-lto-objects\
 | 
					
						
							|  |  |  | 		  	-fuse-linker-plugin | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CXXFLAGS?=-Datmega328p\
 | 
					
						
							| 
									
										
										
										
											2020-04-06 19:08:50 -07:00
										 |  |  | 				-Dmega328p\
 | 
					
						
							|  |  |  | 				-mmcu=atmega328p\
 | 
					
						
							|  |  |  | 				-Wl,--gc-sections\
 | 
					
						
							|  |  |  | 				-DF_CPU=16000000L\
 | 
					
						
							|  |  |  | 				-DARDUINO=200\
 | 
					
						
							|  |  |  | 				-DARDUINO_AVR_NANO\
 | 
					
						
							|  |  |  | 				-DARDUINO_ARCH_AVR\
 | 
					
						
							| 
									
										
										
										
											2020-04-07 15:23:50 -07:00
										 |  |  | 				-std=c++11\
 | 
					
						
							| 
									
										
										
										
											2020-04-06 19:08:50 -07:00
										 |  |  | 				-Os\
 | 
					
						
							|  |  |  | 				-ffunction-sections\
 | 
					
						
							|  |  |  | 				-fdata-sections\
 | 
					
						
							|  |  |  | 				-MMD\
 | 
					
						
							|  |  |  | 				-flto\
 | 
					
						
							|  |  |  | 				-fno-fat-lto-objects\
 | 
					
						
							|  |  |  | 		  	-fuse-linker-plugin | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | INC_DIRS?=-I./$(ARDUINO_DIR)/libraries/SPI/src\
 | 
					
						
							|  |  |  | 					-I./$(ARDUINO_DIR)/cores/arduino\
 | 
					
						
							|  |  |  | 					-I./$(ARDUINO_DIR)/variants/eightanaloginputs\
 | 
					
						
							|  |  |  | 					-I./libraries/arduino-LoRa/src\
 | 
					
						
							|  |  |  | 					-I./libraries/TinyGPSPlus/src\
 | 
					
						
							| 
									
										
										
										
											2020-04-18 20:07:23 -07:00
										 |  |  |           -I./libraries/TinyLoRa\
 | 
					
						
							| 
									
										
										
										
											2020-04-18 23:27:19 -07:00
										 |  |  |           -I./libraries/arduino-base64\
 | 
					
						
							| 
									
										
										
										
											2020-04-06 19:08:50 -07:00
										 |  |  | 					-I./$(NANOPB_DIR)\
 | 
					
						
							|  |  |  | 					-I./protobuf\
 | 
					
						
							|  |  |  | 					-I./$(ARDUINO_DIR)/libraries/SoftwareSerial/src/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | SRC_FILES?=./$(ARDUINO_DIR)/cores/arduino/main.cpp\
 | 
					
						
							|  |  |  | 					 ./$(ARDUINO_DIR)/cores/arduino/wiring_digital.c\
 | 
					
						
							|  |  |  | 					 ./$(ARDUINO_DIR)/cores/arduino/wiring_analog.c\
 | 
					
						
							|  |  |  | 					 ./$(ARDUINO_DIR)/cores/arduino/WInterrupts.c\
 | 
					
						
							|  |  |  | 					 ./$(ARDUINO_DIR)/cores/arduino/hooks.c\
 | 
					
						
							|  |  |  | 					 ./$(ARDUINO_DIR)/cores/arduino/wiring.c\
 | 
					
						
							| 
									
										
										
										
											2020-04-19 01:47:49 -07:00
										 |  |  | 					 ./$(NANOPB_DIR)/pb_encode.c\
 | 
					
						
							|  |  |  | 					 ./$(NANOPB_DIR)/pb_decode.c\
 | 
					
						
							|  |  |  | 					 ./$(NANOPB_DIR)/pb_common.c\
 | 
					
						
							|  |  |  | 					 ./protobuf/gateway/message.pb.c\
 | 
					
						
							| 
									
										
										
										
											2020-04-06 19:08:50 -07:00
										 |  |  |            ./$(ARDUINO_DIR)/cores/arduino/HardwareSerial.cpp\
 | 
					
						
							|  |  |  |            ./$(ARDUINO_DIR)/cores/arduino/HardwareSerial0.cpp\
 | 
					
						
							|  |  |  |            ./$(ARDUINO_DIR)/cores/arduino/HardwareSerial1.cpp\
 | 
					
						
							|  |  |  |            ./$(ARDUINO_DIR)/cores/arduino/HardwareSerial2.cpp\
 | 
					
						
							|  |  |  |            ./$(ARDUINO_DIR)/cores/arduino/HardwareSerial3.cpp\
 | 
					
						
							|  |  |  | 					 ./$(ARDUINO_DIR)/cores/arduino/WString.cpp\
 | 
					
						
							|  |  |  | 					 ./$(ARDUINO_DIR)/cores/arduino/Print.cpp\
 | 
					
						
							|  |  |  | 					 ./$(ARDUINO_DIR)/cores/arduino/Stream.cpp\
 | 
					
						
							|  |  |  | 					 ./$(ARDUINO_DIR)/cores/arduino/new.cpp\
 | 
					
						
							|  |  |  | 					 ./$(ARDUINO_DIR)/cores/arduino/abi.cpp\
 | 
					
						
							|  |  |  | 					 ./$(ARDUINO_DIR)/libraries/SoftwareSerial/src/SoftwareSerial.cpp\
 | 
					
						
							| 
									
										
										
										
											2020-04-18 20:07:23 -07:00
										 |  |  | 					 ./$(ARDUINO_DIR)/libraries/SPI/src/SPI.cpp\
 | 
					
						
							| 
									
										
										
										
											2020-04-06 19:08:50 -07:00
										 |  |  | 					 ./libraries/arduino-LoRa/src/LoRa.cpp\
 | 
					
						
							|  |  |  | 					 ./libraries/TinyGPSPlus/src/TinyGPS++.cpp\
 | 
					
						
							| 
									
										
										
										
											2020-04-18 20:07:23 -07:00
										 |  |  |            ./libraries/TinyLoRa/TinyLoRa.cpp\
 | 
					
						
							| 
									
										
										
										
											2020-04-19 01:47:49 -07:00
										 |  |  |            ./libraries/arduino-base64/Base64.cpp | 
					
						
							| 
									
										
										
										
											2020-04-18 20:07:23 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | SRC_FILES_COMMON?=\
 | 
					
						
							| 
									
										
										
										
											2020-04-06 19:08:50 -07:00
										 |  |  | 					 ./$(NANOPB_DIR)/pb_encode.c\
 | 
					
						
							|  |  |  | 					 ./$(NANOPB_DIR)/pb_decode.c\
 | 
					
						
							|  |  |  | 					 ./$(NANOPB_DIR)/pb_common.c\
 | 
					
						
							| 
									
										
										
										
											2020-04-18 20:07:23 -07:00
										 |  |  | 					 ./protobuf/gateway/message.pb.c | 
					
						
							| 
									
										
										
										
											2020-04-06 19:08:50 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-19 01:47:49 -07:00
										 |  |  | # Make targets for each source file
 | 
					
						
							|  |  |  | OBJS := $(SRC_FILES:%=./bin/%.o) | 
					
						
							|  |  |  | OBJDIRS := $(SRC_FILES:%=./bin/%) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-07 15:23:50 -07:00
										 |  |  | build: $(OUT)$(NAME) | 
					
						
							| 
									
										
										
										
											2020-04-06 19:08:50 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-19 01:47:49 -07:00
										 |  |  | $(OBJDIRS): | 
					
						
							| 
									
										
										
										
											2020-04-28 13:32:47 -07:00
										 |  |  | 	@mkdir -p $(shell dirname $@) | 
					
						
							| 
									
										
										
										
											2020-04-19 01:47:49 -07:00
										 |  |  | $(OUT)%.cpp.o: %.cpp | 
					
						
							|  |  |  | 	$(CXX) $(CXXFLAGS) -c $(INC_DIRS) -o $@ $<  | 
					
						
							|  |  |  | $(OUT)%.c.o: %.c | 
					
						
							|  |  |  | 	$(CC) $(CFLAGS) -c $(INC_DIRS) -o $@ $<  | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-07 15:23:50 -07:00
										 |  |  | $(OUT)$(NAME): $(OUT)$(NAME).elf | 
					
						
							| 
									
										
										
										
											2020-04-06 19:08:50 -07:00
										 |  |  | 	$(OBJCOPY) -R .eeprom -O ihex $(OUT)$(NAME).elf $(OUT)$(NAME).hex | 
					
						
							|  |  |  | $(OUT)eep.hex: $(OUT)$(NAME).elf | 
					
						
							|  |  |  | 	$(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O ihex $(OUT)$(NAME).elf $(OUT)eep.hex | 
					
						
							| 
									
										
										
										
											2020-04-19 01:47:49 -07:00
										 |  |  | $(OUT)$(NAME).elf: protobufg bin $(OBJDIRS) $(OBJS) | 
					
						
							|  |  |  | 	$(CC) $(CFLAGS) -o $(OUT)$(NAME).elf collar.cpp $(INC_DIRS) $(OBJS)  | 
					
						
							| 
									
										
										
										
											2020-04-06 19:08:50 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-18 20:07:23 -07:00
										 |  |  | test: | 
					
						
							|  |  |  | 	g++ -o $(OUT)test prototest.cpp $(INC_DIRS) $(SRC_FILES_COMMON) | 
					
						
							|  |  |  | 	$(OUT)test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | protobufg: | 
					
						
							| 
									
										
										
										
											2020-04-28 13:32:47 -07:00
										 |  |  | 	@mkdir -p protobuf/gateway | 
					
						
							| 
									
										
										
										
											2020-04-07 15:23:50 -07:00
										 |  |  | 	python3 external/nanopb/generator/nanopb_generator.py gateway/message.proto -D protobuf | 
					
						
							| 
									
										
										
										
											2020-04-06 19:08:50 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | bin:  | 
					
						
							| 
									
										
										
										
											2020-04-28 13:32:47 -07:00
										 |  |  | 	@mkdir bin | 
					
						
							| 
									
										
										
										
											2020-04-06 19:08:50 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-18 20:07:23 -07:00
										 |  |  | flash: $(OUT)$(NAME) | 
					
						
							| 
									
										
										
										
											2020-04-06 19:08:50 -07:00
										 |  |  | 	avrdude -v -patmega328p -carduino -P/dev/ttyUSB0 -b115200 -D -Uflash:w:$(OUT)$(NAME).hex:i | 
					
						
							| 
									
										
										
										
											2020-04-07 15:23:50 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-18 20:07:23 -07:00
										 |  |  | run: flash | 
					
						
							|  |  |  | 	screen /dev/ttyUSB0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | start: flash | 
					
						
							|  |  |  | 	systemctl start lora-gateway-bridge loraserver | 
					
						
							| 
									
										
										
										
											2020-04-18 23:27:19 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-07 15:23:50 -07:00
										 |  |  | stop: | 
					
						
							|  |  |  | 	avrdude -v -patmega328p -carduino -P/dev/ttyUSB0 -b115200 -D -Uflash:w:nothing.hex:i | 
					
						
							| 
									
										
										
										
											2020-04-18 20:07:23 -07:00
										 |  |  | 	systemctl stop lora-gateway-bridge loraserver | 
					
						
							| 
									
										
										
										
											2020-04-07 15:23:50 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-06 19:08:50 -07:00
										 |  |  | clean: | 
					
						
							|  |  |  | 	rm -r protobuf | 
					
						
							|  |  |  | 	rm -r bin |