fix compile warnings for gcc 6.2.0
[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         magpie_fw_dev/target/hif/usb_api_main_patch.c
31         wlan/ah.c
32         wlan/ah_osdep.c
33         wlan/ar5416Phy.c
34         wlan/ar5416_hw.c
35         wlan/ar5416_phy.c
36         wlan/ratectrl_11n_ln.c
37         wlan/if_owl.c
38         wlan/if_ath.c
39         wlan/if_ath_pci.c
40         magpie_fw_dev/target/wlan/wlan_pci.c
41         wlan/ieee80211_output.c
42         magpie_fw_dev/target/htc/htc.c
43         magpie_fw_dev/target/wmi/wmi_svc.c
44 )
45
46 IF(TARGET_K2)
47         SET(SOURCES ${SOURCES}
48                 magpie_fw_dev/target/hif/k2_HIF_usb_patch.c
49                 magpie_fw_dev/target/hif/usb_api_k2_patch.c
50         )
51         SET(LIBS ${LIBS} hif)
52         ADD_DEFINITIONS(-DPROJECT_K2)
53         SET(PLATFORM_NAME k2)
54         SET(SOURCES ${SOURCES}
55                 magpie_fw_dev/target/cmnos/k2_cmnos_clock_patch.c
56                 magpie_fw_dev/target/cmnos/k2_fw_cmnos_printf.c
57         )
58         SET(FIRMWARE_NAME htc_9271.fw)
59 ELSEIF(TARGET_MAGPIE)
60         ADD_DEFINITIONS(
61                 -DROM_VER_1_1 -D_ROM_1_1_
62                 -DPROJECT_MAGPIE
63                 -DMAGPIE_MERLIN
64         )
65         SET(SOURCES ${SOURCES}
66                 magpie_fw_dev/target/hif/usb_api_magpie_patch.c
67                 magpie_fw_dev/target/rompatch/cmnos_clock_patch.c
68                 magpie_fw_dev/target/rompatch/HIF_usb_patch.c
69         )
70         INCLUDE_DIRECTORIES(
71                 ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/adf
72         )
73         SET(PLATFORM_NAME magpie)
74         SET(FIRMWARE_NAME htc_7010.fw)
75 ELSE()
76         MESSAGE(FATAL_ERROR "Unknown target name")
77 ENDIF()
78
79 INCLUDE_DIRECTORIES(
80         ${CMAKE_SOURCE_DIR}/include
81         ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/
82         ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/inc
83         ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/inc/xtensa-elf
84         ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/inc/${PLATFORM_NAME}
85         ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/inc/${PLATFORM_NAME}/${PLATFORM_NAME}
86         ${CMAKE_SOURCE_DIR}/wlan
87         ${CMAKE_SOURCE_DIR}/wlan/include
88         ${CMAKE_SOURCE_DIR}/wlan/include/${PLATFORM_NAME}
89         ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/wlan
90         ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/cmnos
91         ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/wmi
92         ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/adf
93         ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/buf_pool
94         ${CMAKE_SOURCE_DIR}/magpie_fw_dev/target/htc
95 )
96
97 ADD_LIBRARY(firmware ${SOURCES})
98
99 ADD_CUSTOM_COMMAND(
100         OUTPUT fw.elf
101         DEPENDS firmware
102         COMMAND ${CMAKE_C_COMPILER}
103                 -nostdlib
104                 -Wl,--start-group
105                 ${CMAKE_BINARY_DIR}/libfirmware.a
106                 -Wl,--end-group
107                 -Wl,-T,${CMAKE_SOURCE_DIR}/ram-${PLATFORM_NAME}.ld
108                 -Wl,-T,${CMAKE_SOURCE_DIR}/rom-addrs-${PLATFORM_NAME}.ld
109                 -o fw.elf
110 )
111 ADD_CUSTOM_COMMAND(
112         OUTPUT fw.bin
113         DEPENDS fw.elf
114         COMMAND ${CMAKE_OBJCOPY}
115                 --change-section-lma .boot-0x400000
116                 --change-section-vma .boot-0x400000
117                 --change-section-lma .text-0x400000
118                 --change-section-vma .text-0x400000
119                 -O binary fw.elf fw.bin
120 )
121 ADD_CUSTOM_COMMAND(
122         OUTPUT ${FIRMWARE_NAME}
123         DEPENDS fw.bin
124         COMMAND ${CMAKE_SOURCE_DIR}/firmware-crc.pl < fw.bin > ${FIRMWARE_NAME}
125 )
126 ADD_CUSTOM_TARGET(gen-firmware ALL DEPENDS ${FIRMWARE_NAME})