#!/usr/bin/make -f
# -*- makefile -*-

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

# parallel build by default on linux
ifeq ($(DEB_HOST_ARCH_OS),linux)
    ifeq ($(findstring parallel=,$(DEB_BUILD_OPTIONS)),)
        export DEB_BUILD_OPTIONS+=parallel=$(shell getconf _NPROCESSORS_ONLN)
    endif
endif
$(info DEB_BUILD_OPTIONS:$(origin DEB_BUILD_OPTIONS)=$(DEB_BUILD_OPTIONS))

PKD = $(abspath $(dir $(MAKEFILE_LIST)))
PKG = $(word 2,$(shell dpkg-parsechangelog -l$(PKD)/changelog | grep ^Source))
VER = $(shell dpkg-parsechangelog -l$(PKD)/changelog | perl -ne 'print $$1 if m{Version:\s+(\d.*)(?:\-\d+.*)};')
$(info PKG=$(PKG))

# see details at http://fsport.hard-light.net/website/downloads.html
DST-fsport-campaign-greatwar=fsport
ZIP-fsport-campaign-greatwar=\
    fsport3_7.7z \
    fsport-hi_res.zip \
    fsport-missions.7z \
    sparky_hi_fs1.7z \
    stu_fs1.7z

DST-fsport-cbani=fsport
ZIP-fsport-cbani=\
    tango_fs1.zip \
    tango_hi1_fs1.zip \
    tango_hi2_fs1.zip \
    tango_hi3_fs1.zip \
    tango_hi4_fs1.zip \
    tango_hi5_fs1.zip

DST-fsport-video=fsport
ZIP-fsport-video=\
    odeon_fs1.zip \
    odeon_fs1_1080.7z \
    odeon_str_1080.7z

DST-fsport-music=fsport
ZIP-fsport-music=\
    warble_fs1.zip

DST-fsport-mediavps=fsport-mediavps_2014
ZIP-fsport-mediavps=\
    mv_fsport-bastion-a.7z \
    mv_fsport-bastion-b.7z \
    mv_fsport-galatea-a.7z \
    mv_fsport-galatea-b.7z \
    mv_fsport-krios.7z \
    mv_fsport-soyakaze.7z \
    fsport-mediavps.7z \
    fsport-mediavps_2014.7z

DST-fsport-mediavps-music=fsport-mediavps_2014
ZIP-fsport-mediavps-music=\
    fsport-mediavps_music.zip

DST-fsport-campaign-silentthreat=fsport-silentthreat
ZIP-fsport-campaign-silentthreat=\
    fsport-str.7z \
    fsport-str-voice.7z

DST-fsport-campaign-awakenings=fsport-awakenings
ZIP-fsport-campaign-awakenings=\
    fsport-awakenings-voice.zip \
    fsport-awakenings.7z

DST-fsport-campaign-cardinalspear=fsport-cardinalspear
ZIP-fsport-campaign-cardinalspear=\
    fsport-cardinalspear-voice.zip \
    fsport-cardinalspear.7z

DST-fsport-campaign-destinyofpeace=fsport-destinyofpeace
ZIP-fsport-campaign-destinyofpeace=\
    fsport-destinyofpeace-voice.zip \
    fsport-destinyofpeace.7z

MODS=fsport-campaign-greatwar fsport-mediavps fsport-mediavps-music fsport-music fsport-cbani fsport-video \
     fsport-campaign-silentthreat \
     fsport-campaign-awakenings \
     fsport-campaign-cardinalspear \
     fsport-campaign-destinyofpeace

.PHONY=$(MODS)

ZIPS=$(ZIP-$(@))
#DST=$(DST-$(@))
ALL_ZIPS=$(foreach @,$(MODS),$(ZIPS))
FS2=usr/share/games/freespace2-open
DD=$(CURDIR)/debian/freespace2-mod-$(@)/$(FS2)/$(DST-$(@))

%:
	dh $@ --parallel --max-parallel=3

override_dh_auto_configure:
	@echo "## checking integrity..."
	sha1sum --strict --check debian/files_$(VER)_sha1.txt

override_dh_auto_install: $(MODS)
	@

$(MODS):
	## Extracting zips...
	for F in $(ZIPS); do 7za e -y -bd -o$(DD)/ "$$F" ;done
	
	## Installing mod.ini (if any)...
	[ ! -e "$(DD)/mod.ini" ] \
          && [ -e "$(CURDIR)/debian/mod.ini.$@" ] \
          && cp "$(CURDIR)/debian/mod.ini.$@" $(DD)/mod.ini \
        || true
	
	## lnking readme.txt (if any)
	[ -e "$(DD)/readme.txt" ] \
        && dh_link -pfreespace2-mod-$(@) "$(FS2)/$(DST-$(@))/readme.txt" /usr/share/doc/freespace2-mod-$@/readme.txt \
        || true
	
	## installing .vrms file
	dh_install -pfreespace2-mod-$(@) debian/vrms/freespace2-mod-$(@) /usr/share/check-dfsg-status/reasons
	
	## removing unneeded files
	$(RM) -v $(DD)/*.bat

override_dh_builddeb:
	dh_builddeb -- -Zxz -z4

$(ALL_ZIPS):
	wget --tries=3 --timeout=40 --read-timeout=40 --continue --timestamping --content-disposition "https://perses.feralhosting.com/datacorder/fsport_files/releases/$@" \

get-orig-source: $(ALL_ZIPS) $(info :: ALL_ZIPS=$(ALL_ZIPS))
	## generating checksums...
	sha1sum --binary *.zip *.7z | tee debian/files_$(VER)_sha1.txt~NEW
	diff -U0 debian/files_$(VER)_sha1.txt debian/files_$(VER)_sha1.txt~NEW \
        && $(RM) debian/files_$(VER)_sha1.txt~NEW
