CMakeLists.txt: do not use include from build
[open-ath9k-htc-firmware.git] / target_firmware / CMakeLists.txt
1 SET(CMAKE_C_COMPILER_WORKS 1)
2
3 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
4 PROJECT(ath9k_firmware NONE)
5 ENABLE_LANGUAGE(C)
6
7 ADD_DEFINITIONS(-g -Os -Wunused-label -Wunused-variable -Wunused-value -Wpointer-arith -Wundef -nostdlib -Wundef)
8 ADD_DEFINITIONS(
9         -D_RAM_
10         -DBIG_ENDIAN -D_BYTE_ORDER=_BIG_ENDIAN
11         -D__XTENSA__
12         -DFUSION_USB_FW -DRX_SCATTER
13         -DFUSION_USB_ENABLE_TX_STREAM -DFUSION_USB_ENABLE_RX_STREAM
14         -DATH_ENABLE_CABQ
15 )
16
17 SET(SOURCES
18         magpie_fw_dev/target/init/app_start.c
19         magpie_fw_dev/target/init/init.c
20         magpie_fw_dev/target/init/magpie.c
21         magpie_fw_dev/target/adf/adf_nbuf.c
22         magpie_fw_dev/target/adf/adf_net.c
23         magpie_fw_dev/target/adf/adf_os_defer_pvt.c
24         magpie_fw_dev/target/adf/adf_os_dma.c
25         magpie_fw_dev/target/adf/adf_os_irq_pvt.c
26         magpie_fw_dev/target/adf/adf_os_timer.c
27         magpie_fw_dev/target/buf_pool/buf_pool_static.c
28         magpie_fw_dev/target/cmnos/dbg_api.c
29         magpie_fw_dev/target/cmnos/cmnos_sflash.c
30         wlan/ah.c
31         wlan/ah_osdep.c
32         wlan/ar5416Phy.c
33         wlan/ar5416_hw.c
34         wlan/ar5416_phy.c
35         wlan/ratectrl_11n_ln.c
36         wlan/if_owl.c
37         wlan/if_ath.c
38         wlan/if_ath_pci.c
39         magpie_fw_dev/target/wlan/wlan_pci.c
40         wlan/ieee80211_output.c
41         magpie_fw_dev/target/htc/htc.c
42         magpie_fw_dev/target/wmi/wmi_svc.c
43 )
44
45 IF(TARGET_K2)
46         SET(SOURCES ${SOURCES}
47                 magpie_fw_dev/target/hif/k2_HIF_usb_patch.c
48                 magpie_fw_dev/target/hif/k2_fw_usb_api.c
49         )
50         SET(LIBS ${LIBS} hif)
51         ADD_DEFINITIONS(-DPROJECT_K2)
52         SET(PLATFORM_NAME k2)
53         SET(SOURCES ${SOURCES}
54                 magpie_fw_dev/target/cmnos/k2_cmnos_clock_patch.c
55                 magpie_fw_dev/target/cmnos/k2_fw_cmnos_printf.c
56         )
57         SET(FIRMWARE_NAME htc_9271.fw)
58 ELSEIF(TARGET_MAGPIE)
59         ADD_DEFINITIONS(
60                 -DROM_VER_1_1 -D_ROM_1_1_
61                 -DPROJECT_MAGPIE
62                 -DMAGPIE_MERLIN
63         )
64         SET(SOURCES ${SOURCES}
65                 magpie_fw_dev/target/rompatch/cmnos_clock_patch.c
66                 magpie_fw_dev/target/rompatch/usb_api_patch.c
67                 magpie_fw_dev/target/rompatch/HIF_usb_patch.c
68         )
69         INCLUDE_DIRECTORIES(
70                 ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/adf
71         )
72         SET(PLATFORM_NAME magpie)
73         SET(FIRMWARE_NAME htc_7010.fw)
74 ELSE()
75         MESSAGE(FATAL_ERROR "Unknown target name")
76 ENDIF()
77
78 INCLUDE_DIRECTORIES(
79         ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/inc
80         ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/inc/xtensa-elf
81         ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/inc/${PLATFORM_NAME}
82         ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/inc/${PLATFORM_NAME}/${PLATFORM_NAME}
83         ${CMAKE_SOURCE_DIR}/wlan
84         ${CMAKE_SOURCE_DIR}/wlan/include
85         ${CMAKE_SOURCE_DIR}/wlan/include/${PLATFORM_NAME}
86         ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/wlan
87         ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/cmnos
88         ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/wmi
89         ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/adf
90         ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/buf_pool
91         ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/htc
92 )
93
94 ADD_LIBRARY(firmware ${SOURCES})
95
96 ADD_CUSTOM_COMMAND(
97         OUTPUT fw.elf
98         DEPENDS firmware
99         COMMAND ${CMAKE_C_COMPILER}
100                 -nostdlib
101                 -Wl,--start-group
102                 ${CMAKE_BINARY_DIR}/libfirmware.a
103                 -Wl,--end-group
104                 -Wl,-T,${CMAKE_SOURCE_DIR}/ram-${PLATFORM_NAME}.ld
105                 -Wl,-T,${CMAKE_SOURCE_DIR}/rom-addrs-${PLATFORM_NAME}.ld
106                 -o fw.elf
107 )
108 ADD_CUSTOM_COMMAND(
109         OUTPUT fw.bin
110         DEPENDS fw.elf
111         COMMAND ${CMAKE_OBJCOPY}
112                 --change-section-lma .text-0x400000
113                 --change-section-vma .text-0x400000
114                 -O binary fw.elf fw.bin
115 )
116 ADD_CUSTOM_COMMAND(
117         OUTPUT ${FIRMWARE_NAME}
118         DEPENDS fw.bin
119         COMMAND ${CMAKE_SOURCE_DIR}/firmware-crc.pl < fw.bin > ${FIRMWARE_NAME}
120 )
121 ADD_CUSTOM_TARGET(gen-firmware ALL DEPENDS ${FIRMWARE_NAME})