Section 01
WSJT-X Development Environment
The complete build guide, reproduced from the project's index page โ from a bare MSYS2 install through to a signed-ready installer.
(a) Install MSYS2
- Download and run the latest installer from msys2.org.
- Install MSYS2 to its default location:
C:\msys64
Accept all default installation options.
(b) Install the Toolchain
Launch the MSYS2 MINGW64 shell.
Update the MSYS2 environment:
pacman -Syuu
Install the packages required to build WSJT-X and Hamlib with the following (concatenated) command:
pacman -S --needed \
git make tar autoconf automake libtool \
mingw-w64-x86_64-gcc \
mingw-w64-x86_64-gcc-fortran \
mingw-w64-x86_64-cmake \
mingw-w64-x86_64-qt5-base \
mingw-w64-x86_64-qt5-multimedia \
mingw-w64-x86_64-qt5-serialport \
mingw-w64-x86_64-qt5-svg \
mingw-w64-x86_64-qt5-tools \
mingw-w64-x86_64-qt5-websockets \
mingw-w64-x86_64-qt5-activeqt \
mingw-w64-x86_64-fftw \
mingw-w64-x86_64-boost \
mingw-w64-x86_64-libusb \
mingw-w64-x86_64-portaudio \
mingw-w64-x86_64-pkg-config \
mingw-w64-x86_64-nsis \
mingw-w64-x86_64-osslsigncode \
mingw-w64-x86_64-ruby
Notes
- If you encounter conflicts installing
pkg-config, omit that package. Neither Hamlib nor WSJT-X requires it. - Should you have any difficulties installing any commands using this concatenated set, execute each package individually. For example:
pacman -S mingw-w64-x86_64-gcc
(c) Update Ruby and Install AsciiDoctor
Install AsciiDoctor by executing the following command:
gem install asciidoctor --no-document
You may see a message similar to:
A new release of RubyGems is available: 4.0.16 โ 4.0.17!
Run `gem update --system 4.0.17` to update your installation.
Run the recommended command, for example:
gem update --system 4.0.17
Alternatively, update to the latest RubyGems release with:
gem update --system
(d) Clone the WSJT-X Source
cd ~
git clone https://github.com/WSJTX/wsjtx.git
(e) Alias dumpcpp in MSYS2
MSYS2 ships Qt's dumpcpp tool as dumpcpp-qt5, while the WSJT-X build expects it to be named dumpcpp.
- Create the required alias with the following command:
ln -sf /mingw64/bin/dumpcpp-qt5.exe /mingw64/bin/dumpcpp.exe
(f) Install OmniRig
WSJT-X can optionally use the legacy OmniRig environment for CAT control under Windows. This remains the preferred approach for many of the WSJT-X core developers working with EME (Moonbounce) and Meteor Scatter equipment.
- Download and install OmniRig from: dxatlas.com/OmniRig
- Install it to its default location:
C:\Program Files (x86)\Afreet\OmniRig\OmniRig.exe
(g) Build Hamlib
Enter the following commands:
git clone --depth 1 --branch 4.7.2 \
https://github.com/Hamlib/Hamlib.git hamlib-src
cd hamlib-src
./bootstrap
./configure --prefix="$HOME/hamlib-prefix" \
--enable-shared --disable-static \
--without-cxx-binding --without-readline \
CFLAGS="-DNDEBUG -g -O2 -fdata-sections -ffunction-sections" \
LDFLAGS="-Wl,--gc-sections"
make -j$(nproc)
make install-strip
cd ..
Notes
- When WSJT-X updates the pinned Hamlib version, change the
--branchtag accordingly and rebuild Hamlib. - Any messages regarding a detached HEAD state are informational and can be safely ignored.
WSJT-X Build Steps
Configure and Build WSJT-X
- Execute the following commands:
cd ~/wsjtx
OMNIRIG=$(cygpath "C:/Program Files (x86)/Afreet/OmniRig/OmniRig.exe")
cmake -G "MSYS Makefiles" -S . -B build \
-DCMAKE_PREFIX_PATH="$HOME/hamlib-prefix" \
-DCMAKE_INSTALL_PREFIX=C:/WSJT/wsjtx \
-DOMNIRIG_TYPE_LIB="$OMNIRIG" \
-DCMAKE_Fortran_FLAGS="-fallow-argument-mismatch -std=legacy" \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-DWSJT_SKIP_MANPAGES=ON \
-DWSJT_FORTRAN_LIBRARY_VARIANTS=OPENMP_ONLY \
-Wno-author
cmake --build build -j$(nproc)
Notes
- The generated binaries are written to the
build/directory, including:wsjtx.exe,jt9.exe, and supporting command-line utilities. - It is normal to see numerous compiler warnings during the initial build. If appropriate, report any warnings to the WSJT-X developers.
WSJT-X Deployment (from the build tree)
build-wsjtx-menu.sh script instead, see the Deployment page in the menu.(a) Install and Run not recommended
The build tree is not directly runnable.
The executables expect installed support files (such as ALLCALL7.TXT and cty.dat) to exist relative to the installed application, while the required Qt and Hamlib DLLs are also expected to be in their installed locations.
Installing places everything where WSJT-X expects it. This method bypasses the Windows installer and is intended only for development and testing.
- Execute the following command:
cmake --build build --target install
Notes
- Files are installed into the location specified by
CMAKE_INSTALL_PREFIX, for example:C:\WSJT\wsjtx - Because this bypasses the Windows Installer, it is not recommended except for development and testing.
(b) Build an Installer preferred
The preferred deployment method is to build a standard Windows installer. This integrates correctly with Windows application management and provides a clean installation and removal process.
- Execute the following command:
cmake --build build --target package
Notes
- The installer is written to the
build/directory as:wsjtx-<version>-win64.exe - It is generated using NSIS, which was installed as part of the MSYS2 toolchain.
- The installer is unsigned. Windows SmartScreen may display a warning the first time it is run.
See also
Ready to run the finished menu script instead of building manually? See Deployment.