all: karaoke display_gl.so  # karaoke_fx 

CXXFLAGS = -Wall $(shell sdl-config --cflags) $(shell freetype-config --cflags) -rdynamic -g -D_HAVE_ALSA 
LD_FLAGS = $(shell sdl-config --libs) -lftgl $(shell freetype-config --libs) -lSDL_image -lSDL_ttf -lasound -L/usr/X11R6/lib -lGLU
CC = g++ 

MIDI_DEVICES = midi_device_oss.o midi_device_alsa_raw.o midi_device_dummy.o
#DISPLAY = display_gl.o

KARAOKE_OBJS = midi_event.o midi_file.o midi_sequencer.o midi_lyric.o\
               midi_timer.o midi_device.o display.o display_manager.o \
	       $(MIDI_DEVICES)

midi_event.o: midi_event.cpp midi_event.hpp
midi_file.o: midi_file.cpp midi_file.hpp
midi_sequencer.o: midi_sequencer.cpp midi_sequencer.hpp
miid_timer.o: midi_timer.cpp midi_timer.hpp
midi_lyric.o: midi_lyric.cpp midi_lyric.hpp
midi_device.o: midi_device.cpp midi_device.hpp
display.o: display.cpp display.hpp
display_manager.o: display_manager.cpp display_manager.hpp
test_midi.o: test_midi.cpp     

karaoke: karaoke.o $(KARAOKE_OBJS)
	   $(CC) -o karaoke karaoke.o $(KARAOKE_OBJS) $(LD_FLAGS)
 
karaoke_controler: karaoke_controler.o karaoke_controler.o VSDL.o
	   $(CC) -o karaoke_controler karaoke_controler.o VSDL.o $(LD_FLAGS)

display_gl.so: display_gl.o display.o midi_lyric.o gl_particles.o
	   $(CC) $(CXXFLAGS) -rdynamic -shared -o display_gl.so display_gl.o midi_lyric.o display.o gl_particles.o  $(LD_FLAGS)

display_sdl.so: display_sdl.o display.o midi_lyric.o VSDL_ttf.o
	   $(CC) $(CXXFLAGS) -rdynamic -shared -o display_sdl.so display_sdl.o midi_lyric.o display.o VSDL_ttf.o $(LD_FLAGS)

OBJS = karaoke_fx.o main_window.o main_window_glade.o dir.o $(KARAOKE_OBJS)

CXXFLAGS = -Wall $(shell sdl-config --cflags) -rdynamic -g -D_HAVE_ALSA $(shell gtkmm-config --cflags)
LDXXFLAGS =  $(shell gtkmm-config --libs)

karaoke_fx: $(OBJS)
	    gcc -o karaoke_fx $(OBJS) $(LDXXFLAGS) $(LD_FLAGS)

clean:
	   rm *.o *~ -rf
