1. Overview

The WSJT family of programs for weak-signal amateur radio communication includes WSJT, WSPR, MAP65, WSJT-X, and WSPR-X. User interfaces for WSJT and WSPR are written in Python, and build procedures for them are similar. User interfaces for MAP65, WSJT-X, and WSPR-X are written in C++ and use the Qt framework. Most number-crunching in the WSJT programs is done in Fortran.

This Developer’s Guide is a work in progress. We currently provide instructions for compiling WSJT-X in Linux and we outline the prerequisites for compiling it in Windows. Similar procedures can be used for MAP65 and WSPR-X. Instructions for the Python-based programs are yet to come.

Please send feedback on this Guide to KI7MT.

2. Source Code

All source code for the WSJT programs is available at the open-source repository known as berliOS , under control of the version-control program Subversion . You can install Subversion in Windows from the above link; in Linux use

sudo apt-get install subversion

or an equivalent command for your Linux distribution.

You can browse the organization of files in the repository here . Code for program WSJT lies in the trunk directory, while code for the other programs is found in …/branches/map65, …/branches/wsjtx, and …/branches/wsprx. Various experimental branches may also exist, and snapshots of code for certain released program versions may be obtained from the …/tags directory.

You can do an anonymous checkout of source code for a specific program with a command of the following form:

svn co svn://svn.berlios.de/wsjt/branches/wsjtx

If you are a member of the WSJT Devopment Group and have commit privileges to the repository, use a command like this one:

svn co https://user@svn.berlios.de/svnroot/repos/wsjt/branches/wsjtx

substituting your Berlios username for user.

Caution Please note: the HEAD of the SVN repository for any of these programs is likely to be an active development branch. There is no guarantee that a build from every revision will be successful, nor that it will provide a stable executable program.


3.1. Linux Makefile Example

Ubuntu 12.04 specific notes
  • Reference: Ubuntu SDK Notice

  • Ubuntu 12.04 requires a PPA in order to download and install the required Qt5 libraries.

3.1.1. For Ubuntu 12.04 Only

# Add the following PPA, and upgrade your system
sudo add-apt-repository ppa:ubuntu-sdk-team/ppa
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install ubuntu-sdk

3.1.2. Build dependencies


GNU C Compiler


GNU C++ Compiler


GNU Fortran or F90


GNU Make


QT5 Media Plugins


Fast Fourier Transforms


Headers and Files for Pulse AUdio


Headers and Files for Hamlib


QT5 Base Dev Files


Qt5 Multimedsia Dev Files


Pulse Audio Sound Driver


Version Control Software

Install dependencies
sudo apt-get install gcc g++ gfortran make libqt5multimedia5-plugins \
  libfftw3-dev libpulse-dev libhamlib-dev qtbase5-dev qtmultimedia5-dev \
  pulseaudio subversion
kvasd 32-bit dependencies

from ⇒ libgfortran3:i386


from ⇒ libc6-i386


from ⇒ libc6-i386


from ⇒ lib32gcc1:i386


from ⇒ lib32quadmath0

Install kvasd 32-bit dependencies
sudo apt-get install libgfortran3:i386 libc6-i386
Setup and build
# In a terminal Ctrl+Alt+T
# Each line is seperate action - Copy & Paste

mkdir -p ~/Projects/wsjtx-build
cd ~/Projects/wsjtx-build
svn co svn://svn.berlios.de/wsjt/branches/wsjtx
cd ./wsjtx/lib
make -f Makefile.linux
cd ../
export QT_SELECT=qt5
j_c=$(grep -c ^processor /proc/cpuinfo)
make -j$j_c

# mv wsjtx_intall to the new rev-number
rev_num=$(svn log -l1 |awk 'FNR==2 {print $1}')
cd ../
mv ./wsjtx_install ./wsjtx-$rev_num
Tip You should now have three files in the ./wjstx-$rev_num directory: jt9, jt9code and wsjtx. By moving the directory, you’re ready for a subsequent build cycle.
Final configuraiton

Before running WSJT-X, download kvasd and link the required runtime files.

# cd and download set-up kvasd
wget -P ./wsjtx http://www.physics.princeton.edu/pulsar/K1JT/kvasd
chmod +x ./wsjtx/kvasd
cd ./wsjtx-$rev_num

# IMPORTANT: You can copy or link the files and folders, but make sure
# they are in the same directory as the wsjtx binary.

# Link or cp the following files & folders
ln -s ../wsjtx/kvasd ./kvasd
ln -s ../wsjtx/kvasd.dat ./kvasd.dat
ln -s ../wsjtx/CALL3.TXT ./CALL3.TXT
ln -s ../wsjtx/cty.dat ./cty.dat
ln -s ../wsjtx/Palettes ./Palettes
ln -s ../wsjtx/samples ./samples
ln -s ../wsjtx/mouse_commands.txt ./mouse_commands.txt
ln -s ../wsjtx/shortcuts.txt ./shortcuts.txt
ln -s ../wsjtx/prefixes.txt ./prefixes.txt
Test kvasd

Before you run WSJT-X, ensure kvasd has its required libraries.

cd wsjtx-$rev_num
ldd ./kvasd

# If there were no missing links, test _kvasd_

# If sucessful, the K1JT copyright message will be displayed.
Run the new binary

3.2. Windows CMake Prerequisites

The following tools are required to compile WSJT-X using CMake:


The UI framework + MinGW Tool Chain: Download


Cross Platform Build System: Download


Radio Control Libraries: Download


Discrete Fourier Transform library: Download


Fortran compiler, included in Qt5 SDK


Alternate for gfortran, if desired: Download

4. Appendix A: License

The WSJT programs are free software: you may redistribute and/or modify them under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

These programs are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this documentation. If not, see GNU GPL

Copyright © 2001-2014 by Joseph H Taylor, Jr, Joe Taylor, K1JT .