TARGETS	= $(OBJDIR)todo$(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 -fPIE -D_FORTIFY_SOURCE=2 -fstack-protector
LDFLAGSF= `pkg-config --libs libDesktop` -lintl
LDFLAGS	= -pie -Wl,-z,relro -Wl,-z,now
EXEEXT	=
RM	= rm -f
LN	= ln -f
MKDIR	= mkdir -m 0755 -p
INSTALL	= install


all: $(TARGETS)

todo_OBJS = $(OBJDIR)priority.o $(OBJDIR)task.o $(OBJDIR)taskedit.o $(OBJDIR)todo.o $(OBJDIR)window.o $(OBJDIR)main.o
todo_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
todo_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)

$(OBJDIR)todo$(EXEEXT): $(todo_OBJS)
	$(CC) -o $(OBJDIR)todo$(EXEEXT) $(todo_OBJS) $(todo_LDFLAGS)

$(OBJDIR)priority.o: priority.c todo.h priority.h
	$(CC) $(todo_CFLAGS) -o $(OBJDIR)priority.o -c priority.c

$(OBJDIR)task.o: task.c task.h
	$(CC) $(todo_CFLAGS) -fPIC -o $(OBJDIR)task.o -c task.c

$(OBJDIR)taskedit.o: taskedit.c priority.h
	$(CC) $(todo_CFLAGS) -fPIC -o $(OBJDIR)taskedit.o -c taskedit.c

$(OBJDIR)todo.o: todo.c priority.h task.h todo.h ../config.h
	$(CC) $(todo_CFLAGS) -fPIC -o $(OBJDIR)todo.o -c todo.c

$(OBJDIR)window.o: window.c todo.h window.h
	$(CC) $(todo_CFLAGS) -o $(OBJDIR)window.o -c window.c

$(OBJDIR)main.o: main.c task.h todo.h ../config.h
	$(CC) $(todo_CFLAGS) -o $(OBJDIR)main.o -c main.c

clean:
	$(RM) -- $(todo_OBJS)

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

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

uninstall:
	$(RM) -- $(DESTDIR)$(BINDIR)/todo$(EXEEXT)

.PHONY: all clean distclean install uninstall
