#!/usr/bin/make -f
###################################################
# build file for eclipse debian package.
#			(C)Takashi Okamoto(2002-2003)
#			(C)Jan Schulz (2003)
###################################################

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

# This is the debhelper compatability version to use.
export DH_COMPAT=4

export LANG=C
CURDIR=$(shell pwd)

## ziped source 
SOURCE=upstream/eclipse-sourceBuild-srcIncluded-2.1.2.tar.gz
UPSTREAMVERSION=R-2.1.2-200311030802
PACKAGE_VERSION = $(shell head -1 debian/changelog | cut -f2 -d\( | cut -f1 -d\) )

## jdk install diractory
jdk_dirs=/usr/lib/j2sdk1.4 /usr/lib/j2se/1.4 /usr/lib/j2se/1.3 /usr/lib/j2sdk1.3
JAVA_HOME ?= $(shell for jdir in $(jdk_dirs) ; do if [ -d "$$jdir" ]; then echo $$jdir;exit 0;fi;done)
export JAVA_HOME

## eclipse install directory
ECLIPSE_HOME=usr/share/eclipse
PLATFORM_HOME=debian/eclipse-platform/$(ECLIPSE_HOME)

export SOURCE_TREE=$(CURDIR)/source-tree
export BUILD_TREE=$(CURDIR)/build-tree
export JAVA=$(JAVA_HOME)/bin/java
export JAR=$(JAVA_HOME)/bin/jar
export CLASSPATH=/usr/share/java/ant.jar:/usr/share/java/ant-optional.jar:$JAVA_HOME/lib/tools.jar:.

# Use this dir as temporary dir to install the whole buildtree in there.
DEBIAN_TMP=debian/eclipse

DEST_DIR=$(CURDIR)/$(DEBIAN_TMP)/$(ECLIPSE_HOME)
PLUGINS_DIR=$(BUILD_DIR)/plugins

ANT="$(JAVA) -Xmx100m org.apache.tools.ant.Main -Dbuild.compiler=org.eclipse.jdt.core.JDTCompilerAdapter"

export ANT ECLIPSE_HOME BUILD_DIR PLUGINS_DIR JAVA_HOME DEST_DIR DEBIAN_TMP

uncompress: uncompress-stamp
uncompress-stamp:
	dh_testdir
	mkdir -p ${SOURCE_TREE}
	(cd ${SOURCE_TREE}; tar -xzf ../${SOURCE})
	
	# Apply all active patches in debian/patches.
	for p in debian/patches/[0-9]*; \
	do \
                test -f $$p || continue; \
                PATCH_OPTS=`sed -ne '1s/PATCH: \(.*\)/\1/p' $$p`; \
                echo "Patch: $$p (-p0)"; \
                cat $$p | (cd $(SOURCE_TREE) &&patch -p0); \
        done
	cp debian/addons/OldStyle*.java $(SOURCE_TREE)/plugins/org.eclipse.help/src/org/eclipse/help/internal/browser
	# done with patching

	# copy versioning file
	echo "0=$(UPSTREAMVERSION),\ Debian\ Packageversion:\ $(PACKAGE_VERSION)" > debian/about.mappings
	find $(SOURCE_TREE)/plugins -name "about.mappings"  -exec cp debian/about.mappings \{\} \;

	# convert all buildnotes to plain txt files, which will be gz'ed
	bash debian/bin/buildnote_converter.sh
	bash debian/bin/makefailsave.sh
	touch uncompress-stamp


build: uncompress-stamp build-java-stamp build-native-stamp

build-java-stamp: 
	dh_testdir
	# compile the java files
	(bash debian/bin/build-java.sh || (tail --lines=30 java_build.log && false))
	touch build-java-stamp

build-native-stamp: 
	# compile the native thingies
	bash debian/bin/build-native.sh
	touch build-native-stamp

clean:
	dh_testdir
	dh_testroot
	rm -rf pre-install build-java-stamp build-native-stamp \
	       build-stamp uncompress-stamp java_build_*.log log $(BUILD_TREE) \
	       $(SOURCE_TREE) debian/eclipse debian/about.mappings 
	       
	echo $(JAVA_HOME)
	
	dh_clean
	
install: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs

# First putting everything into one dir:
	install -d $(DEBIAN_TMP)/$(ECLIPSE_HOME)
	(bash debian/bin/plugins-installer.sh &> log)
	
# setup ant, lucene and junit, 
# xerces and tomcat unfortunatelly can't be replaced. Maybe in 3.0...
	rm $(DEST_DIR)/plugins/org.apache.ant_*/*.jar
	rm $(DEST_DIR)/plugins/org.apache.lucene_*/*.jar
	rm $(DEST_DIR)/plugins/org.junit_*/*.jar

# Setting up the packages
	dh_install --sourcedir=$(DEBIAN_TMP) --list-missing

# install addons and special content
	install -m 755 debian/addons/eclipse.sh debian/eclipse-platform/usr/bin/eclipse
	install -m 644 debian/addons/start-functiones.sh $(PLATFORM_HOME)/start-functiones.sh
	install -m 644 debian/addons/eclipserc $(PLATFORM_HOME)/eclipserc
	install -m 644 debian/addons/debug_options $(PLATFORM_HOME)/debug_options
	install -m 644 debian/addons/dot_eclipseproduct $(PLATFORM_HOME)/.eclipseproduct
	install -m 644 $(SOURCE_TREE)/plugins/org.eclipse.platform/install.ini $(PLATFORM_HOME)
	install -d $(PLATFORM_HOME)/links
	install -m 644 debian/addons/usr_local.links $(PLATFORM_HOME)/links/usr_local.links
	install -m 644 $(SOURCE_TREE)/plugins/org.eclipse.platform/startup.jar $(PLATFORM_HOME)
	install -m 644 $(SOURCE_TREE)/plugins/platform-launcher/bin/linux/gtk/icon.xpm $(PLATFORM_HOME)
	install -m 644 debian/addons/icon32x32.xpm $(PLATFORM_HOME)

	install -m 755 debian/addons/jdtc.sh debian/eclipse-javac/usr/bin/jdtc

	install -m 644 debian/addons/libswt2.1-gtk2-java debian/libswt2.1-gtk2-java/usr/share/java-config
	install -m 644 debian/addons/libswt2.1-motif-java debian/libswt2.1-motif-java/usr/share/java-config

	install -d debian/eclipse-platform/usr/share/applications
	install -m 644 debian/addons/gnome_eclipse.desktop debian/eclipse-platform/usr/share/applications/eclipse.desktop
	install -d debian/eclipse-platform/usr/share/applnk/Development
	install -m 644 debian/addons/kde_eclipse.desktop debian/eclipse-platform/usr/share/applnk/Development/eclipse.desktop

# Build architecture-independent files here.
# Pass -i to all debhelper commands in this target to reduce clutter.
binary-indep: build install
	dh_testdir -i
	dh_testroot -i
#	dh_installdebconf -i
	dh_installdocs -i
	dh_installexamples -i
	dh_installmenu -i
#	dh_installmime -i
	dh_installman -i
	dh_installinfo -i
	dh_installchangelogs  -i
	dh_link -i
	dh_compress -i 
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir -a
	dh_testroot -a
#	dh_installdebconf -a
	dh_installdocs -a debian/addons/FAQ.Debian
	dh_installexamples -a
	dh_installmenu -a
#	dh_installmime -a
	dh_installman -a
	dh_installchangelogs  -a
	dh_strip -a
	dh_link -a
	dh_compress -a
	dh_fixperms -a
	dh_makeshlibs -a
	dh_installdeb -a
	#dh_shlibdeps -a
	dpkg-shlibdeps -dDepends debian/eclipse-platform/usr/lib/eclipse/lib* \
	-dSuggests debian/eclipse-platform/usr/lib/eclipse/eclipse \
	-Tdebian/eclipse-platform.substvars
	dpkg-shlibdeps -dDepends \
	debian/libswt2.1-motif-java/usr/lib/eclipse/libswt-motif-2135.so  \
	-dSuggests \
	debian/libswt2.1-motif-java/usr/lib/eclipse/libswt-gnome-motif-2135.so \
	debian/libswt2.1-motif-java/usr/lib/eclipse/libswt-kde-motif-2135.so \
	-Tdebian/libswt2.1-motif-java.substvars
	dpkg-shlibdeps -dDepends \
	debian/libswt2.1-gtk2-java/usr/lib/eclipse/libswt-gtk-2135.so \
	debian/libswt2.1-gtk2-java/usr/lib/eclipse/libswt-pi-gtk-2135.so \
	-dSuggests \
	debian/libswt2.1-gtk2-java/usr/lib/eclipse/libswt-gnome-gtk-2135.so \
	-Tdebian/libswt2.1-gtk2-java.substvars
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

update-source:
	#this breaks, if the plugin specify its own build.xml!
#	find plugins -name build.xml -exec rm \{\} \;
	bash debian/update.sh

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install uncompress
