Download Latest Version JTSDK64-4.0.0b1.exe (347.0 MB)
Email in envelope

Get an email when there's a new version of HAMLIB SDK (Evolved JTSDK)

Home / FL-Apps
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2024-01-24 27.7 kB
Totals: 1 Item   27.7 kB 0

Fast Light Toolkit Applications (FL-Apps)


Fast-Light Toolkit Application Support


The Fast Light Toolkit Applications (FL-Apps as they are referred to here) are a set of Ham Radio Applications crerated by [David W1HJK}(W1HJK).

There has long been a stated objective to make the [JTSDK][] support the FL-Apps.


The JTSDK


The JTSDK64 Tools is a collection of 64-Bit Open Source and not-for-commercial use frameworks, library's and utilities focused on compiling Hamlib. This kit also provides support also for compiling the "JT Suite" of programs i.e. WSJT-X, WSJT, MAP65, WSPR and derivatives/forks.

This toolkit was first developed by Greg Beam KI7MT as the "JTSDK" - "JT" Software Developer's Kit. All future work MUST acknowledge Greg KI7MT.

Aims

This kit is for research, learning and guidance only and is not of merchantable quality or ethics.

** THIS IS DESIGNED TO PROMOTE OPEN SOURCE CODE AND COOPERATIVE PROGRAMMING ETHICS.**

** THINGS DESCRIBED IN HERE MAY NOT WORK FOR YOU ! **

If anything to do with this kit does not work or you have any queries then refer to the JTSDK Forum.

Development Aims

One aim is to reduce the size and amount of prepackaged installers in the "Base" package. Some utilities and libraries now have licensing requirements that mean that we can provide links to the tools but should not repackage these tools (where possible). This list is ever growing. Scripts will evolve to pull required packages from source repositories.

Where this is not possible please refer to the main up-to-date documentation site at https://hamlib-sdk.sourceforge.io/


Who is this site for?


This site is designed to cement and promote techniques that work for building the FL-Apps unbder the JTSDK64 Framework.

  • The term JT-ware is used to describe WSJT-X and any software forked and/or derived from WSJT-X.
  • The term FL-apps is used to describe any of the applications supported by David W1HKJ.

Preparation


It is recommended that the following packages be deployed as an experimental base:

pacman -S apr --noconfirm
pacman -S apr-util --noconfirm
pacman -S asciidoc --noconfirm
pacman -S autoconf --noconfirm
pacman -S autoconf-wrapper --noconfirm
pacman -S autogen --noconfirm
pacman -S automake --noconfirm
pacman -S automake -wrapper --noconfirm
pacman -S bash-completion --noconfirm
pacman -S binutils --noconfirm
pacman -S bison --noconfirm
pacman -S brotli --noconfirm
pacman -S bsdtar --noconfirm
pacman -S btyacc --noconfirm
pacman -S bzip2 --noconfirm
pacman -S ca-certificates --noconfirm
pacman -S coreutils --noconfirm
pacman -S curl --noconfirm
pacman -S dash --noconfirm
pacman -S db --noconfirm
pacman -S diffstat --noconfirm
pacman -S diffutils --noconfirm
pacman -S docbook-xml --noconfirm
pacman -S docbook-xsl --noconfirm
pacman -S dos2unix --noconfirm
pacman -S doxygen --noconfirm
pacman -S expat --noconfirm
pacman -S file --noconfirm
pacman -S filesystem --noconfirm
pacman -S findutils --noconfirm
pacman -S flex --noconfirm
pacman -S gawk --noconfirm
pacman -S gcc-libs --noconfirm
pacman -S gdb --noconfirm
pacman -S gdbm --noconfirm
pacman -S getent --noconfirm
pacman -S gettext --noconfirm
pacman -S gettext-devel --noconfirm
pacman -S git --noconfirm
pacman -S glib2 --noconfirm
pacman -S glib2-devel --noconfirm
pacman -S gmp --noconfirm
pacman -S gnupg --noconfirm
pacman -S gperf --noconfirm
pacman -S grep --noconfirm
pacman -S groff --noconfirm
pacman -S gzip --noconfirm
pacman -S heimdal --noconfirm
pacman -S heimdal-libs --noconfirm
pacman -S help2man --noconfirm
pacman -S icu --noconfirm
pacman -S icu-devel --noconfirm
pacman -S inetutils --noconfirm
pacman -S info --noconfirm
pacman -S intltool --noconfirm
pacman -S less --noconfirm
pacman -S libarchive --noconfirm
pacman -S libargp --noconfirm
pacman -S libasprintf --noconfirm
pacman -S libassuan --noconfirm
pacman -S libatomic_ops --noconfirm
pacman -S libbz2 --noconfirm
pacman -S libcbor --noconfirm
pacman -S libcrypt --noconfirm
pacman -S libcurl --noconfirm
pacman -S libdb --noconfirm
pacman -S libedit --noconfirm
pacman -S libexpat --noconfirm
pacman -S libffi --noconfirm
pacman -S libffi-devel --noconfirm
pacman -S libfido2 --noconfirm
pacman -S libgc --noconfirm
pacman -S libgcrypt --noconfirm
pacman -S libgdbm --noconfirm
pacman -S libgdbm-devel --noconfirm
pacman -S libgettextpo --noconfirm
pacman -S libgnutls --noconfirm
pacman -S libgpg-error --noconfirm
pacman -S libgpgme --noconfirm
pacman -S libguile --noconfirm
pacman -S libhogweed --noconfirm
pacman -S libiconv --noconfirm
pacman -S libiconv-devel --noconfirm
pacman -S libidn2 --noconfirm
pacman -S libintl --noconfirm
pacman -S libksba --noconfirm
pacman -S libltdl --noconfirm
pacman -S liblz4 --noconfirm
pacman -S liblzma --noconfirm
pacman -S liblzma-devel --noconfirm
pacman -S libmetalink --noconfirm
pacman -S libnettle --noconfirm
pacman -S libnghttp2 --noconfirm
pacman -S libnpth --noconfirm
pacman -S libopenssl --noconfirm
pacman -S libp11-kit --noconfirm
pacman -S libpcre --noconfirm
pacman -S libpcre16 --noconfirm
pacman -S libpcre2_16 --noconfirm
pacman -S libpcre2_32 --noconfirm
pacman -S libpcre2_8 --noconfirm
pacman -S libpcre2posix --noconfirm
pacman -S libpcre32 --noconfirm
pacman -S libpcrecpp --noconfirm
pacman -S libpcreposix --noconfirm
pacman -S libpipeline --noconfirm
pacman -S libpsl --noconfirm
pacman -S libreadline --noconfirm
pacman -S libreadline-devel --noconfirm
pacman -S libsasl --noconfirm
pacman -S libserf --noconfirm
pacman -S libsqlite --noconfirm
pacman -S libssh2 --noconfirm
pacman -S libtasn1 --noconfirm
pacman -S libtool --noconfirm
pacman -S libunistring --noconfirm
pacman -S libunrar --noconfirm
pacman -S libunrar-devel --noconfirm
pacman -S libutil-linux --noconfirm
pacman -S libxml2 --noconfirm
pacman -S libxml2-devel --noconfirm
pacman -S libxslt --noconfirm
pacman -S libxxhash --noconfirm
pacman -S libzstd --noconfirm
pacman -S m4 --noconfirm
pacman -S make --noconfirm
pacman -S man-db --noconfirm
pacman -S mc --noconfirm
pacman -S mingw-w64-clang-x86_64-libc++ --noconfirm
pacman -S mingw-w64-clang-x86_64-libunwind --noconfirm
pacman -S mingw-w64-clang-x86_64-portaudio --noconfirm
pacman -S mingw-w64-x86_64-adwaita-icon-theme --noconfirm
pacman -S mingw-w64-x86_64-angleproject --noconfirm
pacman -S mingw-w64-x86_64-astyle --noconfirm
pacman -S mingw-w64-x86_64-atk --noconfirm
pacman -S mingw-w64-x86_64-binutils --noconfirm
pacman -S mingw-w64-x86_64-brotli --noconfirm
pacman -S mingw-w64-x86_64-bzip2 --noconfirm
pacman -S mingw-w64-x86_64-c-ares --noconfirm
pacman -S mingw-w64-x86_64-ca-certificates --noconfirm
pacman -S mingw-w64-x86_64-cairo --noconfirm
pacman -S mingw-w64-x86_64-cmake --noconfirm
pacman -S mingw-w64-x86_64-crt-git --noconfirm
pacman -S mingw-w64-x86_64-curl --noconfirm
pacman -S mingw-w64-x86_64-egl-headers --noconfirm
pacman -S mingw-w64-x86_64-expat --noconfirm
pacman -S mingw-w64-x86_64-extra-cmake-modules --noconfirm
pacman -S mingw-w64-x86_64-flac --noconfirm
pacman -S mingw-w64-x86_64-fontconfig --noconfirm
pacman -S mingw-w64-x86_64-freetype --noconfirm
pacman -S mingw-w64-x86_64-fribidi --noconfirm
pacman -S mingw-w64-x86_64-gcc --noconfirm
pacman -S mingw-w64-x86_64-gcc-ada --noconfirm
pacman -S mingw-w64-x86_64-gcc-fortran --noconfirm
pacman -S mingw-w64-x86_64-gcc-libgfortran --noconfirm
pacman -S mingw-w64-x86_64-gcc-libs --noconfirm
pacman -S mingw-w64-x86_64-gcc-objc --noconfirm
pacman -S mingw-w64-x86_64-gdb --noconfirm
pacman -S mingw-w64-x86_64-gdb-multiarch --noconfirm
pacman -S mingw-w64-x86_64-gdk-pixbuf2 --noconfirm
pacman -S mingw-w64-x86_64-gettext --noconfirm
pacman -S mingw-w64-x86_64-giflib --noconfirm
pacman -S mingw-w64-x86_64-gles-headers --noconfirm
pacman -S mingw-w64-x86_64-glib2 --noconfirm
pacman -S mingw-w64-x86_64-gmp --noconfirm
pacman -S mingw-w64-x86_64-goocanvas --noconfirm
pacman -S mingw-w64-x86_64-graphite2 --noconfirm
pacman -S mingw-w64-x86_64-gtk-update-icon-cache --noconfirm
pacman -S mingw-w64-x86_64-gtk3 --noconfirm
pacman -S mingw-w64-x86_64-harfbuzz --noconfirm
pacman -S mingw-w64-x86_64-headers-git --noconfirm
pacman -S mingw-w64-x86_64-hicolor-icon-theme --noconfirm
pacman -S mingw-w64-x86_64-isl --noconfirm
pacman -S mingw-w64-x86_64-jansson --noconfirm
pacman -S mingw-w64-x86_64-jbigkit --noconfirm
pacman -S mingw-w64-x86_64-jemalloc --noconfirm
pacman -S mingw-w64-x86_64-json-glib --noconfirm
pacman -S mingw-w64-x86_64-jsoncpp --noconfirm
pacman -S mingw-w64-x86_64-lame --noconfirm
pacman -S mingw-w64-x86_64-lerc --noconfirm
pacman -S mingw-w64-x86_64-libarchive --noconfirm
pacman -S mingw-w64-x86_64-libb2 --noconfirm
pacman -S mingw-w64-x86_64-libdatrie --noconfirm
pacman -S mingw-w64-x86_64-libdeflate --noconfirm
pacman -S mingw-w64-x86_64-libepoxy --noconfirm
pacman -S mingw-w64-x86_64-libffi --noconfirm
pacman -S mingw-w64-x86_64-libgccjit --noconfirm
pacman -S mingw-w64-x86_64-libiconv --noconfirm
pacman -S mingw-w64-x86_64-libidn2 --noconfirm
pacman -S mingw-w64-x86_64-libjpeg-turbo --noconfirm
pacman -S mingw-w64-x86_64-libmangle-git --noconfirm
pacman -S mingw-w64-x86_64-libogg --noconfirm
pacman -S mingw-w64-x86_64-libpng --noconfirm
pacman -S mingw-w64-x86_64-libpsl --noconfirm
pacman -S mingw-w64-x86_64-librsvg --noconfirm
pacman -S mingw-w64-x86_64-libsndfile --noconfirm
pacman -S mingw-w64-x86_64-libssh2 --noconfirm
pacman -S mingw-w64-x86_64-libsystre --noconfirm
pacman -S mingw-w64-x86_64-libtasn1 --noconfirm
pacman -S mingw-w64-x86_64-libthai --noconfirm
pacman -S mingw-w64-x86_64-libtiff --noconfirm
pacman -S mingw-w64-x86_64-libtre-git --noconfirm
pacman -S mingw-w64-x86_64-libunistring --noconfirm
pacman -S mingw-w64-x86_64-libuv --noconfirm
pacman -S mingw-w64-x86_64-libvorbis --noconfirm
pacman -S mingw-w64-x86_64-libwebp --noconfirm
pacman -S mingw-w64-x86_64-libwinpthread-git --noconfirm
pacman -S mingw-w64-x86_64-libxml2 --noconfirm
pacman -S mingw-w64-x86_64-lz4 --noconfirm
pacman -S mingw-w64-x86_64-lzo2 --noconfirm
pacman -S mingw-w64-x86_64-make --noconfirm
pacman -S mingw-w64-x86_64-mpc --noconfirm
pacman -S mingw-w64-x86_64-mpdecimal --noconfirm
pacman -S mingw-w64-x86_64-mpfr --noconfirm
pacman -S mingw-w64-x86_64-mpg123 --noconfirm
pacman -S mingw-w64-x86_64-ncurses --noconfirm
pacman -S mingw-w64-x86_64-nettle --noconfirm
pacman -S mingw-w64-x86_64-nghttp2 --noconfirm
pacman -S mingw-w64-x86_64-ninja --noconfirm
pacman -S mingw-w64-x86_64-openssl --noconfirm
pacman -S mingw-w64-x86_64-opus --noconfirm
pacman -S mingw-w64-x86_64-p11-kit --noconfirm
pacman -S mingw-w64-x86_64-pango --noconfirm
pacman -S mingw-w64-x86_64-pcre2 --noconfirm
pacman -S mingw-w64-x86_64-pixman --noconfirm
pacman -S mingw-w64-x86_64-pkgconf --noconfirm
pacman -S mingw-w64-x86_64-png2ico --noconfirm
pacman -S mingw-w64-x86_64-python --noconfirm
pacman -S mingw-w64-x86_64-rapidjson --noconfirm
pacman -S mingw-w64-x86_64-readline --noconfirm
pacman -S mingw-w64-x86_64-rhash --noconfirm
pacman -S mingw-w64-x86_64-shared-mime-info --noconfirm
pacman -S mingw-w64-x86_64-sqlite3 --noconfirm
pacman -S mingw-w64-x86_64-tcl --noconfirm
pacman -S mingw-w64-x86_64-termcap --noconfirm
pacman -S mingw-w64-x86_64-tk --noconfirm
pacman -S mingw-w64-x86_64-tools-git --noconfirm
pacman -S mingw-w64-x86_64-tzdata --noconfirm
pacman -S mingw-w64-x86_64-windows-default-manifest --noconfirm
pacman -S mingw-w64-x86_64-wineditline --noconfirm
pacman -S mingw-w64-x86_64-winpthreads-git --noconfirm
pacman -S mingw-w64-x86_64-winstorecompat-git --noconfirm
pacman -S mingw-w64-x86_64-xxhash --noconfirm
pacman -S mingw-w64-x86_64-xz --noconfirm
pacman -S mingw-w64-x86_64-zlib --noconfirm
pacman -S mingw-w64-x86_64-zstd --noconfirm
pacman -S mintty --noconfirm
pacman -S mpc --noconfirm
pacman -S mpdecimal --noconfirm
pacman -S mpfr --noconfirm
pacman -S msys2-keyring --noconfirm
pacman -S msys2-launcher --noconfirm
pacman -S msys2-runtime --noconfirm
pacman -S nano --noconfirm
pacman -S ncurses --noconfirm
pacman -S ncurses-devel --noconfirm
pacman -S nettle --noconfirm
pacman -S openssh --noconfirm
pacman -S openssl --noconfirm
pacman -S p11-kit --noconfirm
pacman -S pacman --noconfirm
pacman -S pacman-contrib --noconfirm
pacman -S pacman-mirrors --noconfirm
pacman -S patch --noconfirm
pacman -S patchutils --noconfirm
pacman -S pcre --noconfirm
pacman -S pcre2 --noconfirm
pacman -S pcre2-devel --noconfirm
pacman -S perl --noconfirm
pacman -S perl-Authen-SASL --noconfirm
pacman -S perl-Clone --noconfirm
pacman -S perl-Convert-BinHex --noconfirm
pacman -S perl-Encode-Locale --noconfirm
pacman -S perl-Error --noconfirm
pacman -S perl-File-Listing --noconfirm
pacman -S perl-HTML-Parser --noconfirm
pacman -S perl-HTML-Tagset --noconfirm
pacman -S perl-HTTP-Cookies --noconfirm
pacman -S perl-HTTP-Daemon --noconfirm
pacman -S perl-HTTP-Date --noconfirm
pacman -S perl-HTTP-Message --noconfirm
pacman -S perl-HTTP-Negotiate --noconfirm
pacman -S perl-IO-HTML --noconfirm
pacman -S perl-IO-Socket-SSL --noconfirm
pacman -S perl-IO-Stringy --noconfirm
pacman -S perl-LWP-MediaTypes --noconfirm
pacman -S perl-Locale-Gettext --noconfirm
pacman -S perl-MIME-tools --noconfirm
pacman -S perl-MailTools --noconfirm
pacman -S perl-Module-Build --noconfirm
pacman -S perl-Net-HTTP --noconfirm
pacman -S perl-Net-SMTP-SSL --noconfirm
pacman -S perl-Net-SSLeay --noconfirm
pacman -S perl-TermReadKey --noconfirm
pacman -S perl-Test-Pod --noconfirm
pacman -S perl-TimeDate --noconfirm
pacman -S perl-Try-Tiny --noconfirm
pacman -S perl-URI --noconfirm
pacman -S perl-WWW-RobotRules --noconfirm
pacman -S perl-XML-Parser --noconfirm
pacman -S perl-YAML-Syck --noconfirm
pacman -S perl-inc-latest --noconfirm
pacman -S perl-libwww --noconfirm
pacman -S pinentry --noconfirm
pacman -S pkgconf --noconfirm
pacman -S pkgfile --noconfirm
pacman -S python --noconfirm
pacman -S quilt --noconfirm
pacman -S rebase --noconfirm
pacman -S reflex --noconfirm
pacman -S scons --noconfirm
pacman -S sed --noconfirm
pacman -S subversion --noconfirm
pacman -S swig --noconfirm
pacman -S tar --noconfirm
pacman -S tcl --noconfirm
pacman -S texinfo --noconfirm
pacman -S texinfo-tex --noconfirm
pacman -S tftp-hpa --noconfirm
pacman -S time --noconfirm
pacman -S ttyrec --noconfirm
pacman -S tzcode --noconfirm
pacman -S unrar --noconfirm
pacman -S util-linux --noconfirm
pacman -S vim --noconfirm
pacman -S wget --noconfirm
pacman -S which --noconfirm
pacman -S xmlto --noconfirm
pacman -S xxhash --noconfirm
pacman -S xz --noconfirm
pacman -S zip --noconfirm
pacman -S zlib --noconfirm
pacman -S zlib-devel --noconfirm
pacman -S zstd --noconfirm

Building flrig


This is the only application that can be built reliably under the JTSDK64 at this point. For the future of JT-ware, this is possibly the most important application.

Try This to compile flrig

  • Start the MinGW/MSYS 2 environment

  • Update the environment: pacman -Syuu . You may need 2 iterations of Start Environment / Update Environment to fully update the MinGW/MSYS2 Environment.

  • Deploy the FL-toolkit: pacman -S mingw-w64-x86_64-fltk

  • Download the latest package for flrig from https://sourceforge.net/projects/fldigi/files/flrig/ and save it to x:\JTSDK64-Tools\tools\mingw64\home\<user-profile>\src

  • In your MinGW/MSYS2 terminal type: cd src

  • Inside ~\src type: tar xvfz fl*

  • change into the directory where flrig has been extracted: cd ~/src/flrig-2.0.05

  • Type: ./configure --enable-static CFLAGS="-static" LDFLAGS="-static" CXXFLAGS="-static"

  • Type: make

  • Change into the src directory, where you should fine the built product i.e. cd src

Edit:

  • Change into the directory where flrig has been extracted i.e. cd ~/src/flrig-2.0.05

  • Type: make nsisinst

You should have a readily built flrig.exe installer inside the top of the source tree i.e. ~/src/flrig-2.0.05

We by no means guarantee this to be perfect ! It is very possible that a make install should be executed inside the Hamlib build directory in order to deploy the latest Hamlib into the MSYS2 toolchain !


Building other FL-Apps


This is currently under active research.

We are basing research on steps for fldigi found at: https://sourceforge.net/p/fldigi/wiki/mingw_howto/ .

The build package for fldigi is extremely complex - especially cosidering that it is based around statically built endpoints.

The last time that research was conducted many libraries needed to be recompiled with static end-points based on the notes above.

Integrating such with the JTSDK was deemed impractical at that time. Yet this does not mean that this will always be the case.

The JTSDK is focussed on Dynamically-linked applications - FL_apps are STATICALLY BUILT Applications. As a result there are some interesting hurdles to negotiate.

Watch this space.


Disclaimer


This information is not of merchantable quality; licenses of many tools preclude commercial use and require code released open-source. There is no warranty nor claims possible - nor will be accepted - against any contributor.

Use this resource at your own risk.

Professional technical and ethical standards should be applied at all times. Just because we are Amateurs that does not mean we accept bad behaviour! It is us - many being leaders when we were field professionals - that must be leading the way.

This is a learning and self-education experiment.

There is to be no abuse or bad-mouthing etc. of any contributor working on these Amateur, volunteer efforts.

Unfortunately Amateurs can be their own worst enemies...


Contributions


How Can I Help?

Please test these scripts and those in the Tests folder. Report observations either via the JTSDK Forum or the email address where most most messages come from (if you cannot post). The JTSDK Forum is used somewhat as as 'blog' as information in there is too valuable for the general IT community.

The 'core team' behind this are not PowerShell gurus. This is a learning effort. If you are a PowerShell guru PLEASE PLEASE PLEASE jump in and comment to assist. Send back BETTER SCRIPT. Teach us all.

We especially require people to make these README.md scripts better !

** ALL CONTRIBUTIONS AND COMMENTS ARE GRATEFULLY WELCOMED ** !

Bug Reports

For submitting bug reports and feature requests, use the Issue Tracker.

Reports, suggestions and comments via the JTSDK Forum - or via the email addresses from main contributors there of late if you do not have post access - are essential.


Conclusion and Further References


The aim of JTSDK64-Tools is to use an Agile delivery approach to create a high-quality, yet flexible build system.

Base ref: https://sourceforge.net/projects/jtsdk/files/win64/3.1.0/README.md

Source: README.md, updated 2024-01-24