CC = gcc
DEBUG = -g -Wall
EXECUTABLE = mdictionary
APP_NAME = mDictionary
LOCALEDIR = /usr/share/locale
INCLUDE_GUI = include
INCLUDE_DBUS_WRAPPER = ../../include
CFLAGS = `pkg-config --cflags gtk+-2.0 libgtkhtml-3.8 glib-2.0 libosso gconf-2.0` -I${INCLUDE_GUI} -I${INCLUDE_DBUS_WRAPPER}
LIBS = `pkg-config --libs gtk+-2.0 libgtkhtml-3.8 glib-2.0 libosso gconf-2.0` 
DEFINES = -DPACKAGE=\"${APP_NAME}\" -DLOCALEDIR=\"${LOCALEDIR}\"
APP_VER = unofficialbuild

CFLAGS += $(shell pkg-config --exists hildon-fm-2 hildon-1 && echo `pkg-config --cflags hildon-fm-2 hildon-1`)
LIBS += $(shell pkg-config --exists hildon-fm-2 hildon-1 && echo `pkg-config --libs hildon-fm-2 hildon-1`)
DEFINES += $(shell pkg-config --exists hildon-fm-2 hildon-1 && echo -DCHINOOK)

CFLAGS += $(shell pkg-config --exists hildon-fm hildon-libs && echo `pkg-config --cflags hildon-fm hildon-libs`)
LIBS += $(shell pkg-config --exists hildon-fm hildon-libs && echo `pkg-config --libs hildon-fm hildon-libs`)

SOURCES = src
BINARIES = bin
MAIN_BINARIES = ../../bin

${EXECUTABLE}: ${BINARIES}/ws_gui.o ${BINARIES}/ws_gui_callbacks.o ${BINARIES}/ws_gui_layout.o ${BINARIES}/ws_gui_utils.o ${MAIN_BINARIES}/ws_dbus.o
		${CC} ${DEBUG}   -o ${BINARIES}/${EXECUTABLE} ${BINARIES}/ws_gui.o ${BINARIES}/ws_gui_callbacks.o ${BINARIES}/ws_gui_layout.o ${BINARIES}/ws_gui_utils.o ${MAIN_BINARIES}/ws_dbus.o ${LIBS} ${CFLAGS} ${DEFINES}
		@cp ${BINARIES}/${EXECUTABLE} ${MAIN_BINARIES}

${BINARIES}/ws_gui.o: ${SOURCES}/ws_gui.c ${INCLUDE_GUI}/ws_gui.h ${INCLUDE_GUI}/ws_gui_callbacks.h ${INCLUDE_GUI}/ws_gui_layout.h ${INCLUDE_DBUS_WRAPPER}/ws_dbus.h
		${CC} ${DEBUG} -c ${SOURCES}/ws_gui.c -o ${BINARIES}/ws_gui.o ${CFLAGS}  ${DEFINES}

${BINARIES}/ws_gui_callbacks.o: ${SOURCES}/ws_gui_callbacks.c ${INCLUDE_GUI}/ws_gui_callbacks.h ${INCLUDE_GUI}/ws_gui.h  ${INCLUDE_GUI}/ws_gui_utils.h ${INCLUDE_DBUS_WRAPPER}/ws_dbus.h
		${CC} ${DEBUG} -c ${SOURCES}/ws_gui_callbacks.c -o ${BINARIES}/ws_gui_callbacks.o ${CFLAGS}  ${DEFINES}

${BINARIES}/ws_gui_layout.o: ${SOURCES}/ws_gui_layout.c ${INCLUDE_GUI}/ws_gui_layout.h ${INCLUDE_GUI}/ws_gui.h ${INCLUDE_DBUS_WRAPPER}/ws_dbus.h
		${CC} ${DEBUG} -DWS_VERSION=\"${APP_VER}\" -c ${SOURCES}/ws_gui_layout.c -o ${BINARIES}/ws_gui_layout.o ${CFLAGS}  ${DEFINES}

${BINARIES}/ws_gui_utils.o: ${SOURCES}/ws_gui_utils.c ${INCLUDE_GUI}/ws_gui_utils.h
		${CC} ${DEBUG} -DWS_VERSION=\"${APP_VER}\" -c ${SOURCES}/ws_gui_utils.c -o ${BINARIES}/ws_gui_utils.o ${CFLAGS}  ${DEFINES}

${MAIN_BINARIES}/ws_dbus.o:
		cd ../dbus_wrapper && make


dyn:
		${BINARIES}/wsl_gui.o ${BINARIES}/wsl_gui_callbacks.o ${BINARIES}/wsl_gui_layout.o ${BINARIES}/wsl_gui_utils.o
		@{CC} ${DEBUG} -shared -fPIC -o ${EXECUTABLE}.so ${BINARIES}/wsl_gui.o ${BINARIES}/wsl_gui_callbacks.o ${BINARIES}/wsl_gui_layout.o ${BINARIES}/wsl_gui_utils.o dbus/ws_dbus.o ${LIBS} ${CFLAGS} ${DEFINES}

${BINARIES}/wsl_gui.o: ${SOURCES}/ws_gui.c ${INCLUDE_GUI}/ws_gui.h ${INCLUDE_GUI}/ws_gui_callbacks.h ${INCLUDE_GUI}/ws_gui_layout.h ${INCLUDE_DBUS_WRAPPER}/ws_dbus.h
		@{CC} ${DEBUG} -fPIC -c ${SOURCES}/ws_gui.c -o ${BINARIES}/wsl_gui.o ${CFLAGS} ${DEFINES}

${BINARIES}/wsl_gui_callbacks.o: ${SOURCES}/ws_gui_callbacks.c ${INCLUDE_GUI}/ws_gui_callbacks.h ${INCLUDE_GUI}/ws_gui.h ${INCLUDE_DBUS_WRAPPER}/ws_dbus.h
		@{CC} ${DEBUG} -fPIC -c ${SOURCES}/ws_gui_callbacks.c -o ${BINARIES}/wsl_gui_callbacks.o ${CFLAGS} ${DEFINES}

${BINARIES}/wsl_gui_layout.o: ${SOURCES}/ws_gui_layout.c ${INCLUDE_GUI}/ws_gui_layout.h ${INCLUDE_GUI}/ws_gui.h ${INCLUDE_DBUS_WRAPPER}/ws_dbus.h
		@{CC} ${DEBUG} -fPIC -c ${SOURCES}/ws_gui_layout.c -o ${BINARIES}/wsl_gui_layout.o ${CFLAGS} ${DEFINES}

${BINARIES}/wsl_gui_utils.o: ${SOURCES}/ws_gui_utils.c ${INCLUDE_GUI}/ws_gui_utils.h
		@{CC} ${DEBUG} -fPIC -c ${SOURCES}/ws_gui_utils.c -o ${BINARIES}/wsl_gui_utils.o ${CFLAGS} ${DEFINES}

clean:
	rm -f ${BINARIES}/*
	@echo "done"
