diff --git a/doc/building on MS Windows.txt b/doc/building on MS Windows.txt index 8bae6a658..9e954285c 100644 --- a/doc/building on MS Windows.txt +++ b/doc/building on MS Windows.txt @@ -17,6 +17,7 @@ Here is an overview list, details are filled out below: * libusb usb device library * MSYS2 *nix like command line environment * Hamlib rig control library + * Pkg Config Lite * Boost C++ libraries Qt Framework @@ -64,8 +65,9 @@ You only need the 64-bit package. libusb library -------------- -This library is available from https://libusb.info/, unzip this -package into C:\Tools. +This library is available from https://libusb.info/, download the .7z +archive as the .zip archive does not contain the libraries we +require. Unzip this package into C:\Tools. MSYS2 ----- @@ -76,6 +78,8 @@ installed and updated you will need to install some packages, these are needed to provide the necessary *nix tools and utilities to build Hamlib from sources. + pacman -S autoconf automake libtool make + Hamlib ------ @@ -88,7 +92,78 @@ up to date with the official project master branch, we recommend building from the 'integration' branch of that fork. The fork is a git repository which can be cloned with this command: -git clone git://git.code.sf.net/u/bsomervi/hamlib hamlib -cd hamlib -git checkout integration + mkdir -p ~/src/sf/bsomervi + cd !$ + git clone git://git.code.sf.net/u/bsomervi/hamlib hamlib + cd hamlib + git checkout integration + +Next you must build Hamlib using the MinGW compiler tools bundled with +Qt. As you will build Hamlib again when there are updates you should +set up you Msys2 command line environment for this. I use a +$HOME/.bash_profile file containing these lines: + + dll_paths_64bit=/c/Tools/libusb-1.0.23/MinGW64/dll + export PATH=/c/Qt/Tools/mingw810_64/bin:$dll_paths_64bit:$PATH + +Test the amended ~/.bash_profile file by opening a new Msys2 shell and +typing: + + which gcc + which libusb-1.0.dll + +The first time you checkout the Hamlib sources you must bootstrap the +configuration script, this is done with a script at the root of the +Hamlib sources: + + cd ~/src/sf/bsomervi/hamlib + ./bootstrap + +Now you need to configure and build Hamlib from an Msys2 shell. Create +a build directory outside of the Hamlib sources you have just cloned, +then change working directory to that build directory. + + mkdir -p ~/build/hamlib/release + cd !$ + ~/src/sf/bsomervi/hamlib/configure --disable-shared \ + --prefix=$HOME/local/hamlib/mingw64/release \ + CFLAGS="-DNDEBUG -g -O2 -fdata-sections -ffunction-sections -I/c/Tools/libusb-1.0.23/include" \ + CXXFLAGS="-DNDEBUG -g -O2 -fdata-sections -ffunction-sections" \ + LDFLAGS="-Wl,--gc-sections" \ + LIBUSB_LIBS="-L/c/Tools/libusb-1.0.23/MinGW64/dll -lusb-1.0" + +Then build and install the Hamlib package into a local directory: + + make & make install-strip + +If you wish you can make a debug configuration build of Hamlib which +can be useful if you intended to contribute to the Hamlib project, or +for tracking down issues: + + mkdir -p ~/build/hamlib/debug + cd !$ + ~/src/sf/bsomervi/hamlib/configure --disable-shared \ + --prefix=$HOME/local/hamlib/mingw64/debug \ + CFLAGS="-g -O0 -I/c/Tools/libusb-1.0.23/include" \ + CXXFLAGS="-g -O0" \ + LIBUSB_LIBS="-L/c/Tools/libusb-1.0.23/MinGW64/dll -lusb-1.0" + make && make install + +To update the Hamlib sources to the latest commit and rebuild: + + cd ~/src/sf/bsomervi/hamlib + git pull + cd ~/build/hamlib/release + make & make install-strip + cd ~/build/hamlib/debug + make && make install + +Pkg Config Lite +--------------- + +This package allows the WSJT-X CMake configuration to locate and learn +the options needed to consume the Hamlib package. You can download it +from https://sourceforge.net/projects/pkgconfiglite/files/0.28-1/ and +unzip it into a convenient location, as with other ancillary tools and +libraries I put these under C:\Tools\.