#!/usr/bin/make -f DPKG_EXPORT_BUILDFLAGS = 1 include /usr/share/dpkg/default.mk export DEB_BUILD_MAINT_OPTIONS = hardening=+all # Erlang gregorian seconds = Unix seconds + seconds from year 0 to 1970 ERLANG_EPOCH := $(shell expr $(SOURCE_DATE_EPOCH) + 62167219200) %: dh $@ --buildsystem=cmake --sourcedirectory=app --builddirectory=app override_dh_auto_configure: cd app/server/ruby/vendor/ruby-beautify/lib && \ cp ruby-beautify.rb ruby-beautify-legacy.rb && \ cp -r ruby-beautify ruby-beautify-legacy && \ chmod 644 ruby-beautify-legacy.rb ruby-beautify-legacy/*.rb ruby-beautify-legacy/config/*.rb # use system fonts instead of bundled ones mkdir -p app/gui/fonts/ ln -sf /usr/share/fonts/truetype/hack/*.ttf app/gui/fonts/ # linux-pre-translations.sh ruby app/server/ruby/bin/i18n-tool.rb -t cp app/gui/utils/ruby_help.tmpl app/gui/utils/ruby_help.h ruby app/server/ruby/bin/qt-doc.rb # linux-config.sh dh_auto_configure -- \ -DUSE_SYSTEM_LIBS=ON \ -DUSE_SYSTEM_RTMIDI=ON \ -DBUILD_IMGUI_INTERFACE=OFF \ -DQSCINTILLA_ROOT=/usr/include/$(DEB_HOST_MULTIARCH)/qt6 override_dh_auto_build: dh_auto_build # linux-post-tau-prod-release.sh ln -sfT ../../../../elixir-deps app/server/beam/tau/deps cd app/server/beam/tau && \ export MIX_ENV=prod MIX_HOME=$$PWD/.mix ERL_COMPILER_OPTIONS=deterministic && \ mix local.rebar rebar3 /usr/bin/rebar3 && \ mix deps.compile && \ mix phx.digest && \ mix release --overwrite --no-deps-check echo -n "sonic-pi-tau-$(SOURCE_DATE_EPOCH)" | sha256sum | cut -c1-64 \ > app/server/beam/tau/_build/prod/rel/tau/releases/COOKIE sed -i 's/"mtime":[[:space:]]*[0-9]*/"mtime":$(ERLANG_EPOCH)/g' \ app/server/beam/tau/_build/prod/rel/tau/lib/tau-*/priv/static/cache_manifest.json find app/server/beam/tau/_build -type f -name "*.bat" -delete find app/server -type f -name .gitignore -delete # symlink system packages for dir in app/server/beam/tau/_build/prod/rel/tau/lib/*; do \ name=$$(basename "$$dir"); \ if [ -d "/usr/lib/erlang/lib/$$name" ]; then \ rm -rf "$$dir"; \ ln -sf "/usr/lib/erlang/lib/$$name" "$$dir"; \ fi; \ done for dir in app/server/beam/tau/_build/prod/rel/tau/erts-*; do \ name=$$(basename "$$dir"); \ if [ -d "/usr/lib/erlang/$$name" ]; then \ rm -rf "$$dir"; \ ln -sf "/usr/lib/erlang/$$name" "$$dir"; \ fi; \ done override_dh_shlibdeps: dh_shlibdeps erlang-depends override_dh_auto_test: ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) cd app/server/ruby/test && \ ruby -e 'require "ruby_debian_dev"; include RubyDebianDev; SUPPORTED_RUBY_VERSIONS.each { |v, b| system("#{b} /usr/bin/rake test") or raise "test failed for #{v}" }' dh_auto_test endif elixir_deps_rebuild: cd app/server/beam/tau && \ rm -rf deps && \ MIX_ENV=prod mix deps.get --only prod tar -cJf elixir-deps.tar.xz -C app/server/beam/tau/deps .