# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# Top-level Makefile for cros-disks.

# Pull in chromium os defaults
# TODO(rtc): This verison of common.mk came from drewry@, we should find
# a way to share the file rather than copying it.
include common.mk

PKG_CONFIG ?= pkg-config
DBUSXX_XML2CPP = dbusxx-xml2cpp

INCLUDE_DIRS = -I.. -I$(OUT) $(shell $(PKG_CONFIG) --cflags dbus-1 dbus-glib-1\
	dbus-c++-1 glib-2.0)
LIB_DIRS = $(shell $(PKG_CONFIG) --libs dbus-1 dbus-glib-1 dbus-c++-1 glib-2.0)

CFLAGS := -Iinclude $(CFLAGS)
CXXFLAGS := -Iinclude -I../ $(INCLUDE_DIRS) $(CXXFLAGS)
LDFLAGS += -lbase -lblkid -lchromeos -lgflags -lmetrics -lrootdev -ludev \
	$(LIB_DIRS)

cros-disks-server.h: cros-disks.xml
	$(DBUSXX_XML2CPP) cros-disks.xml --adaptor=$@
RM_ON_CLEAN += cros-disks-server.h

$(OUT)disks: $(filter-out %_testrunner.o %_unittest.o,$(CXX_OBJECTS)) \
		cros-disks-server.h
	$(call cxx_binary)
RM_ON_CLEAN += $(OUT)disks

$(OUT)disks_testrunner: $(filter-out %main.o,$(CXX_OBJECTS)) \
		cros-disks-server.h
	$(call cxx_binary, -lgtest -lgmock)
RM_ON_CLEAN += $(OUT)disks_testrunner

# Some shortcuts
all: disks
disks: dbus-headers
	make $(OUT)disks
dbus-headers: cros-disks-server.h
tests: dbus-headers
	make $(OUT)disks_testrunner
