INCLUDES = -I ./ -I ../deGlobals/Include/
DEFINES = 
LIB_NAME = libdeFile.so
SONAME = libdeFile.so.0
LIB_FILENAME = libdeFile.so.0.1.0

all: $(LIB_FILENAME)

$(LIB_FILENAME): deFile.o deFileMemory.o deFilePlugin.o deFileReal.o deFileSystem.o deFileVirtual.o deFSReal.o deFSVirtual.o
	ld deFile.o deFileMemory.o deFilePlugin.o deFileReal.o deFileSystem.o deFileVirtual.o deFSReal.o deFSVirtual.o -l deShared -shared -soname,$(SONAME) -o $(LIB_FILENAME)

deFile.o: deFile.cpp
	gcc -fPIC deFile.cpp $(INCLUDES) $(DEFINES) -c

deFileMemory.o: deFileMemory.cpp
	gcc -fPIC deFileMemory.cpp $(INCLUDES) $(DEFINES) -c

deFilePlugin.o: deFilePlugin.cpp
	gcc -fPIC deFilePlugin.cpp $(INCLUDES) $(DEFINES) -c

deFileReal.o: deFileReal.cpp
	gcc -fPIC deFileReal.cpp $(INCLUDES) $(DEFINES) -c

deFileSystem.o: deFileSystem.cpp
	gcc -fPIC deFileSystem.cpp $(INCLUDES) $(DEFINES) -c

deFileVirtual.o: deFileVirtual.cpp
	gcc -fPIC deFileVirtual.cpp $(INCLUDES) $(DEFINES) -c

deFSReal.o: deFSReal.cpp
	gcc -fPIC deFSReal.cpp $(INCLUDES) $(DEFINES) -c

deFSVirtual.o: deFSVirtual.cpp
	gcc -fPIC deFSVirtual.cpp $(INCLUDES) $(DEFINES) -c

install : all
	cp $(LIB_FILENAME) /usr/lib/
	(cd /usr/lib/; ln -sf $(LIB_FILENAME) $(LIB_NAME))
	ldconfig
clean:
	rm *.o
	rm $(LIB_FILENAME)
