TARGET=rpld

FF_OBJS=fformat.o ff_vclt.o ff_plain.o ff_m3u.o ff_rpld.o ff_pls.o ff_xspf.o ff_uras.o
PROTO_OBJS=proto_simple.o proto_simple_vio.o proto_mpd.o
OBJS=rpld.o playlist.o client.o network.o backend.o playback.o store.o autoqueue.o yield.o rpldslp.o pointer.o plugin.o serverinfo.o ${FF_OBJS} ${PROTO_OBJS}

MANPAGES_1 = rpld.1

HEADERS    = rpldplugin.h rpldnotify.h

TOOLS_DIR  = tools
TOOLS_MAN1_BASENAME_0 = rpld-tools
TOOLS_MAN1_BASENAME_1 = rpld-deprecated
TOOLS_MAN1_BASENAME_2 = rpld-storemgr
TOOLS_MAN1_0          = $(TOOLS_DIR)/$(TOOLS_MAN1_BASENAME_0).1
TOOLS_MAN1_1          = $(TOOLS_DIR)/$(TOOLS_MAN1_BASENAME_1).1
TOOLS_MAN1_2          = $(TOOLS_DIR)/$(TOOLS_MAN1_BASENAME_2).1
TOOLS      = $(TOOLS_DIR)/rpld-import $(TOOLS_DIR)/rpld-next $(TOOLS_DIR)/rpld-queueple $(TOOLS_DIR)/rpld-setpointer $(TOOLS_DIR)/rpld-listq $(TOOLS_DIR)/rpld-ctl $(TOOLS_DIR)/rpld-listplaylists $(TOOLS_DIR)/rpld-showplaying $(TOOLS_DIR)/rpld-storemgr

include Makefile.conf

#DEFINES  = -DDEBUG
DEFINES += -DROAR_DBG_PREFIX=\"roarplaylistd\"
CFLAGS  += -Wall $(Wextra) -g $(OPTI_O) $(DEFINES) $(INCLUDE) $(INCPATH)
LDFLAGS += -Wall $(Wextra) -g $(OPTI_O) $(LDPATH)

NETLIBS += $(lib_wsock32) $(lib_ws2_32)
LIBS    += $(lib_roar) $(lib_slp) $(lib_xml2) $(NETLIBS)

all: $(TARGET)
clean:
	rm -f $(TARGET) *.o
new: clean all

distclean: clean
	rm -f Makefile.conf config.h config.log

$(TARGET): $(OBJS)
	$(CC) $(LDFLAGS) -o $(TARGET) $(OBJS) $(LIBS)

prep-install-dirs:
	mkdir -p '$(DESTDIR)$(PREFIX_BIN)'
	mkdir -p '$(DESTDIR)$(PREFIX_LIB)'
	mkdir -p '$(DESTDIR)$(PREFIX_INC)'
	mkdir -p '$(DESTDIR)$(PREFIX_MAN)'
	mkdir -p '$(DESTDIR)$(PREFIX_MAN)'/man1/

prep-install: all prep-install-dirs

install: prep-install install-rpld install-tools

install-rpld:
	cp $(cp_v) $(TARGET)     '$(DESTDIR)$(PREFIX_BIN)'
	cp $(cp_v) $(MANPAGES_1) '$(DESTDIR)$(PREFIX_MAN)'/man1/
	cp $(cp_v) $(HEADERS)    '$(DESTDIR)$(PREFIX_INC)'

install-tools:
	cp $(cp_v) $(TOOLS)        '$(DESTDIR)$(PREFIX_BIN)'
	cp $(cp_v) $(TOOLS_MAN1_0) '$(DESTDIR)$(PREFIX_MAN)'/man1/
	cp $(cp_v) $(TOOLS_MAN1_1) '$(DESTDIR)$(PREFIX_MAN)'/man1/
	cp $(cp_v) $(TOOLS_MAN1_2) '$(DESTDIR)$(PREFIX_MAN)'/man1/
	while read fn fc tn tc; do ln -s ../man$$tc/$$tn.$$tc '$(DESTDIR)$(PREFIX_MAN)'/man$$fc/$$fn.$$fc 2> /dev/null; done < man-symlinks.src; true

semi-install: prep-install semi-install-rpld semi-install-tools

semi-install-rpld:
	ln -fs `pwd`/$(TARGET)  '$(DESTDIR)$(PREFIX_BIN)'
	set -e; for i in $(MANPAGES_1); do ln -fs `pwd`/$$i '$(DESTDIR)$(PREFIX_MAN)'/man1/$$i; done
	set -e; for i in $(HEADERS); do ln -fs `pwd`/$$i '$(DESTDIR)$(PREFIX_INC)'/$$i; done

semi-install-tools:
	set -e; for i in $(TOOLS); do ln -fs `pwd`/$$i '$(DESTDIR)$(PREFIX_BIN)'; done
	ln -fs `pwd`/$(TOOLS_MAN1_0) '$(DESTDIR)$(PREFIX_MAN)'/man1/$(TOOLS_MAN1_BASENAME_0).1
	ln -fs `pwd`/$(TOOLS_MAN1_1) '$(DESTDIR)$(PREFIX_MAN)'/man1/$(TOOLS_MAN1_BASENAME_1).1
	ln -fs `pwd`/$(TOOLS_MAN1_2) '$(DESTDIR)$(PREFIX_MAN)'/man1/$(TOOLS_MAN1_BASENAME_2).1
	while read fn fc tn tc; do ln -s `pwd`/tools/$$tn.$$tc '$(DESTDIR)$(PREFIX_MAN)'/man$$fc/$$fn.$$fc 2> /dev/null; done < man-symlinks.src; true

uninstall:
	rm -f '$(DESTDIR)$(PREFIX_BIN)/$(TARGET)'

.PHONY: all clean new distclean prep-install-dirs prep-install install semi-install uninstall
