blob: 8a8cb18e82960ec1d646c005837ddc2ccd284d22 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
PLATFORM_SOURCE_FILES = $(SDK_DIR)/Nordic/nrf51822/Source/templates/system_nrf51.c
PLATFORM_ASM_FILES = $(SDK_DIR)/Nordic/nrf51822/Source/templates/gcc/gcc_startup_nrf51.s
PROJECT_SOURCE_FILES = examples/helloworld/main.c
AM_CPPFLAGS += -I$(SDK_DIR)/Nordic/nrf51822/Include
AM_CPPFLAGS += -I$(SDK_DIR)/Nordic/nrf51822/Include/gcc
LDFLAGS += -T$(SDK_DIR)/Nordic/nrf51822/Source/templates/gcc/gcc_nrf51_blank_xxaa.ld
LDFLAGS += -L$(SDK_DIR)/Nordic/nrf51822/Source/templates/gcc
LDFLAGS += -mabi=aapcs --specs=nano.specs -Xlinker -Map=$(BUILD_DIR)/nrf.map
PLATFORM_OBJECT_FILES = $(PLATFORM_SOURCE_FILES:.c=.o)
ASM_OBJECT_FILES = $(PLATFORM_ASM_FILES:.s=.o)
PROJECT_OBJECT_FILES = $(PROJECT_SOURCE_FILES:.c=.o)
all: $(BUILD_DIR) $(BUILD_DIR)/helloworld.bin
$(BUILD_DIR)/helloworld.bin: $(BUILD_DIR)/helloworld.out
$(OBJCOPY) -Obinary $(BUILD_DIR)/helloworld.out $@
$(BUILD_DIR)/helloworld.out: $(PROJECT_OBJECT_FILES) $(STACK_OBJECT_FILES) \
$(PLATFORM_OBJECT_FILES) $(ASM_OBJECT_FILES)
$(CC) $(LDFLAGS) $(ASM_OBJECT_FILES) $(PROJECT_OBJECT_FILES) \
$(PLATFORM_OBJECT_FILES) $(STACK_OBJECT_FILES) -o $@
$(OBJDUMP) -h $(BUILD_DIR)/helloworld.out
# Build object files from C source files
%.o: %.c
$(CC) -c $(CFLAGS) $(AM_CPPFLAGS) $(AM_CPPFLAGS) -o $@ $<
# Build object files from ASM source files
%.o: %.s
$(CC) -c $(ASMFLAGS) $(AM_CPPFLAGS) -o $@ $<
$(BUILD_DIR):
mkdir $@
clean:
rm -rf $(BUILD_DIR) *.log
rm $(PROJECT_OBJECT_FILES) $(PLATFORM_OBJECT_FILES) \
$(ASM_OBJECT_FILES) $(STACK_OBJECT_FILES)
|