blob: 5ce0caff8cce7a411bc39b5c99683960066ca9d5 [file] [log] [blame]
Darin Petkov65b01462010-04-14 13:32:20 -07001# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4#
5# Makefile for metrics utilities -- library, client and daemon
6#
7
8CCONFIG = $(shell $(PKG_CONFIG) --cflags dbus-1 glib-2.0 dbus-glib-1)
9LDCONFIG = $(shell $(PKG_CONFIG) --libs dbus-1 glib-2.0 gthread-2.0 dbus-glib-1)
10
Darin Petkov41e06232010-05-03 16:45:37 -070011CXXFLAGS += -Wall -Werror -fPIC -fno-exceptions $(CCONFIG)
Darin Petkov65b01462010-04-14 13:32:20 -070012
13CLIENT = metrics_client
14DAEMON = metrics_daemon
Darin Petkov2ccef012010-05-05 16:06:37 -070015DAEMON_TEST = metrics_daemon_test
Darin Petkov65b01462010-04-14 13:32:20 -070016LIB = libmetrics.a
17SHAREDLIB = libmetrics.so
18
19CLIENT_OBJS = \
20 metrics_client.o
21LIB_OBJS = \
22 metrics_library.o
23DAEMON_OBJS = \
Darin Petkov65b01462010-04-14 13:32:20 -070024 metrics_daemon.o \
25 metrics_daemon_main.o
26TESTDAEMON_OBJS = \
Darin Petkov65b01462010-04-14 13:32:20 -070027 metrics_daemon.o \
Darin Petkov2ccef012010-05-05 16:06:37 -070028 metrics_daemon_test.o
Darin Petkov65b01462010-04-14 13:32:20 -070029
30DAEMON_LDFLAGS = $(LDCONFIG) -lrt -lbase -lpthread -lgflags
Darin Petkovfc91b422010-05-12 13:05:45 -070031TESTDAEMON_LIBS = -lgmock -lgtest
Darin Petkov65b01462010-04-14 13:32:20 -070032
Darin Petkov2ccef012010-05-05 16:06:37 -070033all: $(LIB) $(SHAREDLIB) $(CLIENT) $(DAEMON)
34
35tests: $(DAEMON_TEST)
Darin Petkov65b01462010-04-14 13:32:20 -070036
37$(CLIENT): $(CLIENT_OBJS) $(SHAREDLIB)
38 $(CXX) $(LDFLAGS) $^ -o $@
39
40$(DAEMON): $(DAEMON_OBJS) $(SHAREDLIB)
41 $(CXX) -o $@ $^ $(DAEMON_LDFLAGS)
42
Darin Petkov2ccef012010-05-05 16:06:37 -070043$(DAEMON_TEST): $(TESTDAEMON_OBJS) $(SHAREDLIB)
Darin Petkov65b01462010-04-14 13:32:20 -070044 $(CXX) -o $@ $^ $(DAEMON_LDFLAGS) $(TESTDAEMON_LIBS)
45
46$(LIB): $(LIB_OBJS)
Darin Petkov2ccef012010-05-05 16:06:37 -070047 $(AR) rcs $@ $^
Darin Petkov65b01462010-04-14 13:32:20 -070048
49$(SHAREDLIB): $(LIB_OBJS)
50 $(CXX) $(LDFLAGS) -shared $^ -o $@
51
52%.o: %.cc
53 $(CXX) $(CXXFLAGS) -c $< -o $@
54
Darin Petkov65b01462010-04-14 13:32:20 -070055# dependencies in addition to those defined by the rules
56
57metrics_daemon.o: \
Darin Petkov65b01462010-04-14 13:32:20 -070058 metrics_daemon.h \
Darin Petkov703ec972010-04-27 11:02:18 -070059 network_states.h \
60 power_states.h
Darin Petkov2ccef012010-05-05 16:06:37 -070061metrics_daemon_test.o: \
Darin Petkov65b01462010-04-14 13:32:20 -070062 metrics_daemon.h \
Darin Petkov703ec972010-04-27 11:02:18 -070063 network_states.h \
64 power_states.h
Darin Petkov65b01462010-04-14 13:32:20 -070065
Darin Petkov65b01462010-04-14 13:32:20 -070066clean:
Darin Petkov703ec972010-04-27 11:02:18 -070067 rm -f $(CLIENT) $(DAEMON) $(LIB) $(SHAREDLIB) $(TESTDAEMON) *.o