Build user libraries from the sketchbook directory.
This commit is contained in:
parent
f437ea63eb
commit
8f10b98e51
2 changed files with 31 additions and 2 deletions
|
@ -8,3 +8,10 @@ documentation](http://mjo.tc/atelier/2009/02/arduino-cli.html
|
|||
"Documentation") exists.
|
||||
|
||||
If you're using Debian or Ubuntu, you can find this in the arduino-core package.
|
||||
|
||||
## User Libraries
|
||||
|
||||
In order to use Arduino libraries installed in the user's sketchbook folder (the
|
||||
standard location for custom libraries when using the Arduino IDE), you need to
|
||||
set the `ARDUNIO_SKETCHBOOK` variable to point to this directory. By default it
|
||||
is set to `$HOME/sketchbook`.
|
||||
|
|
|
@ -201,6 +201,14 @@ ARDUINO_LIB_PATH = $(ARDUINO_DIR)/libraries
|
|||
ARDUINO_CORE_PATH = $(ARDUINO_DIR)/hardware/arduino/cores/arduino
|
||||
ARDUINO_VAR_PATH = $(ARDUINO_DIR)/hardware/arduino/variants
|
||||
|
||||
ifndef ARDUINO_SKETCHBOOK
|
||||
ARDUINO_SKETCHBOOK = $(HOME)/sketchbook
|
||||
endif
|
||||
|
||||
ifndef USER_LIB_PATH
|
||||
USER_LIB_PATH = $(ARDUINO_SKETCHBOOK)/libraries
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
########################################################################
|
||||
|
@ -322,11 +330,17 @@ ECHO = echo
|
|||
|
||||
# General arguments
|
||||
SYS_LIBS = $(patsubst %,$(ARDUINO_LIB_PATH)/%,$(ARDUINO_LIBS))
|
||||
SYS_INCLUDES = $(patsubst %,-I%,$(SYS_LIBS))
|
||||
USER_LIBS = $(patsubst %,$(USER_LIB_PATH)/%,$(ARDUINO_LIBS))
|
||||
SYS_INCLUDES = $(patsubst %,-I%,$(SYS_LIBS)) $(patsubst %,-I%,$(USER_LIBS))
|
||||
LIB_C_SRCS = $(wildcard $(patsubst %,%/*.c,$(SYS_LIBS)))
|
||||
LIB_CPP_SRCS = $(wildcard $(patsubst %,%/*.cpp,$(SYS_LIBS)))
|
||||
USER_LIB_CPP_SRC = $(wildcard $(patsubst %,%/*.cpp,$(USER_LIBS)))
|
||||
USER_LIB_C_SRC = $(wildcard $(patsubst %,%/*.c,$(USER_LIBS)))
|
||||
LIB_OBJS = $(patsubst $(ARDUINO_LIB_PATH)/%.c,$(OBJDIR)/libs/%.o,$(LIB_C_SRCS)) \
|
||||
$(patsubst $(ARDUINO_LIB_PATH)/%.cpp,$(OBJDIR)/libs/%.o,$(LIB_CPP_SRCS))
|
||||
$(patsubst $(ARDUINO_LIB_PATH)/%.cpp,$(OBJDIR)/libs/%.o,$(LIB_CPP_SRCS)) \
|
||||
$(patsubst $(USER_LIB_PATH)/%.cpp,$(OBJDIR)/libs/%.o,$(USER_LIB_CPP_SRCS)) \
|
||||
$(patsubst $(USER_LIB_PATH)/%.c,$(OBJDIR)/libs/%.o,$(USER_LIB_C_SRCS))
|
||||
|
||||
|
||||
CPPFLAGS = -mmcu=$(MCU) -DF_CPU=$(F_CPU) -DARDUINO=$(ARDUINO_VERSION) \
|
||||
-I. -I$(ARDUINO_CORE_PATH) -I$(ARDUINO_VAR_PATH)/$(VARIANT) \
|
||||
|
@ -357,6 +371,14 @@ $(OBJDIR)/libs/%.o: $(ARDUINO_LIB_PATH)/%.cpp
|
|||
mkdir -p $(dir $@)
|
||||
$(CC) -c $(CPPFLAGS) $(CXXFLAGS) $< -o $@
|
||||
|
||||
$(OBJDIR)/libs/%.o: $(USER_LIB_PATH)/%.cpp
|
||||
mkdir -p $(dir $@)
|
||||
$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@
|
||||
|
||||
$(OBJDIR)/libs/%.o: $(USER_LIB_PATH)/%.c
|
||||
mkdir -p $(dir $@)
|
||||
$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@
|
||||
|
||||
# normal local sources
|
||||
# .o rules are for objects, .d for dependency tracking
|
||||
# there seems to be an awful lot of duplication here!!!
|
||||
|
|
Loading…
Reference in a new issue