# makefile for plugins

TARGET_DIR ?= $(DESTDIR)

# Some useful variables
BIN		= $(TARGET_DIR)/bin
ETCINITD	= $(TARGET_DIR)/etc/init.d
LIBPLUGINS	= $(TARGET_DIR)/lib/tuxbox/plugins
SBIN		= $(TARGET_DIR)/sbin
SHAREFLEX	= $(TARGET_DIR)/share/tuxbox/neutrino/flex
SHAREICONS	= $(TARGET_DIR)/share/tuxbox/neutrino/icons
SHAREPLUGINS	= $(TARGET_DIR)/share/tuxbox/neutrino/plugins
SHARETHEMES	= $(TARGET_DIR)/share/tuxbox/neutrino/themes
SHAREWEBRADIO	= $(TARGET_DIR)/share/tuxbox/neutrino/webradio
SHAREWEBTV	= $(TARGET_DIR)/share/tuxbox/neutrino/webtv
USRBIN		= $(TARGET_DIR)/usr/bin
VARCONFIG	= $(TARGET_DIR)/var/tuxbox/config
VARINITD	= $(TARGET_DIR)/var/etc/init.d
VARPLUGINS	= $(TARGET_DIR)/var/tuxbox/plugins

$(BIN) \
$(ETCINITD) \
$(LIBPLUGINS) \
$(SBIN) \
$(SHAREFLEX) \
$(SHAREICONS) \
$(SHAREPLUGINS) \
$(SHARETHEMES) \
$(SHAREWEBRADIO) \
$(SHAREWEBTV) \
$(USRBIN) \
$(VARCONFIG) \
$(VARINITD) \
$(VARPLUGINS) : | $(TARGET_DIR)
	mkdir -p $@

init-scripts: \
	init-camd

plugins-all: $(D)/neutrino \
	getrc \
	input \
	logomask \
	msgbox \
	tuxcal \
	tuxcom \
	tuxmail \
	tuxwetter \
	cooliTSclimax \
	emmrd \
	FritzCallMonitor \
	FritzInfoMonitor \
	FritzInfoMonitor_setup \
	vinfo \
	EPGscan \
	pr-auto-timer \
	logo-addon \
	smarthomeinfo \
	mountpointmanagement \
	EPGfilter \
	netzkino \
	mtv \
	autoreboot \
	dropbox_uploader \
	userbouquets \
	add-locale \
	favorites2bin \
	LocalTV \
	webradio \
	webtv \
	neutrino-mediathek \
	openvpn-setup \
	oscammon \
	lcd4linux-all \
	doscam-webif-skin \
	shellexec

plugins-hd1: # nothing to do
plugins-hd2: # nothing to do

plugins-hd51: \
	links \
	stb-startup \
	showiframe

################
### scripts  ###
################

scripts:
	install -m755 $(IMAGEFILES)/scripts/service $(SBIN)

#####################
### init-scripts  ###
#####################

init-camd: $(ETCINITD)
	install -m755 $(IMAGEFILES)/scripts/camd.init $(ETCINITD)/camd && \
	install -m755 $(IMAGEFILES)/scripts/camd_datefix.init $(ETCINITD)/camd_datefix
	cd $(ETCINITD) && \
	ln -sf camd S99camd && \
	ln -sf camd K01camd

################
### plugins  ###
################

channellogos: $(SOURCE_DIR)/$(NI_LOGO-STUFF) $(SHAREICONS)
	rm -rf $(SHAREICONS)/logo
	mkdir -p $(SHAREICONS)/logo
	install -m644 $(SOURCE_DIR)/$(NI_LOGO-STUFF)/logos/* $(SHAREICONS)/logo
	pushd $(SOURCE_DIR)/$(NI_LOGO-STUFF)/ && \
	./logo_linker.sh complete.db $(SHAREICONS)/logo

lcd4linux-all: $(D)/lcd4linux | $(TARGET_DIR)
	cp -a $(IMAGEFILES)/lcd4linux/* $(TARGET_DIR)/

emmrd: $(SHAREICONS) $(BIN)/emmrd
$(BIN)/emmrd: $(BIN) $(VARCONFIG) $(ETCINITD)
	pushd $(SOURCES)/emmrd && \
	$(TARGET)-g++ -Wall $(TARGET_CFLAGS) $(TARGET_LDFLAGS) $(CORTEX-STRINGS) -o $@ emmremind.cpp  && \
	install -m755 emmrd.init $(ETCINITD)/emmrd && \
	install -m644 hint_emmrd.png $(SHAREICONS)/
	cd $(ETCINITD) && \
	ln -sf emmrd S99emmrd && \
	ln -sf emmrd K01emmrd

FritzCallMonitor: $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS) $(BIN)/FritzCallMonitor
$(BIN)/FritzCallMonitor: $(D)/openssl $(D)/libcurl $(BIN) $(VARCONFIG) $(ETCINITD) $(SHAREICONS)
	pushd $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/FritzCallMonitor && \
	$(TARGET)-gcc -Wall $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
		\
		-lstdc++ -lcrypto -pthread -lcurl \
		\
		connect.cpp \
		FritzCallMonitor.cpp \
		\
		-o $@ && \
	install -m644 FritzCallMonitor.addr $(VARCONFIG)/ && \
	install -m644 FritzCallMonitor.cfg $(VARCONFIG)/ && \
	install -m755 fritzcallmonitor.init $(ETCINITD)/fritzcallmonitor && \
	install -m644 hint_FritzCallMonitor.png $(SHAREICONS)/
	cd $(ETCINITD) && \
	ln -sf fritzcallmonitor S99fritzcallmonitor && \
	ln -sf fritzcallmonitor K01fritzcallmonitor

FritzInfoMonitor: $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS) $(LIBPLUGINS)/FritzInfoMonitor.so
$(LIBPLUGINS)/FritzInfoMonitor.so: $(D)/freetype $(D)/openssl $(D)/libcurl $(LIBPLUGINS)
	pushd $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/FritzInfoMonitor && \
	$(TARGET)-gcc -Wall $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
		-I$(N_OBJDIR) -I$(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/include \
		-I$(TARGET_INCLUDE_DIR)/freetype2 \
		\
		-lfreetype -lz -lstdc++ -lcrypto -lcurl \
		\
		connect.cpp \
		framebuffer.cpp \
		FritzInfoMonitor.cpp \
		icons.cpp \
		parser.cpp \
		phonebook.cpp \
		rc.cpp \
		submenu.cpp \
		\
		-o $@ && \
	install -m644 FritzInfoMonitor.cfg $(LIBPLUGINS)/ && \
	install -m644 FritzInfoMonitor_hint.png $(LIBPLUGINS)/

FritzInfoMonitor_setup: $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS) $(LIBPLUGINS)
	install -m755 $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/FritzInfoMonitor/FritzInfoMonitor_setup.lua $(LIBPLUGINS)/
	install -m644 $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/FritzInfoMonitor/FritzInfoMonitor_setup.cfg $(LIBPLUGINS)/
	install -m644 $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/FritzInfoMonitor/FritzInfoMonitor_setup_hint.png $(LIBPLUGINS)/

vinfo: $(BIN)/vinfo
$(BIN)/vinfo: $(BIN)
	pushd $(SOURCES)/vinfo && \
	$(TARGET)-gcc $(TARGET_CFLAGS) -o $@ vinfo.c md5.c

EPGscan: $(LIBPLUGINS) $(VARCONFIG)
	install -m755 $(SOURCES)/EPGscan/*.sh $(LIBPLUGINS)/
	install -m755 $(SOURCES)/EPGscan/*.lua $(LIBPLUGINS)/
	install -m644 $(SOURCES)/EPGscan/*.cfg $(LIBPLUGINS)/
	install -m644 $(SOURCES)/EPGscan/*_hint.png $(LIBPLUGINS)/
	install -m644 $(SOURCES)/EPGscan/*.conf $(VARCONFIG)/

pr-auto-timer: $(LIBPLUGINS) $(VARCONFIG)
	install -m755 $(SOURCES)/pr-auto-timer/auto-record-cleaner $(LIBPLUGINS)/
	install -m644 $(SOURCES)/pr-auto-timer/auto-record-cleaner.conf.template $(VARCONFIG)/auto-record-cleaner.conf
	install -m644 $(SOURCES)/pr-auto-timer/auto-record-cleaner.rules.template $(VARCONFIG)/auto-record-cleaner.rules
	install -m755 $(SOURCES)/pr-auto-timer/pr-auto-timer.sh $(LIBPLUGINS)/
	install -m644 $(SOURCES)/pr-auto-timer/pr-auto-timer.cfg $(LIBPLUGINS)/
	install -m755 $(SOURCES)/pr-auto-timer/pr-auto-timer $(LIBPLUGINS)/
	install -m644 $(SOURCES)/pr-auto-timer/pr-auto-timer_hint.png $(LIBPLUGINS)/
	install -m644 $(SOURCES)/pr-auto-timer/pr-auto-timer.conf.template $(VARCONFIG)/pr-auto-timer.conf
	install -m644 $(SOURCES)/pr-auto-timer/pr-auto-timer.rules.template $(VARCONFIG)/pr-auto-timer.rules

autoreboot: $(LIBPLUGINS)
	install -m755 $(SOURCES)/$@/*.sh $(LIBPLUGINS)/
	install -m644 $(SOURCES)/$@/*.cfg $(LIBPLUGINS)/

logo-addon: $(SOURCE_DIR)/$(NI_LOGO-STUFF) $(LIBPLUGINS)
	install -m755 $(SOURCE_DIR)/$(NI_LOGO-STUFF)/logo-addon/*.sh $(LIBPLUGINS)/
	install -m644 $(SOURCE_DIR)/$(NI_LOGO-STUFF)/logo-addon/*.cfg $(LIBPLUGINS)/
	install -m644 $(SOURCE_DIR)/$(NI_LOGO-STUFF)/logo-addon/*.png $(LIBPLUGINS)/

smarthomeinfo: $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS) $(LIBPLUGINS) $(VARCONFIG)
	cp -a $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/$@/plugin/tuxbox/plugins/* $(LIBPLUGINS)/
	cp -a $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/$@/plugin/tuxbox/config/* $(VARCONFIG)/

doscam-webif-skin: $(VARCONFIG)
	mkdir -p $(TARGET_DIR)/share/doscam/tpl/
	install -m644 $(SOURCES)/doscam-webif-skin/*.tpl $(TARGET_DIR)/share/doscam/tpl/
	mkdir -p $(TARGET_DIR)/share/doscam/skin/
	install -m644 $(SOURCES)/doscam-webif-skin/doscam_ni-dark.css $(TARGET_DIR)/share/doscam/skin

mountpointmanagement: $(LIBPLUGINS)
	install -m755 $(SOURCES)/mountpointmanagement/*.sh $(LIBPLUGINS)/
	install -m755 $(SOURCES)/mountpointmanagement/*.so $(LIBPLUGINS)/
	install -m644 $(SOURCES)/mountpointmanagement/*.cfg $(LIBPLUGINS)/

EPGfilter: $(LIBPLUGINS)
	install -m755 $(SOURCES)/EPGfilter/*.sri $(LIBPLUGINS)/
	install -m755 $(SOURCES)/EPGfilter/*.lua $(LIBPLUGINS)/
	install -m644 $(SOURCES)/EPGfilter/*.cfg $(LIBPLUGINS)/
	install -m644 $(SOURCES)/EPGfilter/*.png $(LIBPLUGINS)/

dropbox_uploader: $(USRBIN)
	install -m755 $(SOURCES)/$@/*.sh $(USRBIN)/

openvpn-setup: $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS) $(LIBPLUGINS) $(ETCINITD)
	cp -a $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/scripts-lua/plugins/$@/$@* $(LIBPLUGINS)/
	install -m755 $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/scripts-lua/plugins/$@/ovpn.init $(ETCINITD)/ovpn

neutrino-mediathek: $(LIBPLUGINS)
	$(REMOVE)/$@
	git clone https://github.com/neutrino-mediathek/mediathek.git $(BUILD_TMP)/$@
	$(CHDIR)/$@; \
		cp -a plugins/* $(LIBPLUGINS)/; \
		cp -a share $(TARGET_DIR)
	$(REMOVE)/$@

#scripts-lua
add-locale \
LocalTV \
userbouquets \
stb-startup \
netzkino \
mtv \
favorites2bin: $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS) $(LIBPLUGINS)
	install -m755 $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/scripts-lua/plugins/$@/* $(LIBPLUGINS)/

webradio: $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS) $(SHAREWEBRADIO)
	install -m755 $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/scripts-lua/plugins/webradio/* $(SHAREWEBRADIO)/

webtv: $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS) $(SHAREWEBTV)
	install -m755 $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/scripts-lua/plugins/webtv/* $(SHAREWEBTV)/

#getrc
getrc: $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS) $(BIN)/getrc
$(BIN)/getrc: $(BIN)
	pushd $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/getrc && \
	$(TARGET)-gcc $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
		-I$(N_OBJDIR) -I$(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/include \
		\
		getrc.c \
		io.c \
		\
		-o $@

#input
input: $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS) $(BIN)/input
$(BIN)/input: $(D)/freetype $(BIN)
	pushd $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/input && \
	$(TARGET)-gcc $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
		-I$(N_OBJDIR) -I$(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/include \
		-I$(TARGET_INCLUDE_DIR)/freetype2 \
		\
		-lfreetype -lz -lpng \
		\
		fb_display.c \
		gfx.c \
		input.c \
		inputd.c \
		io.c \
		png_helper.cpp \
		pngw.cpp \
		resize.c \
		text.c \
		\
		-o $@

#logomask
logomask: $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS) $(BIN)/logomask $(LIBPLUGINS)/logoset.so $(LIBPLUGINS)/logomask.so
$(BIN)/logomask: $(BIN)
	pushd $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/logomask && \
	$(TARGET)-gcc $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
		-I$(N_OBJDIR) -I$(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/include \
		\
		gfx.c \
		logomask.c \
		\
		-o $@ && \
	install -m755 logomask.sh $(BIN)/
 
$(LIBPLUGINS)/logoset.so: $(D)/freetype $(LIBPLUGINS)
	pushd $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/logomask && \
	$(TARGET)-gcc $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
		-I$(N_OBJDIR) -I$(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/include \
		-I$(TARGET_INCLUDE_DIR)/freetype2 \
		\
		-lfreetype -lz \
		\
		gfx.c \
		io.c \
		logoset.c \
		text.c \
		\
		-o $@ && \
	install -m644 logoset.cfg $(LIBPLUGINS)/ && \
	install -m644 logoset_hint.png $(LIBPLUGINS)/

$(LIBPLUGINS)/logomask.so: $(LIBPLUGINS) $(BIN)
	pushd $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/logomask && \
	$(TARGET)-gcc $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
		-I$(N_OBJDIR) -I$(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/include \
		\
		starter_logomask.c \
		\
		-o $@ && \
	install -m644 logomask.cfg $(LIBPLUGINS)/ && \
	install -m644 logomask_hint.png $(LIBPLUGINS)/

#msgbox
msgbox: $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS) $(BIN)/msgbox
$(BIN)/msgbox: $(D)/freetype $(BIN)
	pushd $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/msgbox && \
	$(TARGET)-gcc $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
		-I$(N_OBJDIR) -I$(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/include \
		-I$(TARGET_INCLUDE_DIR)/freetype2 \
		\
		-lfreetype -lz -lpng \
		\
		fb_display.c \
		gfx.c \
		io.c \
		msgbox.c \
		png_helper.cpp \
		pngw.cpp \
		resize.c \
		text.c \
		txtform.c \
		\
		-o $@

#tuxcal
tuxcal: $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS) $(BIN)/tuxcald $(LIBPLUGINS)/tuxcal.so
$(BIN)/tuxcald: $(D)/freetype $(BIN) $(ETCINITD) $(VARCONFIG)
	pushd $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/tuxcal/daemon && \
	$(TARGET)-gcc $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
		-I$(N_OBJDIR) -I$(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/include \
		-I$(TARGET_INCLUDE_DIR)/freetype2 \
		\
		-lfreetype -lz -lpthread \
		\
		tuxcald.c \
		\
		-o $@ && \
	install -m755 $(IMAGEFILES)/scripts/tuxcald.init $(ETCINITD)/tuxcald && \
	cd $(ETCINITD) && \
	ln -sf tuxcald S99tuxcald && \
	ln -sf tuxcald K01tuxcald && \
	pushd $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/tuxcal && \
	mkdir -p $(VARCONFIG)/tuxcal && \
	install -m644 tuxcal.conf $(VARCONFIG)/tuxcal/

$(LIBPLUGINS)/tuxcal.so: $(LIBPLUGINS)
	pushd $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/tuxcal && \
	$(TARGET)-gcc $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
		-I$(N_OBJDIR) -I$(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/include \
		-I$(TARGET_INCLUDE_DIR)/freetype2 \
		\
		-lfreetype -lz \
		\
		tuxcal.c \
		\
		-o $@ && \
	install -m644 tuxcal.cfg $(LIBPLUGINS)/ && \
	install -m644 tuxcal_hint.png $(LIBPLUGINS)/

#tuxcom
tuxcom: $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS) $(LIBPLUGINS)/tuxcom.so
$(LIBPLUGINS)/tuxcom.so: $(D)/freetype $(LIBPLUGINS)
	pushd $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/tuxcom && \
	$(TARGET)-gcc $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
		-I$(N_OBJDIR) -I$(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/include \
		-I$(TARGET_INCLUDE_DIR)/freetype2 \
		\
		-lfreetype -lz \
		\
		tuxcom.c \
		\
		-o $@ && \
	install -m644 tuxcom.cfg $(LIBPLUGINS)/ && \
	install -m644 tuxcom_hint.png $(LIBPLUGINS)/

#tuxmail
tuxmail: $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS) $(BIN)/tuxmaild $(LIBPLUGINS)/tuxmail.so
$(BIN)/tuxmaild: $(D)/freetype $(D)/openssl $(BIN) $(ETCINITD) $(VARCONFIG)
	pushd $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/tuxmail/daemon && \
	$(TARGET)-gcc $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
		-I$(N_OBJDIR) -I$(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/include \
		-I$(TARGET_INCLUDE_DIR)/freetype2 \
		\
		-lfreetype -lz -lcrypto -lssl -lpthread \
		\
		tuxmaild.c \
		\
		-o $@ && \
	install -m755 $(IMAGEFILES)/scripts/tuxmaild.init $(ETCINITD)/tuxmaild && \
	cd $(ETCINITD) && \
	ln -sf tuxmaild S99tuxmaild && \
	ln -sf tuxmaild K01tuxmaild && \
	pushd $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/tuxmail && \
	mkdir -p $(VARCONFIG)/tuxmail && \
	install -m644 tuxmail.conf $(VARCONFIG)/tuxmail/ && \
	pushd $(IMAGEFILES)/scripts && \
	install -m755 tuxmail.onreadmail $(VARCONFIG)/tuxmail/

$(LIBPLUGINS)/tuxmail.so: $(LIBPLUGINS)
	pushd $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/tuxmail && \
	$(TARGET)-gcc $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
		-I$(N_OBJDIR) -I$(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/include \
		-I$(TARGET_INCLUDE_DIR)/freetype2 \
		\
		-lfreetype -lz \
		\
		tuxmail.c \
		\
		-o $@ && \
	install -m644 tuxmail.cfg $(LIBPLUGINS)/ && \
	install -m644 tuxmail_hint.png $(LIBPLUGINS)/

#tuxwetter
tuxwetter: $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS) $(LIBPLUGINS)/tuxwetter.so
$(LIBPLUGINS)/tuxwetter.so: $(D)/freetype $(D)/libcurl $(D)/giflib $(D)/libjpeg $(LIBPLUGINS) $(VARCONFIG)
	pushd $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/tuxwetter && \
	$(TARGET)-gcc $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
		-I$(N_OBJDIR) -I$(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/include \
		-I$(TARGET_INCLUDE_DIR)/freetype2 \
		\
		-lfreetype -lz -lcrypto -lssl -lcurl -ljpeg -lpng -lgif \
		\
		-DWWEATHER \
		\
		fb_display.c \
		gfx.c \
		gif.c \
		gifdecomp.c \
		http.c \
		io.c \
		jpeg.c \
		parser.c \
		php.c \
		png_helper.cpp \
		pngw.cpp \
		resize.c \
		text.c \
		tuxwetter.c \
		\
		-o $@; \
	mkdir -p $(VARCONFIG)/tuxwetter/ && \
	install -m644 tuxwetter.mcfg $(VARCONFIG)/tuxwetter/ && \
	key=4cf30427c97b3bc5; \
	sed -i "s|^LicenseKey=.*|LicenseKey=$$key|" $(VARCONFIG)/tuxwetter/tuxwetter.mcfg && \
	install -m644 tuxwetter.conf $(VARCONFIG)/tuxwetter/ && \
	install -m644 tuxwetter.png $(VARCONFIG)/tuxwetter/ && \
	install -m644 convert.list $(VARCONFIG)/tuxwetter/ && \
	install -m644 tuxwetter.cfg $(LIBPLUGINS)/ && \
	install -m644 tuxwetter_hint.png $(LIBPLUGINS)/ && \
	ln -sf /lib/tuxbox/plugins/tuxwetter.so $(BIN)/tuxwetter

#cooliTSclimax
cooliTSclimax: $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS) $(BIN)/cooliTSclimax
$(BIN)/cooliTSclimax: $(D)/ffmpeg $(BIN)
	pushd $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/cooliTSclimax && \
	$(TARGET)-g++ $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
		-lpthread -lavformat -lavcodec -lavutil \
		\
		-D__STDC_CONSTANT_MACROS \
		\
		cooliTSclimax.cpp \
		\
		-o $@

# oscammon
oscammon: $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS) $(D)/zlib $(D)/freetype $(D)/openssl $(LIBPLUGINS)/oscammon.so
$(LIBPLUGINS)/oscammon.so: $(LIBPLUGINS) $(VARCONFIG)
	pushd $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/oscammon && \
	$(TARGET)-gcc $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
		-I$(N_OBJDIR) -I$(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/include \
		-I$(TARGET_INCLUDE_DIR)/freetype2 \
		\
		-lfreetype -lz -lcrypto \
		\
		oscammon.c \
		\
		-o $@ && \
	cp -f oscammon.conf $(VARCONFIG)/ && \
	cp -f oscammon.cfg $(LIBPLUGINS)/ && \
	cp -f oscammon_hint.png $(LIBPLUGINS)/

# showiframe
showiframe: $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS) $(BIN)/showiframe
$(BIN)/showiframe: $(BIN)
	pushd $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/showiframe && \
	$(TARGET)-gcc $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
		\
		showiframe.c \
		\
		-o $@ && \
	install -m755 showiframe.sh $(BIN)/

# shellexec
shellexec: $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS) $(LIBPLUGINS)/shellexec.so
$(LIBPLUGINS)/shellexec.so: $(D)/freetype $(LIBPLUGINS) $(SHAREFLEX) $(VARCONFIG) $(BIN)
	pushd $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/shellexec; \
	$(TARGET)-gcc $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
		-I$(N_OBJDIR) -I$(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/include \
		-I$(TARGET_INCLUDE_DIR)/freetype2 \
		\
		-lfreetype -lz -lpng \
		\
		fb_display.c \
		gfx.c \
		io.c \
		png_helper.cpp \
		pngw.cpp \
		resize.c \
		shellexec.c \
		text.c \
		\
		-o $@ && \
	install -m644 shellexec.conf $(VARCONFIG)/ && \
	install -m644 shellexec.cfg $(LIBPLUGINS)/ && \
	install -m644 shellexec_hint.png $(LIBPLUGINS)/ && \
	install -m644 flex_plugins.conf $(SHAREFLEX)/ && \
	install -m644 flex_user.conf $(SHAREFLEX)/
	mv -f $(LIBPLUGINS)/shellexec.so  $(LIBPLUGINS)/00_shellexec.so
	mv -f $(LIBPLUGINS)/shellexec.cfg $(LIBPLUGINS)/00_shellexec.cfg
	mv -f $(LIBPLUGINS)/shellexec_hint.png $(LIBPLUGINS)/00_shellexec_hint.png
	ln -sf /lib/tuxbox/plugins/00_shellexec.so $(BIN)/shellexec

# -----------------------------------------------------------------------------

LINKS_PATCH  = links-$(LINKS_VER).patch
LINKS_PATCH += links-$(LINKS_VER)-ac-prog-cxx.patch
ifeq ($(BOXSERIES), hd51)
LINKS_PATCH += links-$(LINKS_VER)-hd51-input.patch
endif

$(D)/links: $(D)/libpng $(D)/libjpeg $(D)/openssl $(ARCHIVE)/links-$(LINKS_VER).tar.bz2 $(LIBPLUGINS) | $(TARGET_DIR)
	$(REMOVE)/links-$(LINKS_VER)
	$(UNTAR)/links-$(LINKS_VER).tar.bz2
	$(CHDIR)/links-$(LINKS_VER); \
		$(call apply_patches,$(LINKS_PATCH)); \
		autoreconf -vfi; \
		$(CONFIGURE) \
			--prefix= \
			--mandir=$(BUILD_TMP)/.remove \
			--enable-graphics \
			--with-fb \
			--with-libjpeg \
			--with-ssl=$(TARGET_DIR) \
			--without-atheos \
			--without-directfb \
			--without-libtiff \
			--without-lzma \
			--without-pmshell \
			--without-svgalib \
			--without-x \
			; \
		$(MAKE); \
		$(MAKE) install DESTDIR=$(TARGET_DIR)
	mv -f $(BIN)/links $(LIBPLUGINS)/links.so
	cp -a $(IMAGEFILES)/links/* $(TARGET_DIR)/
	$(REMOVE)/links-$(LINKS_VER)
	$(TOUCH)