#!/usr/bin/make -f # -*- makefile -*- # This file was originally written by Joey Hess and Craig Small. # As a special exception, when this file is copied by dh-make into a # dh-make output file, you may use that output file without restriction. # This special exception was added by Craig Small in version 0.37 of dh-make. # Default/i386/amd64 options from sdlmame rules file by Cesare Falco. #export DH_VERBOSE = 1 DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) DEB_HOST_ARCH_BITS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_BITS) # Define DEB_HOST_MULTIARCH for QT prefix handling DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) # add c++ hardening options (upstream makefile doesn't use CPPFLAGS) export DEB_BUILD_MAINT_OPTIONS = hardening=+all export DEB_CFLAGS_MAINT_APPEND = $(shell dpkg-buildflags --get CPPFLAGS) # Sacrifice linking speed to avoid using so much memory export DEB_LDFLAGS_MAINT_APPEND = \ -Wl,--no-keep-memory,--reduce-memory-overheads,--hash-size=31 # taken verbatim from debian policy ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) MAKEFLAGS += -j$(NUMJOBS) endif # Override relevant make variables in original makefile DEB_OPTS = \ NOWERROR=1 \ OSD=sdl \ DEBUG= \ TARGETOS=linux \ DISTRO=debian-stable \ FORCE_DRC_C_BACKEND=1 \ PTR64= \ BIGENDIAN= \ NOASM=1 \ QT_HOME=/usr/lib/$(DEB_HOST_MULTIARCH)/qt5/ \ USE_SYSTEM_LIB_EXPAT=1 \ USE_SYSTEM_LIB_ZLIB=1 \ USE_SYSTEM_LIB_JPEG=1 \ USE_SYSTEM_LIB_FLAC=1 \ USE_SYSTEM_LIB_LUA=lua5.3:/usr/include/lua5.3 \ USE_SYSTEM_LIB_SQLITE3=1 \ USE_SYSTEM_LIB_PORTMIDI=1 \ USE_SYSTEM_LIB_PORTAUDIO=1 \ USE_SYSTEM_LIB_UTF8PROC=1 \ USE_SYSTEM_LIB_GLM=1 \ USE_SYSTEM_LIB_RAPIDJSON=1 \ USE_SYSTEM_LIB_PUGIXML=1 \ VERBOSE=1 # Set specific arch options: # Use Gold linker which is less greedy for memory ifeq ($(DEB_HOST_ARCH),amd64) DEB_OPTS += \ FORCE_DRC_C_BACKEND= \ PTR64=1 \ NOASM= DEB_LDFLAGS_MAINT_APPEND = "-fuse-ld=gold" endif ifeq ($(DEB_HOST_ARCH),arm64) DEB_OPTS += \ ARCHOPTS="-mabi=lp64 -fPIC" DEB_LDFLAGS_MAINT_APPEND = "-fuse-ld=gold" endif ifeq ($(DEB_HOST_ARCH),i386) DEB_OPTS += \ OPTIMIZE=2 \ FORCE_DRC_C_BACKEND= \ NOASM= DEB_LDFLAGS_MAINT_APPEND = "-fuse-ld=gold" endif ifeq ($(DEB_HOST_ARCH),ia64) DEB_OPTS += \ PTR64=1 endif ifeq ($(DEB_HOST_ARCH),mips) DEB_OPTS += \ ARCHOPTS=-Umips \ BIGENDIAN=1 endif ifeq ($(DEB_HOST_ARCH),mipsel) DEB_OPTS += \ ARCHOPTS=-Umips endif ifeq ($(DEB_HOST_ARCH),mips64el) DEB_LDFLAGS_MAINT_APPEND = "-fuse-ld=gold" endif ifeq ($(DEB_HOST_ARCH),powerpc) DEB_OPTS += \ ARCHOPTS=-Upowerpc \ NOASM= \ BIGENDIAN=1 endif ifeq ($(DEB_HOST_ARCH),ppc64) DEB_OPTS += \ PTR64=1 \ NOASM= \ BIGENDIAN=1 endif ifeq ($(DEB_HOST_ARCH),ppc64el) DEB_OPTS += \ PTR64=1 \ NOASM= endif ifeq ($(DEB_HOST_ARCH),s390) DEB_OPTS += \ BIGENDIAN=1 endif ifeq ($(DEB_HOST_ARCH),s390x) DEB_OPTS += \ PTR64=1 \ BIGENDIAN=1 DEB_LDFLAGS_MAINT_APPEND = "-fuse-ld=gold" endif ifeq ($(DEB_HOST_ARCH),sparc) DEB_OPTS += \ BIGENDIAN=1 endif ifeq ($(DEB_HOST_ARCH),sparc64) DEB_OPTS += \ PTR64=1 \ BIGENDIAN=1 endif ifeq ($(DEB_HOST_ARCH),x32) DEB_OPTS += \ FORCE_DRC_C_BACKEND= \ NOASM= DEB_LDFLAGS_MAINT_APPEND = "-fuse-ld=gold" endif # kFreeBSD architectures ifeq ($(DEB_HOST_ARCH),kfreebsd-amd64) DEB_OPTS += \ TARGETOS=freebsd \ FORCE_DRC_C_BACKEND= \ PTR64=1 \ NOASM= \ USE_SYSTEM_LIB_PORTMIDI= export DEB_LDFLAGS_MAINT_APPEND = -ldl endif ifeq ($(DEB_HOST_ARCH),kfreebsd-i386) DEB_OPTS += \ TARGETOS=freebsd \ FORCE_DRC_C_BACKEND= \ NOASM= \ USE_SYSTEM_LIB_PORTMIDI= export DEB_LDFLAGS_MAINT_APPEND = -ldl endif # GNU/Hurd architecture ifeq ($(DEB_HOST_ARCH),hurd-i386) DEB_OPTS += \ TARGETOS=gnu \ FORCE_DRC_C_BACKEND= \ NOASM= \ USE_SYSTEM_LIB_PORTMIDI= \ NO_USE_MIDI=1 endif DEB_MAME_OPTS = \ SDL_INI_PATH=/etc/mame \ FULLNAME=mame \ TARGET=mame \ SUBTARGET=mame \ TOOLS=1 ifndef DEBUG # Disable -g entirely CFLAGS := $(CFLAGS:-g=-g0) endif %: dh $@ override_dh_auto_build-arch: $(MAKE) $(DEB_OPTS) $(DEB_MAME_OPTS) -mv mame64 mame #FIXME $(CURDIR)/mame -createconfig mv mame.ini default.mame.ini mv plugin.ini default.plugin.ini mv ui.ini default.ui.ini override_dh_auto_build-indep: $(MAKE) -C docs singlehtml override_dh_auto_test-arch: # Run MAME's internal validation tests -$(CURDIR)/mame -validate override_dh_install: dh_install --exclude=dir.txt \ --exclude=LICENSE \ --exclude=README.md override_dh_missing: dh_missing --fail-missing override_dh_fixperms-arch: dh_fixperms find debian/mame/etc/mame -type f -execdir chmod 644 {} \; override_dh_fixperms-indep: dh_fixperms find debian/mame-data/usr/share/games/mame/artwork -type f -execdir chmod 644 {} \; find debian/mame-data/usr/share/games/mame/bgfx -type f -execdir chmod 644 {} \; find debian/mame-data/usr/share/games/mame/ctrlr -type f -execdir chmod 644 {} \; find debian/mame-data/usr/share/games/mame/fonts -type f -execdir chmod 644 {} \; find debian/mame-data/usr/share/games/mame/hash -type f -execdir chmod 644 {} \; find debian/mame-data/usr/share/games/mame/keymaps -type f -execdir chmod 644 {} \; find debian/mame-data/usr/share/games/mame/language -type f -name "*.po" -delete find debian/mame-data/usr/share/games/mame/language -type f -execdir chmod 644 {} \; find debian/mame-data/usr/share/games/mame/plugins -type f -execdir chmod 644 {} \;