#CFLAGS=-I./ruby-1.8.2 -DDEBUG
CFLAGS=-I./ruby-1.8.2

CURSES=-lncurses
RLIB=./ruby-1.8.2/libruby-static.a

OBJ=bin/main.o bin/command.o bin/cmdline.o bin/dirwnd.o bin/menu.o bin/file.o

all: mfiler mattr

mfiler: $(RLIB) mlib/mlib.a $(OBJ)
	if [ `uname -s` = "FreeBSD" ] || [ `uname -s` = "NetBSD" ] || [ `uname -s` = "CYGWIN_NT-5.0" ] || [ `uname -s` = "CYGWIN_NT-5.1" ]; then \
		g++ -o mfiler $(OBJ) mlib/mlib.a $(CURSES) $(RLIB) -lcrypt; \
	elif [ `uname -s` = "SunOS" ]; then \
		g++ -o mfiler $(OBJ) mlib/mlib.a $(CURSES) $(RLIB) -ldl -lcrypt -lsocket;\
	else \
		g++ -o mfiler $(OBJ) mlib/mlib.a $(CURSES) $(RLIB) -ldl -lcrypt; \
	fi

mattr: mattr.cpp mlib/mlib.a
	g++ -o mattr mattr.cpp $(CURSES)

$(RLIB): 
	cd ruby-1.8.2 && ./configure && make
   
mlib/mlib.a:
	cd mlib && make

bin/main.o: main.cpp common.h menu.h dirwnd.h
	g++ -c main.cpp $(CFLAGS)
	mv main.o bin/

bin/command.o: command.cpp common.h menu.h dirwnd.h
	g++ -c command.cpp $(CFLAGS)
	mv command.o bin/
      
bin/dirwnd.o: dirwnd.cpp common.h menu.h dirwnd.h
	g++ -c dirwnd.cpp $(CFLAGS)
	mv dirwnd.o bin/
      
bin/cmdline.o: cmdline.cpp common.h menu.h dirwnd.h
	g++ -c cmdline.cpp $(CFLAGS); \
	mv cmdline.o bin/
      
bin/menu.o: menu.cpp common.h menu.h dirwnd.h
	g++ -c menu.cpp $(CFLAGS)
	mv menu.o bin/
      
bin/file.o: file.cpp common.h dirwnd.h menu.h
	g++ -c file.cpp $(CFLAGS)
	mv file.o bin/
   
clean:
	rm -f bin/* mfiler mattr
	cd mlib && make clean
