#!/usr/bin/make -f
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess.

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

jarname = jython
jarversion = `dpkg-parsechangelog| gawk '/Version/ { match($$0, /Version: (.*)-[0-9]+/, arr) ; print arr[1] }'`

tmp = debian/tmp
overrides = $(tmp)/usr/share/lintian/overrides
javadir = $(tmp)/usr/share/java
jythondir = $(tmp)/usr/share/jython
confdir = $(tmp)/etc/jython
docdir = $(tmp)/usr/share/doc/jython-doc

INSTALL_DIR = install -p -d -o root -g root -m 755
INSTALL_FILE = install -p -o root -g root -m 644
INSTALL_BIN = install -p -o root -g root -m 755

build: build-arch build-indep

build-arch:

build-indep: build-stamp

build-stamp:
	dh_testdir

	mkdir -p extlibs/
	# create links to external libs expected by ANT build.xml
	ln -s /usr/share/java/junit.jar extlibs/junit-3.8.2.jar
	ln -s /usr/share/java/libreadline-java.jar extlibs/libreadline-java-0.8.jar
	ln -s /usr/share/java/jline.jar extlibs/jline-0.9.95-SNAPSHOT.jar
	ln -s /usr/share/java/servlet-api-3.1.jar extlibs/servlet-api-2.5.jar
	ln -s /usr/share/java/mysql-connector-java.jar extlibs/mysql-connector-java-5.1.6.jar
	ln -s /usr/share/java/postgresql-jdbc4.jar extlibs/postgresql-8.3-603.jdbc4.jar
	ln -s /usr/share/java/antlr.jar extlibs/antlr-2.7.7.jar
	ln -s /usr/share/java/antlr3-3.2.jar extlibs/antlr-3.1.3.jar
	ln -s /usr/share/java/antlr3-runtime-3.2.jar extlibs/antlr-runtime-3.1.3.jar
	ln -s /usr/share/java/stringtemplate.jar extlibs/stringtemplate-3.2.jar
	ln -s /usr/share/java/livetribe-jsr223.jar extlibs/livetribe-jsr223-2.0.5.jar
	ln -s /usr/share/java/asm3.jar extlibs/asm-3.1.jar
	ln -s /usr/share/java/asm3-commons.jar extlibs/asm-commons-3.1.jar
	ln -s /usr/share/java/jnr-constants.jar extlibs/constantine.jar
	ln -s /usr/share/java/guava.jar extlibs/guava-r07.jar
	ln -s /usr/share/java/jaffl.jar extlibs/jaffl.jar
	ln -s /usr/share/java/jffi.jar extlibs/jffi.jar
	ln -s /usr/share/java/jnr-posix.jar extlibs/jnr-posix.jar
	ln -s /usr/share/java/jnr-netdb.jar extlibs/jnr-netdb-0.4.jar
	ln -s /usr/share/java/jnr-ffi.jar extlibs/jnr-ffi.jar



	# Build the class files.
	ant -nouserlib developer-build jar javadoc
	# -nouserlib is required to prevent conflicts with the ant jython plugin

	# Generate OSGi metadata for jython.jar
	bnd wrap --properties debian/jython.bnd --output dist/jython-dev.jar.tmp dist/jython-dev.jar
	mv dist/jython-dev.jar.tmp dist/jython-dev.jar

	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp

	ant clean

	dh_clean
	rm -rf extlibs

install: build
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

	# Install the jar and make all the appropriate symlinks.
	$(INSTALL_DIR) $(javadir)
	$(INSTALL_DIR) $(jythondir)
	$(INSTALL_FILE) dist/jython-dev.jar $(javadir)/$(jarname)-$(jarversion).jar
	ln -s $(jarname)-$(jarversion).jar $(javadir)/$(jarname).jar

	# do not install tests
	rm -rf dist/Lib/test

	cp -r dist/Lib $(jythondir)
	# no more Tools (yet)
	#cp -r dist/Tools $(jythondir)

	# Make all modules with a shebang line executable
	for f in `find $(jythondir)/Lib -name "*.py"` ; do \
	  if head -1 $$f | grep --quiet "^#\!" ; then \
	    chmod +x $$f; \
	  fi; \
	done

	# Install the registry.
	$(INSTALL_DIR) $(confdir)
	$(INSTALL_FILE) registry $(confdir)/jython.conf

	# Install the scripts.
	$(INSTALL_DIR) $(tmp)/usr/bin
	$(INSTALL_BIN) debian/jython_perl $(tmp)/usr/bin/jython

	# Install doc
	$(INSTALL_DIR) $(docdir)
	$(INSTALL_DIR) $(docdir)/html
	cp -a dist/Doc/javadoc $(docdir)/html

	# Move files into correct directories.
	#$(INSTALL_DIR) $(docdir)
	#mv $(jythondir)/Demo $(docdir)/examples

	# Install lintian and linda overrides.
	for pkg in `dh_listpackages`; do \
	  if test -e debian/$$pkg.override; then \
	    $(INSTALL_DIR) debian/$$pkg/usr/share/lintian/overrides; \
	    $(INSTALL_FILE) debian/$$pkg.override \
	      debian/$$pkg/usr/share/lintian/overrides/$$pkg; \
	  fi; \
	  if test -e debian/$$pkg.linda; then \
	    $(INSTALL_DIR) debian/$$pkg/usr/share/linda/overrides; \
	    $(INSTALL_FILE) debian/$$pkg.linda \
	      debian/$$pkg/usr/share/linda/overrides/$$pkg; \
	  fi; \
	done

# Build architecture-dependent files here.
binary-arch:

# Build architecture-independent files here.
binary-indep: build install
	dh_testdir
	dh_testroot
	dh_install -i --sourcedir=debian/tmp
	dh_installdocs -i
	dh_installexamples -i
	dh_installmenu -i
	dh_installman -i
	dh_installchangelogs  -i NEWS
	dh_link -i
	dh_compress -i
	dh_fixperms -i
	dh_installdeb -i
	dh_perl -i
	dh_python2 -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

binary: binary-indep binary-arch

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