blob: 0b047361be6c037a0ca088584f6848286de2b4e1 [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
11CFLAGS = -Wall -Werror -I/usr/include -fpic -O2 $(CCONFIG)
12CXXFLAGS = $(CFLAGS) -fno-exceptions
13
14CLIENT = metrics_client
15DAEMON = metrics_daemon
16TESTDAEMON = test_daemon
17LIB = libmetrics.a
18SHAREDLIB = libmetrics.so
19
20CLIENT_OBJS = \
21 metrics_client.o
22LIB_OBJS = \
23 metrics_library.o
24DAEMON_OBJS = \
25 marshal_void__string_boxed.o \
26 metrics_daemon.o \
27 metrics_daemon_main.o
28TESTDAEMON_OBJS = \
29 marshal_void__string_boxed.o \
30 metrics_daemon.o \
31 metrics_daemon_unittest.o
32
33DAEMON_LDFLAGS = $(LDCONFIG) -lrt -lbase -lpthread -lgflags
34TESTDAEMON_LIBS = -lgtest
35
36all: $(LIB) $(SHAREDLIB) $(CLIENT) $(DAEMON) $(TESTDAEMON)
37
38$(CLIENT): $(CLIENT_OBJS) $(SHAREDLIB)
39 $(CXX) $(LDFLAGS) $^ -o $@
40
41$(DAEMON): $(DAEMON_OBJS) $(SHAREDLIB)
42 $(CXX) -o $@ $^ $(DAEMON_LDFLAGS)
43
44$(TESTDAEMON): $(TESTDAEMON_OBJS) $(SHAREDLIB)
45 $(CXX) -o $@ $^ $(DAEMON_LDFLAGS) $(TESTDAEMON_LIBS)
46
47$(LIB): $(LIB_OBJS)
48 ar rcs $@ $^
49
50$(SHAREDLIB): $(LIB_OBJS)
51 $(CXX) $(LDFLAGS) -shared $^ -o $@
52
53%.o: %.cc
54 $(CXX) $(CXXFLAGS) -c $< -o $@
55
56%.o: %.c
57 $(CC) $(CFLAGS) -c $< -o $@
58
59%.c: %.list
60 glib-genmarshal --body --prefix=marshal $< > $@
61
62%.h: %.list
63 glib-genmarshal --header --prefix=marshal $< > $@
64
65# dependencies in addition to those defined by the rules
66
67metrics_daemon.o: \
68 marshal_void__string_boxed.h \
69 metrics_daemon.h \
70 network_states.h
71metrics_daemon_unittest.o: \
72 marshal_void__string_boxed.h \
73 metrics_daemon.h \
74 network_states.h
75marshal_void__string_boxed.o: \
76 marshal_void__string_boxed.h
77
78.PRECIOUS: marshal_void__string_boxed.c # keep around for debugging
79
80install:
81 install $(CLIENT) $(DESTDIR)/usr/bin
82 install $(DAEMON) $(DESTDIR)/usr/bin
83 install $(LIB) $(DESTDIR)/usr/lib
84 install $(SHAREDLIB) $(DESTDIR)/usr/lib
85 install metrics_library.h $(DESTDIR)/usr/include
86 install syslog_parser.sh $(DESTDIR)/usr/bin
87 install omaha_tracker.sh $(DESTDIR)/usr/sbin
88
89clean:
90 rm -f $(CLIENT) $(DAEMON) $(LIB) $(SHAREDLIB) $(TESTDAEMON)
91 rm -f *.o marshal_void__string_boxed.[ch]