TOP=..
CXXFLAGS=-O -g
CPPFLAGS=-I. -I$(TOP)/kernel -I$(TOP)/genser #-DDEBUG 
CXXTYPEFLAGS = -O2 -fomit-frame-pointer $(CPPFLAGS)

all: libuserfs.a

LIBOBJ = userfs_types.o Filesystem.o Inode.o Comm.o DirInode.o \
	SimpleInode.o
# MirrorFS.o MirrorDir.o MirrorFile.o MirrorIno.o fchdir.o

libuserfs.a: $(LIBOBJ) 
	rm -f libuserfs.a
	ar r libuserfs.a $(LIBOBJ)
	ranlib libuserfs.a

GENDIR=../genser
GENHDR=$(GENDIR)/genhdr
GENCODE=$(GENDIR)/gencode

.SUFFIXES: .ty

.ty.cc:	$(GENCODE)
	$(GENCODE) $(CPPFLAGS) -Csed $< > $@ || rm -f $@

.ty.h:	$(GENHDR)
	$(GENHDR) $(CPPFLAGS) -C $< > $@ || rm -f $@

TYPEFILE=$(TOP)/kernel/linux/userfs_types.ty

userfs_types.o: userfs_types.cc userfs_types.h

userfs_types.h: $(TYPEFILE) $(GENHDR)
	$(GENHDR) $(CPPFLAGS) -C $< > $@ || rm -f $@

userfs_types.cc: $(TYPEFILE) $(GENCODE)
	$(GENCODE) $(CPPFLAGS) -Csed $< > $@
	
depend dep: userfs_types.h coder.h
	$(CPP) $(CPPFLAGS) -M *.cc> .depend

coder.h:
	@-ln -s $(GENDIR)/coder.h .

$(GENHDR) $(GENCODE):	dummy
	$(MAKE) -C $(GENDIR) $(@F)

clean:
	rm -f *.[ao] *~ userfs_types.cc userfs_types.h

dummy:

#
# include a dependency file if one exists
#
ifeq (.depend,$(wildcard .depend))
include .depend
endif
