
OBJS = dev.o dir.o file.o inode.o util.o

#VERSION = 2
#PATCHLEVEL = 4
#SUBLEVEL = 20
ifndef LINUXDIR
ifndef CONFIG_LINUXDIR
CONFIG_LINUXDIR = linux/linux/
endif
ifndef ROOTDIR
ROOTDIR = ../../../
endif
LINUXDIR = ${ROOTDIR}/${CONFIG_LINUXDIR}
endif

VERSION := $(shell sed -n -e 's/^\([A-Z]*\)\ =\ \([-0-9.A-Za-z]*\)$$/\1=\2/p' -e 's/^\([A-Z]*\)\ =\ \(-[-a-z0-9]*\)$$/\1=\2/p' ${LINUXDIR}/Makefile | grep VERSION)
PATCHLEVEL := $(shell sed -n -e 's/^\([A-Z]*\)\ =\ \([-0-9.A-Za-z]*\)$$/\1=\2/p' -e 's/^\([A-Z]*\)\ =\ \(-[-a-z0-9]*\)$$/\1=\2/p' ${LINUXDIR}/Makefile | grep PATCHLEVEL)
RELEASE := $(shell awk -F \" '/[ 	]*\#[ 	]*define[ 	]*UTS_RELEASE[ 	]*/ { print $$2 }' ${LINUXDIR}/include/linux/version.h|tail -n 1)
VERSION_CODE := $(shell awk '/[ 	]*\#[ 	]*define[ 	]*LINUX_VERSION_CODE[   ]*/ { print $$3 }' ${LINUXDIR}/include/linux/version.h|tail -n 1)

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 += -DFUSE_VERSION=\"2.1\"
CFLAGS += -D_FILE_OFFSET_BITS=64
CFLAGS += -D_REENTRANT
CFLAGS += -D_GNU_SOURCE
CFLAGS += -DFUSE_USE_VERSION=22

CFLAGS += -DUSE_UCLIBC
CFLAGS += -DUCLIBC_HAS_MMU
CFLAGS += -I../include
#CFLAGS += -s -fno-builtin

LDFLAGS = -r


ifeq ($(shell if [ $(VERSION_CODE) -ge 132608 ]; then echo y; fi),y)
CFLAGS += -DKBUILD_MODNAME=fuse
OBJMOD = fuse.mod.o
COMPOBJ = 
EXECS = fuse.ko
else
# romptr not valid for 2.6.x
CFLAGS += -DMAGIC_ROM_PTR
OBJMOD = 
COMPOBJ = compat/parser.o
EXECS = fuse.o
endif

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

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

all: $(EXECS)

romfs:
	mkdir -p ${ROMFSDIR}/lib/modules/${RELEASE}
ifeq ($(shell if [ $(VERSION_CODE) -ge 132608 ]; then echo y; fi),y)
	$(ROMFSINST) /lib/modules/${RELEASE}/fuse.ko
else
	$(ROMFSINST) /lib/modules/${RELEASE}/fuse.o
endif

install:
	install -d $(INSTALLDIR)/lib/modules/$(RELEASE)
ifeq ($(shell if [ $(VERSION_CODE) -ge 132608 ]; then echo y; fi),y)
	install fuse.ko $(INSTALLDIR)/lib/modules/$(RELEASE)/fuse.ko
else
	install fuse.o $(INSTALLDIR)/lib/modules/$(RELEASE)/fuse.o
endif

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