#!/usr/bin/make -f

ifneq (,$(findstring parallel=,$(DEB_BUILD_OPTIONS)))
	NCPUS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
else
	NCPUS := $(shell getconf _NPROCESSORS_ONLN 2>/dev/null || echo 1)
	ifeq ($(NCPUS),-1)
		NCPUS:=1
	endif
	ifeq ($(NCPUS),0)
		NCPUS:=1
	endif
endif

#
# In some case CRLF must be removed from *.c *.cpp *.h files
# Otherwise the build may fail. fromdos is in the tofrodos package.
#
# find . \( -name "*.c" -o -name "*.h" -o -name "*.cpp" -name "makefile" \) -print0 | xargs -0 fromdos
#
# Date in the futur
#
# find . -name '*.*' -print0 | xargs -0 touch
# find . -name '*' -print0 | xargs -0 touch
#
export DEB_CFLAGS_MAINT_APPEND = $(shell dpkg-buildflags --get CPPFLAGS)

# For gcc
#export DEB_LDFLAGS_MAINT_APPEND = \
#    -Wl,--no-keep-memory,--reduce-memory-overheads,--hash-size=31

# For clang
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--no-keep-memory -Wl,--as-needed

# CXXFLAGS
# -Wno-error=maybe-uninitialized

DEB_OPTS = \
    BIGENDIAN= \
    CONFIG=release \
    DEBUG= \
    DISTRO=debian-stable \
    NOWERROR=1 \
    OSD=sdl \
    PROFILER= \
    PTR64= \
    TARGETOS=linux \
    USE_SYSTEM_LIB_EXPAT=1 \
    USE_SYSTEM_LIB_FLAC=1 \
    USE_SYSTEM_LIB_GLM=1 \
    USE_SYSTEM_LIB_JPEG=1 \
    USE_SYSTEM_LIB_PORTAUDIO=1 \
    USE_SYSTEM_LIB_PORTMIDI=1 \
    USE_SYSTEM_LIB_PUGIXML=1 \
    USE_SYSTEM_LIB_RAPIDJSON=1 \
    USE_SYSTEM_LIB_SQLITE3=1 \
    USE_SYSTEM_LIB_UTF8PROC=1 \
    USE_SYSTEM_LIB_ZLIB=1 \
    USE_SYSTEM_LIB_LUA= \
    USE_BUNDLED_LIB_SDL2=0 \
    VERBOSE=1 \
    PRECOMPILE=0 \

##    USE_SYSTEM_LIB_ASIO=1 \

ifeq ($(DEB_HOST_ARCH),amd64)
DEB_OPTS += \
    PTR64=1
endif

ifeq ($(DEB_HOST_ARCH),arm64)
DEB_OPTS += \
    ARCHOPTS="-mabi=lp64 -fPIC"
endif

ifeq ($(DEB_HOST_ARCH),powerpc)
DEB_OPTS += \
    ARCHOPTS=-Upowerpc
    BIGENDIAN=1
endif

ifneq (,$(findstring marillat,$(DEB_BUILD_OPTIONS)))
    DEB_OPTS += \
    CC="ccache gcc" \
    CXX="ccache g++"
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 $@ --with quilt

override_dh_auto_build-arch:
	$(MAKE) $(DEB_OPTS) $(DEB_MAME_OPTS) REGENIE=1 -j $(NCPUS)

	-mv mame64 mame

	$(CURDIR)/mame -createconfig
	mv mame.ini default.mame.ini

override_dh_auto_clean:
	PYTHON_EXECUTABLE=python3 dh_auto_clean

override_dh_install:
	dh_install --exclude=dir.txt --exclude=LICENSE --exclude=README.md

override_dh_clean:
	dh_clean src/build/png.pyc chdman jedutil ldresample ldverify mame \
	nltool pngcmp regrep romcmp split src2html srcclean testkeys unidasm \
	castool floptool imgtool nlwav scripts/build/__pycache__/language/*/*.mo \
	scripts/build/__pycache__/*.pyc ui.ini plugin.ini default.mame.ini \
	3rdparty/rapidjson/docker/debian/Dockerfile \
	mame64

	${RM} -rf docs/build
	${RM} -rf docs/source/_ext

	-find -name strings.mo -delete
	-find -name *.exe -delete
	-find -name *.a -delete

override_dh_auto_build-indep:
	$(MAKE) -C docs singlehtml

override_dh_installdocs:
	dh_installdocs -pmame-doc --doc-main-package=mame-doc -Nmame

	dh_installdocs -A

override_dh_dwz:

# No dbgsym packages:
override_dh_strip:
	dh_strip --no-automatic-dbgsym
