# Standalone Makefile for lxpanel-netaid-plugin (no Meson required)

PREFIX          ?= /usr/local
LX_PREFIX       ?= $(shell $(PKG_CONFIG) --variable=prefix lxpanel 2>/dev/null || echo $(PREFIX))
PLUGIN_DIR      ?= $(shell $(PKG_CONFIG) --variable=pluginsdir lxpanel 2>/dev/null || echo $(LX_PREFIX)/lib/$(shell $(CC) -dumpmachine)/lxpanel/plugins)
DATADIR         ?= $(PREFIX)/share/lxpanel-netaid-plugin

PKG_CONFIG      ?= pkg-config
CC              ?= gcc

GTK_COMMAND     ?= simple-netaid-gtk3
NOTIFY_PIDFILE  ?= /run/netaid/notify.pids
NOTIFY_DIR      ?= $(dir $(NOTIFY_PIDFILE))

CFLAGS  += -std=gnu11 -fPIC -Wall -Wno-unused-parameter \
           -I$(LX_PREFIX)/include \
           -DSIMPLE_NETAID_GTK=\"$(GTK_COMMAND)\" \
           -DNETAID_NOTIFY_PIDFILE=\"$(NOTIFY_PIDFILE)\" \
           -DNETAID_NOTIFY_DIR=\"$(NOTIFY_DIR)\" \
           $(shell $(PKG_CONFIG) --cflags glib-2.0 gtk+-3.0 gdk-pixbuf-2.0 libfm lxpanel libnetaid)
LDFLAGS += $(shell $(PKG_CONFIG) --libs glib-2.0 gtk+-3.0 gdk-pixbuf-2.0 libfm lxpanel libnetaid) \
           -shared -Wl,-export-dynamic

SRCDIR   = plugin
BUILDDIR = build-make

.PHONY: all clean install icons

all: $(BUILDDIR)/netaid.so

$(BUILDDIR):
	mkdir -p $(BUILDDIR)

icons: $(BUILDDIR)/connected_16x16 $(BUILDDIR)/disconnected_16x16

$(BUILDDIR)/connected_16x16: icons/connected.png | $(BUILDDIR)
	gdk-pixbuf-csource --raw --name=connected_16x16 $< > $@

$(BUILDDIR)/disconnected_16x16: icons/disconnected.png | $(BUILDDIR)
	gdk-pixbuf-csource --raw --name=disconnected_16x16 $< > $@

$(BUILDDIR)/netaid.so: plugin/netaid.c plugin/netaid-pixbuf.c icons
	$(CC) $(CFLAGS) -I$(BUILDDIR) -I$(SRCDIR) -o $@ \
		plugin/netaid.c plugin/netaid-pixbuf.c \
		$(LDFLAGS)

install: $(BUILDDIR)/netaid.so
	install -D -m 755 $(BUILDDIR)/netaid.so $(DESTDIR)$(PLUGIN_DIR)/netaid.so
	install -D -m 644 icons/connected.png $(DESTDIR)$(DATADIR)/icons/connected.png
	install -D -m 644 icons/disconnected.png $(DESTDIR)$(DATADIR)/icons/disconnected.png

clean:
	rm -rf $(BUILDDIR)
