#!/usr/bin/make -f
# Sample debian.rules file - for GNU Hello (1.3).
# Copyright 1994,1995 by Ian Jackson.
# I hereby give you perpetual unlimited permission to copy,
# modify and relicense this file, provided that you do not remove
# my name from the file itself.  (I assert my moral right of
# paternity under the Copyright, Designs and Patents Act 1988.)
# This file may have to be extensively modified
#
# Modified to be a prototype for debmake by Christoph Lameter <clameter@debian.org>
SHELL=/bin/bash

package=openssl

# For generating the manpages
export VERSION=$(shell dpkg-parsechangelog | grep '^Version:' | sed -e 's/^.*://' -e 's/-.*//')

# The binary architeture
DEB_HOST_ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH)
DEB_HOST_ARCH_OS = $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
DEB_HOST_MULTIARCH=$(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

DEB_HOST_GNU_TYPE=$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE=$(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
CROSS=CC=$(DEB_HOST_GNU_TYPE)-gcc
MAKE_TEST=:
else
CROSS=CC=$(CC)
MAKE_TEST=make test
endif

CONFARGS  = --prefix=/usr --openssldir=/usr/lib/ssl --libdir=lib/$(DEB_HOST_MULTIARCH) no-idea no-mdc2 no-rc5 zlib  enable-tlsext no-sslv2
OPT_alpha = ev4 ev5
ARCHOPTS  = OPT_$(DEB_HOST_ARCH)
OPTS      = $($(ARCHOPTS))
WANTED_LIBC_VERSION = 2.3.1-10

build: build-stamp
build-stamp:
	dh_testdir
#	perl util/ssldir.pl /usr/lib/ssl
#	chmod +x debian/libtool
	./Configure no-shared $(CONFARGS) debian-$(DEB_HOST_ARCH)
	make $(CROSS) -f Makefile all
	$(MAKE_TEST)
	mv libcrypto.a libcrypto.static
	mv libssl.a libssl.static
	make -f Makefile clean
	test -z "$(OPTS)" || for opt in $(OPTS); \
	do \
		set -xe; \
		./Configure shared $(CONFARGS) debian-$(DEB_HOST_ARCH)-$$opt; \
		make $(CROSS) -f Makefile all; \
		$(MAKE_TEST); \
		mkdir -p $$opt; \
		mv libcrypto.so* libssl.so* $$opt/; \
		make -f Makefile clean; \
	done
	./Configure shared $(CONFARGS) debian-$(DEB_HOST_ARCH)
	#make $(CROSS) -f Makefile depend
	ln -sf apps/openssl.pod crypto/crypto.pod ssl/ssl.pod doc/
#	make $(CROSS) -f Makefile linux-shared
	make $(CROSS) -f Makefile all
	$(MAKE_TEST)
#	strip apps/openssl
#	make -f Makefile clean
#	./Configure --prefix=/usr --openssldir=/usr/lib/ssl no-idea no-mdc2 no-rc5 debian-$(DEB_HOST_ARCH)
#	make $(CROSS) -f Makefile all
	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	-rm -f build-stamp
	-./Configure $(CONFARGS) debian-$(DEB_HOST_ARCH)
	-sed -i -e 's/rm -f/rm -rf/' Makefile
	[ ! -f Makefile ] || make -f Makefile  clean clean-shared
	#-make -f Makefile  dclean
#	perl util/ssldir.pl /usr/local/ssl
	-rm -f test/.rnd test/testkey.pem test/testreq.pem test/certCA.srl
	-rm -f util/mk1mf.bak Makefile.bak `find . -name Makefile.save` 
	-rm -f crypto/pem/ctx_size
	-rm -f `find . -name "*~"`
	-rm -f `find . -name "*.orig" -o -name "*.rej"`
	-rm -f certs/*.0 certs/*.1
#	-rm -rf debian/tmp debian/files* core `find debian/* -type d`
	-rm -rf core $(OPTS)
	-rm doc/*.pod
	-rm -f libcrypto.* libssl.*
	-cd test && rm -f .rnd tmp.bntest tmp.bctest *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff bntest ectest  ecdsatest ecdhtest ideatest md2test  md4test md5test hmactest rc2test rc4test rc5test destest shatest sha1test sha256t sha512t mdc2test rmdtest randtest dhtest enginetest bftest casttest ssltest exptest dsatest rsa_test evp_test *.ss *.srl log dummytest newkey.pem igetest
	-rm Makefile apps/CA.pl tools/c_rehash crypto/opensslconf.h crypto/x86_64cpuid.S
	dh_clean

binary-indep:	build
	dh_testdir
	dh_testroot
# There are no architecture-independent files to be uploaded
# generated by this package.  If there were any they would be
# made here.

binary-arch:	build
	dh_testdir
	dh_testroot
	dh_clean
#	-rm -rf debian/tmp `find debian/* -type d`
	install -d debian/tmp debian/libssl0.9.8
#	cd debian/tmp && install -d `cat ../dirs`
#	cd debian/libssl09 && install -d `cat ../libssl09.dirs`
#	cd debian/libssl09-dev && install -d `cat ../libssl09-dev.dirs`
	dh_installdirs
#openssl install
	make -f Makefile  install INSTALL_PREFIX=`pwd`/debian/tmp
#	rm debian/tmp/usr/share/man/man1/openssl.1
#	rm debian/tmp/usr/share/man/man3/crypto.3
#	rm debian/tmp/usr/share/man/man3/ssl.3
#	rm debian/tmp/usr/lib/libcrypto.a
#	rm debian/tmp/usr/lib/libssl.a
	# pic static libraries, nobody should need them
#	mv debian/tmp/usr/lib/libcrypto.a debian/tmp/usr/lib/libcrypto_pic.a
#	mv debian/tmp/usr/lib/libssl.a debian/tmp/usr/lib/libssl_pic.a
	cp -pf libcrypto.static debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libcrypto.a
	cp -pf libssl.static debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libssl.a
#	mv debian/tmp/usr/lib/ssl/bin debian/tmp/usr/bin/ssl
#	(cd debian/tmp/usr/lib/ssl; ln -s /usr/bin/ssl bin)
#	mv debian/tmp/usr/lib/ssl/include debian/tmp/usr/include/ssl
#	(cd debian/tmp/usr/lib/ssl; ln -s /usr/include/ssl include)
#	chmod -x debian/tmp/usr/lib/*.so.*
#	mv debian/tmp/usr/lib/*.a debian/libssl09-dev/usr/lib/
#	mv debian/tmp/usr/lib/*.so debian/libssl09-dev/usr/lib/
#	mv debian/tmp/usr/lib/*.so.*.*.* debian/libssl09/usr/lib/
#	mv debian/tmp/usr/lib/*.la debian/libssl09-dev/usr/lib/
#	mv debian/tmp/usr/include debian/libssl09-dev/usr/
	# move runtime libraries to /lib
	install -d debian/tmp/lib/$(DEB_HOST_MULTIARCH)
	mv debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/lib*.so.* debian/tmp/lib/$(DEB_HOST_MULTIARCH)/
	ln -sf /lib/$(DEB_HOST_MULTIARCH)/$$(readlink debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libcrypto.so) debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libcrypto.so
	ln -sf /lib/$(DEB_HOST_MULTIARCH)/$$(readlink debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libssl.so) debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libssl.so
ifneq ($(DEB_HOST_ARCH_OS),hurd)
	# leave symlinks behind due to rpath in old versions
	for x in debian/tmp/lib/$(DEB_HOST_MULTIARCH)/lib*.so.*; do ln -s /lib/$(DEB_HOST_MULTIARCH)/$$(basename $$x) debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/$$(basename $$x); done
endif
	cp -pf debian/tmp/lib/$(DEB_HOST_MULTIARCH)/libcrypto.so.* debian/libcrypto0.9.8-udeb/lib/
	for opt in $(OPTS); do set -xe; mkdir -p debian/tmp/lib/$(DEB_HOST_MULTIARCH)/$$opt; cp -auv $$opt/lib*.so* debian/tmp/lib/$(DEB_HOST_MULTIARCH)/$$opt/; done
	install debian/copyright debian/libssl0.9.8/usr/share/doc/libssl0.9.8/
	install debian/changelog debian/libssl0.9.8/usr/share/doc/libssl0.9.8/changelog.Debian
#	(cd debian/tmp/usr/doc/openssl/doc; for f in *.doc*; do mv "$$f" "$$(echo $$f | sed -e 's/doc/txt/')";done)
#	(cd doc; for f in *; do install "$$f" ../debian/tmp/usr/share/doc/openssl/doc/"$$(echo $$f | sed -e 's/doc/txt/')";done)
#	debstd -u CHANGES* LICENSE README NEWS

	dh_installdocs CHANGES.SSLeay README NEWS debian/README.optimization
	dh_installexamples
	dh_installchangelogs CHANGES
#	dh_installmenu
#	dh_installcron
	dh_installdebconf
#	dh_undocumented c_rehash.1
	dh_movefiles
#	rmdir debian/tmp/usr/lib/ssl/lib
#	rmdir debian/tmp/usr/include/openssl
#	rmdir debian/tmp/usr/include
#	for opt in $(OPTS); do set -xe; rm -fr debian/tmp/lib/$$opt; done
	dh_compress
	dh_strip --dbg-package=libssl0.9.8
	dh_fixperms
	dh_perl -d
#	dh_suidregister
	dh_makeshlibs -V "libssl0.9.8 (>= 0.9.8m-1)" --add-udeb="libcrypto0.9.8-udeb"
	dh_shlibdeps -L libssl0.9.8 -l debian/libssl0.9.8/lib/$(DEB_HOST_MULTIARCH)
	dh_gencontrol
	dh_installdeb
	dh_md5sums
	dh_builddeb
	echo -en "\a"

# Below here is fairly generic really

binary:		binary-indep binary-arch

source diff:
	@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false

.PHONY: binary binary-arch binary-indep clean
