TARGET     = ISO9660$(EXEEXT)
LEAK_CHECK = LeakCheck$(TARGET)
SOURCES    = main.cpp ISO9660.cpp CString.cpp VirtualCD.cpp

CXXFLAGS = -Wall -g
INCLUDE  = -idirafter .

OBJECTS = $(SOURCES:.cpp=.o)

all : $(TARGET)

$(TARGET): $(OBJECTS)
	$(CXX) $(OBJECTS) -o $(TARGET)


.SUFFIXES: .cpp .o
.cpp.o:
	$(CXX) $(CXXFLAGS) $(INCLUDE) -c $<

depend:
	$(CXX) -MM $(INCLUDE) $(CXXFLAGS) $(SOURCES) > dependencies

clean :
	rm -f $(OBJECTS) $(LEAK_CHECK) $(TARGET)

$(LEAK_CHECK) : $(OBJECTS) ./LeakTracer/LeakTracer.o
	$(CXX) $(OBJECTS) ./LeakTracer/LeakTracer.o -o $(LEAK_CHECK)

./LeakTracer/LeakTracer.o :
	cd LeakTracer; $(MAKE)

leakcheck : leakcheck1 leakcheck2 leakcheck3 leakcheck4 leakcheck5 leakcheck6 leakcheck7 leakcheck8

# ls 正常に行なえる場合
leakcheck1 : $(LEAK_CHECK)
	rm -f leak.out
	$(LEAK_CHECK) ls sample.iso SERVERS/FILE
	leak-analyze $(LEAK_CHECK)

# ls ディレクトリがない場合
leakcheck2 : $(LEAK_CHECK)
	rm -f leak.out
	$(LEAK_CHECK) ls sample.iso HOGE
	leak-analyze $(LEAK_CHECK)

# cp ファイルがある場合
leakcheck3 : $(LEAK_CHECK)
	rm -f leak.out
	$(LEAK_CHECK) cp sample.iso MAKEFILE testMakefile
	rm -f testMakefile
	leak-analyze $(LEAK_CHECK)

# cp ファイルがない場合
leakcheck4 : $(LEAK_CHECK)
	rm -f leak.out
	$(LEAK_CHECK) cp sample.iso MAKEFIL testMakefile
	leak-analyze $(LEAK_CHECK)

# read ファイルがある場合
leakcheck5 : $(LEAK_CHECK)
	rm -f leak.out
	$(LEAK_CHECK) read sample.iso MAKEFILE
	rm -f testMakefile
	leak-analyze $(LEAK_CHECK)

# read ファイルがない場合
leakcheck6 : $(LEAK_CHECK)
	rm -f leak.out
	$(LEAK_CHECK) read sample.iso SERVERS/MAKEFIL
	leak-analyze $(LEAK_CHECK)

# ls 正常に行なえる場合
leakcheck7 : $(LEAK_CHECK)
	rm -f leak.out
	$(LEAK_CHECK) ls -l sample.iso SERVERS/FILE
	leak-analyze $(LEAK_CHECK)

# ls ディレクトリがない場合
leakcheck8 : $(LEAK_CHECK)
	rm -f leak.out
	$(LEAK_CHECK) ls -l sample.iso HOGE
	leak-analyze $(LEAK_CHECK)



include dependencies
