blob: 43277765f8942a209d7fbd08776fa03836f5302d [file] [log] [blame]
Chris Masone96832c32011-05-03 12:23:18 -07001# 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
5CXX ?= g++
mukesh agrawalf60e4062011-05-27 13:13:41 -07006CXXFLAGS ?= -fno-strict-aliasing
7CXXFLAGS += -Wall -Wextra -Werror -Wuninitialized
8# disable some errors, which occur repeateadly the dbus-c++ headers.
9CXXFLAGS += -Wno-ignored-qualifiers -Wno-unused
Chris Masone96832c32011-05-03 12:23:18 -070010CPPFLAGS ?= -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
11AR ?= ar
12PKG_CONFIG ?= pkg-config
Chris Masone14de6e52011-05-09 09:20:59 -070013DBUSXX_XML2CPP = dbusxx-xml2cpp
Chris Masone96832c32011-05-03 12:23:18 -070014
Chris Masone0e1d1042011-05-09 18:07:03 -070015# 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.
17BASE_LIBS = -lbase -lchromeos -levent -lpthread -lrt
Chris Masone96832c32011-05-03 12:23:18 -070018BASE_INCLUDE_DIRS = -I..
19BASE_LIB_DIRS =
20
21LIBS = $(BASE_LIBS)
Chris Masoned7732e42011-05-20 11:08:56 -070022INCLUDE_DIRS = $(BASE_INCLUDE_DIRS) $(shell $(PKG_CONFIG) --cflags dbus-c++-1 \
23 glib-2.0 gdk-2.0 gtk+-2.0)
24LIB_DIRS = $(BASE_LIB_DIRS) $(shell $(PKG_CONFIG) --libs dbus-c++-1 glib-2.0 \
mukesh agrawalf8a51ce2011-05-27 11:18:13 -070025 gdk-2.0 gtk+-2.0)
Chris Masone96832c32011-05-03 12:23:18 -070026
27TEST_LIBS = $(BASE_LIBS) -lgmock -lgtest
28TEST_INCLUDE_DIRS = $(INCLUDE_DIRS)
29TEST_LIB_DIRS = $(LIB_DIRS)
30
Darin Petkov567a7d02011-05-26 17:15:34 -070031DBUS_ADAPTOR_HEADERS = \
32 flimflam-device.h \
Chris Masoneccc88812011-06-08 18:00:10 -070033 flimflam-ipconfig.h \
Darin Petkov567a7d02011-05-26 17:15:34 -070034 flimflam-manager.h \
Chris Masoneccc88812011-06-08 18:00:10 -070035 flimflam-profile.h \
Darin Petkov567a7d02011-05-26 17:15:34 -070036 flimflam-service.h
Chris Masone14de6e52011-05-09 09:20:59 -070037
Darin Petkov567a7d02011-05-26 17:15:34 -070038DBUS_PROXY_HEADERS = \
39 dhcpcd.h \
40 supplicant-bss.h \
41 supplicant-interface.h \
42 supplicant-network.h \
mukesh agrawalab87ea42011-05-18 11:44:49 -070043 supplicant-process.h
Darin Petkov567a7d02011-05-26 17:15:34 -070044
45DBUS_HEADERS = $(DBUS_ADAPTOR_HEADERS) $(DBUS_PROXY_HEADERS)
Chris Masone96832c32011-05-03 12:23:18 -070046
Chris Masone96832c32011-05-03 12:23:18 -070047SHILL_OBJS = \
Chris Masone3bd3c8c2011-06-13 08:20:26 -070048 cellular.o \
49 cellular_service.o \
Darin Petkov823c47e2011-06-27 16:15:35 -070050 crypto_des_cbc.o \
Darin Petkov86964e02011-06-29 13:49:28 -070051 crypto_provider.o \
Darin Petkov877642b2011-06-27 13:37:22 -070052 crypto_rot47.o \
Chris Masoned0ceb8c2011-06-02 10:05:39 -070053 dbus_adaptor.o \
Chris Masone96832c32011-05-03 12:23:18 -070054 dbus_control.o \
Chris Masone88cbd5f2011-07-03 14:30:04 -070055 default_profile.o \
Chris Masone96832c32011-05-03 12:23:18 -070056 device.o \
Chris Masoned7732e42011-05-20 11:08:56 -070057 device_dbus_adaptor.o \
Paul Stewart0af98bf2011-05-10 17:38:08 -070058 device_info.o \
Darin Petkov50308cd2011-06-01 18:25:07 -070059 dhcp_config.o \
60 dhcp_provider.o \
61 dhcpcd_proxy.o \
mukesh agrawalb54601c2011-06-07 17:39:22 -070062 endpoint.o \
Chris Masone7aa5f902011-07-11 11:13:35 -070063 ephemeral_profile.o \
Chris Masone8fe2c7e2011-06-09 15:51:19 -070064 error.o \
Paul Stewartb50f0b92011-05-16 16:31:42 -070065 ethernet.o \
Paul Stewartf1ce5d22011-05-19 13:10:20 -070066 ethernet_service.o \
Darin Petkovf7897bc2011-06-08 17:13:36 -070067 glib.o \
Paul Stewartf1ce5d22011-05-19 13:10:20 -070068 glib_io_handler.o \
Darin Petkove02b3ca2011-05-31 16:00:44 -070069 ipconfig.o \
Chris Masonec6c6c132011-06-30 11:29:52 -070070 ipconfig_dbus_adaptor.o \
Darin Petkov083047b2011-06-23 20:42:48 -070071 key_file_store.o \
Chris Masone96832c32011-05-03 12:23:18 -070072 manager.o \
Chris Masoned7732e42011-05-20 11:08:56 -070073 manager_dbus_adaptor.o \
Chris Masone52cd19b2011-06-29 17:23:04 -070074 profile.o \
75 profile_dbus_adaptor.o \
Chris Masoneb925cc82011-06-22 15:39:57 -070076 property_store.o \
Paul Stewartf1ce5d22011-05-19 13:10:20 -070077 rtnl_handler.o \
78 rtnl_listener.o \
Chris Masone96832c32011-05-03 12:23:18 -070079 service.o \
Chris Masoned7732e42011-05-20 11:08:56 -070080 service_dbus_adaptor.o \
Chris Masone96832c32011-05-03 12:23:18 -070081 shill_config.o \
82 shill_daemon.o \
Paul Stewartb50f0b92011-05-16 16:31:42 -070083 shill_event.o \
Darin Petkov633ac6f2011-07-08 13:56:13 -070084 sockets.o \
mukesh agrawalb54601c2011-06-07 17:39:22 -070085 wifi.o \
86 wifi_endpoint.o \
87 wifi_service.o
Chris Masone96832c32011-05-03 12:23:18 -070088
89SHILL_BIN = shill
90SHILL_MAIN_OBJ = shill_main.o
91
92TEST_BIN = shill_unittest
Darin Petkove02b3ca2011-05-31 16:00:44 -070093TEST_OBJS = \
Chris Masoneb925cc82011-06-22 15:39:57 -070094 cellular_unittest.o \
Darin Petkov823c47e2011-06-27 16:15:35 -070095 crypto_des_cbc_unittest.o \
Darin Petkov86964e02011-06-29 13:49:28 -070096 crypto_provider_unittest.o \
Darin Petkov877642b2011-06-27 13:37:22 -070097 crypto_rot47_unittest.o \
Chris Masoned0ceb8c2011-06-02 10:05:39 -070098 dbus_adaptor_unittest.o \
Chris Masone88cbd5f2011-07-03 14:30:04 -070099 default_profile_unittest.o \
Darin Petkove02b3ca2011-05-31 16:00:44 -0700100 device_info_unittest.o \
Darin Petkovafa6fc42011-06-21 16:21:08 -0700101 device_unittest.o \
Darin Petkove7cb7f82011-06-03 13:21:51 -0700102 dhcp_config_unittest.o \
Darin Petkov98dd6a02011-06-10 15:12:57 -0700103 dhcp_provider_unittest.o \
Darin Petkove02b3ca2011-05-31 16:00:44 -0700104 ipconfig_unittest.o \
Darin Petkov083047b2011-06-23 20:42:48 -0700105 key_file_store_unittest.o \
Darin Petkove02b3ca2011-05-31 16:00:44 -0700106 manager_unittest.o \
Chris Masone95207da2011-06-29 16:50:49 -0700107 mock_adaptors.o \
Darin Petkove02b3ca2011-05-31 16:00:44 -0700108 mock_control.o \
Chris Masonea82b7112011-05-25 15:16:29 -0700109 mock_device.o \
Chris Masone7aa5f902011-07-11 11:13:35 -0700110 mock_profile.o \
Chris Masonea82b7112011-05-25 15:16:29 -0700111 mock_service.o \
Darin Petkova4766822011-07-07 10:42:22 -0700112 profile_unittest.o \
Chris Masone27bf1032011-06-28 17:02:01 -0700113 property_accessor_unittest.o \
Chris Masoneb925cc82011-06-22 15:39:57 -0700114 property_store_unittest.o \
Chris Masone3bd3c8c2011-06-13 08:20:26 -0700115 service_unittest.o \
Darin Petkove02b3ca2011-05-31 16:00:44 -0700116 shill_unittest.o \
Chris Masone853b81b2011-06-24 14:11:41 -0700117 testrunner.o \
118 wifi_unittest.o
Chris Masone96832c32011-05-03 12:23:18 -0700119
120all: $(SHILL_BIN) $(TEST_BIN)
121
Darin Petkov567a7d02011-05-26 17:15:34 -0700122$(DBUS_PROXY_HEADERS): %.h: %.xml
mukesh agrawal1c16aaf2011-05-10 13:43:08 -0700123 $(DBUSXX_XML2CPP) $< --proxy=$@
Chris Masone413a3192011-05-09 17:10:05 -0700124
Darin Petkov567a7d02011-05-26 17:15:34 -0700125$(DBUS_ADAPTOR_HEADERS): %.h: %.xml
Chris Masone14de6e52011-05-09 09:20:59 -0700126 $(DBUSXX_XML2CPP) $< --adaptor=$@
127
Chris Masone96832c32011-05-03 12:23:18 -0700128.cc.o:
129 $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDE_DIRS) -c $< -o $@
130
Chris Masone14de6e52011-05-09 09:20:59 -0700131$(SHILL_OBJS): $(DBUS_HEADERS)
132
Darin Petkovd1b715b2011-06-02 21:21:22 -0700133$(SHILL_BIN): $(SHILL_MAIN_OBJ) $(SHILL_OBJS)
Chris Masone96832c32011-05-03 12:23:18 -0700134 $(CXX) $(CXXFLAGS) $(INCLUDE_DIRS) $(LIB_DIRS) $(LDFLAGS) $^ $(LIBS) \
Darin Petkovd1b715b2011-06-02 21:21:22 -0700135 -o $@
Chris Masone96832c32011-05-03 12:23:18 -0700136
137$(TEST_BIN): CXXFLAGS += -DUNIT_TEST
Darin Petkovd1b715b2011-06-02 21:21:22 -0700138$(TEST_BIN): $(TEST_OBJS) $(SHILL_OBJS)
Chris Masone96832c32011-05-03 12:23:18 -0700139 $(CXX) $(CXXFLAGS) $(TEST_INCLUDE_DIRS) $(TEST_LIB_DIRS) $(LDFLAGS) $^ \
140 $(TEST_LIBS) -o $@
141
142clean:
Darin Petkovd1b715b2011-06-02 21:21:22 -0700143 rm -rf *.o $(DBUS_HEADERS) $(SHILL_BIN) $(TEST_BIN)