blob: 072fb048ed592044f262043560694097bd381cfe [file] [log] [blame]
Bruno Rochabe388f32011-08-02 12:40:17 -07001# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
Darin Petkov65b01462010-04-14 13:32:20 -07002# 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
Darin Petkov11b8eb32010-05-18 11:00:59 -070018LIB_TEST = metrics_library_test
Darin Petkovf1e85e42010-06-10 15:59:53 -070019COUNTER_TEST = counter_test
Bruno Rochabe388f32011-08-02 12:40:17 -070020TIMER_TEST = timer_test
Darin Petkov65b01462010-04-14 13:32:20 -070021
Darin Petkovf1e85e42010-06-10 15:59:53 -070022TESTCOUNTER_OBJS = \
23 counter.o \
24 counter_test.o
Bruno Rochabe388f32011-08-02 12:40:17 -070025TESTTIMER_OBJS = \
26 timer.o \
27 timer_test.o
Darin Petkov65b01462010-04-14 13:32:20 -070028CLIENT_OBJS = \
29 metrics_client.o
Darin Petkovf1e85e42010-06-10 15:59:53 -070030DAEMON_OBJS = \
31 counter.o \
32 metrics_daemon.o \
33 metrics_daemon_main.o
34TESTDAEMON_OBJS = \
35 counter.o \
36 metrics_daemon.o \
37 metrics_daemon_test.o
Darin Petkov65b01462010-04-14 13:32:20 -070038LIB_OBJS = \
Sam Leffler10b301d2010-06-17 14:22:43 -070039 c_metrics_library.o \
Bruno Rochabe388f32011-08-02 12:40:17 -070040 metrics_library.o \
41 timer.o
Darin Petkov11b8eb32010-05-18 11:00:59 -070042TESTLIB_OBJS = \
Darin Petkov11b8eb32010-05-18 11:00:59 -070043 metrics_library_test.o
Darin Petkov65b01462010-04-14 13:32:20 -070044
Chris Masone3fd74742010-08-12 12:19:25 -070045TESTCOUNTER_LIBS = -lgmock -lgtest -lbase -lrt -lpthread -lglib-2.0
Bruno Rochabe388f32011-08-02 12:40:17 -070046TESTTIMER_LIBS = -lgmock -lgtest -lbase -lrt -lpthread -lglib-2.0
Luigi Semenzato0f132bb2011-02-28 11:17:43 -080047DAEMON_LDFLAGS = $(LDFLAGS) $(LDCONFIG) -lrt -lbase -lpthread -lgflags \
Ken Mixterb2f17092011-07-22 14:59:51 -070048 -lglib-2.0 -lrootdev -lpolicy
Darin Petkovfc91b422010-05-12 13:05:45 -070049TESTDAEMON_LIBS = -lgmock -lgtest
Ken Mixterb2f17092011-07-22 14:59:51 -070050TESTLIB_LIBS = -lgtest -lgmock -lbase -lrt -lpthread -lglib-2.0
51POLICY_LIBS = -lpolicy
Darin Petkov65b01462010-04-14 13:32:20 -070052
Darin Petkov2ccef012010-05-05 16:06:37 -070053all: $(LIB) $(SHAREDLIB) $(CLIENT) $(DAEMON)
54
Bruno Rochabe388f32011-08-02 12:40:17 -070055tests: $(COUNTER_TEST) $(DAEMON_TEST) $(LIB_TEST) $(TIMER_TEST)
Darin Petkov65b01462010-04-14 13:32:20 -070056
57$(CLIENT): $(CLIENT_OBJS) $(SHAREDLIB)
Ken Mixterb2f17092011-07-22 14:59:51 -070058 $(CXX) $(LDFLAGS) $(POLICY_LIBS) -lrt $^ -o $@
Darin Petkov65b01462010-04-14 13:32:20 -070059
Darin Petkovf1e85e42010-06-10 15:59:53 -070060$(COUNTER_TEST): $(TESTCOUNTER_OBJS)
61 $(CXX) -o $@ $^ $(TESTCOUNTER_LIBS)
62
Bruno Rochabe388f32011-08-02 12:40:17 -070063$(TIMER_TEST): $(TESTTIMER_OBJS)
64 $(CXX) -o $@ $^ $(TESTTIMER_LIBS)
65
Darin Petkov65b01462010-04-14 13:32:20 -070066$(DAEMON): $(DAEMON_OBJS) $(SHAREDLIB)
Ken Mixtere4fb0af2010-09-14 18:09:20 -070067 $(CXX) -o $@ $^ $(DAEMON_LDFLAGS)
Darin Petkov65b01462010-04-14 13:32:20 -070068
Darin Petkov11b8eb32010-05-18 11:00:59 -070069$(DAEMON_TEST): $(TESTDAEMON_OBJS)
Darin Petkov65b01462010-04-14 13:32:20 -070070 $(CXX) -o $@ $^ $(DAEMON_LDFLAGS) $(TESTDAEMON_LIBS)
71
72$(LIB): $(LIB_OBJS)
Darin Petkov2ccef012010-05-05 16:06:37 -070073 $(AR) rcs $@ $^
Darin Petkov65b01462010-04-14 13:32:20 -070074
75$(SHAREDLIB): $(LIB_OBJS)
Ken Mixterb2f17092011-07-22 14:59:51 -070076 $(CXX) $(LDFLAGS) $(POLICY_LIBS) -shared $^ -o $@
Darin Petkov65b01462010-04-14 13:32:20 -070077
Darin Petkov11b8eb32010-05-18 11:00:59 -070078$(LIB_TEST): $(TESTLIB_OBJS) $(SHAREDLIB)
Ken Mixterb2f17092011-07-22 14:59:51 -070079 $(CXX) -o $@ $^ $(LDFLAGS) $(POLICY_LIBS) $(TESTLIB_LIBS)
Darin Petkov11b8eb32010-05-18 11:00:59 -070080
Darin Petkov65b01462010-04-14 13:32:20 -070081%.o: %.cc
82 $(CXX) $(CXXFLAGS) -c $< -o $@
83
Darin Petkov65b01462010-04-14 13:32:20 -070084clean:
Darin Petkov11b8eb32010-05-18 11:00:59 -070085 rm -f $(CLIENT) $(DAEMON) $(LIB) $(SHAREDLIB) *.o
Bruno Rochabe388f32011-08-02 12:40:17 -070086 rm -f $(COUNTER_TEST) $(DAEMON_TEST) $(LIB_TEST) $(TIMER_TEST)