lammps/tools/mingw-crossb1df2f770556master
mingw-cross
README
Notes for cross-compiling LAMMPS in multiple variants from Fedora Linux to 32-bit and 64-bit Windows using the provided MinGW64/gcc toolchain.
Set up a suitable (virtual) machine and install the following packages: make git vim-enhanced cmake dos2unix htmldoc mingw32-nsis mingw32-gcc-c++ mingw32-gcc-gfortran mingw32-libjpeg-static mingw32-pthreads-static mingw32-libgomp mingw32-libpng-static mingw64-gcc-c++ mingw64-gcc-gfortran mingw64-libjpeg-static mingw64-pthreads-static mingw64-libgomp mingw64-libpng-static
Create user 'winbuild' and set password. Use 'visudo' to allow 'winbuild' to shutdown the virtual machine without a password by adding the line:
winbuild ALL = NOPASSWD: /sbin/shutdown
Log in and create ssh key pair and append the public key the .ssh/authorized_keys file of the repository account for automatic file transfer
Edit $HOME/.bash_profile to set environment variables for depositing files MINGW_REPO_HOST MINGW_REPO_USER MINGW_REPO_DIR
Clone LAMMPS-ICMS tree via: git clone git://git.icms.temple.edu/lammps-icms.git lammps-icms
From now on, to build and sync the windows installers to the repository with: cd ~/lammps-icms; git pull ./tools/mingw-cross/build-mingw-cross.sh ./tools/mingw-cross/sync-to-repo.sh
Cross compiling an OpenCL installable driver library:
- download OpenCL-1.2 headers from the Khronos website and copy them to ${MY_OPENCL_DIR}/include/CL
- download OpenCL ICD builder from the Khronos website, unpackage it and apply the opencl-icd-1.2.11.patch mkdir inc/CL cp ${MY_OPENCL_DIR}/include/CL/* inc/CL
- create a build-32 directory, cd into it, and run: cmake -DCMAKE_TOOLCHAIN_FILE=${LAMMPS_PATH}/tools/mingw-cross/Toolchain-cross-mingw32-linux.cmake -DCMAKE_C_FLAGS=-DIGNORE_DIRECTX ..
make OpenCL
- For building the 64-bit version correspondingly do inside a build-64 directory: cmake -DCMAKE_TOOLCHAIN_FILE=${LAMMPS_PATH}/tools/mingw-cross/Toolchain-cross-mingw64-linux.cmake -DCMAKE_C_FLAGS=-DIGNORE_DIRECTX .. make OpenCL
the resulting libOpenCL.dll files are copied to ${LAMMPS_PATH}/tools/mingw-cross/OpenCL/{lib,lib64}