TARGETS	= $(OBJDIR)desktop$(EXEEXT) $(OBJDIR)desktopctl$(EXEEXT) $(OBJDIR)handler/mimeapp.o
OBJDIR	=
PREFIX	= /usr/local
DESTDIR	=
BINDIR	= $(PREFIX)/bin
SBINDIR	= $(PREFIX)/sbin
CC	= cc
CPPFLAGSF= -I../../include
CPPFLAGS=
CFLAGSF	= `pkg-config --cflags libDesktop`
CFLAGS	= -W -Wall -g -O2 -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)

desktop_OBJS = $(OBJDIR)desktop.o $(OBJDIR)desktopicon.o $(OBJDIR)desktopiconwindow.o $(OBJDIR)handler.o $(OBJDIR)main.o
desktop_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) `pkg-config --cflags x11 xrandr`
desktop_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs x11 xrandr` -L$(OBJDIR)../lib -Wl,-rpath,$(PREFIX)/lib -lBrowser $(OBJDIR)handler/mimeapp.o

$(OBJDIR)desktop$(EXEEXT): $(desktop_OBJS) $(OBJDIR)../lib/libBrowser.a $(OBJDIR)handler/mimeapp.o
	$(CC) -o $(OBJDIR)desktop$(EXEEXT) $(desktop_OBJS) $(desktop_LDFLAGS)

desktopctl_OBJS = $(OBJDIR)desktopctl.o
desktopctl_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
desktopctl_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)

$(OBJDIR)desktopctl$(EXEEXT): $(desktopctl_OBJS)
	$(CC) -o $(OBJDIR)desktopctl$(EXEEXT) $(desktopctl_OBJS) $(desktopctl_LDFLAGS)

handler/mimeapp.o_OBJS = $(OBJDIR)handler/mimeapp.o
handler/mimeapp.o_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)

$(OBJDIR)desktop.o: desktop.c ../common.h ../common.c desktopicon.h desktop.h ../../config.h
	$(CC) -D PREFIX=\"$(PREFIX)\" $(desktop_CFLAGS) -o $(OBJDIR)desktop.o -c desktop.c

$(OBJDIR)desktopicon.o: desktopicon.c ../common.h ../common.c desktop.h desktopicon.h ../../config.h
	$(CC) -D PREFIX=\"$(PREFIX)\" $(desktop_CFLAGS) -o $(OBJDIR)desktopicon.o -c desktopicon.c

$(OBJDIR)desktopiconwindow.o: desktopiconwindow.c ../common.h desktop.h desktopicon.h desktopiconwindow.h
	$(CC) $(desktop_CFLAGS) -o $(OBJDIR)desktopiconwindow.o -c desktopiconwindow.c

$(OBJDIR)handler.o: handler.c desktop.h desktopicon.h desktopiconwindow.h handler.h handler/applications.c handler/categories.c handler/files.c handler/homescreen.c handler/mimeapp.h
	$(CC) $(desktop_CFLAGS) -o $(OBJDIR)handler.o -c handler.c

$(OBJDIR)main.o: main.c desktop.h ../../config.h
	$(CC) $(desktop_CFLAGS) -o $(OBJDIR)main.o -c main.c

$(OBJDIR)desktopctl.o: desktopctl.c desktop.h ../../config.h
	$(CC) $(desktopctl_CFLAGS) -o $(OBJDIR)desktopctl.o -c desktopctl.c

$(OBJDIR)handler/mimeapp.o: handler/mimeapp.c
	@[ -d "$(OBJDIR)handler" ] || $(MKDIR) -- "$(OBJDIR)handler"
	$(CC) $(handler/mimeapp.o_CFLAGS) -o $(OBJDIR)handler/mimeapp.o -c handler/mimeapp.c

clean:
	$(RM) -- $(desktop_OBJS) $(desktopctl_OBJS) $(handler/mimeapp.o_OBJS)

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

install: all
	$(MKDIR) $(DESTDIR)$(BINDIR)
	$(INSTALL) -m 0755 $(OBJDIR)desktop$(EXEEXT) $(DESTDIR)$(BINDIR)/desktop$(EXEEXT)
	$(MKDIR) $(DESTDIR)$(BINDIR)
	$(INSTALL) -m 0755 $(OBJDIR)desktopctl$(EXEEXT) $(DESTDIR)$(BINDIR)/desktopctl$(EXEEXT)

uninstall:
	$(RM) -- $(DESTDIR)$(BINDIR)/desktop$(EXEEXT)
	$(RM) -- $(DESTDIR)$(BINDIR)/desktopctl$(EXEEXT)

.PHONY: all clean distclean install uninstall
