Rev 5 | Rev 8 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5 | Rev 6 | ||
---|---|---|---|
Line 71... | Line 71... | ||
71 | PREFIX = arm-none-eabi- |
71 | PREFIX = arm-none-eabi- |
72 | # The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) |
72 | # The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) |
73 | # either it can be added to the PATH environment variable. |
73 | # either it can be added to the PATH environment variable. |
74 | ifdef GCC_PATH |
74 | ifdef GCC_PATH |
75 | CC = $(GCC_PATH)/$(PREFIX)gcc |
75 | CC = $(GCC_PATH)/$(PREFIX)gcc |
- | 76 | CXX = $(GCC_PATH)/$(PREFIX)g++ |
|
76 | AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp |
77 | AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp |
77 | CP = $(GCC_PATH)/$(PREFIX)objcopy |
78 | CP = $(GCC_PATH)/$(PREFIX)objcopy |
78 | SZ = $(GCC_PATH)/$(PREFIX)size |
79 | SZ = $(GCC_PATH)/$(PREFIX)size |
79 | else |
80 | else |
80 | CC = $(PREFIX)gcc |
81 | CC = $(PREFIX)gcc |
- | 82 | CXX = $(PREFIX)g++ |
|
81 | AS = $(PREFIX)gcc -x assembler-with-cpp |
83 | AS = $(PREFIX)gcc -x assembler-with-cpp |
82 | CP = $(PREFIX)objcopy |
84 | CP = $(PREFIX)objcopy |
83 | SZ = $(PREFIX)size |
85 | SZ = $(PREFIX)size |
84 | endif |
86 | endif |
85 | HEX = $(CP) -O ihex |
87 | HEX = $(CP) -O ihex |
Line 132... | Line 134... | ||
132 | # OLED library |
134 | # OLED library |
133 | HAL = stm32_hal |
135 | HAL = stm32_hal |
134 | LIBSSD1306 = ../libSSD1306 |
136 | LIBSSD1306 = ../libSSD1306 |
135 | include $(LIBSSD1306)/libSSD1306.mk |
137 | include $(LIBSSD1306)/libSSD1306.mk |
136 | 138 | ||
- | 139 | # New OLED library |
|
- | 140 | LIBOLED = ../libOLED |
|
- | 141 | include $(LIBOLED)/libOLED.mk |
|
- | 142 | ||
- | 143 | ||
137 | C_SOURCES += src/nmea.c |
144 | C_SOURCES += src/nmea.c |
- | 145 | CPP_SOURCES += src/display.cpp |
|
- | 146 | ||
138 | 147 | ||
139 | 148 | ||
140 | 149 | ||
141 | # compile gcc flags |
150 | # compile gcc flags |
142 | ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections |
151 | ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections |
Line 146... | Line 155... | ||
146 | ifeq ($(DEBUG), 1) |
155 | ifeq ($(DEBUG), 1) |
147 | CFLAGS += -g -gdwarf-2 |
156 | CFLAGS += -g -gdwarf-2 |
148 | endif |
157 | endif |
149 | 158 | ||
150 | 159 | ||
- | 160 | ||
151 | # Generate dependency information |
161 | # Generate dependency information |
152 | CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" |
162 | CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" |
153 | 163 | ||
154 | 164 | ||
- | 165 | CXXFLAGS = $(CFLAGS) -fno-rtti -fno-exceptions |
|
- | 166 | ||
155 | ####################################### |
167 | ####################################### |
156 | # LDFLAGS |
168 | # LDFLAGS |
157 | ####################################### |
169 | ####################################### |
158 | # link script |
170 | # link script |
159 | LDSCRIPT = STM32F103RBTx_FLASH.ld |
171 | LDSCRIPT = STM32F103RBTx_FLASH.ld |
160 | 172 | ||
161 | # libraries |
173 | # libraries |
162 | LIBS = -lc -lm -lnosys |
174 | LIBS = -lc -lm -lnosys -lgcc |
163 | LIBDIR = |
175 | LIBDIR = |
164 | LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections |
176 | LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections |
165 | 177 | ||
166 | # default action: build all |
178 | # default action: build all |
167 | all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin |
179 | all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin |
Line 171... | Line 183... | ||
171 | # build the application |
183 | # build the application |
172 | ####################################### |
184 | ####################################### |
173 | # list of objects |
185 | # list of objects |
174 | OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o))) |
186 | OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o))) |
175 | vpath %.c $(sort $(dir $(C_SOURCES))) |
187 | vpath %.c $(sort $(dir $(C_SOURCES))) |
- | 188 | ||
- | 189 | OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(CPP_SOURCES:.cpp=.o))) |
|
- | 190 | vpath %.cpp $(sort $(dir $(CPP_SOURCES))) |
|
- | 191 | ||
176 | # list of ASM program objects |
192 | # list of ASM program objects |
177 | OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) |
193 | OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) |
178 | vpath %.s $(sort $(dir $(ASM_SOURCES))) |
194 | vpath %.s $(sort $(dir $(ASM_SOURCES))) |
179 | 195 | ||
180 | $(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) |
196 | $(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) |
181 | $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ |
197 | $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ |
182 | 198 | ||
- | 199 | $(BUILD_DIR)/%.o: %.cpp Makefile | $(BUILD_DIR) |
|
- | 200 | $(CXX) -c $(CXXFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ |
|
- | 201 | ||
183 | $(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) |
202 | $(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) |
184 | $(AS) -c $(CFLAGS) $< -o $@ |
203 | $(AS) -c $(CFLAGS) $< -o $@ |
185 | 204 | ||
186 | $(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile |
205 | $(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile |
187 | $(CC) $(OBJECTS) $(LDFLAGS) -o $@ |
206 | $(CC) $(OBJECTS) $(LDFLAGS) -o $@ |