Commit e6c6723dd3df83fb8a9930517b5e30bbd58002f2

Authored by David Graeff
Committed by David Gräff
1 parent 7bf19564

Firmware: Use cmake to build firmware and fail early in bash script

CMakeLists.txt
... ... @@ -18,6 +18,7 @@ include(cmake/CPackInfos.cmake)
18 18  
19 19 # Qt Widgets based Gui with OpenGL canvas
20 20 add_subdirectory(openhantek)
  21 +add_subdirectory(firmware EXCLUDE_FROM_ALL)
21 22  
22 23 if (WIN32)
23 24 install(FILES COPYING readme.md DESTINATION ".")
... ...
firmware/CMakeLists.txt 0 → 100644
  1 +project(FirmwareExtractor C)
  2 +
  3 +find_library( BFD_LIBRARY NAMES bfd libbdf PATH /usr/lib /usr/lib64 )
  4 +find_path(BFD_INCLUDE bfd.h PATHS /usr/include
  5 + /usr/local/include
  6 + /opt/local/include
  7 + /sw/include)
  8 +
  9 +
  10 +if (NOT BFD_LIBRARY OR NOT BFD_INCLUDE)
  11 + message(STATUS "BFD not found. Please install binutils-devel (fedora) / binutils-dev (ubuntu)")
  12 + return()
  13 +endif()
  14 +
  15 +add_executable(${PROJECT_NAME} extractfw.c)
  16 +target_link_libraries(${PROJECT_NAME} ${BFD_LIBRARY} )
  17 +target_include_directories(${PROJECT_NAME} PRIVATE ${BFD_INCLUDE})
... ...
firmware/Makefile deleted
1   -CFLAGS=-g -O2
2   -LDLIBS=-lbfd -liberty -lz -ldl
3   -
4   -extractfw: extractfw.o
5   -
6   -clean:
7   - rm -f extractfw extractfw.o
firmware/fwget.sh
... ... @@ -2,20 +2,18 @@
2 2  
3 3 shopt -s globstar
4 4  
5   -cd "$(dirname "$0")"
6   -make
7   -rm -rf tmp
8   -mkdir tmp
  5 +rm -rf build
  6 +mkdir build && cd build && cmake ../ && make && cd ..
9 7  
10   -cd tmp
  8 +if [ ! -d ./hex ]; then
  9 +mkdir hex && cd hex && \
11 10 for MODEL in "2090" "2150" "2250" "5200" "5200A"; do
12 11 wget http://www.hantek.com/Product/DSO2000/DSO${MODEL}_Driver.zip
13 12 unzip DSO${MODEL}_Driver.zip
14   -done
  13 +done && \
15 14 cd ..
  15 +fi
16 16  
17   -for f in tmp/**/*.sys; do
18   - ./extractfw $f
  17 +for f in hex/**/*.sys; do
  18 + ./build/FirmwareExtractor $f && rm $f
19 19 done
20   -mv tmp/**/*.hex .
21   -rm -rf tmp
... ...