TARGETS=rpld

FF_OBJS=fformat.o ff_vclt.o ff_plain.o ff_m3u.o ff_rpld.o ff_pls.o ff_xspf.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 ${FF_OBJS} ${PROTO_OBJS}

MANPAGES_1 = rpld.1

BIN        = $(TARGETS)
HEADERS    = rpldplugin.h

TOOLS_LIST = rpld-addplaylist rpld-delplaylist rpld-import rpld-next rpld-prev rpld-play rpld-queueple rpld-setpointer rpld-stop rpld-store rpld-listq rpld-ctl rpld-listplaylists rpld-showplaying
TOOLS_DIR  = tools
TOOLS_MAN1_BASENAME_0 = rpld-tools
TOOLS_MAN1_BASENAME_1 = rpld-deprecated
TOOLS_MAN1_0          = $(TOOLS_DIR)/$(TOOLS_MAN1_BASENAME_0).1
TOOLS_MAN1_1          = $(TOOLS_DIR)/$(TOOLS_MAN1_BASENAME_1).1
TOOLS      = $(TOOLS_DIR)/rpld-addplaylist $(TOOLS_DIR)/rpld-delplaylist $(TOOLS_DIR)/rpld-import $(TOOLS_DIR)/rpld-next $(TOOLS_DIR)/rpld-prev $(TOOLS_DIR)/rpld-play $(TOOLS_DIR)/rpld-queueple $(TOOLS_DIR)/rpld-setpointer $(TOOLS_DIR)/rpld-stop $(TOOLS_DIR)/rpld-store $(TOOLS_DIR)/rpld-listq $(TOOLS_DIR)/rpld-ctl $(TOOLS_DIR)/rpld-listplaylists $(TOOLS_DIR)/rpld-showplaying

include Makefile.conf

#DEFINES  = -DDEBUG
DEFINES += $(fdef_ALL) $(def_uuid) $(def_slp) $(def_xml2)
DEFINES += -DROOT_UID=$(ROOT_UID) -DROAR_DBG_PREFIX=\"roarplaylistd\"
CFLAGS  += -Wall -Wextra -g -O0 $(INCPATH) $(DEFINES)
LDFLAGS += -Wall -Wextra -g -O0 $(LDPATH)

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

all: ${TARGETS}
clean:
	rm -f ${TARGETS} *.o
new: clean all

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

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/

install: all prep-install-dirs install-rpld install-tools

install-rpld:
	cp $(cp_v) $(BIN)        '$(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/
	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: all prep-install-dirs semi-install-rpld semi-install-tools

semi-install-rpld:
	ln -fs `pwd`/$(BIN)    '$(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
	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
#	set -e; for i in $(TOOLS_LIST); do ln -fs `pwd`/$(TOOLS_MAN1) '$(DESTDIR)$(PREFIX_MAN)'/man1/$$i.1; done

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

rpld: ${OBJS}
	${CC} ${LDFLAGS} -o rpld ${OBJS} ${LIBS}
