blob: 386b4dd6c9d310f0163a7dde29122fe133de2890 [file] [log] [blame]
# Copyright (c) 2012 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 WiMAX Manager.
include common.mk
PKG_CONFIG ?= pkg-config
DBUSXX_XML2CPP = dbusxx-xml2cpp
# Create a generator for DBus-C++ headers.
GEN_DBUSXX_ADAPTOR(%):
$(call check_deps)
$(call old_or_no_timestamp,\
mkdir -p "$(dir $(TARGET_OR_MEMBER))" && \
$(DBUSXX_XML2CPP) $< --adaptor=$(TARGET_OR_MEMBER))
GEN_DBUSXX_PROXY(%):
$(call check_deps)
$(call old_or_no_timestamp,\
mkdir -p "$(dir $(TARGET_OR_MEMBER))" && \
$(DBUSXX_XML2CPP) $< --proxy=$(TARGET_OR_MEMBER)) --sync
BASE_VER ?= 125070
PC_DEPS = dbus-c++-1 glib-2.0 gthread-2.0 gobject-2.0 \
libchrome-$(BASE_VER) libchromeos-$(BASE_VER)
PC_CFLAGS := $(shell $(PKG_CONFIG) --cflags $(PC_DEPS))
PC_LIBS := $(shell $(PKG_CONFIG) --libs $(PC_DEPS))
CPPFLAGS += -I$(SRC)/.. -I$(OUT) $(PC_CFLAGS)
LDLIBS += -lgflags -lmetrics -lgdmwimax $(PC_LIBS)
# TODO(benchan): Generalize and refactor DBus-C++ header generation.
GEN_DBUSXX_ADAPTOR(wimax_manager/dbus_bindings/manager.h): \
$(SRC)/dbus_bindings/org.chromium.WiMaxManager.xml
clean: CLEAN(wimax_manager/dbus_bindings/manager.h)
GEN_DBUSXX_ADAPTOR(wimax_manager/dbus_bindings/device.h): \
$(SRC)/dbus_bindings/org.chromium.WiMaxManager.Device.xml
clean: CLEAN(wimax_manager/dbus_bindings/device.h)
GEN_DBUSXX_ADAPTOR(wimax_manager/dbus_bindings/network.h): \
$(SRC)/dbus_bindings/org.chromium.WiMaxManager.Network.xml
clean: CLEAN(wimax_manager/dbus_bindings/network.h)
GEN_DBUSXX_PROXY(wimax_manager/dbus_bindings/dbus_service.h): \
$(SRC)/dbus_bindings/org.freedesktop.DBus.xml
clean: CLEAN(wimax_manager/dbus_bindings/dbus_service.h)
GEN_DBUSXX_PROXY(wimax_manager/dbus_bindings/power_manager.h): \
$(SRC)/dbus_bindings/org.chromium.PowerManager.xml
clean: CLEAN(wimax_manager/dbus_bindings/power_manager.h)
# Require DBus binding headers to be generated first.
$(patsubst %.o,%.o.depends,$(CXX_OBJECTS)): \
GEN_DBUSXX_ADAPTOR(wimax_manager/dbus_bindings/device.h) \
GEN_DBUSXX_ADAPTOR(wimax_manager/dbus_bindings/manager.h) \
GEN_DBUSXX_ADAPTOR(wimax_manager/dbus_bindings/network.h) \
GEN_DBUSXX_PROXY(wimax_manager/dbus_bindings/dbus_service.h) \
GEN_DBUSXX_PROXY(wimax_manager/dbus_bindings/power_manager.h)
CXX_BINARY(wimax-manager): $(filter-out testrunner.o %_unittest.o,$(CXX_OBJECTS))
clean: CLEAN(wimax-manager)
testrunner: $(filter-out %main.o,$(CXX_OBJECTS))
$(call cxx_binary, -lgtest -lgmock)
clean: CLEAN(testrunner)
default: CXX_BINARY(wimax-manager)
all: default
tests: TEST(testrunner)