LIBDIR = ./generic_library
LIB_CONFIG = $(LIBDIR)/bin/library-config --prefix=$(LIBDIR)

LIB_XMLUTIL = ./xmlutil

#CC  = gccw
#CXX = g++w
CC  = gcc -ansi -pedantic -W -Wall
CXX = g++ -ansi -pedantic -W -Wall
#CXX = g++
RM  = rm
CHDIR = cd

CXXFLAGS = -g -DDEFAULT_PORT=$(DEFAULT_PORT) \
	   -I$(LIB_XMLUTIL) \
	   `$(LIB_CONFIG) --cflags` \
	   `pkg-config fuse --cflags` \
	   -I/usr/local/include -I/opt/local/include \
	   $(CCXXOPTFLAGS) $(CXXOPTFLAGS) \
	   $(CCXXADDITIONALFLAGS) $(CXXADDITIONALFLAGS)

LDFLAGS = -L$(LIB_XMLUTIL) -lxmlutil \
	  -L/usr/local/lib -L/opt/local/lib -lxerces-c \
	  `$(LIB_CONFIG) --libs` \
	  `pkg-config fuse --libs` \
	  $(LDADDITIONALFLAGS)

OBJS = fuse_xml.o xml_data_tree.o main.o

#all: fuse-xml xmltest
all: fuse-xml

fuse-xml: $(OBJS) $(LIB_XMLUTIL)/libxmlutil.a $(LIBDIR)/.build_done
	$(CXX) -o fuse-xml $(OBJS) $(CXXFLAGS) $(LDFLAGS)

xmltest: xmltest.o $(LIB_XMLUTIL)/libxmlutil.a $(LIBDIR)/.build_done
	$(CXX) -o xmltest xmltest.o $(CXXFLAGS) $(LDFLAGS)

mount: fuse-xml
	@if [ ! -d ./mnt ]; then \
		mkdir ./mnt; \
	fi
	./fuse-xml -f ./mnt
#	./fuse-xml -d ./mnt

umount:
	umount ./mnt

$(LIB_XMLUTIL)/libxmlutil.a:
	($(CHDIR) $(LIB_XMLUTIL) && $(MAKE) libxmlutil.a)

$(LIBDIR)/.build_done:
	($(CHDIR) $(LIBDIR) && $(MAKE))

clean:
	$(RM) -f *.o fuse-xml fuse-xml.core xmltest
	($(CHDIR) $(LIB_XMLUTIL) && $(MAKE) clean)
	($(CHDIR) $(LIBDIR) && $(MAKE) clean)
	@if [ -d ./mnt ]; then \
		echo "rmdir ./mnt"; \
		rmdir ./mnt; \
	fi

.PHONY: all clean mount umount

#
main.o: main.cc fuse_xml.h xml_data_tree.h
fuse_xml.o: fuse_xml.h fuse_xml.cc path_converter.h xml_data_tree.h
xmltest.o: xmltest.cc
xml_data_tree.o: xml_data_tree.h xml_data_tree.cc
