FROM quay.io/pypa/manylinux2014_i686
ENV MAKEFLAGS="-j 2"
ENV PG_DEP_PREFIX="/usr/local"

# Set up repoforge
COPY RPM-GPG-KEY.dag.txt /tmp/
RUN rpm --import /tmp/RPM-GPG-KEY.dag.txt

#ENV RPMFORGE_FILE "rpmforge-release-0.5.3-1.el5.rf.i386.rpm"
#ADD "https://repoforge.cu.be/redhat/el5/en/i386/dag/RPMS/${RPMFORGE_FILE}" /tmp/${RPMFORGE_FILE}

#RUN rpm -i /tmp/${RPMFORGE_FILE}

# it's okay to install X11 and friends from outdated centos repos because newer
# libs are dynamically loaded at runtime
RUN linux32 yum install -y zlib-devel dbus-devel fontconfig xz systemd-devel \
  mesa-libGLU-devel libcap-devel libxkbcommon-devel \
  libX11-devel libXext-devel libXrandr-devel libXcursor-devel libXfixes-devel \
  libXi-devel libXScrnSaver-devel

# With this we
# 1) Force install prefix to $PG_DEP_PREFIX
# 2) use lib directory within $PG_DEP_PREFIX (and not lib64)
# 3) make release binaries
# 4) build shared libraries
ENV PG_BASE_CMAKE_FLAGS="-DCMAKE_INSTALL_PREFIX=$PG_DEP_PREFIX \
  -DCMAKE_INSTALL_LIBDIR:PATH=lib \
  -DCMAKE_BUILD_TYPE=Release \
  -DBUILD_SHARED_LIBS=true"

ENV PG_BASE_CONFIGURE_FLAGS="--prefix=$PG_DEP_PREFIX"

ENV PG_BASE_MESON_FLAGS="--prefix=$PG_DEP_PREFIX \
  -Dlibdir=lib \
  -Dbuildtype=release \
  -Ddefault_library=shared"

# remember to keep this updated when we drop 3.11 support
ENV PATH="/opt/python/cp311-cp311/bin:$PATH"

ADD pkg-config /pkg-config_build/
RUN ["linux32", "bash", "/pkg-config_build/build-pkg-config.sh"]

ADD buildtools /buildtools/
RUN ["linux32", "bash", "/buildtools/install.sh"]

#ADD zlib-ng /zlib-ng_build/
#RUN ["linux32", "bash", "/zlib-ng_build/build-zlib-ng.sh"]

ADD libjpegturbo /libjpegturbo_build/
RUN ["linux32", "bash", "/libjpegturbo_build/build-jpeg-turbo.sh"]

ADD libpng /libpng_build/
RUN ["linux32", "bash", "/libpng_build/build-png.sh"]

ADD libwebp /webp_build/
RUN ["linux32", "bash", "/webp_build/build-webp.sh"]

ADD libtiff /libtiff_build/
RUN ["linux32", "bash", "/libtiff_build/build-tiff.sh"]

ADD brotli /brotli_build/
RUN ["linux32", "bash", "/brotli_build/build-brotli.sh"]

#ADD bzip2 /bzip2_build/
#RUN ["linux32", "bash", "/bzip2_build/build-bzip2.sh"]

ADD freetype /freetype_build/
RUN ["linux32", "bash", "/freetype_build/build-freetype.sh"]

# Replace yum-installed libasound with the one we just compiled.
RUN ["linux32", "rm", "-f", "/usr/lib/libasound*"]
ADD alsa /alsa_build/
RUN ["linux32", "bash", "/alsa_build/build-alsa.sh"]

ADD ogg /ogg_build/
RUN ["linux32", "bash", "/ogg_build/build-ogg.sh"]

ADD mpg123 /mpg123_build/
RUN ["linux32", "bash", "/mpg123_build/build-mpg123.sh"]

ADD flac /flac_build/
RUN ["linux32", "bash", "/flac_build/build-flac.sh"]

ADD opus /opus_build/
RUN ["linux32", "bash", "/opus_build/build-opus.sh"]

ADD sndfile /sndfile_build/
RUN ["linux32", "bash", "/sndfile_build/build-sndfile.sh"]

ADD pulseaudio /pulseaudio_build/
RUN ["linux32", "bash", "/pulseaudio_build/build-pulseaudio.sh"]

ADD libxmp /libxmp_build/
RUN ["linux32", "bash", "/libxmp_build/build-libxmp.sh"]

ADD libffi /libffi_build/
RUN ["bash", "/libffi_build/build-libffi.sh"]

# explicit install not needed anymore
# ADD gettext /gettext_build/
# RUN ["bash", "/gettext_build/build-gettext.sh"]

ADD glib /glib_build/
RUN ["bash", "/glib_build/build-glib.sh"]

ADD fluidsynth /fluidsynth_build/
RUN ["linux32", "bash", "/fluidsynth_build/build-fluidsynth.sh"]

ADD wavpack /wavpack_build/
RUN ["linux32", "bash", "/wavpack_build/build-wavpack.sh"]

# Build and install SDL
ADD sdl_libs /sdl_build/
RUN ["linux32", "bash", "/sdl_build/build-sdl2-libs.sh"]


ENV MAKEFLAGS=

ADD portmidi /portmidi_build/
RUN ["linux32", "bash", "/portmidi_build/build-portmidi.sh"]

# run strip on built libraries
COPY strip-lib-so-files.sh /tmp/
RUN source /tmp/strip-lib-so-files.sh
