From ac9b781647d02ed4505ee34c16b332738f214095 Mon Sep 17 00:00:00 2001 From: Max Paperno Date: Sun, 19 Feb 2017 16:40:45 -0500 Subject: [PATCH] [build] Minor fixes for Windows and OS X. --- radio/src/CMakeLists.txt | 5 +++-- radio/util/elf-size-report.sh | 11 ++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/radio/src/CMakeLists.txt b/radio/src/CMakeLists.txt index 47546737f..d45c8118b 100644 --- a/radio/src/CMakeLists.txt +++ b/radio/src/CMakeLists.txt @@ -471,7 +471,8 @@ if(NOT MSVC) WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) - if (BASH) + find_program(GAWK gawk HINTS "c:/cygwin/bin/" "c:/msys/bin/" DOC "gawk for firmware size report.") # OS X might only have "awk" + if (BASH AND GAWK) add_custom_target(firmware-size COMMAND ${BASH} -kc '${RADIO_DIRECTORY}/util/elf-size-report.sh --mcu=${CPU_TYPE_FULL} ${SIZE_TARGET_MEM_DEFINE} firmware.elf' DEPENDS firmware @@ -498,7 +499,7 @@ if(NOT MSVC) include_directories(storage gui/${GUI_DIR}) set(ALLSRC ${PROJECT_BINARY_DIR}/allsrc.cpp) - if (BASH) + if (BASH AND NOT WIN32) add_custom_command( OUTPUT ${ALLSRC} COMMAND ${BASH} -kc 'rm -f ${ALLSRC}\; for f in ${SRC}\; do echo "\\# 1 \"$$f\"" >> allsrc.cpp\; cat "$$f" >> ${ALLSRC}\; done' diff --git a/radio/util/elf-size-report.sh b/radio/util/elf-size-report.sh index 073f98347..1fb67b36b 100755 --- a/radio/util/elf-size-report.sh +++ b/radio/util/elf-size-report.sh @@ -63,12 +63,13 @@ for i in "$@" ; do esac done -# -- prefer gawk to awk if installed -which gawk 2>&1 > /dev/null -if [[ $? == 0 ]]; then - AWKCMD="gawk -nf" +# -- make sure gawk is installed +: ${AWKCMD:=""} +if gawk --version >/dev/null 2>&1; then + [[ "$OSTYPE" == "darwin"* ]] && AWKCMD="gawk -nf" else - AWKCMD="awk -nf" + echo "GAWK is required, exiting." + exit 1 fi # -- defaults which may change based on MCU