FROM fedora

WORKDIR /pspp

RUN dnf -y update              &&\
      dnf install -y             \
      diffutils                  \
      gettext                    \
      git                        \
      glib2-devel                \
      gperf                      \
      ImageMagick                \
      libtool                    \
      make                       \
      mingw64-adwaita-icon-theme \
      mingw64-gsl                \
      mingw64-gtk3               \
      mingw64-gtksourceview3     \
      mingw64-hicolor-icon-theme \
      mingw64-libxml2            \
      mingw64-readline           \
      patch                      \
      texinfo                    \
      which                      \
      wine                     &&\
      dnf clean all

ENV PSPP_BUILD="/pspp/pspp_build"
ENV RUNNER="wine"
ENV SAVANNAH="https://git.savannah.gnu.org/git"
ENV SYS_ROOT="/usr/x86_64-w64-mingw32/sys-root/mingw"

RUN git clone $SAVANNAH/pspp.git &&\
      git clone $SAVANNAH/ssw.git &&\
      git clone $SAVANNAH/gnulib.git

WORKDIR /pspp/ssw
RUN ./bootstrap && mingw64-configure && make -j$(nproc) install

WORKDIR /pspp/gnulib
RUN git checkout $(grep "  commit " /pspp/pspp/README.Git | cut -d ' ' -f 4)

WORKDIR /pspp/pspp
COPY patches ./patches
RUN ls patches | while read NAME; do patch -p1 < patches/$NAME; done
RUN make -f Smake -j$(nproc)
RUN mingw64-configure \
      --enable-relocatable \
      --prefix=$PSPP_BUILD \
      --exec-prefix=$PSPP_BUILD \
      --bindir=$PSPP_BUILD/bin \
      --sysconfdir=$PSPP_BUILD/etc \
      --datadir=$PSPP_BUILD/share
RUN make -j$(nproc)
RUN make -j$(nproc) check
