Quickstart 1
-----------
-Builds static versions of wxWidgets, portaudio, codec2-dev, which are commonly missing on many Linux systems, or of the wrong (older) version.
+Builds static versions of wxWidgets, portaudio, codec2-dev, which are commonly
+missing on many Linux systems, or of the wrong (older) version.
Assuming the freedv-dev sources is checked out into ~/fdmdv2-dev:
Bootstrapping wxWidgets build
===============================
-If wxWidgets (>= 3.0) is not available then one option is to have CMake boot-strap the build for FreeDV.
+If wxWidgets (>= 3.0) is not available then one option is to have CMake boot-
+strap the build for FreeDV.
-This is required because the tool wx-config is used to get the correct compiler and linker flags of the wxWidgets components needed by FreeDV. Since this is normally done at configure time, not during "make", it is not possible for CMake or have this information prior to building wxWidgets.
+This is required because the tool wx-config is used to get the correct compiler
+and linker flags of the wxWidgets components needed by FreeDV. Since this is
+normally done at configure time, not during "make", it is not possible for CMake
+or have this information prior to building wxWidgets.
-In order to work around this issue you can "bootstrap" the wxWidgets build using the CMake option, "BOOTSTRAP_WXWIDGETS". wxWidgets will be built using static libraries.
+In order to work around this issue you can "bootstrap" the wxWidgets build using
+the CMake option, "BOOTSTRAP_WXWIDGETS". wxWidgets will be built using static
+libraries.
NOTE: This forces "USE_STATIC_WXWIDGETS" to be true internally regarless of the
value set manually.
hamlib-pcr.dll
hamlib-prm80.dll
hamlib-racal.dll
- hamlib-rft.dll)
+ hamlib-rft.dll
+ hamlib-rotorez.dll
+ hamlib-rs.dll
+ hamlib-sartek.dll
+ hamlib-skanti.dll
+ hamlib-spid.dll
+ hamlib-tapr.dll
+ hamlib-tentec.dll
+ hamlib-ts7400.dll
+ hamlib-tuner.dll
+ hamlib-uniden.dll
+ hamlib-winradio.dll
+ hamlib-wj.dll
+ hamlib-yaesu.dll)
message(STATUS "Checking for ${RUNTIME}")
- find_library(${RUNTIME}_LIB ${RUNTIME})
+ find_library(${RUNTIME}_LIB ${RUNTIME}
+ PATH_SUFFIXES hamlib)
message(STATUS "runtime found: ${${RUNTIME}_LIB}")
list(APPEND CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS ${${RUNTIME}_LIB})
endforeach()
alsa-lib-devel (RPM based systems)
libasound2-dev (DEB based systems)"
)
-endif(UNIX AND NOT ALSA_LIBRARIES)
+endif()
include(ExternalProject)
ExternalProject_Add(portaudio
)
endif(WIN32)
include_directories(${CMAKE_BINARY_DIR}/external/dist/include)
+
+# Add the portaudio library to the list of libraries that must be linked.
list(APPEND FREEDV_LINK_LIBS ${PORTAUDIO_LIBRARIES})
+
+# Setup a dependency so that this gets built before linking to freedv.
list(APPEND FREEDV_STATIC_DEPS portaudio)
URL http://www.mega-nerd.com/libsndfile/files/${SNDFILE_TARBALL}.tar.gz
BUILD_IN_SOURCE 1
INSTALL_DIR external/dist
- CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR}/external/dist --disable-external-libs
+ CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR}/external/dist --disable-external-libs --disable-shared
BUILD_COMMAND $(MAKE)
INSTALL_COMMAND $(MAKE) install
)
set(SNDFILE_LIBRARIES
- ${CMAKE_BINARY_DIR}/external/dist/lib/libsndfile.a PARENT_SCOPE)
+ ${CMAKE_BINARY_DIR}/external/dist/lib/libsndfile.a)
include_directories(${CMAKE_BINARY_DIR}/external/dist/include)
list(APPEND FREEDV_LINK_LIBS ${SNDFILE_LIBRARIES})
list(APPEND FREEDV_STATIC_DEPS sndfile)