SHELL:=/bin/bash UBUNTU_VERSION ?= 2404 CODENAME ?= noble VERSION:=7.1 build: $(CODENAME)/cppse-ffmpeg_$(VERSION)_amd64.deb $(CODENAME)/cppse-ffmpeg_$(VERSION)_amd64.deb: mkdir -p $(CODENAME) make ubuntu$(UBUNTU_VERSION) ubuntu$(UBUNTU_VERSION): git clone -b stable https://code.videolan.org/videolan/x264 || true git clone -b n$(VERSION) https://github.com/FFmpeg/FFmpeg ffmpeg || true bash ../ubuntu$(UBUNTU_VERSION).sh make ffmpeg_impl make package-ubuntu$(UBUNTU_VERSION) bash ../ubuntu$(UBUNTU_VERSION).sh chown $$(id -u):$$(id -g) . -R # fix permissions ffmpeg_impl: # see issue https://exerror.com/fatal-detected-dubious-ownership-in-repository/ git config --global --add safe.directory '*' apt-get update sudo apt-get install -y yasm sudo apt-get install -y nasm # apparently x264 switched to this mkdir -p x264_out mkdir -p ffmpeg_out cp -prv 5.1-0004-fix-binutils.patch ffmpeg/ pushd x264 && \ echo pass pushd x264 && \ ./configure --cxx=$$(which c++) --enable-static --enable-shared --prefix=$$(realpath $$PWD/../x264_out) && \ make -j $$(nproc) && \ make install pushd x264 && \ ./configure --cxx=$$(which c++) --enable-static --enable-shared && \ make -j $$(nproc) && \ make install pushd ffmpeg && git checkout n7.1 pushd ffmpeg && \ ./configure --cxx=$$(which c++) --enable-static --enable-shared --enable-libx264 --enable-gpl --enable-swresample --disable-libdrm --prefix=$$(realpath $$PWD/../ffmpeg_out) && \ make -j $$(nproc) && \ make install package-ubuntu$(UBUNTU_VERSION): rm -rf out mkdir -p out/opt/cppse/build/x264 mkdir -p out/opt/cppse/build/ffmpeg cp -prv ./x264_out/* out/opt/cppse/build/x264/ cp -prv ./ffmpeg_out/* out/opt/cppse/build/ffmpeg/ rm -rf $(CODENAME)/cppse-ffmpeg_*_amd64.deb docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:24.04 fpm -f -v $(VERSION) --iteration $(CODENAME) -s dir -t deb -n cppse-ffmpeg --license MPL2 --maintainer "Ray Burgemeestre " --description "ffmpeg - build dependency" --url "https://gitea.cppse.nl/rayburgemeestre/build-config/src/branch/master/ffmpeg" --deb-generate-changes -C /src/out cp -prv cppse-ffmpeg_*_amd64.deb $(CODENAME)/ clean: rm -rf x264 rm -rf ffmpeg rm -rf out rm -rf x264_out rm -rf ffmpeg_out shell: FLAGS="-i --privileged" bash ../ubuntu$(UBUNTU_VERSION).sh /bin/bash