Initial cut of the open ath9k htc firmware.
[open-ath9k-htc-firmware.git] / target_firmware / magpie_fw_dev / build / magpie_1_1 / image / magpie_ram / Makefile
1 include $(MAGPIE_ROOT)/build/make_opt/Makefile.h
2
3 ifeq ($(TGT_BUILD),)
4         TGT_BUILD=asic
5 endif
6
7 DIRS =                                          \
8         $(PRJ_ROOT)/$(TARGET)/adf               \
9         $(PRJ_ROOT)/$(TARGET)/init              \
10         $(PRJ_ROOT)/$(TARGET)/wmi               \
11         $(PRJ_ROOT)/$(TARGET)/wlan              \
12         $(PRJ_ROOT)/$(TARGET)/carrier_apd       \
13         $(PRJ_ROOT)/$(TARGET)/cmnos             \
14         $(PRJ_ROOT)/$(TARGET)/rompatch
15
16 COMPONENTS_sw.ram =                     \
17         $(LIB_PATH)/libcmnos.a          \
18         $(LIB_PATH)/libadf.a            \
19         $(LIB_PATH)/libwmi.a            \
20         $(LIB_PATH)/libwlan.a           \
21         $(LIB_PATH)/libcarrier_apd.a    \
22         $(LIB_PATH)/librompatch.a
23
24
25 LINKFLAGS_sw.ram =                      \
26         -T./target.ram.ld               \
27         --start-group                   \
28         $(COMPONENTS_sw.ram)            \
29         --end-group
30
31 FW_LOAD_ADDR=`$(XREADELF) -l ram.out | grep LOAD | awk '/LOAD/ { if (NR==1) print $$3 }'`
32 FW_EXEC_ADDR=`$(XREADELF) -l ram.out | grep 'Entry point' | awk '{ print $$3 }'`
33
34 all: util toolchain_prep
35         @for i in $(DIRS) ; do $(MAKE) -C $$i all CC=$(XCC) LD=$(XLD) AR=$(XAR) || exit ; done
36
37 dep: util toolchain_prep
38         for i in $(DIRS) ; do $(MAKE) -C $$i dep CC=$(XCC) LD=$(XLD) AR=$(XAR) || exit ; done
39
40 clean:  util_clean
41         find $(PRJ_ROOT)/ram -name "*.o" -exec rm -f {} \;
42         find $(PRJ_ROOT)/lib -name "*.a" -exec rm -f {} \;
43 #       for i in $(DIRS) ; do $(MAKE) -C $$i clean; done
44         rm -f *.bin  *.objdump *.out *.map *.c rom.addrs.ld *.fw *.fw.back *.c.back
45         rm -f ../../../utility/athfw2lnx/athfw2lnx
46
47 init:   toolchain_prep
48         for i in $(DIRS) ; do $(MAKE) -C $$i init CC=$(XCC) LD=$(XLD) AR=$(XAR) ; done
49
50 build: binary image
51
52 binary:
53         if [ -d $(OUTPUT_DIR)/$(TGT_BUILD) ]; \
54         then cp -vf $(OUTPUT_DIR)/$(TGT_BUILD)/rom.$(TGT_BUILD).addrs.ld rom.addrs.ld; \
55         fi
56
57         $(XLD) $(PRJ_ROOT)/ram/init/obj/app_start.o $(PRJ_ROOT)/ram/init/obj/init.o $(PRJ_ROOT)/ram/init/obj/magpie.o $(LINKFLAGS_sw.ram) -Map $(PRJNAME).map -o $(PRJNAME).out
58
59 toolchain_prep:
60 ifeq ($(XTENSA_TOOL_INSTALLED),0)
61         @cd ../../../toolchain && \
62         (test -d tools) || tar xvzf toolchain.tgz
63
64 endif
65
66 image:
67         $(XOBJCOPY)                                             \
68                 --change-section-lma .text-0x400000             \
69                 --change-section-vma .text-0x400000             \
70                 -O binary $(PRJNAME).out $(PRJNAME).bin
71         $(XOBJDUMP) -Dlxs $(PRJNAME).out > $(PRJNAME).objdump
72         rm -f ../../../utility/athfw2lnx/athfw2lnx
73         $(shell cp -f fwu.c fwu.c.back 2> /dev/null)
74         $(shell cp -f htc_7010.fw htc_7010.fw.back 2> /dev/null)
75         $(BIN2HEX) $(PRJNAME).bin fwu.c 0 usb
76         $(MAKE) -C ../../../utility/athfw2lnx ATH_FW=$(PRJ_ROOT)/image/magpie_ram/fwu.c
77         $(shell ../../../utility/athfw2lnx/athfw2lnx > htc_7010.fw)
78
79 util:
80         @cd ../../../utility && $(MAKE) all
81
82 util_clean:
83         @cd ../../../utility && $(MAKE) clean