diff --git a/Dockerfile b/Dockerfile index 9849f6c..853c5fa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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