X-Git-Url: https://jxself.org/git/?p=carl9170fw.git;a=blobdiff_plain;f=carlfw%2FCMakeLists.txt;h=70eb23784e5902395d7a3d6bac1abfb44c5f2e80;hp=95a4cc41427f96e4324006d966870889efe0e731;hb=f064ea52ed3ab342b7f2d31ac88239ceac5bc214;hpb=2f6209a88f424796af0638f73bce1d653dfa379e diff --git a/carlfw/CMakeLists.txt b/carlfw/CMakeLists.txt index 95a4cc4..70eb237 100644 --- a/carlfw/CMakeLists.txt +++ b/carlfw/CMakeLists.txt @@ -7,14 +7,14 @@ include("../config.cmake") set(CARLFW_CFLAGS_WARNING "-W -Wall -Wextra -Wunreachable-code -Winline -Wlogical-op -Wno-packed-bitfield-compat -Winit-self -Wshadow -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wformat=2 -Wcast-align -Wmissing-format-attribute -Wmissing-prototypes -Wtype-limits -Wmissing-declarations -Wmissing-noreturn -Wredundant-decls -Wnested-externs -Wdisabled-optimization -Wpointer-arith -Wvolatile-register-var -Waddress -Wbad-function-cast -Wunsafe-loop-optimizations") set(CARLFW_CFLAGS_EXTRA "-mbitops -std=gnu99 -ffunction-sections -Wframe-larger-than=128 -Werror") - +set(CARLFW_CFLAGS_DEF "-D__CARL9170FW__") if (CONFIG_CARL9170FW_AGGRESSIVE_CFLAGS) set(CARLFW_CFLAGS_AGGRESSIVE "-fomit-frame-pointer -fsee -frename-registers -ftree-vectorize") endif (CONFIG_CARL9170FW_AGGRESSIVE_CFLAGS) include_directories (../include/linux ../include/shared ../include include) -set(carl9170_main_src src/main.c src/timer.c src/wlan.c src/fw.c src/gpio.c +set(carl9170_main_src src/main.c src/wlan.c src/fw.c src/gpio.c src/cmd.c src/uart.c src/dma.c src/hostif.c src/reboot.S src/printf.c src/rf.c src/cam.c) @@ -33,17 +33,34 @@ add_executable(carl9170.elf ${carl9170_src}) set_target_properties(carl9170.elf PROPERTIES LINKER_LANGUAGE C) set_target_properties(carl9170.elf PROPERTIES COMPILE_FLAGS - "${CARLFW_CFLAGS_EXTRA} ${CARLFW_CFLAGS_AGGRESSIVE} ${CARLFW_CFLAGS_WARNING}") + " ${CARLFW_CFLAGS_DEF} ${CARLFW_CFLAGS_EXTRA} ${CARLFW_CFLAGS_AGGRESSIVE} ${CARLFW_CFLAGS_WARNING}") set_target_properties(carl9170.elf PROPERTIES LINK_FLAGS "-Tcarl9170.lds") -add_custom_target( - carl9170.fw ALL - ${OBJCOPY} --strip-unneeded -O binary -R .sram -R .eeprom -R .fwdsc carl9170.elf carl9170.fw - DEPENDS carl9170.elf) - -add_custom_target( - carl9170.dsc ALL - ${OBJCOPY} --strip-unneeded -O binary -j .fwdsc carl9170.elf carl9170.dsc - DEPENDS carl9170.elf) +add_custom_target(firmware ALL) + +add_custom_command( + SOURCE carl9170.elf + COMMAND ${OBJCOPY} + ARGS --strip-unneeded -O binary -R .sram -R .eeprom -R .fwdsc carl9170.elf carl9170.bin + TARGET firmware + OUTPUTS carl9170.bin) + +add_custom_command( + SOURCE carl9170.elf + COMMAND ${OBJCOPY} + ARGS --strip-unneeded -O binary -j .fwdsc carl9170.elf carl9170.dsc + TARGET firmware + OUTPUTS carl9170.dsc) + +add_custom_command( + SOURCE firmware + TARGET firmware + COMMAND cat + ARGS "carl9170.bin" "carl9170.dsc" > "carl9170.fw" + DEPENDS carl9170.elf carl9170.bin carl9170.dsc + OUTPUTS carl9170.fw) + +SET_DIRECTORY_PROPERTIES( + PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "carl9170.fw")