SHELL:=/bin/bash UBUNTU_VERSION ?= 2404 CODENAME ?= noble VERSION:=7.1.3 build: $(CODENAME)/cppse-fmt_$(VERSION)_amd64.deb $(CODENAME)/cppse-fmt_$(VERSION)_amd64.deb: mkdir -p $(CODENAME) make ubuntu$(UBUNTU_VERSION) ubuntu$(UBUNTU_VERSION): git clone https://github.com/rayburgemeestre/fmt --branch 7.1.3 bash ../ubuntu$(UBUNTU_VERSION).sh make impl bash ../ubuntu$(UBUNTU_VERSION).sh make impl-emscripten make package-ubuntu$(UBUNTU_VERSION) bash ../ubuntu$(UBUNTU_VERSION).sh chown $$(id -u):$$(id -g) . -R # fix permissions impl: switch-to-latest-clang apt-get update && apt-get install libz-dev -y && \ pushd fmt && \ mkdir build && pushd build && \ CXX=$$(which c++) cmake -DCMAKE_C_FLAGS=-fPIC -DFMT_TEST=off -DCMAKE_CXX_FLAGS=-fPIC -DCMAKE_INSTALL_PREFIX=$$PWD/fmt_out .. && \ make -j $$(nproc) && \ make install impl-emscripten: switch-to-latest-clang apt-get update && apt-get install libz-dev -y && \ pushd fmt && \ mkdir build2 && pushd build2 && \ CXX=/emsdk/upstream/emscripten/em++ cmake -DFMT_TEST=off -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC -DCMAKE_INSTALL_PREFIX=$$PWD/fmt_out .. && \ make -j $$(nproc) && \ make install package-ubuntu$(UBUNTU_VERSION): rm -rf out mkdir -p out/opt/cppse/build/fmt cp -prv fmt/build/fmt_out/* out/opt/cppse/build/fmt/ cp -prv fmt/build2/fmt_out/lib/libfmt.a out/opt/cppse/build/fmt/lib/libfmt-em.a rm -rf $(CODENAME)/cppse-fmt_*_amd64.deb docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:24.04 fpm -f -v $(VERSION) --iteration $(CODENAME) -s dir -t deb -n cppse-fmt --license MPL2 --maintainer "Ray Burgemeestre " --description "fmt - build dependency" --url "https://github.com/mattgodbolt/fmt" --deb-generate-changes -C /src/out cp -prv cppse-fmt_*_amd64.deb $(CODENAME)/ clean: rm -rf fmt rm -rf out shell: FLAGS="-i --privileged" bash ../ubuntu2004.sh /bin/bash