# src/io
#######################
BASEDIR      = $(shell cat ../../.BASEDIR || exit 1)
include $(BASEDIR)/rules.mk

SUBDIR      = $(shell basename `pwd`)
INCLUDES   += -I..

QT_SRC	=	QLabelRenderer.cpp QFrameBuffer.cpp
SDL_SRC = SDLaudioIO.cpp SDLRenderer.cpp SDLFrameBuffer.cpp
X11_SRC = X11Renderer.cpp X11FrameBuffer.cpp
DVDREAD_SRC = DVDIO.cpp
FFMPEG_SRC = ffMP4IO.cpp
ISOMP4_SRC = isoMP4IO.cpp
MKV_SRC = MKIO.cpp

ifeq ($(ENABLE_QT),no)
NOCOMP_SRC += $(QT_SRC)
else
MOC_SRC	=	$(patsubst %.hpp,moc_%.cpp, $(shell grep -l Q_OBJECT *.hpp))
endif
ifeq ($(ENABLE_SDL),no)
NOCOMP_SRC += $(SDL_SRC)
endif
ifeq ($(ENABLE_X11),no)
NOCOMP_SRC += $(X11_SRC)
endif
ifeq ($(ENABLE_DVDREAD),no)
NOCOMP_SRC += $(DVDREAD_SRC)
endif
ifeq ($(ENABLE_FFMPEG),no)
NOCOMP_SRC += $(FFMPEG_SRC)
endif
ifeq ($(ENABLE_ISOMP4),no)
NOCOMP_SRC += $(ISOMP4_SRC)
endif
ifeq ($(ENABLE_MKV),no)
NOCOMP_SRC += $(MKV_SRC)
endif


HEADERS     = $(wildcard *.hpp) $(wildcard *.h)
SRC_CPP     = $(sort $(filter-out $(NOCOMP_SRC),$(wildcard *.cpp) $(MOC_SRC)))
OBJECTS_CPP = $(subst .cpp,.o,$(SRC_CPP))
SRC_C       = $(filter-out $(NOCOMP_SRC),$(wildcard *.c))
OBJECTS_C   = $(subst .c,.o,$(SRC_C))
SRC         = $(SRC_CPP) $(SRC_C)
OBJECTS     = $(OBJECTS_CPP) $(OBJECTS_C)
LIBNAME     = libvitooki-$(SUBDIR).so
LIB	        = ../.libs/$(LIBNAME)

all:  $(LIB)

Makefile: Makefile.dep

dep:    Makefile.dep

Makefile.dep:     $(SRC)
	$(GCC) $(INCLUDES) -M $+ > Makefile.dep

include Makefile.dep

$(LIB): $(OBJECTS) $(UCLLIB)
	$(CPP) $(OBJECTS) $(LDFLAGS) -o $@ -shared


doc:	$(HEADERS) $(SRC)
	kdoc -f html -d ../doc/html/ -n vitooki ../includes/*.hpp -lqt -lSDL
#	kdoc -f html -d ../doc/html/ -n vitooki -lqt -lSDL *.hpp

clean:
	rm -rf .libs *.o *~ moc_* Makefile.dep

install:
	@echo "installing ViTooKi-$(SUBDIR) lib"
	cp $(LIB) $(PREFIX)/lib/$(LIBNAME)

uninstall:
	@echo "removing ViTooKi-$(SUBDIR) lib"
	rm -f $(PREFIX)/lib/$(LIBNAME)
