#!/usr/bin/make -f export DEB_BUILD_MAINT_OPTIONS = hardening=+all # see ENVIRONMENT in dpkg-buildflags(1) export DEB_CPPFLAGS_MAINT_APPEND = export DEB_CXXFLAGS_MAINT_APPEND = export DEB_LDFLAGS_MAINT_APPEND = # workaround for an FST bug DEB_CPPFLAGS_MAINT_APPEND += -D_fstEffect=AEffect DATE_FMT = %Y-%m-%d ifdef SOURCE_DATE_EPOCH BUILD_DATE ?= $(shell date -u -d "@$(SOURCE_DATE_EPOCH)" "+$(DATE_FMT)" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" "+$(DATE_FMT)" 2>/dev/null || date -u "+$(DATE_FMT)") else BUILD_DATE ?= $(shell date "+$(DATE_FMT)") endif JUCE_VERSION := $(shell dpkg-query --show --showformat='$${source:Version}' juce-modules-source juce-modules-source-data | head -1) pkglibs = libjpeg libpng libcurl rtaudio DEB_CPPFLAGS_MAINT_APPEND += -DBUILD_DATE='"$(BUILD_DATE)"' -DTEST_RESOURCES_DIR='"tests/resources/"' DEB_CXXFLAGS_MAINT_APPEND += -std=c++17 -Wno-error -Wno-error=format-security DEB_CXXFLAGS_MAINT_APPEND += $(shell pkg-config --cflags $(pkglibs)) DEB_LDFLAGS_MAINT_APPEND += $(shell pkg-config --libs $(pkglibs)) # JUCE (used by giada) uses some c++11 features requiring atomic_store_8 and # atomic_load_8, so we need to link with libatomic on # armel, powerpc, powerpcspe, m68k, mips, mipsel, sh4, ... # see also: # - https://gcc.gnu.org/wiki/Atomic # - https://gcc.gnu.org/wiki/Atomic/GCCMM/LIbrary # - the 'clasp' packaging noatomicarch = $(shell dpkg-architecture -qDEB_HOST_ARCH | egrep -x "(armel|powerpc|powerpcspe|m68k|mips|mipsel|sh4|riscv64)") # link with libatomic on architectures without built-in atomic ifeq ($(if $(noatomicarch),atomic), atomic) DEB_LDFLAGS_MAINT_APPEND += -latomic endif %: dh $@ execute_before_dh_auto_configure: for d in $(notdir $(patsubst %/,%,$(wildcard debian/missing-sources/mcl-*/))); do \ mkdir -p src/deps/$$d/src/; \ cp debian/missing-sources/$$d/* src/deps/$$d/src/; \ done cp -ra /usr/share/juce src/deps/ # patch around some bugs in FST sed -e 's|\(.*t_fstTimeInfo.smpteFrameRate.*\)|};\ntypedef enum {\1|' -e 's|\(.*SmpteFilm35mm.*\)|\1 } VstSmpteFrameRate;\nenum {dummy_enum|' /usr/include/pluginterfaces/fst/fst.h > src/deps/juce/modules/juce_audio_processors/format_types/fst.h sed -e 's||"fst.h"|' -i src/deps/juce/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp override_dh_auto_configure: dh_auto_configure -- \ -DWITH_VST2=ON \ $(empty) override_dh_auto_test: HOME=/tmp xvfb-run -a dh_auto_test -a || (grep . test-suite.log giada_test.log; false) execute_after_dh_clean: test -e src/deps/rtaudio-mode/Makefile && make -C src/deps/rtaudio-mod/ distclean || true for d in $(notdir $(patsubst %/,%,$(wildcard debian/missing-sources/mcl-*/))); do \ rm -rf src/deps/$$d; \ done rm -rf src/deps/juce/ override_dh_installchangelogs: dh_installchangelogs ChangeLog override_dh_gencontrol: dh_gencontrol -- \ -Vjuce:BuiltUsing="juce ( = $(JUCE_VERSION) )" DEB_COPYRIGHT_CHECK_IGNORE_REGEX = \ debian/.*|.*\.png # licensecheck v1 .PHONY: licensecheck licensecheck: LANG=C.UTF-8 licensecheck \ -i "^($(DEB_COPYRIGHT_CHECK_IGNORE_REGEX))$$" \ --check '.*' --recursive --deb-machine --lines 0 * \ > debian/copyright_newhints cmp debian/copyright_hints debian/copyright_newhints \ && rm debian/copyright_newhints