aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/fx3/b200/bootloader/makefile
blob: 3dc7fcb802de44f316929f394351055533bc3177 (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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# 
# Copyright 2019 Ettus Research, a National Instruments Brand
# 
# SPDX-License-Identifier: GPL-3.0-or-later
# 

IMGOUT = usrp_b200_bl.img

all:$(IMGOUT)

BL_ROOT=../../boot_fw
BL_INC=$(BL_ROOT)/include
BL_LIB=$(BL_ROOT)/lib
BL_CYP_SRC=$(BL_ROOT)/src

ELF2IMG_SRC=../../elf2img/elf2img.c
ELF2IMG=elf2img

CYFXBUILD = gcc

include fx3_build_config.mak

MODULE = cyfx_boot_app

APP_SOURCE = main.c usb_boot.c usb_descriptors.c ../common/common_descriptors.c ../common/common_helpers.c

INCFLAGS = -I$(BL_INC) -I../common

APP_OBJECT=$(APP_SOURCE:%.c=./%.o)

APP_ASM_OBJECT=$(APP_ASM_SOURCE:%.S=./%.o)

EXES = $(MODULE).$(EXEEXT)

ifeq ($(CYFXBUILD), gcc)

APP_ASM_SOURCE = cyfx_gcc_startup.S

else

APP_ASM_SOURCE = 

endif

$(APP_ASM_OBJECT) : %.o : %.S 
	$(ASSEMBLE)

$(APP_OBJECT) : %.o : %.c  ../lib/cyfx3_boot.a cyfx3.ld
	$(COMPILE) $(INCFLAGS)

$(MODULE).$(EXEEXT): $(APP_OBJECT) $(APP_ASM_OBJECT) 
	$(LINK)

$(ELF2IMG):
	gcc -o $(ELF2IMG) $(ELF2IMG_SRC)

fx3_build_config.mak:
	cp $(BL_CYP_SRC)/fx3_build_config.mak .
fx3_armgcc_config.mak:
	cp $(BL_CYP_SRC)/fx3_armgcc_config.mak .
cyfx_gcc_startup.S:
	cp $(BL_CYP_SRC)/cyfx_gcc_startup.S .
cyfx3.ld:
	cp $(BL_CYP_SRC)/cyfx3.ld .
../lib/cyfx3_boot.a:
	mkdir -p ../lib
	cp $(BL_LIB)/cyfx3_boot.a ../lib


clean:
	rm -f ./$(MODULE).$(EXEEXT)
	rm -f ./$(MODULE).map
	rm -f ./$(IMGOUT)
	rm -f ./fx3_build_config.mak
	rm -f ./fx3_armgcc_config.mak
	rm -f ./cyfx_gcc_startup.S
	rm -f ./cyfx3.ld
	rm -f ../lib/cyfx3_boot.a
	rmdir ../lib --ignore-fail-on-non-empty
	rm -f ./*.o
	rm -f ../common/*.o
	rm -f ./$(ELF2IMG)
ifeq ($(CYFXBUILD), gcc)
	rm -f ./gcceclipse_files/*.o
endif

compile: $(APP_OBJECT) $(APP_ASM_OBJECT) $(EXES)

$(IMGOUT): compile $(EXES) $(ELF2IMG)
	./$(ELF2IMG) -i $(EXES) -o $(IMGOUT) -i2cconf 0x1A

#[]#