# Makefile.in for kernel module

SHELL = /bin/sh
INSTALL = /usr/bin/install -c
mkdir_p = mkdir -p
majver = 2.6
VERSION = 1.0.0

KVERSION=$(shell uname -r)

DISTFILES = Makefile.in configure.ac configure config.h.in ../install-sh \
	cloop.c cloop.h
DISTDIR = /usr/local

CC = gcc
LD = ld

#INCLUDES += -I/UNIONFS/usr/src/linux-2.6.17/arch/um/include/ \
#	-I/UNIONFS/usr/src/linux-2.6.17/arch/um/kernel/tt/include/ \
#	-I/UNIONFS/usr/src/linux-2.6.17/arch/um/kernel/skas/include

#CFLAGS:=-Wall -Wstrict-prototypes -Wno-trigraphs -O2 -s -I. -fno-strict-aliasing -fno-common -fomit-frame-pointer $(INCLUDES)
CFLAGS:=-Wall -Wstrict-prototypes -Wno-trigraphs -O2 -s -I. -fno-strict-aliasing -fno-common -fomit-frame-pointer

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

clean:
	rm -f $(cloopmodule) *.o .*.cmd *.mod.c *.ko *.s */*.o create_compressed_fs extract_compressed_fs *~
	$(MAKE) -C advancecomp-1.9_create_compressed_fs clean
	rm -f */config.status */config.log tmp

distclean: clean
	rm -f Makefile
	rm -f config.h config.log config.status config.cache
	rm -rf .tmp_versions

maintainer-clean: distclean

distdir: $(DISTFILES) $(COMPATDISTFILES)
	cp -p $(DISTFILES) $(distdir)
	mkdir $(DISTDIR)/compat
	cp -p $(COMPATDISTFILES) $(DISTDIR)/compat

utils: create_compressed_fs_chk extract_compressed_fs_chk

install-utils: utils
	mkdir -p $(DESTDIR)/bin
	install -m0755 create_compressed_fs $(DESTDIR)/bin

create_compressed_fs_chk:
	if test -d ./advancecomp-1.9_create_compressed_fs ; then \
	  $(MAKE) create_compressed_fs; \
	fi

create_compressed_fs: advancecomp-1.9_create_compressed_fs/advfs
	ln -f $< $@

advancecomp-1.9_create_compressed_fs/advfs: advancecomp-1.9_create_compressed_fs/config.status
	$(MAKE) -C advancecomp-1.9_create_compressed_fs advfs

advancecomp-1.9_create_compressed_fs/config.status: advancecomp-1.9_create_compressed_fs 
	cd advancecomp-1.9_create_compressed_fs && ./configure

extract_compressed_fs_chk:
	if test -f ./extract_compressed_fs.c; then \
	  $(MAKE) extract_compressed_fs; \
	fi

extract_compressed_fs: extract_compressed_fs.o
	$(CC) -o $@ $< -lz

# to build packages for Knoppix
packages:
	fakeroot debian/rules binary
	cp -a . ../tmp-cloop-modbuild
	cd ../tmp-cloop-modbuild && fakeroot debian/rules binary-modules && rm -rf ../tmp-cloop-modbuild

ifeq ($(shell grep 'UTS.*"2\.6' /UNIONFS/usr/src/linux-2.6.17/include/linux/version.h),)
 -include /UNIONFS/usr/src/linux-2.6.17/.config
 -include /UNIONFS/usr/src/linux-2.6.17/config.vars

 CKERNOPS:=-D__KERNEL__ -DMODULE -O2 -fno-builtin -nostdlib -DKBUILD_MODNAME="cloop" -DKBUILD_BASENAME="cloop"

 MODVERSIONS:= -DMODVERSIONS -include /UNIONFS/usr/src/linux-2.6.17/include/linux/modversions.h
 CKERNOPS += $(MODVERSIONS)

 ifdef CONFIG_SMP
  CKERNOPS += -D__SMP__
  endif

 module: cloop.o

 cloop.o: compressed_loop.c compressed_loop.h
	$(CC) $(CFLAGS) $(CKERNOPS) $(CFLAGS_$@) -o cloop.o -c compressed_loop.c
 install-module: module
	cp cloop.o $(INSTALL_MOD_PATH)/lib/modules/$(KVERSION)/kernel/drivers/extra

else

 EXTRA_CFLAGS := -I /UNIONFS/usr/src/linux-2.6.17/include/asm/mach-default 

 obj-m := cloop.o
 cloop-objs := compressed_loop.o

 module: compressed_loop.h compressed_loop.c
	$(MAKE) modules -C /UNIONFS/usr/src/linux-2.6.17 M=$(CURDIR) KERNELRELEASE=$(KVERSION)

 install-module: module
	$(MAKE) modules_install -C /UNIONFS/usr/src/linux-2.6.17 M=$(CURDIR) KERNELRELEASE=$(KVERSION)

endif
