You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
1.4KB

  1. FROM ubuntu:24.04
  2. ENV LANG C.UTF-8
  3. ARG JOBS
  4. # Install make and sudo to bootstrap
  5. ENV DEBIAN_FRONTEND=noninteractive
  6. RUN apt-get update && apt-get install -y --no-install-recommends \
  7. make \
  8. sudo \
  9. ca-certificates \
  10. git \
  11. build-essential \
  12. autoconf \
  13. automake \
  14. bison \
  15. flex \
  16. gawk \
  17. libtool-bin \
  18. libncurses5-dev \
  19. unzip \
  20. zip \
  21. jq \
  22. libgl-dev \
  23. libglu-dev \
  24. git \
  25. wget \
  26. curl \
  27. cmake \
  28. nasm \
  29. xz-utils \
  30. file \
  31. python3 \
  32. libxml2-dev \
  33. libssl-dev \
  34. texinfo \
  35. help2man \
  36. libz-dev \
  37. rsync \
  38. xxd \
  39. perl \
  40. coreutils \
  41. zstd \
  42. markdown \
  43. libarchive-tools \
  44. gettext \
  45. libgmp-dev \
  46. libmpfr-dev
  47. RUN echo "%sudo ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
  48. # Create unprivileged user to build toolchains and plugins
  49. RUN useradd --non-unique --create-home --uid 1000 --gid 1000 --shell /bin/bash build
  50. RUN usermod -aG sudo build
  51. # Switch user from root
  52. USER build
  53. # Create toolchain directory
  54. RUN mkdir -p /home/build/rack-plugin-toolchain
  55. WORKDIR /home/build/rack-plugin-toolchain
  56. COPY Makefile /home/build/rack-plugin-toolchain/
  57. # Clean up files to free up space
  58. USER root
  59. RUN rm -rf /var/lib/apt/lists/*
  60. USER build
  61. COPY MacOSX11.1.sdk.tar.* /home/build/rack-plugin-toolchain/
  62. # Build toolchains
  63. RUN JOBS=$JOBS make toolchain-mac
  64. RUN JOBS=$JOBS make toolchain-win
  65. RUN JOBS=$JOBS make toolchain-lin
  66. RUN JOBS=$JOBS make cppcheck
  67. RUN rm MacOSX11.1.sdk.tar.*