Skip to content

Add some documentation (why do we need wine from winehq)? #44

Add some documentation (why do we need wine from winehq)?

Add some documentation (why do we need wine from winehq)? #44

name: crosscompile_maxima64
on: [push]
env:
BUILD_TYPE: Release
permissions:
contents: read
jobs:
compile_latest:
runs-on: ubuntu-latest
steps:
- name: install_packages
run: |
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install g++-mingw-w64-x86-64 cmake nsis automake texlive texlive-plain-generic texlive-xetex rsync p7zip-full g++ gettext python3 tcl pandoc po4a libgcc-s1:i386 libstdc++6:i386 bsdutils wget
# compiling the Maxima installer with CCL64 requires a recent wine installation (from winehq)...
# If you do not include CCL64 (omit -DWITH_CCL64=YES during the configure step), the wine
# installation from the Ubuntu repository is good (see the 32 bit procedure)
- name: install wine from winehq
run: |
# already done: sudo dpkg --add-architecture i386
sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources
# recommended on https://wiki.winehq.org/Ubuntu#Winehq_key_problems
sudo sed -i s@/usr/share/keyrings/@/etc/apt/keyrings/@ /etc/apt/sources.list.d/winehq-jammy.sources
sudo apt-get update
sudo apt-get install -y --install-recommends winehq-stable
- name: configure compiler
run: |
sudo update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix
sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
- name: checkout maxima
run: |
git clone --depth 1 https://git.code.sf.net/p/maxima/code maxima-code
- name: configure
run: |
mkdir maxima-code/crosscompile-windows/build
cd maxima-code/crosscompile-windows/build
cmake -DWITH_CCL64=YES ..
# It is not required to build every software component with a separate
# make XYZ
# command. A simple 'make' (or 'make package' to build the complete
# installer package) works too. The separate make commands here
# are mostly for a better structured output on Github.
- name: build tcl
run: |
cd maxima-code/crosscompile-windows/build
make tcl
- name: build tk
run: |
cd maxima-code/crosscompile-windows/build
make tk
- name: build clisp
run: |
cd maxima-code/crosscompile-windows/build
make clisp
- name: build sbcl
run: |
cd maxima-code/crosscompile-windows/build
make sbcl
- name: build gnuplot
run: |
cd maxima-code/crosscompile-windows/build
make gnuplot
- name: build vtk
run: |
cd maxima-code/crosscompile-windows/build
make vtk
- name: build texinfo
run: |
cd maxima-code/crosscompile-windows/build
make texinfo
- name: build ccl
run: |
cd maxima-code/crosscompile-windows/build
make ccl
# Building Maxima needs some sort of 'terminal access', therefore use the command 'script' to run this build step.
- name: build maxima
run: |
cd maxima-code/crosscompile-windows/build
script -qc /bin/bash -c "make maxima"
- name: build wxWidgets
run: |
cd maxima-code/crosscompile-windows/build
make wxwidgets
- name: build wxMaxima
run: |
cd maxima-code/crosscompile-windows/build
make wxmaxima
# After everything is compiled, build finally the NSIS installer.
- name: create package
run: |
cd maxima-code/crosscompile-windows/build
make package