Mike Frysinger | f06d7b1 | 2012-03-09 10:59:56 -0500 | [diff] [blame] | 1 | # Copyright (c) 2012 The Chromium OS Authors. All rights reserved. |
Darin Petkov | 65b0146 | 2010-04-14 13:32:20 -0700 | [diff] [blame] | 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 | |
Chris Masone | e10b548 | 2013-02-14 12:15:35 -0800 | [diff] [blame] | 8 | BASE_VER ?= 180609 |
Mike Frysinger | 8b8dd20 | 2012-02-21 13:15:09 -0500 | [diff] [blame] | 9 | PKG_CONFIG ?= pkg-config |
Ben Chan | 9cd8b8c | 2012-09-06 22:28:47 -0700 | [diff] [blame] | 10 | PC_DEPS = dbus-1 glib-2.0 gthread-2.0 dbus-glib-1 \ |
Mike Frysinger | f06d7b1 | 2012-03-09 10:59:56 -0500 | [diff] [blame] | 11 | libchrome-$(BASE_VER) libchromeos-$(BASE_VER) |
| 12 | PC_CFLAGS := $(shell $(PKG_CONFIG) --cflags $(PC_DEPS)) |
| 13 | LDLIBS := $(shell $(PKG_CONFIG) --libs $(PC_DEPS)) |
Darin Petkov | 65b0146 | 2010-04-14 13:32:20 -0700 | [diff] [blame] | 14 | |
Mike Frysinger | f06d7b1 | 2012-03-09 10:59:56 -0500 | [diff] [blame] | 15 | CXXFLAGS += -Wall -Werror -fPIC -fno-exceptions |
| 16 | CPPFLAGS += $(PC_CFLAGS) |
Darin Petkov | 65b0146 | 2010-04-14 13:32:20 -0700 | [diff] [blame] | 17 | |
| 18 | CLIENT = metrics_client |
| 19 | DAEMON = metrics_daemon |
Darin Petkov | 2ccef01 | 2010-05-05 16:06:37 -0700 | [diff] [blame] | 20 | DAEMON_TEST = metrics_daemon_test |
Darin Petkov | 65b0146 | 2010-04-14 13:32:20 -0700 | [diff] [blame] | 21 | LIB = libmetrics.a |
| 22 | SHAREDLIB = libmetrics.so |
Darin Petkov | 11b8eb3 | 2010-05-18 11:00:59 -0700 | [diff] [blame] | 23 | LIB_TEST = metrics_library_test |
Darin Petkov | f1e85e4 | 2010-06-10 15:59:53 -0700 | [diff] [blame] | 24 | COUNTER_TEST = counter_test |
Bruno Rocha | be388f3 | 2011-08-02 12:40:17 -0700 | [diff] [blame] | 25 | TIMER_TEST = timer_test |
Darin Petkov | 65b0146 | 2010-04-14 13:32:20 -0700 | [diff] [blame] | 26 | |
Darin Petkov | f1e85e4 | 2010-06-10 15:59:53 -0700 | [diff] [blame] | 27 | TESTCOUNTER_OBJS = \ |
| 28 | counter.o \ |
| 29 | counter_test.o |
Bruno Rocha | be388f3 | 2011-08-02 12:40:17 -0700 | [diff] [blame] | 30 | TESTTIMER_OBJS = \ |
| 31 | timer.o \ |
| 32 | timer_test.o |
Darin Petkov | 65b0146 | 2010-04-14 13:32:20 -0700 | [diff] [blame] | 33 | CLIENT_OBJS = \ |
| 34 | metrics_client.o |
Darin Petkov | f1e85e4 | 2010-06-10 15:59:53 -0700 | [diff] [blame] | 35 | DAEMON_OBJS = \ |
| 36 | counter.o \ |
| 37 | metrics_daemon.o \ |
| 38 | metrics_daemon_main.o |
| 39 | TESTDAEMON_OBJS = \ |
| 40 | counter.o \ |
| 41 | metrics_daemon.o \ |
| 42 | metrics_daemon_test.o |
Darin Petkov | 65b0146 | 2010-04-14 13:32:20 -0700 | [diff] [blame] | 43 | LIB_OBJS = \ |
Sam Leffler | 10b301d | 2010-06-17 14:22:43 -0700 | [diff] [blame] | 44 | c_metrics_library.o \ |
Bruno Rocha | be388f3 | 2011-08-02 12:40:17 -0700 | [diff] [blame] | 45 | metrics_library.o \ |
| 46 | timer.o |
Darin Petkov | 11b8eb3 | 2010-05-18 11:00:59 -0700 | [diff] [blame] | 47 | TESTLIB_OBJS = \ |
Darin Petkov | 11b8eb3 | 2010-05-18 11:00:59 -0700 | [diff] [blame] | 48 | metrics_library_test.o |
Darin Petkov | 65b0146 | 2010-04-14 13:32:20 -0700 | [diff] [blame] | 49 | |
Mike Frysinger | f06d7b1 | 2012-03-09 10:59:56 -0500 | [diff] [blame] | 50 | POLICY_LIBS = -lpolicy-$(BASE_VER) |
| 51 | TEST_LIBS = -lgmock -lgtest |
| 52 | DAEMON_LIBS = -lgflags -lrootdev |
| 53 | |
| 54 | LINK = $(CXX) $(CXXFLAGS) $(LDFLAGS) $^ -o $@ $(LDLIBS) |
Darin Petkov | 65b0146 | 2010-04-14 13:32:20 -0700 | [diff] [blame] | 55 | |
Darin Petkov | 2ccef01 | 2010-05-05 16:06:37 -0700 | [diff] [blame] | 56 | all: $(LIB) $(SHAREDLIB) $(CLIENT) $(DAEMON) |
| 57 | |
Bruno Rocha | be388f3 | 2011-08-02 12:40:17 -0700 | [diff] [blame] | 58 | tests: $(COUNTER_TEST) $(DAEMON_TEST) $(LIB_TEST) $(TIMER_TEST) |
Darin Petkov | 65b0146 | 2010-04-14 13:32:20 -0700 | [diff] [blame] | 59 | |
| 60 | $(CLIENT): $(CLIENT_OBJS) $(SHAREDLIB) |
Mike Frysinger | f06d7b1 | 2012-03-09 10:59:56 -0500 | [diff] [blame] | 61 | $(LINK) |
Darin Petkov | 65b0146 | 2010-04-14 13:32:20 -0700 | [diff] [blame] | 62 | |
Darin Petkov | f1e85e4 | 2010-06-10 15:59:53 -0700 | [diff] [blame] | 63 | $(COUNTER_TEST): $(TESTCOUNTER_OBJS) |
Mike Frysinger | f06d7b1 | 2012-03-09 10:59:56 -0500 | [diff] [blame] | 64 | $(LINK) $(TEST_LIBS) |
Darin Petkov | f1e85e4 | 2010-06-10 15:59:53 -0700 | [diff] [blame] | 65 | |
Bruno Rocha | be388f3 | 2011-08-02 12:40:17 -0700 | [diff] [blame] | 66 | $(TIMER_TEST): $(TESTTIMER_OBJS) |
Mike Frysinger | f06d7b1 | 2012-03-09 10:59:56 -0500 | [diff] [blame] | 67 | $(LINK) $(TEST_LIBS) |
Bruno Rocha | be388f3 | 2011-08-02 12:40:17 -0700 | [diff] [blame] | 68 | |
Darin Petkov | 65b0146 | 2010-04-14 13:32:20 -0700 | [diff] [blame] | 69 | $(DAEMON): $(DAEMON_OBJS) $(SHAREDLIB) |
Mike Frysinger | f06d7b1 | 2012-03-09 10:59:56 -0500 | [diff] [blame] | 70 | $(LINK) $(DAEMON_LIBS) |
Darin Petkov | 65b0146 | 2010-04-14 13:32:20 -0700 | [diff] [blame] | 71 | |
Darin Petkov | 11b8eb3 | 2010-05-18 11:00:59 -0700 | [diff] [blame] | 72 | $(DAEMON_TEST): $(TESTDAEMON_OBJS) |
Mike Frysinger | f06d7b1 | 2012-03-09 10:59:56 -0500 | [diff] [blame] | 73 | $(LINK) $(DAEMON_LIBS) $(TEST_LIBS) |
Darin Petkov | 65b0146 | 2010-04-14 13:32:20 -0700 | [diff] [blame] | 74 | |
| 75 | $(LIB): $(LIB_OBJS) |
Darin Petkov | 2ccef01 | 2010-05-05 16:06:37 -0700 | [diff] [blame] | 76 | $(AR) rcs $@ $^ |
Darin Petkov | 65b0146 | 2010-04-14 13:32:20 -0700 | [diff] [blame] | 77 | |
| 78 | $(SHAREDLIB): $(LIB_OBJS) |
Mike Frysinger | f06d7b1 | 2012-03-09 10:59:56 -0500 | [diff] [blame] | 79 | $(LINK) -shared $(POLICY_LIBS) |
Darin Petkov | 65b0146 | 2010-04-14 13:32:20 -0700 | [diff] [blame] | 80 | |
Darin Petkov | 11b8eb3 | 2010-05-18 11:00:59 -0700 | [diff] [blame] | 81 | $(LIB_TEST): $(TESTLIB_OBJS) $(SHAREDLIB) |
Mike Frysinger | f06d7b1 | 2012-03-09 10:59:56 -0500 | [diff] [blame] | 82 | $(LINK) $(POLICY_LIBS) $(TEST_LIBS) |
Darin Petkov | 11b8eb3 | 2010-05-18 11:00:59 -0700 | [diff] [blame] | 83 | |
Darin Petkov | 65b0146 | 2010-04-14 13:32:20 -0700 | [diff] [blame] | 84 | %.o: %.cc |
Mike Frysinger | f06d7b1 | 2012-03-09 10:59:56 -0500 | [diff] [blame] | 85 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ |
Darin Petkov | 65b0146 | 2010-04-14 13:32:20 -0700 | [diff] [blame] | 86 | |
Darin Petkov | 65b0146 | 2010-04-14 13:32:20 -0700 | [diff] [blame] | 87 | clean: |
Darin Petkov | 11b8eb3 | 2010-05-18 11:00:59 -0700 | [diff] [blame] | 88 | rm -f $(CLIENT) $(DAEMON) $(LIB) $(SHAREDLIB) *.o |
Bruno Rocha | be388f3 | 2011-08-02 12:40:17 -0700 | [diff] [blame] | 89 | rm -f $(COUNTER_TEST) $(DAEMON_TEST) $(LIB_TEST) $(TIMER_TEST) |