#! /usr/bin/make -f

SHELL := /bin/bash

# The file downloaded from java.sun.com
JAVA_ARCHIVE := jdk-1_5_0_06-linux-i586.bin

# Jar files created from .pack files
PACKED_JARS := lib/tools.jar jre/lib/rt.jar jre/lib/jsse.jar jre/lib/charsets.jar jre/lib/ext/localedata.jar jre/lib/plugin.jar jre/lib/javaws.jar jre/lib/deploy.jar

# Directory to which the archive's contents are extracted
UNZIP_DIR := $(shell zipinfo ${JAVA_ARCHIVE} | awk '/^d/ {print $$9; exit}' | tr -d /)

include /usr/share/cdbs/1/rules/debhelper.mk

DEB_INSTALL_DOCS_ALL := $(shell echo ${UNZIP_DIR}/{COPYRIGHT,LICENSE,README.html,THIRDPARTYLICENSEREADME.txt})

${JAVA_ARCHIVE}:
	@echo Please place "$@" in the package build directory.
	@exit 1

unzip-stamp: ${JAVA_ARCHIVE}
	unzip ${JAVA_ARCHIVE} || true
	touch $@

# ugliness required to prefix each of the files in PACKED_JARS with UNZIP_DIR
JARPATHS := $(shell echo ${UNZIP_DIR}/{$(shell sed 's/ /,/g' <<< '${PACKED_JARS}')})
PACKPATHS := $(shell echo ${JARPATHS} | sed 's/\.jar/.pack/g')

debian/control:: debian/control.in
ifneq ($(DEB_AUTO_UPDATE_DEBIAN_CONTROL),yes)
	@echo -e 'debian/control is out of date;' \
		'set DEB_AUTO_UPDATE_DEBIAN_CONTROL:=yes to rebuild' >&2
	@sleep 5
endif

debian/install: debian/install.in
	sed -e 's/@UNZIP_DIR@/${UNZIP_DIR}/' $< > $@

${PACKPATHS}: unzip-stamp

${JARPATHS}: %.jar: %.pack
	${UNZIP_DIR}/bin/unpack200 $< $@

prelink-stamp: ${JARPATHS}
	echo ${JARPATHS} ok
	${UNZIP_DIR}/bin/java -client -Xshare:dump
	touch $@

# depends on debian/install so that it gets created before binary-install is run
install/jdk-1.5.0:: prelink-stamp debian/install
	# icons for mime types
	for theme in hicolor HighContrast{,Inverse} LowContrast; \
	do \
		for mimetype in {application-java-archive,application-x-java-jnlp-file}; \
		do \
			target=${DEB_DESTDIR}/usr/share/icons/$$theme/48x48/mimetypes/$$mimetype.png; \
			install --mode=644 -D ${UNZIP_DIR}/jre/lib/images/icons/sun-java.png $$target; \
			ln -s $$(basename "$$target") $$(dirname "$$target")/gnome-mime-$$mimetype.png; \
		done; \
	done

binary-install/jdk-1.5.0::
	dh_installmime
	dh_desktop # don't use dh_gnome because it depends on autotools

binary-post-install/jdk-1.5.0::
	find ${DEB_DESTDIR}/usr/lib/jdk-1.5.0/man/ -type f -name '*.[1-9]' -exec gzip -9 {} \;
	find ${DEB_DESTDIR}/usr/lib/jdk-1.5.0/ -name '*.pack' -exec rm -f {} \;

clean::
	rm -f *-stamp
	rm -fr ${UNZIP_DIR}
	rm -f debian/install
