STRIP = strip
INSTALL_FILE = install -m 644 -p
INSTALL_PROGRAM = install -m 755 -p
DEL_FILE = rm -f
DEL_DIR = rmdir
CHK_DIR_EXISTS = test -d
MKDIR = mkdir -p

pkg_packages := hildon-1 libhildondesktop-1

PKG_CFLAGS := $(shell pkg-config --cflags $(pkg_packages))
PKG_LDFLAGS := $(shell pkg-config --libs $(pkg_packages))

ADD_CFLAGS := -Wall -O3
ADD_LDFLAGS := -Wall -O3 -shared

CFLAGS  := $(PKG_CFLAGS) $(ADD_CFLAGS) $(CFLAGS)
LDFLAGS := $(PKG_LDFLAGS) $(ADD_LDFLAGS) $(LDFLAGS)

INSTALL_DIR := $(shell pkg-config libhildondesktop-1 --variable=hildondesktoplibdir)
DESKTOP_DIR := $(shell pkg-config libhildondesktop-1 --variable=hildonhomedesktopentrydir)
OPT_ROOT := /opt/maemo

target = lib-dlh-widget.so

.PHONY: all
all: $(target)

lib-dlh-widget.so: dlh-widget.o
	$(CC) $(LDFLAGS) "$^" -o "$@"

dlh-widget.o: dlh-widget.c
	$(CC) $(CFLAGS) -c "$<" -o "$@"

.PHONY: clean
clean:
	$(RM) $(target) *.o

install_target: all
	@$(CHK_DIR_EXISTS) $(INSTALL_ROOT)$(OPT_ROOT)$(INSTALL_DIR) || $(MKDIR) $(INSTALL_ROOT)$(OPT_ROOT)$(INSTALL_DIR)
	@$(CHK_DIR_EXISTS) $(INSTALL_ROOT)$(INSTALL_DIR) || $(MKDIR) $(INSTALL_ROOT)$(INSTALL_DIR) 
	-$(INSTALL_PROGRAM) "$(target)" "$(INSTALL_ROOT)$(OPT_ROOT)$(INSTALL_DIR)/$(target)"
	-$(STRIP) "$(INSTALL_ROOT)$(OPT_ROOT)$(INSTALL_DIR)/$(target)"
	ln -sf "$(OPT_ROOT)$(INSTALL_DIR)/$(target)" "$(INSTALL_ROOT)$(INSTALL_DIR)/$(target)"

uninstall_target:
	-$(DEL_FILE) "$(INSTALL_ROOT)$(OPT_ROOT)$(INSTALL_DIR)/$(target)"
	-$(DEL_FILE) "$(INSTALL_ROOT)$(INSTALL_DIR)/$(target)"

install_desktop: all
	@$(CHK_DIR_EXISTS) $(INSTALL_ROOT)$(DESKTOP_DIR) || $(MKDIR) $(INSTALL_ROOT)$(DESKTOP_DIR)
	-$(INSTALL_FILE) dlh-widget.desktop $(INSTALL_ROOT)$(DESKTOP_DIR)


uninstall_desktop:
	-$(DEL_FILE) $(INSTALL_ROOT)$(DESKTOP_DIR)/dlh-widget.desktop


install:  install_target install_desktop

uninstall: uninstall_target uninstall_desktop

