TARGETS	= $(OBJDIR)panel-embed$(EXEEXT) $(OBJDIR)panel-message$(EXEEXT) $(OBJDIR)panel-notify$(EXEEXT) $(OBJDIR)panel-test$(EXEEXT) $(OBJDIR)settings$(EXEEXT) $(OBJDIR)wifibrowser$(EXEEXT)
OBJDIR	=
PREFIX	= /usr/local
DESTDIR	=
BINDIR	= $(PREFIX)/bin
SBINDIR	= $(PREFIX)/sbin
CC	= cc
CPPFLAGSF=
CPPFLAGS=
CFLAGSF	= `pkg-config --cflags libDesktop`
CFLAGS	= -W -Wall -g -O2 -pedantic -fPIE -D_FORTIFY_SOURCE=2 -fstack-protector
LDFLAGSF= `pkg-config --libs libDesktop`
LDFLAGS	= -pie -Wl,-z,relro -Wl,-z,now
EXEEXT	=
RM	= rm -f
LN	= ln -f
MKDIR	= mkdir -m 0755 -p
INSTALL	= install


all: $(TARGETS)

panel-embed_OBJS = $(OBJDIR)embed.o
panel-embed_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) -D PREFIX=\"$(PREFIX)\" $(CFLAGSF) $(CFLAGS)
panel-embed_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)

$(OBJDIR)panel-embed$(EXEEXT): $(panel-embed_OBJS)
	$(CC) -o $(OBJDIR)panel-embed$(EXEEXT) $(panel-embed_OBJS) $(panel-embed_LDFLAGS)

panel-message_OBJS = $(OBJDIR)message.o
panel-message_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) -D PREFIX=\"$(PREFIX)\" $(CFLAGSF) $(CFLAGS)
panel-message_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)

$(OBJDIR)panel-message$(EXEEXT): $(panel-message_OBJS)
	$(CC) -o $(OBJDIR)panel-message$(EXEEXT) $(panel-message_OBJS) $(panel-message_LDFLAGS)

panel-notify_OBJS = $(OBJDIR)notify.o
panel-notify_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) -D PREFIX=\"$(PREFIX)\" $(CFLAGSF) $(CFLAGS)
panel-notify_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) -L../src -L$(OBJDIR). -Wl,-rpath,$(PREFIX)/lib -lPanel

$(OBJDIR)panel-notify$(EXEEXT): $(panel-notify_OBJS)
	$(CC) -o $(OBJDIR)panel-notify$(EXEEXT) $(panel-notify_OBJS) $(panel-notify_LDFLAGS)

panel-test_OBJS = $(OBJDIR)test.o
panel-test_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) -D PREFIX=\"$(PREFIX)\" $(CFLAGSF) $(CFLAGS)
panel-test_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) -L../src -L$(OBJDIR). -Wl,-rpath,$(PREFIX)/lib -lPanel

$(OBJDIR)panel-test$(EXEEXT): $(panel-test_OBJS)
	$(CC) -o $(OBJDIR)panel-test$(EXEEXT) $(panel-test_OBJS) $(panel-test_LDFLAGS)

settings_OBJS = $(OBJDIR)settings.o
settings_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
settings_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)

$(OBJDIR)settings$(EXEEXT): $(settings_OBJS)
	$(CC) -o $(OBJDIR)settings$(EXEEXT) $(settings_OBJS) $(settings_LDFLAGS)

wifibrowser_OBJS = $(OBJDIR)wifibrowser.o
wifibrowser_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) -I ../include $(CFLAGSF) $(CFLAGS)
wifibrowser_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) -L../src -L$(OBJDIR). -Wl,-rpath,$(PREFIX)/lib -lPanel

$(OBJDIR)wifibrowser$(EXEEXT): $(wifibrowser_OBJS)
	$(CC) -o $(OBJDIR)wifibrowser$(EXEEXT) $(wifibrowser_OBJS) $(wifibrowser_LDFLAGS)

$(OBJDIR)embed.o: embed.c ../include/Panel.h ../config.h
	$(CC) $(panel-embed_CFLAGS) -o $(OBJDIR)embed.o -c embed.c

$(OBJDIR)message.o: message.c ../include/Panel.h ../config.h
	$(CC) $(panel-message_CFLAGS) -o $(OBJDIR)message.o -c message.c

$(OBJDIR)notify.o: notify.c helper.c ../src/helper.c ../src/panel.h ../config.h
	$(CC) $(panel-notify_CFLAGS) -o $(OBJDIR)notify.o -c notify.c

$(OBJDIR)test.o: test.c helper.c ../src/helper.c ../src/panel.h ../config.h
	$(CC) $(panel-test_CFLAGS) -o $(OBJDIR)test.o -c test.c

$(OBJDIR)settings.o: settings.c ../config.h
	$(CC) $(settings_CFLAGS) -o $(OBJDIR)settings.o -c settings.c

$(OBJDIR)wifibrowser.o: wifibrowser.c ../src/applets/wpa_supplicant.c ../config.h
	$(CC) $(wifibrowser_CFLAGS) -o $(OBJDIR)wifibrowser.o -c wifibrowser.c

clean:
	$(RM) -- $(panel-embed_OBJS) $(panel-message_OBJS) $(panel-notify_OBJS) $(panel-test_OBJS) $(settings_OBJS) $(wifibrowser_OBJS)

distclean: clean
	$(RM) -- $(TARGETS)

install: all
	$(MKDIR) $(DESTDIR)$(BINDIR)
	$(INSTALL) -m 0755 $(OBJDIR)panel-embed$(EXEEXT) $(DESTDIR)$(BINDIR)/panel-embed$(EXEEXT)
	$(MKDIR) $(DESTDIR)$(BINDIR)
	$(INSTALL) -m 0755 $(OBJDIR)panel-message$(EXEEXT) $(DESTDIR)$(BINDIR)/panel-message$(EXEEXT)
	$(MKDIR) $(DESTDIR)$(BINDIR)
	$(INSTALL) -m 0755 $(OBJDIR)panel-notify$(EXEEXT) $(DESTDIR)$(BINDIR)/panel-notify$(EXEEXT)
	$(MKDIR) $(DESTDIR)$(BINDIR)
	$(INSTALL) -m 0755 $(OBJDIR)settings$(EXEEXT) $(DESTDIR)$(BINDIR)/settings$(EXEEXT)
	$(MKDIR) $(DESTDIR)$(BINDIR)
	$(INSTALL) -m 0755 $(OBJDIR)wifibrowser$(EXEEXT) $(DESTDIR)$(BINDIR)/wifibrowser$(EXEEXT)

uninstall:
	$(RM) -- $(DESTDIR)$(BINDIR)/panel-embed$(EXEEXT)
	$(RM) -- $(DESTDIR)$(BINDIR)/panel-message$(EXEEXT)
	$(RM) -- $(DESTDIR)$(BINDIR)/panel-notify$(EXEEXT)
	$(RM) -- $(DESTDIR)$(BINDIR)/settings$(EXEEXT)
	$(RM) -- $(DESTDIR)$(BINDIR)/wifibrowser$(EXEEXT)

.PHONY: all clean distclean install uninstall
