#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.

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

# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)


CFLAGS = -Wall -g

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

config.status:
	dh_testdir

	dh_autotools-dev_updateconfig
	dh_autoreconf

	# Add here commands to configure the package.
	./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info --localstatedir=/var/lib/sphinxsearch --sysconfdir=/etc/sphinxsearch --with-libstemmer --with-pgsql --enable-id64 --with-unixodbc --with-syslog CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs"
	cd api/libsphinxclient && ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info --localstatedir=/var/lib/sphinxsearch --sysconfdir=/etc/sphinxsearch CFLAGS="$(CFLAGS)"

build: build-arch build-indep
build-arch: build-stamp
build-indep: build-stamp

build-stamp: config.status
	dh_testdir
	dh_auto_build --parallel
	docbook-to-man debian/indexer.1.sgml > indexer.1
	docbook-to-man debian/searchd.1.sgml > searchd.1
	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp 

	[ ! -f Makefile ] || $(MAKE) distclean
	[ ! -f api/libsphinxclient/Makefile ] || $(MAKE) -C api/libsphinxclient distclean

	$(RM) config.log config.status
	$(RM) -f indexer.1 searchd.1 debian/sphinxapi.py

	dh_autoreconf_clean
	dh_autotools-dev_restoreconfig
	dh_clean 

install: build
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

	# Add here commands to install the package into debian/sphinxsearch.
	$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
 
	# Copy a default configuration file
	mv $(CURDIR)/debian/tmp/etc/sphinxsearch/sphinx.conf.dist $(CURDIR)/debian/tmp/etc/sphinxsearch/sphinx.conf.sample
	# apis
	cp api/sphinxapi.py debian/
	cd api/libsphinxclient && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
	install -d $(CURDIR)/debian/tmp/usr/lib/ruby/vendor_ruby
	install -d $(CURDIR)/debian/tmp/usr/lib/ruby/vendor_ruby/sphinx
	install -m0644 api/ruby/lib/sphinx.rb $(CURDIR)/debian/tmp/usr/lib/ruby/vendor_ruby/
	install -m0644 api/ruby/lib/sphinx/client.rb $(CURDIR)/debian/tmp/usr/lib/ruby/vendor_ruby/sphinx/
	install -m0644 api/ruby/lib/sphinx/request.rb $(CURDIR)/debian/tmp/usr/lib/ruby/vendor_ruby/sphinx/
	install -m0644 api/ruby/lib/sphinx/response.rb $(CURDIR)/debian/tmp/usr/lib/ruby/vendor_ruby/sphinx/
	install -d $(CURDIR)/debian/tmp/usr/share/doc/libsphinx-ruby
	cd api/ruby && rdoc --all --inline-source --diagram --fileboxes --line-numbers --fmt=html -o $(CURDIR)/debian/tmp/usr/share/doc/libsphinx-ruby/rdoc

# Build architecture-independent files here.
binary-indep: build install
	dh_testdir
	dh_testroot
	#dh_rdoc -plibsphinx-ruby api/ruby
	dh_installdirs -ppython-sphinxapi -plibsphinx-ruby
	dh_installchangelogs -ppython-sphinxapi -plibsphinx-ruby
	dh_installdocs -ppython-sphinxapi -plibsphinx-ruby
	dh_installexamples -ppython-sphinxapi -plibsphinx-ruby
	dh_install -ppython-sphinxapi -plibsphinx-ruby -a --sourcedir=debian/tmp
	dh_python2 -ppython-sphinxapi
	dh_installcron -ppython-sphinxapi -plibsphinx-ruby
	dh_installdebconf -ppython-sphinxapi -plibsphinx-ruby
	dh_installinit -ppython-sphinxapi -plibsphinx-ruby
	dh_installman -ppython-sphinxapi -plibsphinx-ruby
	dh_link -ppython-sphinxapi -plibsphinx-ruby
	dh_strip -ppython-sphinxapi -plibsphinx-ruby
	dh_compress -ppython-sphinxapi -plibsphinx-ruby
	dh_fixperms -ppython-sphinxapi -plibsphinx-ruby
	dh_makeshlibs -ppython-sphinxapi -plibsphinx-ruby
	dh_installdeb -ppython-sphinxapi -plibsphinx-ruby
	dh_shlibdeps -ppython-sphinxapi -plibsphinx-ruby
	dh_gencontrol -ppython-sphinxapi -plibsphinx-ruby
	dh_md5sums -ppython-sphinxapi -plibsphinx-ruby
	dh_builddeb -ppython-sphinxapi -plibsphinx-ruby

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installdirs -Npython-sphinxapi -Nlibsphinx-ruby
	dh_installchangelogs -Npython-sphinxapi -Nlibsphinx-ruby
	dh_installdocs -a -Npython-sphinxapi -Nlibsphinx-ruby
	dh_installexamples -Npython-sphinxapi -Nlibsphinx-ruby
	dh_install -Npython-sphinxapi -Nlibsphinx-ruby -a --sourcedir=debian/tmp
	dh_installcron -a -Npython-sphinxapi -Nlibsphinx-ruby
	dh_installdebconf -Npython-sphinxapi -Nlibsphinx-ruby
	dh_installinit -Npython-sphinxapi -Nlibsphinx-ruby
	dh_installman -Npython-sphinxapi -Nlibsphinx-ruby
	dh_installlogrotate -a
	dh_link -Npython-sphinxapi -Nlibsphinx-ruby
	dh_strip -Npython-sphinxapi -Nlibsphinx-ruby
	dh_compress -Npython-sphinxapi -Nlibsphinx-ruby
	dh_fixperms -Npython-sphinxapi -Nlibsphinx-ruby
	dh_makeshlibs -Npython-sphinxapi -Nlibsphinx-ruby
	dh_installdeb -Npython-sphinxapi -Nlibsphinx-ruby
	dh_shlibdeps -Npython-sphinxapi -Nlibsphinx-ruby
	dh_gencontrol -Npython-sphinxapi -Nlibsphinx-ruby
	dh_md5sums -Npython-sphinxapi -Nlibsphinx-ruby
	dh_builddeb -Npython-sphinxapi -Nlibsphinx-ruby

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