GXX = g++
OBJ = imms.o plugin.o sqldb.o
CFLAGS = `xmms-config --cflags` -MMD -Wall -pedantic
ifeq ($(DEBUG),1)
    CFLAGS += -ggdb -O0 -DDEBUG
else
    CFLAGS += -O2
endif
LDFLAGS = `xmms-config --libs` -lid3 -lz -lsqlite
VERSION = `cat version.h | cut -b 23-30 | cut -d '"' -f 1`
SHELL = bash

default: all

-include .*.d

all: libimms.so

libimms.so: $(OBJ)
	$(GXX) $(LDFLAGS) -Wl,-soname,$@ -shared \
             -o $@ $(OBJ) 

%.o: %.cc Makefile
	@rm -f .$*.d
	$(GXX) $(CFLAGS) -c $< -o $@
	@mv $*.d .$*.d

.PHONY: clean 

clean:
	rm -fr $(OBJ) libimms.so imms-*.tar.* core*

.PHONY: super-clean 

super-clean: clean
	rm -fr .*.d .\#*

.PHONY: dist

dist: super-clean
	cp -r . ../imms-$(VERSION)
	rm -rf ../imms-$(VERSION)/CVS ../imms-$(VERSION)/.cvsignore
	tar -C ../ -cj imms-$(VERSION)/ -f imms-$(VERSION).tar.bz2
	tar -C ../ -cz imms-$(VERSION)/ -f imms-$(VERSION).tar.gz
	rm -rf ../imms-$(VERSION)/

.PHONY: install

install:
	@if [ `id --user` == 0 ]; then \
            echo "You are root. Defaulting to installing for all users."; \
            echo "Use 'make install-user' to install for the current user only."; \
            $(MAKE) install-system; \
        else \
            echo "You are not root. Defaulting to installing for" \
                    "current user only."; \
            echo "Use 'make install-system' to install for all users."; \
            $(MAKE) install-user; \
        fi
        

user-install: install-user

install-user: libimms.so
	mkdir -p ~/.xmms/Plugins/General/
	install libimms.so ~/.xmms/Plugins/General/

system-install: install-system

install-system: libimms.so
	install libimms.so `xmms-config --general-plugin-dir`
