diff options
| author | Sudar <sudar@sudarmuthu.com> | 2013-06-23 13:08:06 +0530 |
|---|---|---|
| committer | Sudar <sudar@sudarmuthu.com> | 2013-06-23 13:08:06 +0530 |
| commit | 7e66672a6c8d1e60c492bfaf992288d2c9b6a692 (patch) | |
| tree | d1e4b47da4e0b2cfb479bd89ac1001a01d8af106 /arduino-mk/Arduino.mk | |
| parent | 2b75a0ddb48b8aef12d2c67089f7189cb00ceab3 (diff) | |
Auto detect alternate core path from sketchbook folder
Fix #86
Diffstat (limited to 'arduino-mk/Arduino.mk')
| -rw-r--r-- | arduino-mk/Arduino.mk | 104 |
1 files changed, 70 insertions, 34 deletions
diff --git a/arduino-mk/Arduino.mk b/arduino-mk/Arduino.mk index 8ade57b..f95ff7a 100644 --- a/arduino-mk/Arduino.mk +++ b/arduino-mk/Arduino.mk @@ -252,6 +252,7 @@ ifndef TARGET endif ######################################################################## +# # Arduino version number ifndef ARDUINO_VERSION # Remove all the decimals, and right-pad with zeros, and finally grab the first 3 bytes. @@ -270,6 +271,33 @@ else endif ######################################################################## +# Arduino Sketchbook folder +# +ifndef ARDUINO_SKETCHBOOK + ifneq ($(wildcard $(HOME)/.arduino/preferences.txt),) + ARDUINO_SKETCHBOOK = $(shell grep --max-count=1 --regexp="sketchbook.path=" \ + $(HOME)/.arduino/preferences.txt | \ + sed -e 's/sketchbook.path=//' ) + endif + + # on mac + ifneq ($(wildcard $(HOME)/Library/Arduino/preferences.txt),) + ARDUINO_SKETCHBOOK = $(shell grep --max-count=1 --regexp="sketchbook.path=" \ + $(HOME)/Library/Arduino/preferences.txt | \ + sed -e 's/sketchbook.path=//' ) + endif + + ifneq ($(ARDUINO_SKETCHBOOK),) + $(call show_config_variable,ARDUINO_SKETCHBOOK,[AUTODETECTED],(from arduino preferences file)) + else + ARDUINO_SKETCHBOOK = $(HOME)/sketchbook + $(call show_config_variable,ARDUINO_SKETCHBOOK,[DEFAULT]) + endif +else + $(call show_config_variable,ARDUINO_SKETCHBOOK) +endif + +######################################################################## # Arduino and system paths # ifdef ARDUINO_DIR @@ -301,17 +329,53 @@ ifdef ARDUINO_DIR $(call show_config_variable,ARDUINO_LIB_PATH,[COMPUTED],(from ARDUINO_DIR)) ARDUINO_CORE_PATH = $(ARDUINO_DIR)/hardware/arduino/cores/arduino - ifndef ARDUINO_VAR_PATH - ARDUINO_VAR_PATH = $(ARDUINO_DIR)/hardware/arduino/variants - $(call show_config_variable,ARDUINO_VAR_PATH,[COMPUTED],(from ARDUINO_DIR)) + # Third party hardware and core like ATtiny or ATmega 16 + ifdef ALTERNATE_CORE + $(call show_config_variable,ALTERNATE_CORE,[USER]) + + ifndef ALTERNATE_CORE_PATH + ALTERNATE_CORE_PATH = $(ARDUINO_SKETCHBOOK)/hardware/$(ALTERNATE_CORE) + endif + endif + + ifdef ALTERNATE_CORE_PATH + + ifdef ALTERNATE_CORE + $(call show_config_variable,ALTERNATE_CORE_PATH,[COMPUTED], (from ARDUINO_SKETCHBOOK and ALTERNATE_CORE)) + else + $(call show_config_variable,ALTERNATE_CORE_PATH,[USER]) + endif + + ifndef ARDUINO_VAR_PATH + ARDUINO_VAR_PATH = $(ALTERNATE_CORE_PATH)/variants + $(call show_config_variable,ARDUINO_VAR_PATH,[COMPUTED],(from ALTERNATE_CORE_PATH)) + endif + + ifndef BOARDS_TXT + BOARDS_TXT = $(ALTERNATE_CORE_PATH)/boards.txt + $(call show_config_variable,BOARDS_TXT,[COMPUTED],(from ALTERNATE_CORE_PATH)) + endif + else - $(call show_config_variable,ARDUINO_VAR_PATH,[USER]) + + ifndef ARDUINO_VAR_PATH + ARDUINO_VAR_PATH = $(ARDUINO_DIR)/hardware/arduino/variants + $(call show_config_variable,ARDUINO_VAR_PATH,[COMPUTED],(from ARDUINO_DIR)) + else + $(call show_config_variable,ARDUINO_VAR_PATH,[USER]) + endif + + ifndef BOARDS_TXT + BOARDS_TXT = $(ARDUINO_DIR)/hardware/arduino/boards.txt + $(call show_config_variable,BOARDS_TXT,[COMPUTED],(from ARDUINO_DIR)) + else + $(call show_config_variable,BOARDS_TXT,[USER]) + endif + endif else - echo $(error "ARDUINO_DIR is not defined") - endif ifdef AVR_TOOLS_DIR @@ -346,30 +410,6 @@ endif ######################################################################## # Miscellaneous # -ifndef ARDUINO_SKETCHBOOK - ifneq ($(wildcard $(HOME)/.arduino/preferences.txt),) - ARDUINO_SKETCHBOOK = $(shell grep --max-count=1 --regexp="sketchbook.path=" \ - $(HOME)/.arduino/preferences.txt | \ - sed -e 's/sketchbook.path=//' ) - endif - - # on mac - ifneq ($(wildcard $(HOME)/Library/Arduino/preferences.txt),) - ARDUINO_SKETCHBOOK = $(shell grep --max-count=1 --regexp="sketchbook.path=" \ - $(HOME)/Library/Arduino/preferences.txt | \ - sed -e 's/sketchbook.path=//' ) - endif - - ifneq ($(ARDUINO_SKETCHBOOK),) - $(call show_config_variable,ARDUINO_SKETCHBOOK,[AUTODETECTED],(in arduino preferences file)) - else - ARDUINO_SKETCHBOOK = $(HOME)/sketchbook - $(call show_config_variable,ARDUINO_SKETCHBOOK,[DEFAULT]) - endif -else - $(call show_config_variable,ARDUINO_SKETCHBOOK) -endif - ifndef USER_LIB_PATH USER_LIB_PATH = $(ARDUINO_SKETCHBOOK)/libraries $(call show_config_variable,USER_LIB_PATH,[DEFAULT],(in user sketchbook)) @@ -427,10 +467,6 @@ else $(call show_config_variable,BOARD_TAG,[USER]) endif -ifndef BOARDS_TXT - BOARDS_TXT = $(ARDUINO_DIR)/hardware/arduino/boards.txt -endif - ifndef PARSE_BOARD PARSE_BOARD = $(ARDMK_PATH)/ard-parse-boards endif |
