name: cygwin on: push jobs: fedora-build: runs-on: ubuntu-latest container: fedora:latest strategy: fail-fast: false matrix: include: - target: x86_64-pc-cygwin pkgarch: 64 name: Fedora cross ${{ matrix.target }} steps: - uses: actions/checkout@v2 # install build tools - run: dnf install -y autoconf automake make patch perl - run: dnf install -y mingw${{ matrix.pkgarch }}-gcc-c++ mingw${{ matrix.pkgarch }}-winpthreads-static mingw${{ matrix.pkgarch }}-zlib-static # enable 'dnf copr' - run: dnf install -y dnf-plugins-core # cocom isn't packaged in Fedora, so we install from a copr - run: dnf copr enable -y jturney/cocom - run: dnf install -y cocom # install cross-cygwin toolchain and libs from copr - run: dnf copr enable -y yselkowitz/cygwin - run: dnf install -y cygwin${{ matrix.pkgarch }}-gcc-c++ cygwin${{ matrix.pkgarch }}-gettext cygwin${{ matrix.pkgarch }}-libbfd cygwin${{ matrix.pkgarch }}-libiconv cygwin${{ matrix.pkgarch }}-zlib # install doc tools - run: dnf install -y dblatex docbook2X docbook-xsl xmlto - run: dnf install -y python3 python3-lxml python3-ply - run: fmtutil-sys --byfmt pdflatex && texhash # build - run: mkdir build install - run: cd winsup && ./autogen.sh - run: cd build && ../configure --target=${{ matrix.target }} --prefix=$(realpath $(pwd)/../install) - run: make -C build - run: make -C build/*/newlib info man - run: make -C build install - run: make -C build/*/newlib install-info install-man windows-build: runs-on: windows-latest strategy: fail-fast: false matrix: include: - target: x86_64-pc-cygwin pkgarch: x86_64 name: Windows native ${{ matrix.pkgarch }} steps: # checkout action uses the native git (we can avoid this messing up line # endings, but this could still be dangerous e.g if we need symlinks in the # repo) - run: git config --global core.autocrlf input - uses: actions/checkout@v2 # install cygwin and build tools - name: Install Cygwin uses: cygwin/cygwin-install-action@master with: platform: ${{ matrix.pkgarch }} packages: >- autoconf, automake, cocom, dblatex, dejagnu, docbook-xml45, docbook-xsl, docbook2X, gcc-g++, gettext-devel, libiconv, libiconv-devel, make, mingw64-${{ matrix.pkgarch }}-gcc-g++, mingw64-${{ matrix.pkgarch }}-zlib, patch, perl, python39-lxml, python39-ply, texlive-collection-fontsrecommended, texlive-collection-latexrecommended, texlive-collection-pictures, xmlto, zlib-devel # build - name: Build Cygwin run: >- export PATH=/usr/bin:$(cygpath ${SYSTEMROOT})/system32 && mkdir build install && (cd winsup; ./autogen.sh) && cd build && ../configure --prefix=$(realpath $(pwd)/../install) -v && export MAKEFLAGS=-j$(nproc) && make && make install && (cd */newlib; make info man) && (cd */newlib; make install-info install-man) shell: C:\cygwin\bin\bash.exe --noprofile --norc -eo pipefail '{0}' # test - name: Test Cygwin run: >- export PATH=/usr/bin:$(cygpath ${SYSTEMROOT})/system32 && export MAKEFLAGS=-j$(nproc) && cd build && (export PATH=${{ matrix.target }}/winsup/testsuite/runtime:${PATH} && cmd /c $(cygpath -wa ${{ matrix.target }}/winsup/cygserver/cygserver) &) && (cd ${{ matrix.target }}/winsup; make check || true) shell: C:\cygwin\bin\bash.exe --noprofile --norc -eo pipefail '{0}'