Tiago Barros | 27e7c38 | 2016-09-08 13:46:12 -0300 | [diff] [blame] | 1 | # |
| 2 | # Copyright (c) 2016, CESAR. |
| 3 | # All rights reserved. |
| 4 | # |
| 5 | # This software may be modified and distributed under the terms |
| 6 | # of the BSD license. See the LICENSE file for details. |
| 7 | # |
| 8 | # KNoTThing Arduino Library Makefile |
| 9 | # |
| 10 | |
| 11 | # TODO: change this variables according to operating system |
| 12 | MKDIR=mkdir |
| 13 | CP=cp |
Helmiton Moraes da Silva Cunha Jr | d006803 | 2017-11-06 17:28:11 -0300 | [diff] [blame] | 14 | CD=cd |
| 15 | MV=mv |
Tiago Barros | 27e7c38 | 2016-09-08 13:46:12 -0300 | [diff] [blame] | 16 | GIT=git |
| 17 | ZIP=zip |
Rodrigo Alves | 3725a9e | 2016-11-23 13:35:31 -0300 | [diff] [blame] | 18 | FIND=find |
Tiago Barros | 27e7c38 | 2016-09-08 13:46:12 -0300 | [diff] [blame] | 19 | |
| 20 | KNOT_THING_NAME = KNoTThing |
Tiago Barros | 27e7c38 | 2016-09-08 13:46:12 -0300 | [diff] [blame] | 21 | KNOT_THING_TARGET = $(KNOT_THING_NAME).zip |
Erick Simões | 67192a8 | 2016-10-24 13:29:54 -0300 | [diff] [blame] | 22 | KNOT_THING_FILES = ./src |
Tiago Barros | 27e7c38 | 2016-09-08 13:46:12 -0300 | [diff] [blame] | 23 | |
| 24 | KNOT_THING_DOWNLOAD_DIR = download |
Tiago Barros | 27e7c38 | 2016-09-08 13:46:12 -0300 | [diff] [blame] | 25 | |
Lucas Cavalcanti | 5efde27 | 2017-01-18 13:09:14 -0300 | [diff] [blame] | 26 | ifdef release |
| 27 | KNOT_THING_LIB_VERSION = $(release) |
| 28 | KNOT_THING_LIB_REPO = knot-thing-source |
| 29 | KNOT_THING_LIB_SITE = https://github.com/CESARBR/$(KNOT_THING_LIB_REPO).git |
| 30 | KNOT_THING_FILES = ./$(KNOT_THING_DOWNLOAD_DIR)/$(KNOT_THING_LIB_REPO)/src |
| 31 | endif |
| 32 | |
Tiago Barros | 27e7c38 | 2016-09-08 13:46:12 -0300 | [diff] [blame] | 33 | #Dependencies |
Erick Simões | 67192a8 | 2016-10-24 13:29:54 -0300 | [diff] [blame] | 34 | KNOT_PROTOCOL_LIB_VERSION = master |
Rodrigo Alves | 03acedc | 2017-01-02 15:17:52 -0300 | [diff] [blame] | 35 | ifdef release |
| 36 | KNOT_PROTOCOL_LIB_VERSION = $(release) |
| 37 | endif |
Tiago Barros | 27e7c38 | 2016-09-08 13:46:12 -0300 | [diff] [blame] | 38 | KNOT_PROTOCOL_LIB_REPO = knot-protocol-source |
Erick Simões | dc7e381 | 2016-10-14 13:19:11 -0300 | [diff] [blame] | 39 | KNOT_PROTOCOL_LIB_SITE = https://github.com/CESARBR/$(KNOT_PROTOCOL_LIB_REPO).git |
Tiago Barros | 27e7c38 | 2016-09-08 13:46:12 -0300 | [diff] [blame] | 40 | KNOT_PROTOCOL_LIB_DIR = ./$(KNOT_THING_DOWNLOAD_DIR)/$(KNOT_PROTOCOL_LIB_REPO)/src |
| 41 | |
Erick Simões | 67192a8 | 2016-10-24 13:29:54 -0300 | [diff] [blame] | 42 | KNOT_HAL_LIB_VERSION = master |
Rodrigo Alves | 03acedc | 2017-01-02 15:17:52 -0300 | [diff] [blame] | 43 | ifdef release |
| 44 | KNOT_HAL_LIB_VERSION = $(release) |
| 45 | endif |
Erick Simões | 67192a8 | 2016-10-24 13:29:54 -0300 | [diff] [blame] | 46 | KNOT_HAL_LIB_REPO = knot-hal-source |
| 47 | KNOT_HAL_LIB_SITE = https://github.com/CESARBR/$(KNOT_HAL_LIB_REPO).git |
Claudio Takahasi | 99c902a | 2017-05-03 15:51:47 -0300 | [diff] [blame] | 48 | KNOT_HAL_HDR_LIB_DIR = ./$(KNOT_THING_DOWNLOAD_DIR)/$(KNOT_HAL_LIB_REPO)/hal |
Erick Simões | 67192a8 | 2016-10-24 13:29:54 -0300 | [diff] [blame] | 49 | KNOT_HAL_SRC_LIB_DIR = ./$(KNOT_THING_DOWNLOAD_DIR)/$(KNOT_HAL_LIB_REPO)/src/hal |
Tiago Barros | 27e7c38 | 2016-09-08 13:46:12 -0300 | [diff] [blame] | 50 | |
Rodrigo Alves | 3725a9e | 2016-11-23 13:35:31 -0300 | [diff] [blame] | 51 | KNOT_HAL_SRC_DRIVERS_LIB_DIR = ./$(KNOT_THING_DOWNLOAD_DIR)/$(KNOT_HAL_LIB_REPO)/src/drivers |
| 52 | KNOT_HAL_SRC_NRF_LIB_DIR = ./$(KNOT_THING_DOWNLOAD_DIR)/$(KNOT_HAL_LIB_REPO)/src/nrf24l01 |
| 53 | KNOT_HAL_SRC_SPI_LIB_DIR = ./$(KNOT_THING_DOWNLOAD_DIR)/$(KNOT_HAL_LIB_REPO)/src/spi |
| 54 | |
Helmiton Moraes da Silva Cunha Jr | d006803 | 2017-11-06 17:28:11 -0300 | [diff] [blame] | 55 | KNOT_ECHO_LIB = echo_lib |
| 56 | KNOT_ECHO_LIB_DIR = ./$(KNOT_THING_NAME)/examples/nRF24_Echo/$(KNOT_ECHO_LIB) |
| 57 | |
Tiago Barros | 9c807b5 | 2017-07-11 10:38:08 -0300 | [diff] [blame] | 58 | .PHONY: clean clean-local |
Tiago Barros | 27e7c38 | 2016-09-08 13:46:12 -0300 | [diff] [blame] | 59 | |
| 60 | default: all |
| 61 | |
| 62 | all: $(KNOT_THING_TARGET) |
| 63 | |
Rodrigo Alves | 03acedc | 2017-01-02 15:17:52 -0300 | [diff] [blame] | 64 | |
Tiago Barros | 27e7c38 | 2016-09-08 13:46:12 -0300 | [diff] [blame] | 65 | $(KNOT_THING_DOWNLOAD_DIR): |
| 66 | $(MKDIR) -p ./$(KNOT_THING_DOWNLOAD_DIR) |
| 67 | |
Tiago Barros | 27e7c38 | 2016-09-08 13:46:12 -0300 | [diff] [blame] | 68 | $(KNOT_PROTOCOL_LIB_DIR): $(KNOT_THING_DOWNLOAD_DIR) |
Paulo Serra Filho | ea729bf | 2017-07-18 16:58:20 -0300 | [diff] [blame] | 69 | if [ ! -d "./$(KNOT_THING_DOWNLOAD_DIR)/$(KNOT_PROTOCOL_LIB_REPO)" ]; then \ |
| 70 | $(GIT) clone -b $(KNOT_PROTOCOL_LIB_VERSION) $(KNOT_PROTOCOL_LIB_SITE) ./$(KNOT_THING_DOWNLOAD_DIR)/$(KNOT_PROTOCOL_LIB_REPO); \ |
| 71 | fi |
| 72 | if [ ! -d "./$(KNOT_THING_DOWNLOAD_DIR)/$(KNOT_HAL_LIB_REPO)" ]; then \ |
| 73 | $(GIT) clone -b $(KNOT_HAL_LIB_VERSION) $(KNOT_HAL_LIB_SITE) ./$(KNOT_THING_DOWNLOAD_DIR)/$(KNOT_HAL_LIB_REPO); \ |
| 74 | fi |
Lucas Cavalcanti | 5efde27 | 2017-01-18 13:09:14 -0300 | [diff] [blame] | 75 | ifdef release |
| 76 | $(GIT) clone -b $(KNOT_THING_LIB_VERSION) $(KNOT_THING_LIB_SITE) ./$(KNOT_THING_DOWNLOAD_DIR)/$(KNOT_THING_LIB_REPO) |
| 77 | endif |
Tiago Barros | 27e7c38 | 2016-09-08 13:46:12 -0300 | [diff] [blame] | 78 | $(KNOT_THING_TARGET): $(KNOT_PROTOCOL_LIB_DIR) |
Erick Simões | 67192a8 | 2016-10-24 13:29:54 -0300 | [diff] [blame] | 79 | #Creating subdirectories |
Claudio Takahasi | 99c902a | 2017-05-03 15:51:47 -0300 | [diff] [blame] | 80 | $(MKDIR) -p ./$(KNOT_THING_NAME)/src/hal |
Erick Simões | 9ceee7e | 2017-01-05 09:49:56 -0300 | [diff] [blame] | 81 | $(MKDIR) -p ./$(KNOT_THING_NAME)/examples |
Helmiton Moraes da Silva Cunha Jr | d006803 | 2017-11-06 17:28:11 -0300 | [diff] [blame] | 82 | $(MKDIR) -p ./$(KNOT_ECHO_LIB_DIR)/hal |
Erick Simões | 67192a8 | 2016-10-24 13:29:54 -0300 | [diff] [blame] | 83 | |
Gabriel Bandeira | c032804 | 2017-02-09 18:24:37 -0300 | [diff] [blame] | 84 | #Filling with configuration files for Arduino IDE |
Erick Simões | 67192a8 | 2016-10-24 13:29:54 -0300 | [diff] [blame] | 85 | # TODO: Create keywords.txt file to KNoT Thing |
| 86 | # TODO: Amend keywords of the HAL libs, protocol and thing |
| 87 | $(CP) -r $(KNOT_THING_FILES)/library.properties ./$(KNOT_THING_NAME) |
Paulo Serra Filho | d474040 | 2017-07-18 12:56:02 -0300 | [diff] [blame] | 88 | ifdef release |
| 89 | $$(sed -i '/version/ s/=.*/=$(KNOT_THING_LIB_VERSION)/g' ./$(KNOT_THING_NAME)/library.properties) |
| 90 | $$(sed -i '/version/ s/\([v\.]\)0\+\([[:digit:]]\+\)/\1\2/g' ./$(KNOT_THING_NAME)/library.properties) |
Helmiton Moraes da Silva Cunha Jr | 9657140 | 2017-11-16 14:56:25 -0300 | [diff] [blame] | 91 | $$(sed -i '/version/ s/KNOT-v//g' ./$(KNOT_THING_NAME)/library.properties) |
Paulo Serra Filho | d474040 | 2017-07-18 12:56:02 -0300 | [diff] [blame] | 92 | endif |
Erick Simões | 67192a8 | 2016-10-24 13:29:54 -0300 | [diff] [blame] | 93 | |
| 94 | #Filling root and thing directory |
| 95 | $(CP) -r $(KNOT_THING_FILES)/*.h ./$(KNOT_THING_NAME)/src |
| 96 | $(CP) -r $(KNOT_THING_FILES)/*.c ./$(KNOT_THING_NAME)/src |
| 97 | $(CP) -r $(KNOT_THING_FILES)/*.cpp ./$(KNOT_THING_NAME)/src |
| 98 | |
| 99 | #Filling protocol directory |
Marcela Oliveira | b725d8b | 2017-05-15 16:33:27 -0300 | [diff] [blame] | 100 | $(CP) -r $(KNOT_PROTOCOL_LIB_DIR)/*.h ./$(KNOT_THING_NAME)/src |
| 101 | $(CP) -r $(KNOT_PROTOCOL_LIB_DIR)/*.c ./$(KNOT_THING_NAME)/src |
Erick Simões | 67192a8 | 2016-10-24 13:29:54 -0300 | [diff] [blame] | 102 | |
Erick Simões | b277b1e | 2016-12-01 12:58:57 -0300 | [diff] [blame] | 103 | #Filling hal headers directory |
Paulo Serra Filho | c146c54 | 2017-06-17 12:37:35 -0300 | [diff] [blame] | 104 | $(FIND) ./$(KNOT_HAL_HDR_LIB_DIR) \( ! -name '*linux*' -and -name '*.h' \) -exec $(CP) -r {} ./$(KNOT_THING_NAME)/src/hal \; |
Rodrigo Alves | 3725a9e | 2016-11-23 13:35:31 -0300 | [diff] [blame] | 105 | |
| 106 | #include folder |
Rodrigo Alves | 3725a9e | 2016-11-23 13:35:31 -0300 | [diff] [blame] | 107 | $(FIND) ./$(KNOT_HAL_SRC_LIB_DIR)/log/ \( ! -name '*linux*' -and -name '*.cpp' \) -exec $(CP) {} ./$(KNOT_THING_NAME)/src \; |
| 108 | $(FIND) ./$(KNOT_HAL_SRC_LIB_DIR)/storage/ \( ! -name '*linux*' -and -name '*.cpp' \) -exec $(CP) {} ./$(KNOT_THING_NAME)/src \; |
| 109 | $(FIND) ./$(KNOT_HAL_SRC_LIB_DIR)/time/ \( ! -name '*linux*' -and -name '*.cpp' \) -exec $(CP) {} ./$(KNOT_THING_NAME)/src \; |
Paulo Serra Filho | 3a2e1ab | 2017-01-25 09:10:18 -0300 | [diff] [blame] | 110 | $(FIND) ./$(KNOT_HAL_SRC_LIB_DIR)/gpio/ \( ! -name '*linux*' -and -name '*.cpp' \) -exec $(CP) {} ./$(KNOT_THING_NAME)/src \; |
Rodrigo Alves | 3725a9e | 2016-11-23 13:35:31 -0300 | [diff] [blame] | 111 | |
| 112 | # Include comm headers and source files |
| 113 | $(FIND) ./$(KNOT_HAL_SRC_LIB_DIR)/comm/ \( \( -name '*.c' -or -name '*.h' \) -and ! -name '*serial*' \) -exec $(CP) {} ./$(KNOT_THING_NAME)/src \; |
| 114 | |
| 115 | # Include nrf24l01 headers and source files |
| 116 | $(FIND) ./$(KNOT_HAL_SRC_NRF_LIB_DIR)/ \( \( -name '*.c' -or -name '*.h' \) -and ! -name '*linux*' \) -exec $(CP) {} ./$(KNOT_THING_NAME)/src \; |
| 117 | |
| 118 | # Include drivers headers and source files |
| 119 | $(CP) -r ./$(KNOT_HAL_SRC_DRIVERS_LIB_DIR)/*.c ./$(KNOT_THING_NAME)/src |
| 120 | $(CP) -r ./$(KNOT_HAL_SRC_DRIVERS_LIB_DIR)/*.h ./$(KNOT_THING_NAME)/src |
| 121 | |
| 122 | # Include SPI headers and source files |
Claudio Takahasi | 174400d | 2017-11-01 13:13:27 -0300 | [diff] [blame] | 123 | $(FIND) ./$(KNOT_HAL_SRC_SPI_LIB_DIR)/ \( \( -name '*.cpp' -or -name '*.h' \) -and ! -name '*linux*' \) -exec $(CP) {} ./$(KNOT_THING_NAME)/src \; |
Erick Simões | 67192a8 | 2016-10-24 13:29:54 -0300 | [diff] [blame] | 124 | |
Erick Simões | ac960c7 | 2016-12-20 14:49:19 -0300 | [diff] [blame] | 125 | # Include examples files |
Paulo Serra Filho | c146c54 | 2017-06-17 12:37:35 -0300 | [diff] [blame] | 126 | $(FIND) ./examples/* \( ! -name '*.c' -prune \) -exec $(CP) -r {} ./$(KNOT_THING_NAME)/examples/ \; |
Erick Simões | ac960c7 | 2016-12-20 14:49:19 -0300 | [diff] [blame] | 127 | |
Helmiton Moraes da Silva Cunha Jr | d006803 | 2017-11-06 17:28:11 -0300 | [diff] [blame] | 128 | #Filling Echo-Lib |
| 129 | $(FIND) ./$(KNOT_HAL_SRC_LIB_DIR)/comm/ \( -name '*ll*' \) -exec $(CP) {} ./$(KNOT_ECHO_LIB_DIR) \; |
| 130 | $(FIND) ./$(KNOT_HAL_HDR_LIB_DIR)/ \( -name '*avr*' -or -name '*gpio.h*' \) -exec $(CP) {} ./$(KNOT_ECHO_LIB_DIR)/hal \; |
| 131 | $(FIND) ./$(KNOT_HAL_HDR_LIB_DIR)/ \( -name '*time.h*' -or -name '*nrf24.h*' \) -exec $(CP) {} ./$(KNOT_ECHO_LIB_DIR)/hal \; |
| 132 | $(FIND) ./$(KNOT_HAL_SRC_SPI_LIB_DIR)/ \( ! -name '*linux*' -and ! -name '*.am' \) -exec $(CP) {} ./$(KNOT_ECHO_LIB_DIR) \; |
| 133 | $(FIND) ./$(KNOT_HAL_SRC_NRF_LIB_DIR)/ \( ! -name '*linux*' -and ! -name '*.am' \) -exec $(CP) {} ./$(KNOT_ECHO_LIB_DIR) \; |
| 134 | $(FIND) ./$(KNOT_HAL_SRC_LIB_DIR)/gpio/ \( ! -name '*linux*' -and -name '*.cpp' \) -exec $(CP) {} ./$(KNOT_ECHO_LIB_DIR) \; |
| 135 | $(FIND) ./$(KNOT_HAL_SRC_LIB_DIR)/log/ \( ! -name '*linux*' -and -name '*.cpp' \) -exec $(CP) {} ./$(KNOT_ECHO_LIB_DIR) \; |
| 136 | $(FIND) ./$(KNOT_HAL_SRC_LIB_DIR)/time/ \( ! -name '*linux*' -and -name '*.cpp' \) -exec $(CP) {} ./$(KNOT_ECHO_LIB_DIR) \; |
| 137 | $(FIND) ./$(KNOT_HAL_SRC_DRIVERS_LIB_DIR)/ \( -name '*phy*' \) -exec $(CP) {} ./$(KNOT_ECHO_LIB_DIR) \; |
| 138 | $(FIND) ./$(KNOT_THING_DOWNLOAD_DIR)/$(KNOT_HAL_LIB_REPO)/examples \( -name '*printf*' \) -exec $(CP) {} ./$(KNOT_ECHO_LIB_DIR) \; |
| 139 | |
| 140 | #Zip Echo-Lib |
| 141 | $(CD) ./$(KNOT_ECHO_LIB_DIR) ; $(ZIP) -r $(KNOT_ECHO_LIB) ./* |
| 142 | $(MV) $(KNOT_ECHO_LIB_DIR)/$(KNOT_ECHO_LIB).zip ./$(KNOT_THING_NAME)/examples/nRF24_Echo |
| 143 | |
| 144 | #Clean Echo-Lib |
| 145 | $(RM) -rf ./$(KNOT_ECHO_LIB_DIR) |
| 146 | |
Erick Simões | 67192a8 | 2016-10-24 13:29:54 -0300 | [diff] [blame] | 147 | #Zip directory |
Tiago Barros | 27e7c38 | 2016-09-08 13:46:12 -0300 | [diff] [blame] | 148 | $(ZIP) -r $(KNOT_THING_TARGET) ./$(KNOT_THING_NAME) |
| 149 | |
Helmiton Moraes da Silva Cunha Jr | d006803 | 2017-11-06 17:28:11 -0300 | [diff] [blame] | 150 | |
Tiago Barros | 27e7c38 | 2016-09-08 13:46:12 -0300 | [diff] [blame] | 151 | clean: |
| 152 | $(RM) $(KNOT_THING_TARGET) |
| 153 | $(RM) -rf ./$(KNOT_THING_DOWNLOAD_DIR) |
Erick Simões | b277b1e | 2016-12-01 12:58:57 -0300 | [diff] [blame] | 154 | $(RM) -rf ./$(KNOT_THING_NAME) |
Helmiton Moraes da Silva Cunha Jr | d006803 | 2017-11-06 17:28:11 -0300 | [diff] [blame] | 155 | $(RM) -rf ./$(KNOT_ECHO_LIB).zip |
Tiago Barros | 9c807b5 | 2017-07-11 10:38:08 -0300 | [diff] [blame] | 156 | |
| 157 | clean-local: |
| 158 | $(RM) $(KNOT_THING_TARGET) |
Tiago Barros | 9c807b5 | 2017-07-11 10:38:08 -0300 | [diff] [blame] | 159 | $(RM) -rf ./$(KNOT_THING_NAME) |