#
# Makefile for the MPLE hacks.
#
CP=/bin/cp
# this is the point at which I need to start thinking about using autoconf...
HAL_VERSION=$(shell pkg-config --modversion hal | sed -e 's/^0.\([45]\).*/-DHAL_VERSION=\1/' | grep HAL)

CFLAGS_EXTRA=$(shell pkg-config gtk+-2.0 --cflags)\
			 $(shell pkg-config libglade-2.0 --cflags)\
			 $(shell pkg-config hal --cflags) $(HAL_VERSION)\
			 $(shell pkg-config dbus-glib-1 --cflags) \
			 $(shell pkg-config --cflags glib-2.0 gnome-vfs-module-2.0)
LDFLAGS_EXTRA=$(shell pkg-config gtk+-2.0 --libs)\
			  $(shell pkg-config libglade-2.0 --libs)\
			  $(shell pkg-config hal --libs) \
			  $(shell pkg-config dbus-glib-1 --libs) \
			  $(shell pkg-config --libs glib-2.0 gnome-vfs-module-2.0)

OBJS_MPLE=common.o mple.o

CFLAGS=-g -Wall -I. $(CFLAGS_EXTRA) -DDEBUG -DBUILDTIME="\"$(shell date)\""
LDFLAGS=-lid3tag -lz $(LDFLAGS_EXTRA)

VALGRIND=valgrind --tool=memcheck --suppressions=valgrind-glib.supp \
				--leak-check=yes --show-reachable=yes --num-callers=7

PROGS=mple-dump mple-load mple-rm mple-test mp3filemanager\
	 mp3filemanager.glade mple-get-msn libmplefs.so mple-cp

all: $(PROGS)

test: mple-test test.mp3 /var/tmp/NW-S23
	$(VALGRIND) ./mple-test

/var/tmp/NW-S23:
	mkdir -p /var/tmp/NW-S23

clean:
	$(RM) -f *.o $(PROGS)

mp3filemanager.glade: glade/mp3filemanager.glade
	$(CP) -f $< $@

mple-test: mple-test.o $(OBJS_MPLE)
mple-dump: mple-dump.o $(OBJS_MPLE)
mple-load: mple-load.o $(OBJS_MPLE)
mple-rm: mple-rm.o $(OBJS_MPLE)
mple-cp: mple-cp.o $(OBJS_MPLE)
mple-get-msn: mple-get-msn.o $(OBJS_MPLE)

libmplefs.so: gnome_vfs_mple.o $(OBJS_MPLE)
	$(CC) $(LDFLAGS) -shared -Wl,-soname,$@ -o $@ $^

mp3filemanager: mp3filemanager.o $(OBJS_MPLE)
	$(CC) -export-dynamic $(LDFLAGS) -o $@ $^

mple.o: mple.h
mple-dump.o: mple.h
mple-load.o: mple.h
mple-rm.o: mple.h
mp3filemanger.o: mple.h
common.o: mple.h
mple-test.o: mple.h
mple-get-msn.o: mple.h
gnome_vfs_mple.o: mple.h
