#!/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

# define package name
COMMON_PKG=cnijfilter-common
PRINTER_DEPEND_PKG+=cnijfilter-mg7100-423
PRINTER_DEPEND_PKG+=cnijfilter-mg6500-424
PRINTER_DEPEND_PKG+=cnijfilter-mg6400-425
PRINTER_DEPEND_PKG+=cnijfilter-mg5500-426
PRINTER_DEPEND_PKG+=cnijfilter-mg3500-427
PRINTER_DEPEND_PKG+=cnijfilter-mg2400-428
PRINTER_DEPEND_PKG+=cnijfilter-mg2500-429
PRINTER_DEPEND_PKG+=cnijfilter-p200-430

PRINTER_PKG_PROGRAM+=ppd
PRINTER_PKG_PROGRAM+=cnijfilter

CFLAGS = -Wall -g

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

LNGBITS := $(shell getconf LONG_BIT)
ifeq ($(LNGBITS),32)
	_arc=32
else
	_arc=64
endif

configure: configure-stamp
configure-stamp:
	dh_testdir
	# Add here commands to configure the package.

	### configure common package
	@echo "######## configure libs"; \
	cd ./libs; ./autogen.sh --prefix=/usr
	@echo "######## configure bscc2sts"; \
	cd ./bscc2sts; ./autogen.sh
	@echo "######## configure cnijnpr"; \
	cd ./cnijnpr; ./autogen.sh --prefix=/usr --enable-libpath=/usr/lib/bjlib
	@echo "######## configure cngpij"; \
	cd ./cngpij; ./autogen.sh --prefix=/usr --enable-progpath=/usr/bin
	@echo "######## configure cngpijmnt"; \
	cd ./cngpijmnt; ./autogen.sh --prefix=/usr --enable-progpath=/usr/bin
	@echo "######## configure pstocanonij"; \
	cd ./pstocanonij; ./autogen.sh --prefix=/usr --enable-progpath=/usr/bin
	@echo "######## configure backend"; \
	cd ./backend; ./autogen.sh --prefix=/usr --enable-progpath=/usr/bin
	@echo "######## configure backendnet"; \
	cd ./backendnet; ./autogen.sh --prefix=/usr --enable-progpath=/usr/bin LDFLAGS="-L../../com/libs_bin${_arc}"
	@echo "######## configure cmdtocanonij"; \
	cd ./cmdtocanonij; ./autogen.sh --prefix=/usr
	@echo "######## configure cnijbe"; \
	cd ./cnijbe; ./autogen.sh --prefix=/usr --enable-progpath=/usr/bin
	@echo "######## configure lgmon2"; \
	cd ./lgmon2; ./autogen.sh --prefix=/usr --enable-progpath=/usr/bin LDFLAGS="-L../../com/libs_bin${_arc}"

	#### configure printer package
	echo "######## configure ppd file"; \
	cd ./ppd && ./autogen.sh --prefix=/usr --enable-ppdpath=/usr/share/ppd --program-suffix=CN_IJ_MODEL
	echo "######## configure cnijfilter"; \
	cd ./cnijfilter && ./autogen.sh --prefix=/usr --enable-libpath=/usr/lib/bjlib --enable-binpath=/usr/bin --program-suffix=CN_IJ_MODEL


	touch configure-stamp


build: build-stamp
build-stamp: configure-stamp 
	dh_testdir
	touch $@

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp configure-stamp

	# Add here commands to clean up after the build process.
	-$(MAKE) clean

	dh_clean 

install: build
	dh_testdir
	dh_testroot
	dh_clean -k 
	dh_installdirs

	### build & install printer package
	for pkg in ${PRINTER_DEPEND_PKG}; do \
		model_name=`echo $${pkg} | cut -d- -f2` && \
		comm_name=`echo $${pkg} | cut -d- -f1` && \
		model_num=`echo $${pkg} | cut -d- -f3` && \
		model_dir=$${comm_name}-$${model_name}series && \
		deb_model_dir=$(CURDIR)/debian/$${model_dir}; \
		for pg_name in ${PRINTER_PKG_PROGRAM}; do \
			echo "######## install $${pg_name}"; \
			pushd ./$${pg_name}; \
			find . -name Makefile -print > file_lists; \
			find . -name config.h -print >> file_lists; \
			for fn in `cat file_lists`; do \
				if [ ! -f $${fn}.org ]; then \
					cp $${fn} $${fn}.org; \
				fi; \
				sed -e s/CN_IJ_MODEL_NUM/$${model_num}/g $${fn}.org | sed -e s/CN_IJ_MODEL/$${model_name}/ > cn_ij_tmp; mv cn_ij_tmp $${fn}; \
			done; \
			make clean; make; make install DESTDIR=$${deb_model_dir}; \
			popd; \
		done; \
		echo "######## install library"; \
		dh_install -s; \
		mkdir -p $${deb_model_dir}/usr/lib; \
		install -c -m 755 $${model_num}/libs_bin${_arc}/libcnbpcmcm$${model_num}.so.* $${deb_model_dir}/usr/lib; \
		install -c -m 755 $${model_num}/libs_bin${_arc}/libcnbpcnclapi$${model_num}.so.* $${deb_model_dir}/usr/lib; \
		install -c -m 755 $${model_num}/libs_bin${_arc}/libcnbpcnclbjcmd$${model_num}.so.* $${deb_model_dir}/usr/lib; \
		install -c -m 755 $${model_num}/libs_bin${_arc}/libcnbpcnclui$${model_num}.so.* $${deb_model_dir}/usr/lib; \
		install -c -m 755 $${model_num}/libs_bin${_arc}/libcnbpess$${model_num}.so.* $${deb_model_dir}/usr/lib; \
		install -c -m 755 $${model_num}/libs_bin${_arc}/libcnbpo$${model_num}.so.* $${deb_model_dir}/usr/lib; \
		mkdir -p $${deb_model_dir}/usr/lib/bjlib; \
		install -c -m 644 $${model_num}/database/cif$${model_name}.conf $${deb_model_dir}/usr/lib/bjlib; \
		install -c -m 644 $${model_num}/database/cnb_$${model_num}0.tbl $${deb_model_dir}/usr/lib/bjlib; \
		install -c -m 644 $${model_num}/database/cnbpname$${model_num}.tbl $${deb_model_dir}/usr/lib/bjlib; \
		if [ -f $${model_num}/database/cif$${model_name}.bscc ]; then \
			install -c -m 644 -o lp -g lp $${model_num}/database/cif$${model_name}.bscc $${deb_model_dir}/usr/lib/bjlib; \
		fi; \
	done

	### install common package
	@echo "######## compile libs"; \
	cd ./libs; make clean; make
	@echo "######## install bscc2sts"; \
	cd ./bscc2sts; make clean; make
	@echo "######## install cnijnpr"; \
	cd ./cnijnpr; make clean; make; make install DESTDIR=$(CURDIR)/debian/${COMMON_PKG}
	@echo "######## install cngpij"; \
	cd ./cngpij; make clean; make; make install DESTDIR=$(CURDIR)/debian/${COMMON_PKG}
	@echo "######## install cngpijmnt"; \
	cd ./cngpijmnt; make clean; make; make install DESTDIR=$(CURDIR)/debian/${COMMON_PKG}
	@echo "######## install pstocanonij"; \
	cd ./pstocanonij; make clean; make; make install DESTDIR=$(CURDIR)/debian/${COMMON_PKG}
	@echo "######## install backend"; \
	cd ./backend; make clean; make; make install DESTDIR=$(CURDIR)/debian/${COMMON_PKG}
	@echo "######## install backendnet"; \
	cd ./backendnet; make clean; make; make install  DESTDIR=$(CURDIR)/debian/${COMMON_PKG}
	@echo "######## install cmdtocanonij"; \
	cd ./cmdtocanonij; make clean; make; make install DESTDIR=$(CURDIR)/debian/${COMMON_PKG}
	@echo "######## configure cnijbe"; \
	cd ./cnijbe; make clean; make; make install DESTDIR=$(CURDIR)/debian/${COMMON_PKG}
	@echo "######## configure lgmon2"; \
	cd ./lgmon2; make clean; make; make install DESTDIR=$(CURDIR)/debian/${COMMON_PKG}
	@echo "######## install common library"; \
	mkdir -p $(CURDIR)/debian/${COMMON_PKG}/usr/lib; \
	install -c -m 755 com/libs_bin${_arc}/libcnnet.so.* $(CURDIR)/debian/${COMMON_PKG}/usr/lib; \
	install -c -m 755 com/libs_bin${_arc}/libcnbpcnclapicom.so.* $(CURDIR)/debian/${COMMON_PKG}/usr/lib; \
	mkdir -p $(CURDIR)/debian/${COMMON_PKG}/usr/lib/bjlib; \
	install -c -m 644 -o lp -g lp com/ini/cnnet.ini $(CURDIR)/debian/${COMMON_PKG}/usr/lib/bjlib; \
	mkdir -p $(CURDIR)/debian/${COMMON_PKG}/etc/udev/rules.d; \
	install -c -m 644 etc/*.rules $(CURDIR)/debian/${COMMON_PKG}/etc/udev/rules.d;

	# Add here commands to install the package into debian/cnijfilter-common.
	#$(MAKE) install DESTDIR=$(CURDIR)/debian/cnijfilter-common


	touch $@

# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs 
	dh_installdocs
	dh_installexamples
#	dh_install
#	dh_installmenu
#	dh_installdebconf	
#	dh_installlogrotate
#	dh_installemacsen
#	dh_installpam
#	dh_installmime
#	dh_python
#	dh_installinit
#	dh_installcron
#	dh_installinfo
	dh_installman
	dh_link
	dh_strip
	dh_compress -X.txt
	dh_fixperms --exclude=bscc --exclude=cnnet.ini
#	dh_perl
#	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

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