
GUI_CONLER = conler-gui
CLI_CONLER = conler-cli

CC = gcc
CFLAGS = -Wall -std=c99
ifdef DEBUG
  CFG_PATH=conler.xml
  ifdef CONFIG_PATH
    CFG_PATH=$(CONFIG_PATH)
  endif
  CFLAGS += -g3 -ggdb -DDEBUG=$(DEBUG) -DCONFIG_PATH=\"$(CFG_PATH)\"

  ifndef PIXMAP_DIR
    PIXMAP_DIR=$(shell /bin/pwd)/../data/pixmaps
  endif
endif

CONLER_GUI_CFLAGS = -DCONLER_GUI

ifdef PIXMAP_DIR
  CONLER_GUI_CFLAGS += -DPIXMAP_DIR=\"$(PIXMAP_DIR)\"
endif

ifdef NOTIFY_MAJOR_CHANGES
  CONLER_GUI_CFLAGS += -DNOTIFY_MAJOR_CHANGES=TRUE
endif

COMMON_PKGS = libxml-2.0 glib-2.0
GUI_PKGS = gtk+-2.0
# If run in scratchbox, enable Maemo specific features
ifeq ($(shell /bin/grep RX /etc/osso_software_version | /usr/bin/wc -l), 1)
	CFLAGS += -DMAEMO
	COMMON_PKGS += libosso
	GUI_PKGS += hildon-1 hildon-help
	CLI_PKGS = gconf-2.0
endif
COMMON_CFLAGS = $(shell /usr/bin/pkg-config --cflags $(COMMON_PKGS))
COMMON_LIBS = $(shell /usr/bin/pkg-config --libs $(COMMON_PKGS))
GUI_CFLAGS = $(shell /usr/bin/pkg-config --cflags $(GUI_PKGS))
GUI_LIBS = $(shell /usr/bin/pkg-config --libs $(GUI_PKGS))
CLI_CFLAGS = $(shell /usr/bin/pkg-config --cflags $(CLI_PKGS))
CLI_LIBS = $(shell /usr/bin/pkg-config --libs $(CLI_PKGS))

COMMON_OBJS=common.o types.o
GUI_OBJS=conler-gui.o ui.o slots.o cellrendererpixbuf.o ui-utils.o
CLI_OBJS=conler-cli.o

# TODO: temporary w/a to avoid problems with building of
# 		cli and gui versions together
all: 
	make cli
	make gui

.PHONY: cli
cli: $(COMMON_OBJS) $(CLI_OBJS)
	@$(CC) $(COMMON_LIBS) $(CLI_LIBS) $(COMMON_OBJS) $(CLI_OBJS) -o $(CLI_CONLER)

$(COMMON_OBJS): $(call sources, $(COMMON_OBJS)) $(call headers, $(COMMON_OBJS))
	@$(CC) $(CFLAGS) $(COMMON_CFLAGS) -c $(call sources, $@) -o $@

$(CLI_OBJS): $(call sources, $(CLI_OBJS))
	@$(CC) $(CFLAGS) $(CLI_CFLAGS) $(COMMON_CFLAGS) -c $(call sources, $@) -o $@

.PHONY: gui
gui: CFLAGS += $(CONLER_GUI_CFLAGS)
gui: _gui $(COMMON_OBJS) $(GUI_OBJS)
	@$(CC) $(COMMON_LIBS) $(GUI_LIBS) $(COMMON_OBJS) $(GUI_OBJS) -o $(GUI_CONLER)

_gui:
	@rm -f $(COMMON_OBJS)
	
$(GUI_OBJS): $(call sources, $(GUI_OBJS)) $(call headers, $(GUI_OBJS))
	@$(CC) $(CFLAGS) $(COMMON_CFLAGS) $(GUI_CFLAGS) -c $(call sources, $@) -o $@


.PHONY: clean
clean:
	@rm -f $(COMMON_OBJS) $(CLI_OBJS) $(GUI_OBJS) $(GUI_CONLER) $(CLI_CONLER) core


sources=$(foreach o, $(basename $(1)), $(o).c)
headers=$(foreach o, $(basename $(1)), $(o).h)



