TARGETS	= $(OBJDIR)debug$(SOEXT) $(OBJDIR)openmoko$(SOEXT) $(OBJDIR)suspend$(SOEXT) $(OBJDIR)systray$(SOEXT) $(OBJDIR)template$(SOEXT)
OBJDIR	=
PREFIX	= /usr/local
DESTDIR	=
LIBDIR	= $(PREFIX)/lib
CC	= cc
CPPFLAGSF= -I ../../include
CPPFLAGS=
CFLAGSF	= `pkg-config --cflags libDesktop` -fPIC
CFLAGS	= -W -Wall -g -O2 -D_FORTIFY_SOURCE=2 -fstack-protector
LDFLAGSF= `pkg-config --libs libDesktop`
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)

debug_OBJS = $(OBJDIR)debug.o
debug_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
debug_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)

$(OBJDIR)debug$(SOEXT): $(debug_OBJS)
	$(CCSHARED) -o $(OBJDIR)debug$(SOEXT) $(debug_OBJS) $(debug_LDFLAGS)

openmoko_OBJS = $(OBJDIR)openmoko.o
openmoko_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
openmoko_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)

$(OBJDIR)openmoko$(SOEXT): $(openmoko_OBJS)
	$(CCSHARED) -o $(OBJDIR)openmoko$(SOEXT) $(openmoko_OBJS) $(openmoko_LDFLAGS)

suspend_OBJS = $(OBJDIR)suspend.o
suspend_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
suspend_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)

$(OBJDIR)suspend$(SOEXT): $(suspend_OBJS)
	$(CCSHARED) -o $(OBJDIR)suspend$(SOEXT) $(suspend_OBJS) $(suspend_LDFLAGS)

systray_OBJS = $(OBJDIR)systray.o
systray_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) `pkg-config --cflags libDesktop`
systray_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs libDesktop`

$(OBJDIR)systray$(SOEXT): $(systray_OBJS)
	$(CCSHARED) -o $(OBJDIR)systray$(SOEXT) $(systray_OBJS) $(systray_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)

$(OBJDIR)debug.o: debug.c ../../include/Locker.h
	$(CC) $(debug_CFLAGS) -o $(OBJDIR)debug.o -c debug.c

$(OBJDIR)openmoko.o: openmoko.c ../../include/Locker.h
	$(CC) $(openmoko_CFLAGS) -o $(OBJDIR)openmoko.o -c openmoko.c

$(OBJDIR)suspend.o: suspend.c ../../include/Locker.h
	$(CC) $(suspend_CFLAGS) -o $(OBJDIR)suspend.o -c suspend.c

$(OBJDIR)systray.o: systray.c ../../include/Locker.h
	$(CC) $(systray_CFLAGS) -o $(OBJDIR)systray.o -c systray.c

$(OBJDIR)template.o: template.c ../../include/Locker.h
	$(CC) $(template_CFLAGS) -o $(OBJDIR)template.o -c template.c

clean:
	$(RM) -- $(debug_OBJS) $(openmoko_OBJS) $(suspend_OBJS) $(systray_OBJS) $(template_OBJS)

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

install: all
	$(MKDIR) $(DESTDIR)$(LIBDIR)/Locker/plugins
	$(INSTALL) -m 0755 $(OBJDIR)openmoko$(SOEXT) $(DESTDIR)$(LIBDIR)/Locker/plugins/openmoko$(SOEXT)
	$(MKDIR) $(DESTDIR)$(LIBDIR)/Locker/plugins
	$(INSTALL) -m 0755 $(OBJDIR)suspend$(SOEXT) $(DESTDIR)$(LIBDIR)/Locker/plugins/suspend$(SOEXT)
	$(MKDIR) $(DESTDIR)$(LIBDIR)/Locker/plugins
	$(INSTALL) -m 0755 $(OBJDIR)systray$(SOEXT) $(DESTDIR)$(LIBDIR)/Locker/plugins/systray$(SOEXT)

uninstall:
	$(RM) -- $(DESTDIR)$(LIBDIR)/Locker/plugins/openmoko$(SOEXT)
	$(RM) -- $(DESTDIR)$(LIBDIR)/Locker/plugins/suspend$(SOEXT)
	$(RM) -- $(DESTDIR)$(LIBDIR)/Locker/plugins/systray$(SOEXT)

.PHONY: all clean distclean install uninstall
