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++ | ||||
mukesh agrawal | f60e406 | 2011-05-27 13:13:41 -0700 | [diff] [blame] | 6 | CXXFLAGS ?= -fno-strict-aliasing |
7 | CXXFLAGS += -Wall -Wextra -Werror -Wuninitialized | ||||
8 | # disable some errors, which occur repeateadly the dbus-c++ headers. | ||||
9 | CXXFLAGS += -Wno-ignored-qualifiers -Wno-unused | ||||
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 10 | CPPFLAGS ?= -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS |
11 | AR ?= ar | ||||
12 | PKG_CONFIG ?= pkg-config | ||||
Chris Masone | 14de6e5 | 2011-05-09 09:20:59 -0700 | [diff] [blame] | 13 | DBUSXX_XML2CPP = dbusxx-xml2cpp |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 14 | |
Chris Masone | 0e1d104 | 2011-05-09 18:07:03 -0700 | [diff] [blame] | 15 | # libevent, gdk and gtk-2.0 are needed to leverage chrome's MessageLoop |
16 | # TODO(cmasone): explore if newer versions of libbase let us avoid this. | ||||
17 | BASE_LIBS = -lbase -lchromeos -levent -lpthread -lrt | ||||
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 18 | BASE_INCLUDE_DIRS = -I.. |
19 | BASE_LIB_DIRS = | ||||
20 | |||||
21 | LIBS = $(BASE_LIBS) | ||||
Chris Masone | d7732e4 | 2011-05-20 11:08:56 -0700 | [diff] [blame] | 22 | INCLUDE_DIRS = $(BASE_INCLUDE_DIRS) $(shell $(PKG_CONFIG) --cflags dbus-c++-1 \ |
23 | glib-2.0 gdk-2.0 gtk+-2.0) | ||||
24 | 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] | 25 | gdk-2.0 gtk+-2.0) |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 26 | |
27 | TEST_LIBS = $(BASE_LIBS) -lgmock -lgtest | ||||
28 | TEST_INCLUDE_DIRS = $(INCLUDE_DIRS) | ||||
29 | TEST_LIB_DIRS = $(LIB_DIRS) | ||||
30 | |||||
Darin Petkov | 567a7d0 | 2011-05-26 17:15:34 -0700 | [diff] [blame] | 31 | DBUS_ADAPTOR_HEADERS = \ |
32 | flimflam-device.h \ | ||||
Chris Masone | ccc8881 | 2011-06-08 18:00:10 -0700 | [diff] [blame] | 33 | flimflam-ipconfig.h \ |
Darin Petkov | 567a7d0 | 2011-05-26 17:15:34 -0700 | [diff] [blame] | 34 | flimflam-manager.h \ |
Chris Masone | ccc8881 | 2011-06-08 18:00:10 -0700 | [diff] [blame] | 35 | flimflam-profile.h \ |
Darin Petkov | 567a7d0 | 2011-05-26 17:15:34 -0700 | [diff] [blame] | 36 | flimflam-service.h |
Chris Masone | 14de6e5 | 2011-05-09 09:20:59 -0700 | [diff] [blame] | 37 | |
Darin Petkov | 567a7d0 | 2011-05-26 17:15:34 -0700 | [diff] [blame] | 38 | DBUS_PROXY_HEADERS = \ |
39 | dhcpcd.h \ | ||||
40 | supplicant-bss.h \ | ||||
41 | supplicant-interface.h \ | ||||
42 | supplicant-network.h \ | ||||
mukesh agrawal | ab87ea4 | 2011-05-18 11:44:49 -0700 | [diff] [blame] | 43 | supplicant-process.h |
Darin Petkov | 567a7d0 | 2011-05-26 17:15:34 -0700 | [diff] [blame] | 44 | |
45 | DBUS_HEADERS = $(DBUS_ADAPTOR_HEADERS) $(DBUS_PROXY_HEADERS) | ||||
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 46 | |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 47 | SHILL_OBJS = \ |
Chris Masone | 3bd3c8c | 2011-06-13 08:20:26 -0700 | [diff] [blame] | 48 | cellular.o \ |
49 | cellular_service.o \ | ||||
Darin Petkov | 823c47e | 2011-06-27 16:15:35 -0700 | [diff] [blame] | 50 | crypto_des_cbc.o \ |
Darin Petkov | 86964e0 | 2011-06-29 13:49:28 -0700 | [diff] [blame] | 51 | crypto_provider.o \ |
Darin Petkov | 877642b | 2011-06-27 13:37:22 -0700 | [diff] [blame] | 52 | crypto_rot47.o \ |
Chris Masone | d0ceb8c | 2011-06-02 10:05:39 -0700 | [diff] [blame] | 53 | dbus_adaptor.o \ |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 54 | dbus_control.o \ |
Chris Masone | 88cbd5f | 2011-07-03 14:30:04 -0700 | [diff] [blame] | 55 | default_profile.o \ |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 56 | device.o \ |
Chris Masone | d7732e4 | 2011-05-20 11:08:56 -0700 | [diff] [blame] | 57 | device_dbus_adaptor.o \ |
Paul Stewart | 0af98bf | 2011-05-10 17:38:08 -0700 | [diff] [blame] | 58 | device_info.o \ |
Darin Petkov | 50308cd | 2011-06-01 18:25:07 -0700 | [diff] [blame] | 59 | dhcp_config.o \ |
60 | dhcp_provider.o \ | ||||
61 | dhcpcd_proxy.o \ | ||||
mukesh agrawal | b54601c | 2011-06-07 17:39:22 -0700 | [diff] [blame] | 62 | endpoint.o \ |
Chris Masone | 7aa5f90 | 2011-07-11 11:13:35 -0700 | [diff] [blame] | 63 | ephemeral_profile.o \ |
Chris Masone | 8fe2c7e | 2011-06-09 15:51:19 -0700 | [diff] [blame] | 64 | error.o \ |
Paul Stewart | b50f0b9 | 2011-05-16 16:31:42 -0700 | [diff] [blame] | 65 | ethernet.o \ |
Paul Stewart | f1ce5d2 | 2011-05-19 13:10:20 -0700 | [diff] [blame] | 66 | ethernet_service.o \ |
Darin Petkov | f7897bc | 2011-06-08 17:13:36 -0700 | [diff] [blame] | 67 | glib.o \ |
Paul Stewart | f1ce5d2 | 2011-05-19 13:10:20 -0700 | [diff] [blame] | 68 | glib_io_handler.o \ |
Darin Petkov | e02b3ca | 2011-05-31 16:00:44 -0700 | [diff] [blame] | 69 | ipconfig.o \ |
Chris Masone | c6c6c13 | 2011-06-30 11:29:52 -0700 | [diff] [blame] | 70 | ipconfig_dbus_adaptor.o \ |
Darin Petkov | 083047b | 2011-06-23 20:42:48 -0700 | [diff] [blame] | 71 | key_file_store.o \ |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 72 | manager.o \ |
Chris Masone | d7732e4 | 2011-05-20 11:08:56 -0700 | [diff] [blame] | 73 | manager_dbus_adaptor.o \ |
Chris Masone | 52cd19b | 2011-06-29 17:23:04 -0700 | [diff] [blame] | 74 | profile.o \ |
75 | profile_dbus_adaptor.o \ | ||||
Chris Masone | b925cc8 | 2011-06-22 15:39:57 -0700 | [diff] [blame] | 76 | property_store.o \ |
Paul Stewart | f1ce5d2 | 2011-05-19 13:10:20 -0700 | [diff] [blame] | 77 | rtnl_handler.o \ |
78 | rtnl_listener.o \ | ||||
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 79 | service.o \ |
Chris Masone | d7732e4 | 2011-05-20 11:08:56 -0700 | [diff] [blame] | 80 | service_dbus_adaptor.o \ |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 81 | shill_config.o \ |
82 | shill_daemon.o \ | ||||
Paul Stewart | b50f0b9 | 2011-05-16 16:31:42 -0700 | [diff] [blame] | 83 | shill_event.o \ |
Darin Petkov | 633ac6f | 2011-07-08 13:56:13 -0700 | [diff] [blame^] | 84 | sockets.o \ |
mukesh agrawal | b54601c | 2011-06-07 17:39:22 -0700 | [diff] [blame] | 85 | wifi.o \ |
86 | wifi_endpoint.o \ | ||||
87 | wifi_service.o | ||||
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 88 | |
89 | SHILL_BIN = shill | ||||
90 | SHILL_MAIN_OBJ = shill_main.o | ||||
91 | |||||
92 | TEST_BIN = shill_unittest | ||||
Darin Petkov | e02b3ca | 2011-05-31 16:00:44 -0700 | [diff] [blame] | 93 | TEST_OBJS = \ |
Chris Masone | b925cc8 | 2011-06-22 15:39:57 -0700 | [diff] [blame] | 94 | cellular_unittest.o \ |
Darin Petkov | 823c47e | 2011-06-27 16:15:35 -0700 | [diff] [blame] | 95 | crypto_des_cbc_unittest.o \ |
Darin Petkov | 86964e0 | 2011-06-29 13:49:28 -0700 | [diff] [blame] | 96 | crypto_provider_unittest.o \ |
Darin Petkov | 877642b | 2011-06-27 13:37:22 -0700 | [diff] [blame] | 97 | crypto_rot47_unittest.o \ |
Chris Masone | d0ceb8c | 2011-06-02 10:05:39 -0700 | [diff] [blame] | 98 | dbus_adaptor_unittest.o \ |
Chris Masone | 88cbd5f | 2011-07-03 14:30:04 -0700 | [diff] [blame] | 99 | default_profile_unittest.o \ |
Darin Petkov | e02b3ca | 2011-05-31 16:00:44 -0700 | [diff] [blame] | 100 | device_info_unittest.o \ |
Darin Petkov | afa6fc4 | 2011-06-21 16:21:08 -0700 | [diff] [blame] | 101 | device_unittest.o \ |
Darin Petkov | e7cb7f8 | 2011-06-03 13:21:51 -0700 | [diff] [blame] | 102 | dhcp_config_unittest.o \ |
Darin Petkov | 98dd6a0 | 2011-06-10 15:12:57 -0700 | [diff] [blame] | 103 | dhcp_provider_unittest.o \ |
Darin Petkov | e02b3ca | 2011-05-31 16:00:44 -0700 | [diff] [blame] | 104 | ipconfig_unittest.o \ |
Darin Petkov | 083047b | 2011-06-23 20:42:48 -0700 | [diff] [blame] | 105 | key_file_store_unittest.o \ |
Darin Petkov | e02b3ca | 2011-05-31 16:00:44 -0700 | [diff] [blame] | 106 | manager_unittest.o \ |
Chris Masone | 95207da | 2011-06-29 16:50:49 -0700 | [diff] [blame] | 107 | mock_adaptors.o \ |
Darin Petkov | e02b3ca | 2011-05-31 16:00:44 -0700 | [diff] [blame] | 108 | mock_control.o \ |
Chris Masone | a82b711 | 2011-05-25 15:16:29 -0700 | [diff] [blame] | 109 | mock_device.o \ |
Chris Masone | 7aa5f90 | 2011-07-11 11:13:35 -0700 | [diff] [blame] | 110 | mock_profile.o \ |
Chris Masone | a82b711 | 2011-05-25 15:16:29 -0700 | [diff] [blame] | 111 | mock_service.o \ |
Darin Petkov | a476682 | 2011-07-07 10:42:22 -0700 | [diff] [blame] | 112 | profile_unittest.o \ |
Chris Masone | 27bf103 | 2011-06-28 17:02:01 -0700 | [diff] [blame] | 113 | property_accessor_unittest.o \ |
Chris Masone | b925cc8 | 2011-06-22 15:39:57 -0700 | [diff] [blame] | 114 | property_store_unittest.o \ |
Chris Masone | 3bd3c8c | 2011-06-13 08:20:26 -0700 | [diff] [blame] | 115 | service_unittest.o \ |
Darin Petkov | e02b3ca | 2011-05-31 16:00:44 -0700 | [diff] [blame] | 116 | shill_unittest.o \ |
Chris Masone | 853b81b | 2011-06-24 14:11:41 -0700 | [diff] [blame] | 117 | testrunner.o \ |
118 | wifi_unittest.o | ||||
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 119 | |
120 | all: $(SHILL_BIN) $(TEST_BIN) | ||||
121 | |||||
Darin Petkov | 567a7d0 | 2011-05-26 17:15:34 -0700 | [diff] [blame] | 122 | $(DBUS_PROXY_HEADERS): %.h: %.xml |
mukesh agrawal | 1c16aaf | 2011-05-10 13:43:08 -0700 | [diff] [blame] | 123 | $(DBUSXX_XML2CPP) $< --proxy=$@ |
Chris Masone | 413a319 | 2011-05-09 17:10:05 -0700 | [diff] [blame] | 124 | |
Darin Petkov | 567a7d0 | 2011-05-26 17:15:34 -0700 | [diff] [blame] | 125 | $(DBUS_ADAPTOR_HEADERS): %.h: %.xml |
Chris Masone | 14de6e5 | 2011-05-09 09:20:59 -0700 | [diff] [blame] | 126 | $(DBUSXX_XML2CPP) $< --adaptor=$@ |
127 | |||||
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 128 | .cc.o: |
129 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDE_DIRS) -c $< -o $@ | ||||
130 | |||||
Chris Masone | 14de6e5 | 2011-05-09 09:20:59 -0700 | [diff] [blame] | 131 | $(SHILL_OBJS): $(DBUS_HEADERS) |
132 | |||||
Darin Petkov | d1b715b | 2011-06-02 21:21:22 -0700 | [diff] [blame] | 133 | $(SHILL_BIN): $(SHILL_MAIN_OBJ) $(SHILL_OBJS) |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 134 | $(CXX) $(CXXFLAGS) $(INCLUDE_DIRS) $(LIB_DIRS) $(LDFLAGS) $^ $(LIBS) \ |
Darin Petkov | d1b715b | 2011-06-02 21:21:22 -0700 | [diff] [blame] | 135 | -o $@ |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 136 | |
137 | $(TEST_BIN): CXXFLAGS += -DUNIT_TEST | ||||
Darin Petkov | d1b715b | 2011-06-02 21:21:22 -0700 | [diff] [blame] | 138 | $(TEST_BIN): $(TEST_OBJS) $(SHILL_OBJS) |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 139 | $(CXX) $(CXXFLAGS) $(TEST_INCLUDE_DIRS) $(TEST_LIB_DIRS) $(LDFLAGS) $^ \ |
140 | $(TEST_LIBS) -o $@ | ||||
141 | |||||
142 | clean: | ||||
Darin Petkov | d1b715b | 2011-06-02 21:21:22 -0700 | [diff] [blame] | 143 | rm -rf *.o $(DBUS_HEADERS) $(SHILL_BIN) $(TEST_BIN) |