App-duino
view release on metacpan or search on metacpan
lib/App/duino/Command/build.pm view on Meta::CPAN
LDFLAGS = -mmcu=$(MCU) -Wl,--gc-sections -Os
# library sources
$(OBJDIR)/%.o: $(ARDUINO_LIB_PATH)/%.c
$(ECHO) 'Building $(notdir $<)'
$(MKDIR) $(dir $@)
$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@
$(OBJDIR)/%.o: $(ARDUINO_LIB_PATH)/%.cpp
$(ECHO) 'Building $(notdir $<)'
$(MKDIR) $(dir $@)
$(CC) -c $(CPPFLAGS) $(CXXFLAGS) $< -o $@
$(OBJDIR)/%.o: $(USER_LIB_PATH)/%.cpp
$(ECHO) 'Building $(notdir $<)'
$(MKDIR) $(dir $@)
$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@
$(OBJDIR)/%.o: $(USER_LIB_PATH)/%.c
$(ECHO) 'Building $(notdir $<)'
$(MKDIR) $(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!!!
$(OBJDIR)/%.o: %.c
$(ECHO) 'Building $(notdir $<)'
$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@
$(OBJDIR)/%.o: %.cpp
$(ECHO) 'Building $(notdir $<)'
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $< -o $@
# the ino -> cpp -> o file
$(OBJDIR)/%.cpp: %.ino
$(ECHO) 'Building $(notdir $<)'
$(MKDIR) $(dir $@)
$(ECHO) '#include <Arduino.h>' > $@
$(CAT) $< >> $@
$(OBJDIR)/%.o: $(OBJDIR)/%.cpp
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $< -o $@
# core files
$(OBJDIR)/%.o: $(ARDUINO_CORE_PATH)/%.c
$(ECHO) 'Building $(notdir $<)'
$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@
$(OBJDIR)/%.o: $(ARDUINO_CORE_PATH)/%.cpp
$(ECHO) 'Building $(notdir $<)'
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $< -o $@
# various object conversions
$(OBJDIR)/%.hex: $(OBJDIR)/%.elf
$(ECHO) 'Generating $(notdir $@)'
$(OBJCOPY) -O ihex -R .eeprom $< $@
$(ECHO)
all: $(OBJDIR) $(TARGET_HEX)
$(ECHO) 'Built! Now you can run "duino upload"'
$(OBJDIR):
$(MKDIR) $(OBJDIR)
$(TARGET_ELF): $(LOCAL_OBJS) $(CORE_LIB) $(OTHER_OBJS)
$(CC) $(LDFLAGS) -o $@ $(LOCAL_OBJS) $(CORE_LIB) $(OTHER_OBJS) -lc -lm
$(CORE_LIB): $(CORE_OBJS) $(LIB_OBJS) $(USER_LIB_OBJS)
$(ECHO) 'Linking $(notdir $(CORE_LIB))'
$(AR) rcs $@ $(CORE_OBJS) $(LIB_OBJS) $(USER_LIB_OBJS)
.PHONY: all
( run in 1.655 second using v1.01-cache-2.11-cpan-b16cb0d3907 )