TOP	= ..
HDRS	= $(TOP)/crash.h $(TOP)/def.h
CSRCS	= table.c clean_sched.c clean_size.c clean_module.c clean_sem.c\
	  clean_fs.c clean_buffer.c buffer.c inode.c file.c\
	  operations.c clean_slab.c slab.c clean_mm.c page.c clean_mmzone.c\
	  block_device.c clean_route.c route.c clean_ext2.c\
	  ext2.c timer_vec.c clean_usb.c usb.c clean_neigh.c neighbour.c\
	  clean_blkdev.c blkdev.c clean_namespace.c namespace.c vfsmount.c\
	  clean_net.c socket.c dentry.c vm.c clean_vm.c clean_binfmts.c\
	  binfmts.c clean_swap.c swap.c clean_timer.c clean_nfs.c nfs.c\
	  clean_mempool.c mempool.c clean_bio.c bio.c clean_device.c\
	  device.c signal.c clean_tty.c tty.c user.c clean_genhd.c \
	  clean_exception.c exception.c clean_wait.c wait.c radix_tree.c\
	  clean_radix_tree.c

include	$(TOP)/Rules.make

ifneq ($(origin CONFDIR),undefined)
INCLUDE = -I$(CONFDIR)
endif

OBJS	= $(CSRCS:.c=.o)
INCLUDE	+= -I$(TOP) -I$(INCDIR) -I$(KERNELDIR)
ifeq ($(ARCH),i386)
INCLUDE	+= -I$(KERNELDIR)/include/asm/mach-default
endif
CFLAGS	= $(CDEBUG) $(INCLUDE) '-DKBUILD_BASENAME="dummy"'
TARGET	= libmcrash.a
DEPFILE	= Makefile.dep
ifneq ($(wildcard $(KERNELDIR)/fs/ext2/ext2.h),$(KERNELDIR)/fs/ext2/ext2.h)
CFLAGS	+= -DNO_KERNEL_SRC
endif

GENHEAD	= slab.h flags_fs.h flags_mm.h flags_sched.h flags_vmalloc.h\
	  flags_gfp.h flags_nfs_fs.h flags_nfs_fs_sb.h flags_nfs_mount.h\
	  flags_signal.h flags_genhd.h flags_uaccess.h flags_blkdev.h\
	  flags_page-flags.h flags_mmzone.h flags_sock.h flags_device.h\
	  flags_wait.h radix_tree_node.h flags_file.h flags_slab.h

all:	$(GENHEAD) $(TARGET)

$(TARGET): $(OBJS)
	$(AR) cr $(TARGET) $(OBJS)

$(OBJS): $(HDRS)

slab.h:
	$(GETHEAD) $(KERNELDIR)/mm/slab.c > $@

radix_tree_node.h:
	$(GETHEAD) $(KERNELDIR)/lib/radix-tree.c > $@

flags_fs.h:
	$(BITNAME) sflags:MS_ fsflags:FS_ flflags:FL_ istate:I_ $(KERNELDIR)/include/linux/fs.h $@

flags_mm.h:
	$(BITNAME) $(KERNELDIR)/include/linux/mm.h $@

flags_page-flags.h:
	$(BITNAME) pgflags:PG_:1 $(KERNELDIR)/include/linux/page-flags.h $@

flags_sched.h:
	$(BITNAME) tsflags:PF_ $(KERNELDIR)/include/linux/sched.h $@

flags_vmalloc.h:
	$(BITNAME) vsflags:VM_ $(KERNELDIR)/include/linux/vmalloc.h $@

flags_gfp.h:
	$(BITNAME) gfpbit:__GFP_ $(KERNELDIR)/include/linux/gfp.h $@

flags_nfs_fs.h:
	$(BITNAME) nflags:NFS_INO_ $(KERNELDIR)/include/linux/nfs_fs.h $@

flags_nfs_fs_sb.h:
	$(BITNAME) $(KERNELDIR)/include/linux/nfs_fs_sb.h $@

flags_nfs_mount.h:
	$(BITNAME) mflags:NFS_MOUNT_ $(KERNELDIR)/include/linux/nfs_mount.h $@

flags_signal.h:
	$(BITNAME) saflags:SA_ $(KERNELDIR)/include/asm/signal.h $@

flags_genhd.h:
	$(BITNAME) gdflags:GENHD_FL_ $(KERNELDIR)/include/linux/genhd.h $@

flags_uaccess.h:
	$(BITNAME) $(KERNELDIR)/include/asm/uaccess.h $@

flags_blkdev.h:
	$(BITNAME) $(KERNELDIR)/include/linux/blkdev.h $@

flags_mmzone.h:
	$(BITNAME) $(KERNELDIR)/include/linux/mmzone.h $@

flags_sock.h:
	$(BITNAME) $(KERNELDIR)/include/net/sock.h $@

flags_device.h:
	$(BITNAME) $(KERNELDIR)/include/linux/device.h $@

flags_wait.h:
	$(BITNAME) $(KERNELDIR)/include/linux/wait.h $@

flags_file.h:
	$(BITNAME) $(KERNELDIR)/include/linux/file.h $@

flags_slab.h:
	$(BITNAME) slab.h $@

clean:
	/bin/rm -f $(OBJS) $(TARGET) $(DEPFILE) *~ *.swp $(GENHEAD)

depend:
	makedepend -f- $(INCLUDE) $(CSRCS) > $(DEPFILE)

ifeq ($(wildcard $(DEPFILE)),$(DEPFILE))
include $(DEPFILE)
endif
