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

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

include /usr/share/cli-common/cli.make
include /usr/share/cli-common/cli-nant.make

DEB_CLI_API_VERSION = 0.46.0.1
DEB_CLI_RUNTIME = cli
UPVERSION = $(shell dpkg-parsechangelog | grep '^Version: ' | sed -n 's/^Version: \([.0-9]*\).*/\1/p')
CFLAGS = -Wall -g

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -O0
else
	CFLAGS += -O2
endif
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
	INSTALL_PROGRAM += -s
endif

override_dh_auto_build_nant:

build-arch: 
	nant -v -f:ikvm-$(UPVERSION)/ikvm.build native

build-indep:
	cd debian && uudecode < mono.snk.uu
	nant -v -f:ikvm-$(UPVERSION)/ikvm.build signed
	mkdir scripts
	mkdir pkgconfig
	cd ikvm-$(UPVERSION)/bin; \
	dest=$(CURDIR)/scripts; \
	for FILE in *.exe; do \
	  base=`basename $$FILE .exe`; \
	  sed -e "s,@EXE@,/usr/lib/ikvm/$$FILE," $(CURDIR)/debian/run.sh.in > $$dest/$$base; \
	  chmod +x $$dest/$$base; \
	done
	sed -e "s/@VERSION@/$(UPVERSION)/" debian/ikvm.pc.in > $(CURDIR)/pkgconfig/ikvm.pc

build: build-arch
	dh build

binary: binary-arch binary-indep
	dh binary

binary-arch: build-arch
	dh binary-arch

binary-indep: build-indep
	dh binary-indep

override_dh_auto_clean_nant:
	-nant -v -f:ikvm-$(UPVERSION)/ikvm.build clean

	find . -name "*.class" -exec rm {} \;
	find . -name "*.dll" -exec rm {} \;
	find . -name "*.exe" -exec rm {} \;
	find . -name "*.so" -exec rm {} \;
	find . -name "*.class" -exec rm {} \;
	find . -name "*.jar" \! -name local_policy.jar \
                \! -name US_export_policy.jar \! -name resources.jar \
		-exec rm {} \;

	rm -f	ikvm-*/runtime/JniAssemblyInfo.cs \
		ikvm-*/runtime/AssemblyInfo.cs \
		ikvm-*/openjdk/java/lang/PropertyConstants.java \
		ikvm-*/openjdk/AssemblyInfo.java \
		ikvm-*/CommonAssemblyInfo.cs \
		ikvm-*/awt/AssemblyInfo.cs \
		ikvm-*/tools/pubkey.txt \
		ikvm-*/openjdk/vfs.zip \
		debian/mono.snk
	rm -rf pkgconfig scripts

override_dh_makeclilibs:
	dh_makeclilibs -i -m $(DEB_CLI_API_VERSION)

override_dh_clideps:
	dh_clideps --exclude-moduleref=fusion --exclude-moduleref=winspool.drv --exclude-moduleref=ikvm-native

get-orig-source:
	uscan \
		--force-download \
		--download-version $(UPVERSION) \
		--destdir .
	mkdir ikvm-$(UPVERSION)+ds
	unzip ikvmsrc-$(UPVERSION).zip -d ikvm-$(UPVERSION)+ds
	dos2unix ikvm-$(UPVERSION)+ds/ikvm-$(UPVERSION)/HOWTO
	for I in `grep http ikvm-$(UPVERSION)+ds/ikvm-$(UPVERSION)/HOWTO | grep openjdk`; do \
		wget $$I; \
		unzip `basename $$I` -d ikvm-$(UPVERSION)+ds; \
	done
	rm *.zip
	rm -f ikvm-$(UPVERSION)+ds/ikvm-*/runtime/JniAssemblyInfo.cs \
		ikvm-$(UPVERSION)+ds/ikvm-*/runtime/AssemblyInfo.cs \
		ikvm-$(UPVERSION)+ds/ikvm-*/openjdk/java/lang/PropertyConstants.java \
		ikvm-$(UPVERSION)+ds/ikvm-*/openjdk/AssemblyInfo.java \
		ikvm-$(UPVERSION)+ds/ikvm-*/CommonAssemblyInfo.cs \
		ikvm-$(UPVERSION)+ds/ikvm-*/awt/AssemblyInfo.cs \
		ikvm-$(UPVERSION)+ds/ikvm-*/tools/pubkey.txt \
		ikvm-$(UPVERSION)+ds/ikvm-*/openjdk/vfs.zip
	tar cfvz ./ikvm_$(UPVERSION)+ds.orig.tar.gz ikvm-$(UPVERSION)+ds
	rm -fr ikvm-$(UPVERSION)+ds

%:
	dh $@
