TARGETS	= $(OBJDIR)colors$(SOEXT) $(OBJDIR)gtk-demo$(SOEXT) $(OBJDIR)logo$(SOEXT) $(OBJDIR)template$(SOEXT) $(OBJDIR)xscreensaver$(SOEXT) $(OBJDIR)xterm$(SOEXT)
OBJDIR	=
PREFIX	= /usr/local
DESTDIR	=
LIBDIR	= $(PREFIX)/lib
CC	= cc
CPPFLAGSF= -I ../../include
CPPFLAGS=
CFLAGSF	= `pkg-config --cflags libDesktop x11` -fPIC
CFLAGS	= -W -Wall -g -O2 -D_FORTIFY_SOURCE=2 -fstack-protector
LDFLAGSF= `pkg-config --libs libDesktop x11` -fPIC
LDFLAGS	= -Wl,-z,relro -Wl,-z,now
EXEEXT	=
AR	= ar
ARFLAGS	= -rc
RANLIB	= ranlib
CCSHARED= $(CC) -shared
SOEXT	= .so
RM	= rm -f
LN	= ln -f
MKDIR	= mkdir -m 0755 -p
INSTALL	= install


all: $(TARGETS)

colors_OBJS = $(OBJDIR)colors.o
colors_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
colors_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)

$(OBJDIR)colors$(SOEXT): $(colors_OBJS)
	$(CCSHARED) -o $(OBJDIR)colors$(SOEXT) $(colors_OBJS) $(colors_LDFLAGS)

gtk-demo_OBJS = $(OBJDIR)gtk-demo.o
gtk-demo_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
gtk-demo_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)

$(OBJDIR)gtk-demo$(SOEXT): $(gtk-demo_OBJS)
	$(CCSHARED) -o $(OBJDIR)gtk-demo$(SOEXT) $(gtk-demo_OBJS) $(gtk-demo_LDFLAGS)

logo_OBJS = $(OBJDIR)logo.o
logo_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
logo_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)

$(OBJDIR)logo$(SOEXT): $(logo_OBJS)
	$(CCSHARED) -o $(OBJDIR)logo$(SOEXT) $(logo_OBJS) $(logo_LDFLAGS)

template_OBJS = $(OBJDIR)template.o
template_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
template_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)

$(OBJDIR)template$(SOEXT): $(template_OBJS)
	$(CCSHARED) -o $(OBJDIR)template$(SOEXT) $(template_OBJS) $(template_LDFLAGS)

xscreensaver_OBJS = $(OBJDIR)xscreensaver.o
xscreensaver_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
xscreensaver_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)

$(OBJDIR)xscreensaver$(SOEXT): $(xscreensaver_OBJS)
	$(CCSHARED) -o $(OBJDIR)xscreensaver$(SOEXT) $(xscreensaver_OBJS) $(xscreensaver_LDFLAGS)

xterm_OBJS = $(OBJDIR)xterm.o
xterm_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
xterm_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)

$(OBJDIR)xterm$(SOEXT): $(xterm_OBJS)
	$(CCSHARED) -o $(OBJDIR)xterm$(SOEXT) $(xterm_OBJS) $(xterm_LDFLAGS)

$(OBJDIR)colors.o: colors.c ../../include/Locker.h ../../config.h
	$(CC) -D PREFIX=\"$(PREFIX)\" $(colors_CFLAGS) -o $(OBJDIR)colors.o -c colors.c

$(OBJDIR)gtk-demo.o: gtk-demo.c ../../include/Locker/demo.h ../../config.h
	$(CC) -D PREFIX=\"$(PREFIX)\" $(gtk-demo_CFLAGS) -o $(OBJDIR)gtk-demo.o -c gtk-demo.c

$(OBJDIR)logo.o: logo.c ../../include/Locker/demo.h ../../config.h
	$(CC) -D PREFIX=\"$(PREFIX)\" $(logo_CFLAGS) -o $(OBJDIR)logo.o -c logo.c

$(OBJDIR)template.o: template.c
	$(CC) $(template_CFLAGS) -o $(OBJDIR)template.o -c template.c

$(OBJDIR)xscreensaver.o: xscreensaver.c ../../include/Locker.h ../../config.h
	$(CC) -D PREFIX=\"$(PREFIX)\" $(xscreensaver_CFLAGS) -o $(OBJDIR)xscreensaver.o -c xscreensaver.c

$(OBJDIR)xterm.o: xterm.c ../../include/Locker.h ../../config.h
	$(CC) -D PREFIX=\"$(PREFIX)\" $(xterm_CFLAGS) -o $(OBJDIR)xterm.o -c xterm.c

clean:
	$(RM) -- $(colors_OBJS) $(gtk-demo_OBJS) $(logo_OBJS) $(template_OBJS) $(xscreensaver_OBJS) $(xterm_OBJS)

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

install: all
	$(MKDIR) $(DESTDIR)$(LIBDIR)/Locker/demos
	$(INSTALL) -m 0755 $(OBJDIR)colors$(SOEXT) $(DESTDIR)$(LIBDIR)/Locker/demos/colors$(SOEXT)
	$(MKDIR) $(DESTDIR)$(LIBDIR)/Locker/demos
	$(INSTALL) -m 0755 $(OBJDIR)gtk-demo$(SOEXT) $(DESTDIR)$(LIBDIR)/Locker/demos/gtk-demo$(SOEXT)
	$(MKDIR) $(DESTDIR)$(LIBDIR)/Locker/demos
	$(INSTALL) -m 0755 $(OBJDIR)logo$(SOEXT) $(DESTDIR)$(LIBDIR)/Locker/demos/logo$(SOEXT)
	$(MKDIR) $(DESTDIR)$(LIBDIR)/Locker/demos
	$(INSTALL) -m 0755 $(OBJDIR)xscreensaver$(SOEXT) $(DESTDIR)$(LIBDIR)/Locker/demos/xscreensaver$(SOEXT)
	$(MKDIR) $(DESTDIR)$(LIBDIR)/Locker/demos
	$(INSTALL) -m 0755 $(OBJDIR)xterm$(SOEXT) $(DESTDIR)$(LIBDIR)/Locker/demos/xterm$(SOEXT)

uninstall:
	$(RM) -- $(DESTDIR)$(LIBDIR)/Locker/demos/colors$(SOEXT)
	$(RM) -- $(DESTDIR)$(LIBDIR)/Locker/demos/gtk-demo$(SOEXT)
	$(RM) -- $(DESTDIR)$(LIBDIR)/Locker/demos/logo$(SOEXT)
	$(RM) -- $(DESTDIR)$(LIBDIR)/Locker/demos/xscreensaver$(SOEXT)
	$(RM) -- $(DESTDIR)$(LIBDIR)/Locker/demos/xterm$(SOEXT)

.PHONY: all clean distclean install uninstall
