# for making packages
ROOT=/
# where to install module
MODULESDIR=${ROOT}/lib/modules/$(shell uname -r)
# kernel source tree
KERNEL_SOURCES=${MODULESDIR}/build
# use modversions? (Linux 2.4 only) [yes/no/detect]
MODVERSIONS=detect
# leave empty if you don't need man pages installed
MAN_PAGE_DIR=
# leave empty if you don't need html manual
HTML_DOC_DIR=
# debug info (higher means more verbose, none == 0)
DEBUG=0

export ROOT MODULESDIR KERNEL_SOURCES MODVERSIONS MAN_PAGE_DIR DEBUG TMP

# don't know how to call sed directly
EXXP="s/^[^(]*(\([^)]*\)).*$$/\1/"
VERSION=$(shell head -n1 Changelog |sed ${EXXP})

export VERSION

default: all

all: module utils
clean:  module-clean utils-clean
install: module-install utils-install
uninstall: module-uninstall utils-uninstall

utils:
	@make -C shfsmount
	@make -C docs
	
utils-clean:
	@make -C shfsmount clean
	@make -C docs clean

utils-install:
	@make -C shfsmount install
	@make -C docs install
	
utils-uninstall:
	@make -C shfsmount uninstall
	@make -C docs uninstall

module:
	@make -C shfs

module-clean:
	@make -C shfs clean

module-install:
	@make -C shfs install

module-uninstall:
	@make -C shfs uninstall

dist: distclean clean rpm-spec deb-changelog
	mkdir shfs-${VERSION}
	rm -f shfs-${VERSION}.tar.gz
	find . -maxdepth 1 ! -name . ! -name "shfs-${VERSION}" -exec cp -R {} shfs-${VERSION}/ \;
	tar -czf shfs-${VERSION}.tar.gz --exclude=CVS --exclude=amd shfs-${VERSION}
	rm -rf shfs-${VERSION}

distclean:
	rm -f shfs-${VERSION}.tar.gz
	
deb: deb-changelog
	dpkg-buildpackage -rfakeroot -us -uc -tc

deb-clean: deb-changelog-clean
	if [ -f ./build-stamp ]; then \
		fakeroot debian/rules clean; \
	fi

deb-changelog:
	ln -fs ../Changelog debian/changelog

deb-changelog-clean:
	rm -f debian/changelog

rpm: dist
	make -C rpm rpm

rpm-clean:
	if [ -f rpm/shfs-module.spec -o -f rpm/shfs-utils.spec ]; then \
		make -C rpm rpm-clean; \
	fi

rpm-spec:
	make -C rpm spec

rpm-spec-clean:
	make -C rpm spec-clean

.PHONY: default all clean install uninstall utils utils-clean utils-install utils-uninstall \
        module module-clean module-install module-uninstall dist distclean deb deb-clean \
	deb-changelog deb-changelog-clean rpm rpm-clean rpm-spec rpm-spec-clean
