You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.9 KiB
52 lines
1.9 KiB
# |
|
# Find Arduino, if not explicitly specified |
|
# |
|
ifeq ($(ARDUINO),) |
|
|
|
# |
|
# List locations that might be valid ARDUINO settings |
|
# |
|
ifeq ($(SYSTYPE),Darwin) |
|
# use Spotlight to find Arduino.app |
|
ARDUINO_QUERY = 'kMDItemContentType == com.apple.application-bundle && kMDItemFSName == Arduino.app' |
|
ARDUINOS := $(addsuffix /Contents/Resources/Java,$(shell mdfind -literal $(ARDUINO_QUERY))) |
|
ifeq ($(ARDUINOS),) |
|
$(error ERROR: Spotlight cannot find Arduino on your system.) |
|
endif |
|
endif |
|
|
|
ifeq ($(SYSTYPE),Linux) |
|
ARDUINO_SEARCHPATH = /usr/share/arduino* /usr/local/share/arduino* |
|
ARDUINOS := $(wildcard $(ARDUINO_SEARCHPATH)) |
|
endif |
|
|
|
ifneq ($(findstring CYGWIN, $(SYSTYPE)),) |
|
# Most of the following commands are simply to deal with whitespaces in the path |
|
# Read the "Program Files" system directory from the windows registry |
|
PROGRAM_FILES := $(shell cat /proc/registry/HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/ProgramFilesDir) |
|
# Convert the path delimiters to / |
|
PROGRAM_FILES := $(shell cygpath -m ${PROGRAM_FILES}) |
|
# Escape the space with a backslash |
|
PROGRAM_FILES := $(shell echo $(PROGRAM_FILES) | sed s/\ /\\\\\ / ) |
|
# Use DOS paths because they do not contain spaces |
|
PROGRAM_FILES := $(shell cygpath -d ${PROGRAM_FILES}) |
|
# Convert the path delimiters to / |
|
PROGRAM_FILES := $(subst \,/,$(PROGRAM_FILES)) |
|
# Search for an Arduino instalation in a couple of paths |
|
ARDUINO_SEARCHPATH := c:/arduino* $(PROGRAM_FILES)/arduino* |
|
ARDUINOS := $(wildcard $(ARDUINO_SEARCHPATH)) |
|
endif |
|
|
|
# |
|
# Pick the first option if more than one candidate is found. |
|
# |
|
ARDUINO := $(firstword $(ARDUINOS)) |
|
ifeq ($(ARDUINO),) |
|
$(error ERROR: Cannot find Arduino on this system, please specify on the commandline with ARDUINO=<path> or on the config.mk file) |
|
endif |
|
|
|
ifneq ($(words $(ARDUINOS)),1) |
|
$(warning WARNING: More than one copy of Arduino was found, using $(ARDUINO)) |
|
endif |
|
|
|
endif
|
|
|