mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 13:10:19 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			244 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			244 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Linux
 | |
| =====
 | |
| 
 | |
| Debian style:
 | |
| 
 | |
| sudo apt install libboost-all-dev
 | |
| 
 | |
| RPM style:
 | |
| 
 | |
| sudo dnf install boost-devel
 | |
| 
 | |
| 
 | |
| macOS
 | |
| =====
 | |
| 
 | |
| Download the latest Boost sources from here: boost.org
 | |
| 
 | |
| Currently v 1.74.0 -
 | |
| https://dl.bintray.com/boostorg/release/1.74.0/source/boost_1_74_0.tar.bz2
 | |
| 
 | |
| cd ~/Downloads
 | |
| curl -L -O https://dl.bintray.com/boostorg/release/1.74.0/source/boost_1_74_0.tar.bz2
 | |
| mkdir src
 | |
| cd !$
 | |
| tar --bzip2 -xf ~/Downloads/boost_1_74_0.tar.bz2
 | |
| cd boost_1_74_0/tools/build
 | |
| ./bootstrap.sh
 | |
| ./b2 toolset=clang --prefix=$HOME/local/boost-build install
 | |
| cd ../..
 | |
| ~/local/boost-build/bin/b2 -j8 toolset=clang cflags=-mmacosx-version-min=10.12 \
 | |
|    cxxflags=-mmacosx-version-min=10.12 mflags=-mmacosx-version-min=10.12 \
 | |
|    mmflags=-mmacosx-version-min=10.12 mflags=-mmacosx-version-min=10.12 \
 | |
|    linkflags=-mmacosx-version-min=10.12 \
 | |
|    architecture=x86 address-model=64 --prefix=$HOME/local/boost install
 | |
| 
 | |
| That will take a while, once  successful (warnings can be ignored) you
 | |
| can clean the build tree to save some space:
 | |
| 
 | |
| ~/local/boost-build/bin/b2 toolset=clang cflags=-mmacosx-version-min=10.12 \
 | |
|    cxxflags=-mmacosx-version-min=10.12 mflags=-mmacosx-version-min=10.12 \
 | |
|    mmflags=-mmacosx-version-min=10.12 mflags=-mmacosx-version-min=10.12 \
 | |
|    linkflags=-mmacosx-version-min=10.12 \
 | |
|    architecture=x86 address-model=64 --prefix=$HOME/local/boost clean
 | |
| 
 | |
| All that remains is to reconfigure  your WSJT-X build trees to include
 | |
| ~/local/boost in  your CMAKE_PREFIX_PATH,  maybe something  like these
 | |
| (one each for  Debug and Release configuration builds  and assumes the
 | |
| Macports GCC v7 tool-chain is being used):
 | |
| 
 | |
| FC=gfortran-mp-7 \
 | |
|    cmake \
 | |
|    -D CMAKE_PREFIX_PATH:PATH=~/local/boost\;~/Qt/5.15.0/clang_64\;~/local/hamlib/release\;/opt/local \
 | |
|    -D CMAKE_INSTALL_PREFIX=~/local/wsjtx/release \
 | |
|    -D CMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk \
 | |
|    -D CMAKE_BUILD_TYPE=Release \
 | |
|    -B ~/build/wsjtx-release \
 | |
|    ~/src/bitbucket.org/k1jt/wsjtx
 | |
| 
 | |
| FC=gfortran-mp-7 \
 | |
|    cmake \
 | |
|    -D CMAKE_PREFIX_PATH:PATH=~/local/boost\;~/Qt/5.15.0/clang_64\;~/local/hamlib/debug\;/opt/local \
 | |
|    -D CMAKE_INSTALL_PREFIX=~/local/wsjtx/debug \
 | |
|    -D CMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk \
 | |
|    -D CMAKE_BUILD_TYPE=Debug \
 | |
|    -B ~/build/wsjtx-debug \
 | |
|    ~/src/bitbucket.org/k1jt/wsjtx
 | |
| 
 | |
| Substitute you  installed SDK  version, Qt  version and  location, and
 | |
| Hamlib install locations.
 | |
| 
 | |
| 
 | |
| MS Windows
 | |
| ==========
 | |
| 
 | |
| Because 32-bit and 64-bit builds are possible and each use different
 | |
| tool-chains, two separate builds are necessary if both architectures
 | |
| are required.
 | |
| 
 | |
| Common steps
 | |
| ------------
 | |
| 
 | |
| Download and extract the latest Boost library sources, at the time of
 | |
| writing that was
 | |
| https://dl.bintray.com/boostorg/release/1.74.0/source/boost_1_74_0.7z
 | |
| . Extract to some convenient location, I use %USERPROFILE%\src .
 | |
| 
 | |
| Download    and     extract    the    libbacktrace     sources    from
 | |
| https://github.com/ianlancetaylor/libbacktrace as follows.
 | |
| 
 | |
| cd %USERPROFILE%\src
 | |
| mkdir github.com
 | |
| cd github.com
 | |
| mkdir ianlancetaylor
 | |
| cd ianlancetaylor
 | |
| git clone git@github.com:ianlancetaylor/libbacktrace.git
 | |
| 
 | |
| I  install  third-party  tools   under  the  C:\Tools  directory,  the
 | |
| following assumes that, adjust to taste. Note that it is OK to install
 | |
| both 32- and  64-bit builds of Boost  to the same path  as the library
 | |
| names are unique per architecture and  tool-chain. This saves a lot of
 | |
| space as the boost header files are  quite big, and there's no need to
 | |
| install multiple copies.
 | |
| 
 | |
| Create  a  new file  %USERPROFILE%\src\boost_1_74_0\project-config.jam
 | |
| with the  following three lines  to specify how Boost.Build  finds the
 | |
| libbacktrace library matched to your relevant C++ compliers:
 | |
| 
 | |
| import toolset ;
 | |
| 
 | |
| using gcc : : C:\\Qt\\Tools\\mingw730_32\\bin\\g++ : <compileflags>-I"C:\\Tools\\libbacktrace-1.0\\MinGW32\\include" <linkflags>-L"C:\\Tools\\libbacktrace-1.0\\MinGW32\\lib" ;
 | |
| 
 | |
| using gcc : 8~64 : C:\\Qt\\Tools\\mingw810_64\\bin\\g++ : <compileflags>-I"C:\\Tools\\libbacktrace-1.0\\MinGW64\\include" <linkflags>-L"C:\\Tools\\libbacktrace-1.0\\MinGW64\\lib" ;
 | |
| 
 | |
| Note  that it  may  need some  local adjustment  of  the C++  compiler
 | |
| version  and path  depending on  the  exact tool-chains  from your  Qt
 | |
| installation. Above  I am using  the Qt v5.12.9 MinGW32  v7 tool-chain
 | |
| for 32-bit  (toolset=gcc), and  Qt v5.15.0  MinGW64 v8  tool-chain for
 | |
| 64-bit (toolchain=gcc-8~64).
 | |
| 
 | |
| 32-bit
 | |
| ------
 | |
| 
 | |
| Start an  MSys or MSys2  shell with  the 32-bit C/C++  tool-chain from
 | |
| your Qt installation on the PATH environment variable.
 | |
| 
 | |
| cd ~/src/github.com/ianlancetaylor/libbacktrace
 | |
| ./configure --prefix=/c/Tools/libbacktrace-1.0/MinGW32
 | |
| make && make install
 | |
| make clean
 | |
| 
 | |
| Start a  CMD window suitably  configured for  use of the  32-bit MinGW
 | |
| tool-chain  bundled  with  your  Qt binary  installation.  Verify  the
 | |
| correct compiler is in the PATH. i.e. it identifies (g++ --version) as
 | |
| i686-posix-dwarf-rev0.
 | |
| 
 | |
| cd %USERPROFILE%\src\boost_1_74_0\tools\build
 | |
| bootstrap.bat mingw
 | |
| .\b2 --prefix=C:\Tools\boost-build\MinGW32 install
 | |
| cd ..\..
 | |
| C:\Tools\boost-build\MinGW32\bin\b2 -j8 toolset=gcc ^
 | |
|   --build-dir=%USERPROFILE%\build\boost ^
 | |
|   address-model=32 architecture=x86 variant=debug,release ^
 | |
|   link=shared threading=multi ^
 | |
|   --with-log --with-stacktrace --with-timer --prefix=C:\Tools\boost install
 | |
| 
 | |
| If all is  well you should see  the following line about a  1/3 of the
 | |
| way through the initial configuration steps.
 | |
| 
 | |
|    - libbacktrace builds      : yes
 | |
| 
 | |
| After some time it should complete with something like:
 | |
| 
 | |
| ...failed updating 1574 targets...
 | |
| ...skipped 1112 targets...
 | |
| ...updated 3924 targets...
 | |
| 
 | |
| warnings can usually  be ignored. If successful; you  can release some
 | |
| space by cleaning the build tree:
 | |
| 
 | |
| C:\Tools\boost-build\MinGW32\bin\b2 toolset=gcc ^
 | |
|   --build-dir=%USERPROFILE%\build\boost ^
 | |
|   --build-type=complete clean
 | |
| 
 | |
| 64-bit
 | |
| ======
 | |
| 
 | |
| Start an  MSys or MSys2  shell with  the 64-bit C/C++  tool-chain from
 | |
| your Qt installation on the PATH environment variable.
 | |
| 
 | |
| cd ~/src/github.com/ianlancetaylor/libbacktrace
 | |
| ./configure --prefix=/c/Tools/libbacktrace-1.0/MinGW64
 | |
| make && make install
 | |
| make clean
 | |
| 
 | |
| Start a  CMD window suitably  configured for  use of the  64-bit MinGW
 | |
| tool-chain  bundled  with  your  Qt binary  installation.  Verify  the
 | |
| correct compiler is in the PATH. i.e. it identifies (g++ --version) as
 | |
| x86_64-posix-seh-rev0. Note  the toolchain  specified must  match your
 | |
| compilers and the project-config.jam file you created above. With a v7
 | |
| 64-bit C++  compiler use gcc-7~64, with  a v8 64-bit C++  compiler use
 | |
| gcc-8~64. My  example matches  my 64-bit Qt  v5.15.0 with  the bundled
 | |
| MinGW64 v8.1.0.
 | |
| 
 | |
| cd %USERPROFILE%\src\boost_1_74_0\tools\build
 | |
| bootstrap.bat mingw
 | |
| .\b2 --prefix=C:\Tools\boost-build\MinGW64 install
 | |
| cd ..\..
 | |
| C:\Tools\boost-build\MinGW64\bin\b2 -j8 toolset=gcc-8~64 ^
 | |
|   address-model=64 architecture=x86 variant=debug,release ^
 | |
|   link=shared threading=multi ^
 | |
|   --with-log --with-stacktrace --with-timer ^
 | |
|   --build-dir=%USERPROFILE%\build\boost ^
 | |
|   --prefix=C:\Tools\boost install
 | |
| 
 | |
| If all is well you should see the following line about a 1/3 of the
 | |
| way through the initial configuration steps.
 | |
| 
 | |
|    - libbacktrace builds      : yes
 | |
| 
 | |
| After some time it should complete with something like:
 | |
| 
 | |
| ...failed updating 108 targets...
 | |
| ...skipped 32 targets...
 | |
| ...updated 3648 targets...
 | |
| 
 | |
| warnings can usually  be ignored. If successful; you  can release some
 | |
| space by cleaning the build tree:
 | |
| 
 | |
| C:\Tools\boost-build\MinGW64\bin\b2 toolset=gcc-8~64 ^
 | |
|   address-model=64 --build-dir=%USERPROFILE%\build\boost ^
 | |
|   --build-type=complete clean
 | |
| 
 | |
| 
 | |
| Run-time Environment
 | |
| --------------------
 | |
| 
 | |
| You  will need  to  add C:\Tools\boost\lib  to  your PATH  environment
 | |
| variable in order to run  installed Debug configurations of WSJT-X, or
 | |
| to execute  build artefacts from a  build tree. It is  also needed for
 | |
| teh install target of  release configuration builds. Installed Release
 | |
| configurations will  move any  required DLLs  to the  installation bin
 | |
| directory automatically.
 | |
| 
 | |
| Setting up WSJT-X builds
 | |
| ------------------------
 | |
| 
 | |
| All that  remains is  to add  C:\Tools\boost\ to  your 32-  and 64-bit
 | |
| build  configurations CMAKE_PREFIX_PATH  variables.  I use  tool-chain
 | |
| files for my WSJT-X builds on Windows, an extract from my 32-bit Debug
 | |
| configuration tool-chain file:
 | |
| 
 | |
| # ...
 | |
| 
 | |
| set (BOOSTDIR C:/Tools/boost)
 | |
| set (QTDIR C:/Qt/5.15.2/mingw81_32)
 | |
| set (FFTWDIR C:/Tools/fftw-3.3.5-dll32)
 | |
| set (HAMLIBDIR C:/test-install/hamlib/mingw32/debug)
 | |
| set (LIBUSBDIR C:/Tools/libusb-1.0.23)
 | |
| 
 | |
| # where to find required packages
 | |
| set (CMAKE_PREFIX_PATH ${BOOSTDIR} ${QTDIR} ${FFTWDIR} ${HAMLIBDIR} ${HAMLIBDIR}/bin ${LIBUSBDIR})
 | |
| 
 | |
| # ...
 |