Build external libraries on Dockerfile

This commit is contained in:
DataHoarder 2022-07-20 12:13:39 +02:00
parent bf1b5265f3
commit eb9da3bc9f
Signed by: DataHoarder
SSH Key Fingerprint: SHA256:OLTRf6Fl87G52SiR7sWLGNzlJt4WOX+tfI2yxo0z7xk
1 changed files with 54 additions and 5 deletions

View File

@ -2,15 +2,63 @@ FROM golang:1.18-bullseye
WORKDIR /src
ENV CFLAGS="-march=native -Ofast -flto"
ENV CXXFLAGS="-march=native -Ofast -flto"
ENV LDFLAGS="-flto"
ENV CGO_CFLAGS="-march=native -Ofast"
RUN DEBIAN_FRONTEND=noninteractive apt update && \
DEBIAN_FRONTEND=noninteractive apt install -y \
git build-essential autoconf automake libtool \
libflac-dev libopus-dev libopusfile-dev libsamplerate0-dev libmp3lame-dev libebur128-dev && \
git clone --depth 1 https://github.com/xiph/libopusenc.git && cd libopusenc && \
git build-essential autoconf automake cmake make libtool libtool-bin gettext \
libssl-dev && \
git clone --depth 1 --branch 0.2.2 https://github.com/libsndfile/libsamplerate.git && cd libsamplerate && \
./autogen.sh && \
./configure --prefix /usr && \
make && \
make install && \
make install && \
cd .. && \
git clone --depth 1 --branch v1.2.6 https://github.com/jiixyj/libebur128.git && cd libebur128 && \
mkdir build && cd build && \
cmake .. -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_BUILD_TYPE=Release && \
make && \
make install && \
cd ../.. && \
wget https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz -O lame-3.100.tar.gz && \
tar -xzvf lame-3.100.tar.gz && \
cd lame-3.100 && \
./configure --prefix /usr && \
make && \
make install && \
cd .. && \
git clone --depth 1 --branch v1.3.5 https://github.com/xiph/ogg.git && cd ogg && \
./autogen.sh && \
./configure --prefix /usr && \
make && \
make install && \
cd .. && \
git clone --branch master https://github.com/xiph/opus.git && cd opus && \
./autogen.sh && \
./configure --enable-float-approx --prefix /usr && \
make && \
make install && \
cd .. && \
git clone --depth 1 --branch v0.12 https://github.com/xiph/opusfile.git && cd opusfile && \
./autogen.sh && \
./configure --prefix /usr && \
make && \
make install && \
cd .. && \
git clone --depth 1 --branch master https://github.com/xiph/libopusenc.git && cd libopusenc && \
./autogen.sh && \
./configure --prefix /usr && \
make && \
make install && \
cd .. && \
git clone --depth 1 --branch 1.3.4 https://github.com/xiph/flac.git && cd flac && \
./autogen.sh && \
./configure --prefix /usr && \
make && \
make install && \
cd .. && \
git clone --depth 1 https://github.com/mstorsjo/fdk-aac.git && cd fdk-aac && \
./autogen.sh && \
@ -24,10 +72,11 @@ RUN DEBIAN_FRONTEND=noninteractive apt update && \
make -j$(nproc) && \
make install && \
cd .. && \
rm -rf /src/libopusenc /src/fdk-aac /src/alac
rm -rf /src/libsamplerate /src/libebur128 /src/lame-3.100 /src/ogg /src/opus /src/opusfile /src/flac /src/libopusenc /src/fdk-aac /src/alac
COPY . /code
WORKDIR /code
RUN go build -v -o /usr/bin/MeteorLight . && rm -rf /code