
EXECS = fuse.o fuse.ko
OBJS = dev.o dir.o file.o inode.o util.o

all: KERNEL_VERSION $(EXECS)

CFLAGS = -fno-builtin -nostdinc -D__uClinux__ -D__KERNEL__ -I${ROOTDIR}/${CONFIG_LINUXDIR}/include -Wall -Wstrict-prototypes -Wno-trigraphs -O1 -fno-strict-aliasing -fno-common -I$(GCC_DIR)/include -pipe -DNO_MM -DNO_FPU $(CPUFLAGS) -Wa,-S -Wa,$(CPUFLAGS) -DUTS_SYSNAME="uClinux" -D__linux__ -DMODULE  -nostdinc -iwithprefix include
CFLAGS += -DFUSE_VERSION=\"1.1\"

#VERSION = 2
#PATCHLEVEL = 4
#SUBLEVEL = 20
#CFLAGS = -D__KERNEL__ -I${LINUXDIR}/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -I${LINUXDIR}/../../include -I ${LINUXDIR}/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -mcpu=r4600 -mips2 -Wa,--trap  -m4710a0kern   -nostdinc -iwithprefix include -DMODULE -mlong-calls -fno-common


CFLAGS += -I../include
CFLAGS += -D_FILE_OFFSET_BITS=64

LDFLAGS = -r

KERNEL_VERSION:
	sed -n -e 's/^\([A-Z]*\)\ =\ \([0-9]*\)$$/\1=\2/p' -e 's/^\([A-Z]*\)\ =\ \(-[-a-z0-9]*\)$$/\1=\2/p' ${ROOTDIR}/${CONFIG_LINUXDIR}/Makefile > KERNEL_VERSION

COMPOBJ = compat/parser.o

fuse.o: KERNEL_VERSION $(OBJS) $(COMPOBJ)
	# ugly way to set kernel version variables
	$(LD) $(LDFLAGS) -o $@ $(OBJS) $(COMPOBJ)

-include KERNEL_VERSION

ifeq ($(strip $(PATCHLEVEL)),6) && ($(strip $(VERSION)),2)
CFLAGS += -DKBUILD_MODNAME=fuse
OBJMOD = fuse.mod.o
else
# romptr not valid for 2.6.x
CFLAGS += -DMAGIC_ROM_PTR
OBJMOD = 
endif

fuse.ko: $(OBJS) $(OBJMOD)
	$(LD) $(LDFLAGS) -o $@ $(OBJS) $(OBJMOD)

romfs:
	mkdir -p ${ROMFSDIR}/lib/modules/${VERSION}.${PATCHLEVEL}.${SUBLEVEL}${EXTRAVERSION}
ifeq ($(strip $(PATCHLEVEL)),6) && ($(strip $(VERSION)),2)
	$(ROMFSINST) /lib/modules/${VERSION}.${PATCHLEVEL}.${SUBLEVEL}${EXTRAVERSION}/fuse.ko
else
	$(ROMFSINST) /lib/modules/${VERSION}.${PATCHLEVEL}.${SUBLEVEL}${EXTRAVERSION}/fuse.o
endif

install:
	install -d $(INSTALLDIR)/lib/modules/$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)
	install fuse.o $(INSTALLDIR)/lib/modules/$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)/fuse.o

clean:
	rm -f $(EXECS) *~ *.gdb *.elf *.o *.ko *.s *.i KERNEL_VERSION $(COMPOBJ)

