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. WSJT-X

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

gcc

GNU C Compiler

g++

GNU C++ Compiler

gfortran

GNU Fortran or F90

make

GNU Make

libqt5multimedia5-plugins

QT5 Media Plugins

libfftw3-dev

Fast Fourier Transforms

libpulse-dev

Headers and Files for Pulse AUdio

libhamlib-dev

Headers and Files for Hamlib

qtbase5-dev

QT5 Base Dev Files

qtmultimedia5-dev

Qt5 Multimedsia Dev Files

pulseaudio

Pulse Audio Sound Driver

subversion

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
libgfortran.so.3

from ⇒ libgfortran3:i386

libc.so.6

from ⇒ libc6-i386

libm.so.6

from ⇒ libc6-i386

libgcc_s.so.1

from ⇒ lib32gcc1:i386

libquadmath.so.0

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
qmake
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_
./kvasd

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

3.2. Windows CMake Prerequisites

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

Qt5 SDK

The UI framework + MinGW Tool Chain: Download

CMake

Cross Platform Build System: Download

Hamlib

Radio Control Libraries: Download

FFTW3

Discrete Fourier Transform library: Download

Gfortran

Fortran compiler, included in Qt5 SDK

G95

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 .