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 \ |
Chris Masone | ccc8881 | 2011-06-08 18:00:10 -0700 | [diff] [blame] | 30 | flimflam-ipconfig.h \ |
Darin Petkov | 567a7d0 | 2011-05-26 17:15:34 -0700 | [diff] [blame] | 31 | flimflam-manager.h \ |
Chris Masone | ccc8881 | 2011-06-08 18:00:10 -0700 | [diff] [blame] | 32 | flimflam-profile.h \ |
Darin Petkov | 567a7d0 | 2011-05-26 17:15:34 -0700 | [diff] [blame] | 33 | flimflam-service.h |
Chris Masone | 14de6e5 | 2011-05-09 09:20:59 -0700 | [diff] [blame] | 34 | |
Darin Petkov | 567a7d0 | 2011-05-26 17:15:34 -0700 | [diff] [blame] | 35 | DBUS_PROXY_HEADERS = \ |
| 36 | dhcpcd.h \ |
| 37 | supplicant-bss.h \ |
| 38 | supplicant-interface.h \ |
| 39 | supplicant-network.h \ |
mukesh agrawal | ab87ea4 | 2011-05-18 11:44:49 -0700 | [diff] [blame] | 40 | supplicant-process.h |
Darin Petkov | 567a7d0 | 2011-05-26 17:15:34 -0700 | [diff] [blame] | 41 | |
| 42 | DBUS_HEADERS = $(DBUS_ADAPTOR_HEADERS) $(DBUS_PROXY_HEADERS) |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 43 | |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 44 | SHILL_OBJS = \ |
Chris Masone | d0ceb8c | 2011-06-02 10:05:39 -0700 | [diff] [blame] | 45 | dbus_adaptor.o \ |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 46 | dbus_control.o \ |
| 47 | device.o \ |
Chris Masone | d7732e4 | 2011-05-20 11:08:56 -0700 | [diff] [blame] | 48 | device_dbus_adaptor.o \ |
Paul Stewart | 0af98bf | 2011-05-10 17:38:08 -0700 | [diff] [blame] | 49 | device_info.o \ |
Darin Petkov | 50308cd | 2011-06-01 18:25:07 -0700 | [diff] [blame] | 50 | dhcp_config.o \ |
| 51 | dhcp_provider.o \ |
| 52 | dhcpcd_proxy.o \ |
mukesh agrawal | b54601c | 2011-06-07 17:39:22 -0700 | [diff] [blame] | 53 | endpoint.o \ |
Chris Masone | 8fe2c7e | 2011-06-09 15:51:19 -0700 | [diff] [blame] | 54 | error.o \ |
Paul Stewart | b50f0b9 | 2011-05-16 16:31:42 -0700 | [diff] [blame] | 55 | ethernet.o \ |
Paul Stewart | f1ce5d2 | 2011-05-19 13:10:20 -0700 | [diff] [blame] | 56 | ethernet_service.o \ |
Darin Petkov | f7897bc | 2011-06-08 17:13:36 -0700 | [diff] [blame] | 57 | glib.o \ |
Paul Stewart | f1ce5d2 | 2011-05-19 13:10:20 -0700 | [diff] [blame] | 58 | glib_io_handler.o \ |
Darin Petkov | e02b3ca | 2011-05-31 16:00:44 -0700 | [diff] [blame] | 59 | ipconfig.o \ |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 60 | manager.o \ |
Chris Masone | d7732e4 | 2011-05-20 11:08:56 -0700 | [diff] [blame] | 61 | manager_dbus_adaptor.o \ |
Chris Masone | 8fe2c7e | 2011-06-09 15:51:19 -0700 | [diff] [blame] | 62 | property_store_interface.o \ |
Paul Stewart | f1ce5d2 | 2011-05-19 13:10:20 -0700 | [diff] [blame] | 63 | rtnl_handler.o \ |
| 64 | rtnl_listener.o \ |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 65 | service.o \ |
Chris Masone | d7732e4 | 2011-05-20 11:08:56 -0700 | [diff] [blame] | 66 | service_dbus_adaptor.o \ |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 67 | shill_config.o \ |
| 68 | shill_daemon.o \ |
Paul Stewart | b50f0b9 | 2011-05-16 16:31:42 -0700 | [diff] [blame] | 69 | shill_event.o \ |
mukesh agrawal | b54601c | 2011-06-07 17:39:22 -0700 | [diff] [blame] | 70 | wifi.o \ |
| 71 | wifi_endpoint.o \ |
| 72 | wifi_service.o |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 73 | |
| 74 | SHILL_BIN = shill |
| 75 | SHILL_MAIN_OBJ = shill_main.o |
| 76 | |
| 77 | TEST_BIN = shill_unittest |
Darin Petkov | e02b3ca | 2011-05-31 16:00:44 -0700 | [diff] [blame] | 78 | TEST_OBJS = \ |
Chris Masone | d0ceb8c | 2011-06-02 10:05:39 -0700 | [diff] [blame] | 79 | dbus_adaptor_unittest.o \ |
Darin Petkov | e02b3ca | 2011-05-31 16:00:44 -0700 | [diff] [blame] | 80 | device_info_unittest.o \ |
Darin Petkov | e7cb7f8 | 2011-06-03 13:21:51 -0700 | [diff] [blame] | 81 | dhcp_config_unittest.o \ |
Darin Petkov | 98dd6a0 | 2011-06-10 15:12:57 -0700 | [diff] [blame] | 82 | dhcp_provider_unittest.o \ |
Darin Petkov | e02b3ca | 2011-05-31 16:00:44 -0700 | [diff] [blame] | 83 | ipconfig_unittest.o \ |
| 84 | manager_unittest.o \ |
| 85 | mock_control.o \ |
Chris Masone | a82b711 | 2011-05-25 15:16:29 -0700 | [diff] [blame] | 86 | mock_device.o \ |
| 87 | mock_service.o \ |
Darin Petkov | e02b3ca | 2011-05-31 16:00:44 -0700 | [diff] [blame] | 88 | shill_unittest.o \ |
| 89 | testrunner.o |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 90 | |
| 91 | all: $(SHILL_BIN) $(TEST_BIN) |
mukesh agrawal | ab87ea4 | 2011-05-18 11:44:49 -0700 | [diff] [blame] | 92 | integration_tests: wifi_integrationtest |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 93 | |
Darin Petkov | 567a7d0 | 2011-05-26 17:15:34 -0700 | [diff] [blame] | 94 | $(DBUS_PROXY_HEADERS): %.h: %.xml |
mukesh agrawal | 1c16aaf | 2011-05-10 13:43:08 -0700 | [diff] [blame] | 95 | $(DBUSXX_XML2CPP) $< --proxy=$@ |
Chris Masone | 413a319 | 2011-05-09 17:10:05 -0700 | [diff] [blame] | 96 | |
Darin Petkov | 567a7d0 | 2011-05-26 17:15:34 -0700 | [diff] [blame] | 97 | $(DBUS_ADAPTOR_HEADERS): %.h: %.xml |
Chris Masone | 14de6e5 | 2011-05-09 09:20:59 -0700 | [diff] [blame] | 98 | $(DBUSXX_XML2CPP) $< --adaptor=$@ |
| 99 | |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 100 | .cc.o: |
| 101 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDE_DIRS) -c $< -o $@ |
| 102 | |
Chris Masone | 14de6e5 | 2011-05-09 09:20:59 -0700 | [diff] [blame] | 103 | $(SHILL_OBJS): $(DBUS_HEADERS) |
| 104 | |
Darin Petkov | d1b715b | 2011-06-02 21:21:22 -0700 | [diff] [blame] | 105 | $(SHILL_BIN): $(SHILL_MAIN_OBJ) $(SHILL_OBJS) |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 106 | $(CXX) $(CXXFLAGS) $(INCLUDE_DIRS) $(LIB_DIRS) $(LDFLAGS) $^ $(LIBS) \ |
Darin Petkov | d1b715b | 2011-06-02 21:21:22 -0700 | [diff] [blame] | 107 | -o $@ |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 108 | |
| 109 | $(TEST_BIN): CXXFLAGS += -DUNIT_TEST |
Darin Petkov | d1b715b | 2011-06-02 21:21:22 -0700 | [diff] [blame] | 110 | $(TEST_BIN): $(TEST_OBJS) $(SHILL_OBJS) |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 111 | $(CXX) $(CXXFLAGS) $(TEST_INCLUDE_DIRS) $(TEST_LIB_DIRS) $(LDFLAGS) $^ \ |
| 112 | $(TEST_LIBS) -o $@ |
| 113 | |
mukesh agrawal | ab87ea4 | 2011-05-18 11:44:49 -0700 | [diff] [blame] | 114 | # NB(quiche): statically link gmock, gtest, as test device will not have them |
| 115 | wifi_integrationtest: CXXFLAGS += -DUNIT_TEST |
Darin Petkov | d1b715b | 2011-06-02 21:21:22 -0700 | [diff] [blame] | 116 | wifi_integrationtest: wifi_integrationtest.o $(SHILL_OBJS) |
mukesh agrawal | ab87ea4 | 2011-05-18 11:44:49 -0700 | [diff] [blame] | 117 | $(CXX) $(CXXFLAGS) $(TEST_INCLUDE_DIRS) $(TEST_LIB_DIRS) $(LDFLAGS) $^ \ |
| 118 | $(BASE_LIBS) -Wl,-Bstatic -lgmock -lgtest -Wl,-Bdynamic -o $@ |
| 119 | |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 120 | clean: |
Darin Petkov | d1b715b | 2011-06-02 21:21:22 -0700 | [diff] [blame] | 121 | rm -rf *.o $(DBUS_HEADERS) $(SHILL_BIN) $(TEST_BIN) |