#! /usr/bin/make -f
#
# Last updated: Tue Jan  9 13:12:15 EST 1996 by Fernando Alegre.
#                                               <alegre@mars.superlink.net>
# Major changes for new source format  Oct 5 1996 Helmut Geyer
#
# To make the binary distribution package, the ``Debianized'' source package
# and the context diff to the original package, type `./debian.rules dist'.
# Make sure that `debian.rules' is executable before the final distribution
# is made.
#
# Invoke each target with `./debian.rules <target>'.  All targets should be
# invoked with the package root as the current directory.
#
# The `binary' target must be run as root, as it needs to install files with
# specific ownerships.
# 
# In general it is better to use 'dpkg-buildpackage -tc' to build all 
# important targets
INSTDIR=install -m 755 -o root -g root -d
INSTFILE=install -m 644 -o root -g root
INSTPRG=install -m 755 -o root -g root -s
INSTEXE=install -m 755 -o root -g root


DOCS=NEWS TODO BUGS 
# The name of the package (for example, `emacs').
p = procps
# version number of the shared library
v=1.11

MAN1=ps.1 uptime.1 tload.1 free.1 w.1 top.1 watch.1 skill/skill.1 \
     psmisc/killall.1 psmisc/pstree.1 psmisc/fuser.1
MAN3=proc/libproc.3 proc/libproc_pw.3 proc/readproctab.3 proc/libproc_dev.3 \
     proc/openproc.3 proc/templ.3 proc/libproc_output.3 proc/readproc.3
MAN7=ps_color.7 ps_fields.7
MAN8=psupdate.8 vmstat.8

define checkdir
   test -f proc/readproc.h -a -f debian/rules
endef

build:
# Builds the binary package.
	$(checkdir)
	-make clean
	make
	touch build

clean:
# Undoes the effect of `make -f debian.rules build'.
	$(checkdir)
	-make distclean
	-rm -f build
	-rm -rf debian/tmp
	-rm -f debian/*~

binary-indep: checkroot build 
	$(checkdir)

binary-procps: checkroot build 
	-rm -rf debian/tmp
	$(INSTDIR) debian/tmp
	chmod g-s debian/tmp
	$(INSTDIR) debian/tmp/DEBIAN
	$(INSTDIR) debian/tmp/bin
	$(INSTDIR) debian/tmp/usr/bin
	$(INSTDIR) debian/tmp/sbin
	$(INSTDIR) debian/tmp/usr/man/man1
	$(INSTDIR) debian/tmp/usr/man/man7
	$(INSTDIR) debian/tmp/usr/man/man8
	$(INSTPRG) ps debian/tmp/bin/ps
	$(INSTPRG) uptime debian/tmp/usr/bin/uptime
	$(INSTPRG) tload debian/tmp/usr/bin/tload
	$(INSTPRG) free debian/tmp/usr/bin/free
	$(INSTPRG) w debian/tmp/usr/bin/w
	$(INSTPRG) top debian/tmp/usr/bin/top
	$(INSTPRG) vmstat debian/tmp/usr/bin/vmstat
	$(INSTPRG) watch debian/tmp/usr/bin/watch
	$(INSTPRG) psupdate debian/tmp/sbin/psupdate
	$(INSTPRG) skill/skill debian/tmp/usr/bin/skill
	(cd debian/tmp/usr/bin && ln -s skill snice)
	$(INSTPRG) psmisc/fuser debian/tmp/bin		
	$(INSTPRG) psmisc/killall debian/tmp/usr/bin		
	$(INSTPRG) psmisc/pstree debian/tmp/usr/bin		
	$(INSTDIR) debian/tmp/lib
	$(INSTEXE) proc/libproc.so.$(v) debian/tmp/lib/libproc.so.$(v)
	$(INSTFILE) $(MAN1) debian/tmp/usr/man/man1
	$(INSTFILE) $(MAN7) debian/tmp/usr/man/man7
	$(INSTFILE) $(MAN8) debian/tmp/usr/man/man8
	$(INSTDIR) debian/tmp/usr/doc/copyright
	$(INSTDIR) debian/tmp/usr/doc/$(p)
	$(INSTFILE) debian/changelog debian/tmp/usr/doc/procps/changlog.Debian
	$(INSTFILE) $(DOCS) debian/tmp/usr/doc/procps/
	$(INSTFILE) debian/shlibs debian/tmp/DEBIAN/
	$(INSTEXE) debian/postinst debian/tmp/DEBIAN/
	$(INSTEXE) debian/postrm debian/tmp/DEBIAN/
	$(INSTFILE) debian/copyright debian/tmp/usr/doc/copyright/$(p)
	-gzip -9vfr debian/tmp/usr/man
	-gzip -9vfr debian/tmp/usr/doc
	(cd debian/tmp/usr/man/man1 ; ln -s skill.1.gz snice.1.gz)
	unset LD_PRELOAD; dpkg-shlibdeps -Ldebian/shlibs.ignore top
	dpkg-gencontrol -pprocps
	dpkg --build debian/tmp ..

binary-libproc: checkroot build
	rm -rf debian/tmp
	$(INSTDIR) debian/tmp
	chmod g-s debian/tmp
	$(INSTDIR) debian/tmp/DEBIAN
	$(INSTDIR) debian/tmp/usr/lib
	$(INSTFILE) proc/libproc.a debian/tmp/usr/lib
	(cd debian/tmp/usr/lib && ln -sf /lib/libproc.so.$(v) libproc.so )
	$(INSTDIR) debian/tmp/usr/include/proc
	$(INSTFILE) proc/*.h debian/tmp/usr/include/proc
	$(INSTDIR) debian/tmp/usr/doc/copyright
	$(INSTFILE) debian/copyright debian/tmp/usr/doc/copyright/libproc
	$(INSTDIR) debian/tmp/usr/man/man3
	$(INSTFILE) $(MAN3) debian/tmp/usr/man/man3
	-gzip -9vfr debian/tmp/usr/man
	-gzip -9vfr debian/tmp/usr/doc
	unset LD_PRELOAD; dpkg-shlibdeps ps
	dpkg-gencontrol -plibproc-dev
	dpkg --build debian/tmp ..

binary-xproc: checkroot build
	rm -rf debian/tmp
	$(INSTDIR) debian/tmp
	chmod g-s debian/tmp
	$(INSTDIR) debian/tmp/DEBIAN
	$(INSTDIR) debian/tmp/usr/X11R6/bin
	$(INSTPRG) xproc/xload debian/tmp/usr/X11R6/bin
	(cd debian/tmp/usr/X11R6/bin && ln -s xload xmem && ln -s xload xidle )
	$(INSTPRG) xcpustate/xcpustate debian/tmp/usr/X11R6/bin
	$(INSTDIR) debian/tmp/usr/X11R6/lib/X11/app-defaults
	$(INSTFILE) xproc/XLoad.ad \
	            debian/tmp/usr/X11R6/lib/X11/app-defaults/XLoad
	$(INSTFILE) xproc/XIdle.ad \
	            debian/tmp/usr/X11R6/lib/X11/app-defaults/XIdle
	$(INSTFILE) xproc/XMem.ad \
	            debian/tmp/usr/X11R6/lib/X11/app-defaults/XMem
	$(INSTDIR) debian/tmp/usr/X11R6/man/man1
	$(INSTFILE) xproc/xload.man debian/tmp/usr/X11R6/man/man1/xload.1x
	$(INSTFILE) xproc/xidle.man debian/tmp/usr/X11R6/man/man1/xidle.1x
	$(INSTFILE) xproc/xmem.man debian/tmp/usr/X11R6/man/man1/xmem.1x
	$(INSTFILE) xcpustate/xcpustate.man \
	            debian/tmp/usr/X11R6/man/man1/xcpustate.1x
	$(INSTDIR) debian/tmp/usr/doc/copyright
	$(INSTFILE) debian/copyright debian/tmp/usr/doc/copyright/xproc
	-gzip -9vfr debian/tmp/usr/X11R6/man
	-gzip -9vfr debian/tmp/usr/doc
	unset LD_PRELOAD; dpkg-shlibdeps xproc/xload
	dpkg-gencontrol -pxproc
	dpkg --build debian/tmp ..

# generic targets:
binary:     binary-indep binary-arch

binary-arch: binary-procps binary-libproc binary-xproc

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

checkroot:
	$(checkdir)
	test root = "`whoami`"

.PHONY: binary binary-arch binary-indep clean checkroot binary-procps binary-libproc binary-xproc


