TARGETS	= $(OBJDIR)keyboard$(SOEXT) $(OBJDIR)phone$(SOEXT) $(OBJDIR)player$(SOEXT)
OBJDIR	=
PREFIX	= /usr/local
DESTDIR	=
LIBDIR	= $(PREFIX)/lib
CC	= cc
CPPFLAGSF=
CPPFLAGS=
CFLAGSF	= `pkg-config --cflags Panel` -fPIC
CFLAGS	= -W -Wall -g -O2 -D_FORTIFY_SOURCE=2 -fstack-protector
LDFLAGSF= `pkg-config --libs Panel`
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)

keyboard_OBJS = $(OBJDIR)keyboard.o
keyboard_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
keyboard_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)

$(OBJDIR)keyboard$(SOEXT): $(keyboard_OBJS)
	$(CCSHARED) -o $(OBJDIR)keyboard$(SOEXT) $(keyboard_OBJS) $(keyboard_LDFLAGS)

phone_OBJS = $(OBJDIR)phone.o
phone_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
phone_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)

$(OBJDIR)phone$(SOEXT): $(phone_OBJS)
	$(CCSHARED) -o $(OBJDIR)phone$(SOEXT) $(phone_OBJS) $(phone_LDFLAGS)

player_OBJS = $(OBJDIR)player.o
player_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
player_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)

$(OBJDIR)player$(SOEXT): $(player_OBJS)
	$(CCSHARED) -o $(OBJDIR)player$(SOEXT) $(player_OBJS) $(player_LDFLAGS)

$(OBJDIR)keyboard.o: keyboard.c
	$(CC) $(keyboard_CFLAGS) -o $(OBJDIR)keyboard.o -c keyboard.c

$(OBJDIR)phone.o: phone.c
	$(CC) $(phone_CFLAGS) -o $(OBJDIR)phone.o -c phone.c

$(OBJDIR)player.o: player.c
	$(CC) $(player_CFLAGS) -o $(OBJDIR)player.o -c player.c

clean:
	$(RM) -- $(keyboard_OBJS) $(phone_OBJS) $(player_OBJS)

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

install: all
	$(MKDIR) $(DESTDIR)$(LIBDIR)/Panel/applets
	$(INSTALL) -m 0755 $(OBJDIR)keyboard$(SOEXT) $(DESTDIR)$(LIBDIR)/Panel/applets/keyboard$(SOEXT)
	$(MKDIR) $(DESTDIR)$(LIBDIR)/Panel/applets
	$(INSTALL) -m 0755 $(OBJDIR)phone$(SOEXT) $(DESTDIR)$(LIBDIR)/Panel/applets/phone$(SOEXT)
	$(MKDIR) $(DESTDIR)$(LIBDIR)/Panel/applets
	$(INSTALL) -m 0755 $(OBJDIR)player$(SOEXT) $(DESTDIR)$(LIBDIR)/Panel/applets/player$(SOEXT)

uninstall:
	$(RM) -- $(DESTDIR)$(LIBDIR)/Panel/applets/keyboard$(SOEXT)
	$(RM) -- $(DESTDIR)$(LIBDIR)/Panel/applets/phone$(SOEXT)
	$(RM) -- $(DESTDIR)$(LIBDIR)/Panel/applets/player$(SOEXT)

.PHONY: all clean distclean install uninstall
