# for package making
VERSION = 2.0.0
SUBDIRS = command addons
CLEANUPS = command/lkstutils.spec

#	 lkcd-addon/lkcdutils/.config \
#	 lkcd-addon/lkcdutils/lcrash/include/lc_config.h
LKCDDIR = lkcd-addon/lkcdutils

TARGETS = $(SUBDIRS) hooks LICENSE linux26.patch Makefile Install howto.txt \
	  changelog extra-patch examples scripts
PKGNAME = lkst-$(VERSION)
KSRC = /lib/modules/`uname -r`/build
KPRESRC =
CONFOPT =
LKCDCONF = config-lkcd
LKCDCLEAN = clean-lkcd
LKCDCONFOPT =

LKCD=no
# currently, LKCD is unsupported.
#ifeq ($(LKCD), no)
CONFOPT = --disable-lkcd
LKCDCONF =
LKCDCLEAN = 
#endif

all: configure
	for dir in $(SUBDIRS) ; do \
		( cd $$dir ; \
		[ -f Makefile ] && make all ; \
		cd .. ); \
	done

package: dist

dist: distclean adjustver
	mkdir $(PKGNAME)
	cp -a $(TARGETS) $(PKGNAME)
	rm -rf `find $(PKGNAME) -name CVS -a -type d`
	tar czvf $(PKGNAME).tar.gz $(PKGNAME)
	rm -rf $(PKGNAME)

distclean: $(LKCDCLEAN)
	for dir in $(SUBDIRS) ; do \
		( cd $$dir ; \
		[ -f Makefile ] && make distclean ; \
		cd .. ); \
	done
	rm -rf $(CLEANUPS)

configure: config

config: $(LKCDCONF)
	for dir in $(SUBDIRS) ; do \
		( cd $$dir ; \
		echo "configuring " $$dir ; \
		[ -f configure ] || autoconf ; \
		[ -x configure ] && ./configure --with-ksrc=$(KSRC) $(CONFOPT); \
		echo "done"; \
		cd ..); \
	done

clean-lkcd: 
	( [ -d $(LKCDDIR) ] && cd $(LKCDDIR) && make clean; )

config-lkcd:
	( [ -d $(LKCDDIR) ] && ( cd $(LKCDDIR) \
	echo "configuring LKCD" \
	[ -x configure ] && ./configure --topdir=$(KSRC) $(LKCDCONFOPT); \
	echo "done" ) )

adjustver:
	cat command/cmd.conf | sed /^LKSTVER/s/.*/LKSTVER=$(VERSION)/ > temp.conf
	mv temp.conf command/cmd.conf
	cat addons/cmd_mod.conf | sed /^LKSTVER/s/.*/LKSTVER=$(VERSION)/ > temp.conf
	mv temp.conf addons/cmd_mod.conf

PATCH = patch -d $(KPRESRC) -p1

patch:
	if [ ! $(KPRESRC)x = x ] ;then \
	$(PATCH) < extra-patch/preassigned-2.6.0-test9.patch	; \
	$(PATCH) < hooks/kernelhooks-v1.8-260-test9-base.patch	; \
	$(PATCH) < hooks/kernelhooks-v1.8-fix_kconfig.patch	; \
	$(PATCH) < hooks/kernelhooks-v1.8-fix_kmakefile.patch	; \
	$(PATCH) < hooks/kernelhooks-v1.8-resolve_dependency.patch	; \
	$(PATCH) < hooks/kernelhooks-v1.8-support_ia64.patch	; \
	$(PATCH) < linux26.patch				; \
	fi
