diff --git a/firmware/common/Makefile_inc.mk b/firmware/common/Makefile_inc.mk index 4b51f8fa..8917beda 100644 --- a/firmware/common/Makefile_inc.mk +++ b/firmware/common/Makefile_inc.mk @@ -50,7 +50,7 @@ OBJDUMP = $(PREFIX)-objdump GDB = $(PREFIX)-gdb TOOLCHAIN_DIR := $(shell dirname `which $(CC)`)/../$(PREFIX) -CFLAGS += -std=c99 -Os -g3 -Wall -Wextra -I$(LIBOPENCM3)/include -I../common \ +CFLAGS += -std=gnu99 -Os -g3 -Wall -Wextra -I$(LIBOPENCM3)/include -I../common \ -fno-common -mcpu=cortex-m4 -mthumb -MD \ -mfloat-abi=hard -mfpu=fpv4-sp-d16 \ $(HACKRF_OPTS) diff --git a/host/libhackrf/CMakeLists.txt b/host/libhackrf/CMakeLists.txt index fba159ce..649d861c 100644 --- a/host/libhackrf/CMakeLists.txt +++ b/host/libhackrf/CMakeLists.txt @@ -43,6 +43,38 @@ include_directories(${LIBUSB_INCLUDE_DIR} ${THREADS_PTHREADS_INCLUDE_DIR}) add_subdirectory(src) +######################################################################## +# Create Pkg Config File +######################################################################## +FOREACH(inc ${LIBUSB_INCLUDE_DIR}) + LIST(APPEND HACKRF_PC_CFLAGS "-I${inc}") +ENDFOREACH(inc) + +# use space-separation format for the pc file +STRING(REPLACE ";" " " HACKRF_PC_CFLAGS "${HACKRF_PC_CFLAGS}") +STRING(REPLACE ";" " " HACKRF_PC_LIBS "${HACKRF_PC_LIBS}") + +# unset these vars to avoid hard-coded paths to cross environment +IF(CMAKE_CROSSCOMPILING) + UNSET(HACKRF_PC_CFLAGS) + UNSET(HACKRF_PC_LIBS) +ENDIF(CMAKE_CROSSCOMPILING) + +set(prefix ${CMAKE_INSTALL_PREFIX}) +set(exec_prefix \${prefix}) +set(libdir \${exec_prefix}/lib) +set(includedir \${prefix}/include) + +CONFIGURE_FILE( + ${CMAKE_CURRENT_SOURCE_DIR}/libhackrf.pc.in + ${CMAKE_CURRENT_BINARY_DIR}/libhackrf.pc +@ONLY) + +INSTALL( + FILES ${CMAKE_CURRENT_BINARY_DIR}/libhackrf.pc + DESTINATION lib/pkgconfig +) + ######################################################################## # Create uninstall target ######################################################################## diff --git a/host/libhackrf/libhackrf.pc.in b/host/libhackrf/libhackrf.pc.in new file mode 100644 index 00000000..5c9c18d4 --- /dev/null +++ b/host/libhackrf/libhackrf.pc.in @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: HackRF Library +Description: C Utility Library +Version: @VERSION@ +Cflags: -I${includedir}/ @HACKRF_PC_CFLAGS@ +Libs: -L${libdir} -lhackrf +Libs.private: @HACKRF_PC_LIBS@ diff --git a/host/libhackrf/src/hackrf.c b/host/libhackrf/src/hackrf.c index 410f8f3b..67c2d97b 100644 --- a/host/libhackrf/src/hackrf.c +++ b/host/libhackrf/src/hackrf.c @@ -894,7 +894,7 @@ static void* transfer_threadproc(void* arg) while( (device->streaming) && (do_exit == false) ) { error = libusb_handle_events_timeout(g_libusb_context, &timeout); - if( error != 0 ) + if( (error != 0) && (error != LIBUSB_ERROR_INTERRUPTED) ) { device->streaming = false; }