clean up build & convert to SLOT-ed libbase
This includes a couple of fixes:
- use the right compiler flag names
- execute pkg-config twice total, and not once per compile
- build against SLOT-ed libbase
- drop link info that was just for libbase as that handles
things all by itself now without bothering external users
BUG=chromium-os:16623
TEST=`emerge-x86-alex metrics` still works
TEST=`cros_run_unit_tests --board x86-alex -p metrics` passes
Change-Id: I40b9216c9e2a1edef476f9369d524e6a4bf26012
Reviewed-on: https://gerrit.chromium.org/gerrit/17704
Reviewed-by: Luigi Semenzato <semenzato@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
diff --git a/metrics/Makefile b/metrics/Makefile
index 56226ef..0cf8b7e 100644
--- a/metrics/Makefile
+++ b/metrics/Makefile
@@ -1,16 +1,19 @@
-# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
+# 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.
#
# Makefile for metrics utilities -- library, client and daemon
#
+BASE_VER = 85268
PKG_CONFIG ?= pkg-config
-PC_DEPS = dbus-1 glib-2.0 dbus-glib-1 libchrome libchromeos
-CCONFIG := $(shell $(PKG_CONFIG) --cflags $(PC_DEPS))
-LDCONFIG := $(shell $(PKG_CONFIG) --libs $(PC_DEPS) gthread-2.0)
+PC_DEPS = dbus-1 glib-2.0 dbus-glib-1 \
+ libchrome-$(BASE_VER) libchromeos-$(BASE_VER)
+PC_CFLAGS := $(shell $(PKG_CONFIG) --cflags $(PC_DEPS))
+LDLIBS := $(shell $(PKG_CONFIG) --libs $(PC_DEPS))
-CXXFLAGS += -Wall -Werror -fPIC -fno-exceptions $(CCONFIG)
+CXXFLAGS += -Wall -Werror -fPIC -fno-exceptions
+CPPFLAGS += $(PC_CFLAGS)
CLIENT = metrics_client
DAEMON = metrics_daemon
@@ -44,44 +47,42 @@
TESTLIB_OBJS = \
metrics_library_test.o
-TESTCOUNTER_LIBS = -lgmock -lgtest -lbase -lrt -lpthread -lglib-2.0
-TESTTIMER_LIBS = -lgmock -lgtest -lbase -lrt -lpthread -lglib-2.0
-DAEMON_LDFLAGS = $(LDFLAGS) $(LDCONFIG) -lpthread -lgflags \
- -lglib-2.0 -lrootdev -lpolicy
-TESTDAEMON_LIBS = -lgmock -lgtest
-TESTLIB_LIBS = -lgtest -lgmock -lbase -lrt -lpthread -lglib-2.0
-POLICY_LIBS := -lpolicy $(shell $(PKG_CONFIG) --libs libchrome)
+POLICY_LIBS = -lpolicy-$(BASE_VER)
+TEST_LIBS = -lgmock -lgtest
+DAEMON_LIBS = -lgflags -lrootdev
+
+LINK = $(CXX) $(CXXFLAGS) $(LDFLAGS) $^ -o $@ $(LDLIBS)
all: $(LIB) $(SHAREDLIB) $(CLIENT) $(DAEMON)
tests: $(COUNTER_TEST) $(DAEMON_TEST) $(LIB_TEST) $(TIMER_TEST)
$(CLIENT): $(CLIENT_OBJS) $(SHAREDLIB)
- $(CXX) $(LDFLAGS) $^ -o $@ $(POLICY_LIBS) -lrt
+ $(LINK)
$(COUNTER_TEST): $(TESTCOUNTER_OBJS)
- $(CXX) -o $@ $^ $(TESTCOUNTER_LIBS)
+ $(LINK) $(TEST_LIBS)
$(TIMER_TEST): $(TESTTIMER_OBJS)
- $(CXX) -o $@ $^ $(TESTTIMER_LIBS)
+ $(LINK) $(TEST_LIBS)
$(DAEMON): $(DAEMON_OBJS) $(SHAREDLIB)
- $(CXX) -o $@ $^ $(DAEMON_LDFLAGS)
+ $(LINK) $(DAEMON_LIBS)
$(DAEMON_TEST): $(TESTDAEMON_OBJS)
- $(CXX) -o $@ $^ $(DAEMON_LDFLAGS) $(TESTDAEMON_LIBS)
+ $(LINK) $(DAEMON_LIBS) $(TEST_LIBS)
$(LIB): $(LIB_OBJS)
$(AR) rcs $@ $^
$(SHAREDLIB): $(LIB_OBJS)
- $(CXX) $(LDFLAGS) -shared $^ -o $@ $(POLICY_LIBS)
+ $(LINK) -shared $(POLICY_LIBS)
$(LIB_TEST): $(TESTLIB_OBJS) $(SHAREDLIB)
- $(CXX) -o $@ $^ $(LDFLAGS) $(POLICY_LIBS) $(TESTLIB_LIBS)
+ $(LINK) $(POLICY_LIBS) $(TEST_LIBS)
%.o: %.cc
- $(CXX) $(CXXFLAGS) -c $< -o $@
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@
clean:
rm -f $(CLIENT) $(DAEMON) $(LIB) $(SHAREDLIB) *.o