Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 1 | # Copyright (c) 2011 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 | CXX ?= g++ |
| 6 | CXXFLAGS ?= -fno-strict-aliasing -Wall -Wextra -Werror -Wuninitialized |
| 7 | CPPFLAGS ?= -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS |
| 8 | AR ?= ar |
| 9 | PKG_CONFIG ?= pkg-config |
Chris Masone | 14de6e5 | 2011-05-09 09:20:59 -0700 | [diff] [blame] | 10 | DBUSXX_XML2CPP = dbusxx-xml2cpp |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 11 | |
Chris Masone | 0e1d104 | 2011-05-09 18:07:03 -0700 | [diff] [blame] | 12 | # libevent, gdk and gtk-2.0 are needed to leverage chrome's MessageLoop |
| 13 | # TODO(cmasone): explore if newer versions of libbase let us avoid this. |
| 14 | BASE_LIBS = -lbase -lchromeos -levent -lpthread -lrt |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 15 | BASE_INCLUDE_DIRS = -I.. |
| 16 | BASE_LIB_DIRS = |
| 17 | |
| 18 | LIBS = $(BASE_LIBS) |
Chris Masone | d7732e4 | 2011-05-20 11:08:56 -0700 | [diff] [blame] | 19 | INCLUDE_DIRS = $(BASE_INCLUDE_DIRS) $(shell $(PKG_CONFIG) --cflags dbus-c++-1 \ |
| 20 | glib-2.0 gdk-2.0 gtk+-2.0) |
| 21 | LIB_DIRS = $(BASE_LIB_DIRS) $(shell $(PKG_CONFIG) --libs dbus-c++-1 glib-2.0 \ |
mukesh agrawal | f8a51ce | 2011-05-27 11:18:13 -0700 | [diff] [blame] | 22 | gdk-2.0 gtk+-2.0) |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 23 | |
| 24 | TEST_LIBS = $(BASE_LIBS) -lgmock -lgtest |
| 25 | TEST_INCLUDE_DIRS = $(INCLUDE_DIRS) |
| 26 | TEST_LIB_DIRS = $(LIB_DIRS) |
| 27 | |
Darin Petkov | 567a7d0 | 2011-05-26 17:15:34 -0700 | [diff] [blame] | 28 | DBUS_ADAPTOR_HEADERS = \ |
| 29 | flimflam-device.h \ |
| 30 | flimflam-manager.h \ |
| 31 | flimflam-service.h |
Chris Masone | 14de6e5 | 2011-05-09 09:20:59 -0700 | [diff] [blame] | 32 | |
Darin Petkov | 567a7d0 | 2011-05-26 17:15:34 -0700 | [diff] [blame] | 33 | DBUS_PROXY_HEADERS = \ |
| 34 | dhcpcd.h \ |
| 35 | supplicant-bss.h \ |
| 36 | supplicant-interface.h \ |
| 37 | supplicant-network.h \ |
| 38 | supplicant-supplicant.h |
| 39 | |
| 40 | DBUS_HEADERS = $(DBUS_ADAPTOR_HEADERS) $(DBUS_PROXY_HEADERS) |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 41 | |
| 42 | SHILL_LIB = shill_lib.a |
| 43 | SHILL_OBJS = \ |
| 44 | dbus_control.o \ |
| 45 | device.o \ |
Chris Masone | d7732e4 | 2011-05-20 11:08:56 -0700 | [diff] [blame] | 46 | device_dbus_adaptor.o \ |
Paul Stewart | 0af98bf | 2011-05-10 17:38:08 -0700 | [diff] [blame] | 47 | device_info.o \ |
Paul Stewart | b50f0b9 | 2011-05-16 16:31:42 -0700 | [diff] [blame] | 48 | ethernet.o \ |
Darin Petkov | e02b3ca | 2011-05-31 16:00:44 -0700 | [diff] [blame^] | 49 | ipconfig.o \ |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 50 | manager.o \ |
Chris Masone | d7732e4 | 2011-05-20 11:08:56 -0700 | [diff] [blame] | 51 | manager_dbus_adaptor.o \ |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 52 | service.o \ |
Chris Masone | d7732e4 | 2011-05-20 11:08:56 -0700 | [diff] [blame] | 53 | service_dbus_adaptor.o \ |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 54 | shill_config.o \ |
| 55 | shill_daemon.o \ |
Paul Stewart | b50f0b9 | 2011-05-16 16:31:42 -0700 | [diff] [blame] | 56 | shill_event.o \ |
| 57 | wifi.o |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 58 | |
| 59 | SHILL_BIN = shill |
| 60 | SHILL_MAIN_OBJ = shill_main.o |
| 61 | |
| 62 | TEST_BIN = shill_unittest |
Darin Petkov | e02b3ca | 2011-05-31 16:00:44 -0700 | [diff] [blame^] | 63 | TEST_OBJS = \ |
| 64 | device_info_unittest.o \ |
| 65 | ipconfig_unittest.o \ |
| 66 | manager_unittest.o \ |
| 67 | mock_control.o \ |
| 68 | shill_unittest.o \ |
| 69 | testrunner.o |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 70 | |
| 71 | all: $(SHILL_BIN) $(TEST_BIN) |
| 72 | |
Darin Petkov | 567a7d0 | 2011-05-26 17:15:34 -0700 | [diff] [blame] | 73 | $(DBUS_PROXY_HEADERS): %.h: %.xml |
mukesh agrawal | 1c16aaf | 2011-05-10 13:43:08 -0700 | [diff] [blame] | 74 | $(DBUSXX_XML2CPP) $< --proxy=$@ |
Chris Masone | 413a319 | 2011-05-09 17:10:05 -0700 | [diff] [blame] | 75 | |
Darin Petkov | 567a7d0 | 2011-05-26 17:15:34 -0700 | [diff] [blame] | 76 | $(DBUS_ADAPTOR_HEADERS): %.h: %.xml |
Chris Masone | 14de6e5 | 2011-05-09 09:20:59 -0700 | [diff] [blame] | 77 | $(DBUSXX_XML2CPP) $< --adaptor=$@ |
| 78 | |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 79 | .cc.o: |
| 80 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDE_DIRS) -c $< -o $@ |
| 81 | |
Chris Masone | 14de6e5 | 2011-05-09 09:20:59 -0700 | [diff] [blame] | 82 | $(SHILL_OBJS): $(DBUS_HEADERS) |
| 83 | |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 84 | $(SHILL_LIB): $(SHILL_OBJS) |
| 85 | $(AR) rcs $@ $^ |
| 86 | |
| 87 | $(SHILL_BIN): $(SHILL_MAIN_OBJ) $(SHILL_LIB) |
| 88 | $(CXX) $(CXXFLAGS) $(INCLUDE_DIRS) $(LIB_DIRS) $(LDFLAGS) $^ $(LIBS) \ |
| 89 | -o $@ |
| 90 | |
| 91 | $(TEST_BIN): CXXFLAGS += -DUNIT_TEST |
| 92 | $(TEST_BIN): $(TEST_OBJS) $(SHILL_LIB) |
| 93 | $(CXX) $(CXXFLAGS) $(TEST_INCLUDE_DIRS) $(TEST_LIB_DIRS) $(LDFLAGS) $^ \ |
| 94 | $(TEST_LIBS) -o $@ |
| 95 | |
| 96 | clean: |
Chris Masone | 14de6e5 | 2011-05-09 09:20:59 -0700 | [diff] [blame] | 97 | rm -rf *.o $(DBUS_HEADERS) $(SHILL_BIN) $(SHILL_LIB) $(TEST_BIN) |