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 | 0e1d104 | 2011-05-09 18:07:03 -0700 | [diff] [blame] | 19 | INCLUDE_DIRS = $(BASE_INCLUDE_DIRS) $(shell $(PKG_CONFIG) --cflags glib-2.0 \ |
| 20 | gdk-2.0 gtk+-2.0) |
| 21 | LIB_DIRS = $(BASE_LIB_DIRS) $(shell $(PKG_CONFIG) --libs glib-2.0 \ |
| 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 | |
Chris Masone | 14de6e5 | 2011-05-09 09:20:59 -0700 | [diff] [blame] | 28 | XMLFILES = flimflam-device.xml \ |
| 29 | flimflam-manager.xml \ |
Chris Masone | 413a319 | 2011-05-09 17:10:05 -0700 | [diff] [blame] | 30 | flimflam-service.xml \ |
mukesh agrawal | 31d90f0 | 2011-05-10 16:53:22 -0700 | [diff] [blame] | 31 | supplicant-bss.xml \ |
| 32 | supplicant-interface.xml \ |
| 33 | supplicant-network.xml \ |
| 34 | supplicant-supplicant.xml |
Chris Masone | 14de6e5 | 2011-05-09 09:20:59 -0700 | [diff] [blame] | 35 | |
| 36 | DBUS_HEADERS = $(patsubst %.xml,%.h,$(XMLFILES)) |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 37 | |
| 38 | SHILL_LIB = shill_lib.a |
| 39 | SHILL_OBJS = \ |
| 40 | dbus_control.o \ |
| 41 | device.o \ |
Paul Stewart | 0af98bf | 2011-05-10 17:38:08 -0700 | [diff] [blame] | 42 | device_info.o \ |
Paul Stewart | b50f0b9 | 2011-05-16 16:31:42 -0700 | [diff] [blame^] | 43 | ethernet.o \ |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 44 | manager.o \ |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 45 | service.o \ |
| 46 | shill_config.o \ |
| 47 | shill_daemon.o \ |
Paul Stewart | b50f0b9 | 2011-05-16 16:31:42 -0700 | [diff] [blame^] | 48 | shill_event.o \ |
| 49 | wifi.o |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 50 | |
| 51 | SHILL_BIN = shill |
| 52 | SHILL_MAIN_OBJ = shill_main.o |
| 53 | |
| 54 | TEST_BIN = shill_unittest |
Chris Masone | 9be4a9d | 2011-05-16 15:44:09 -0700 | [diff] [blame] | 55 | TEST_OBJS = testrunner.o device_info_unittest.o manager_unittest.o \ |
| 56 | shill_unittest.o |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 57 | |
| 58 | all: $(SHILL_BIN) $(TEST_BIN) |
| 59 | |
mukesh agrawal | 31d90f0 | 2011-05-10 16:53:22 -0700 | [diff] [blame] | 60 | supplicant-%.h: supplicant-%.xml |
mukesh agrawal | 1c16aaf | 2011-05-10 13:43:08 -0700 | [diff] [blame] | 61 | $(DBUSXX_XML2CPP) $< --proxy=$@ |
Chris Masone | 413a319 | 2011-05-09 17:10:05 -0700 | [diff] [blame] | 62 | |
mukesh agrawal | 31d90f0 | 2011-05-10 16:53:22 -0700 | [diff] [blame] | 63 | flimflam-%.h: flimflam-%.xml |
Chris Masone | 14de6e5 | 2011-05-09 09:20:59 -0700 | [diff] [blame] | 64 | $(DBUSXX_XML2CPP) $< --adaptor=$@ |
| 65 | |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 66 | .cc.o: |
| 67 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDE_DIRS) -c $< -o $@ |
| 68 | |
Chris Masone | 14de6e5 | 2011-05-09 09:20:59 -0700 | [diff] [blame] | 69 | $(SHILL_OBJS): $(DBUS_HEADERS) |
| 70 | |
Chris Masone | 96832c3 | 2011-05-03 12:23:18 -0700 | [diff] [blame] | 71 | $(SHILL_LIB): $(SHILL_OBJS) |
| 72 | $(AR) rcs $@ $^ |
| 73 | |
| 74 | $(SHILL_BIN): $(SHILL_MAIN_OBJ) $(SHILL_LIB) |
| 75 | $(CXX) $(CXXFLAGS) $(INCLUDE_DIRS) $(LIB_DIRS) $(LDFLAGS) $^ $(LIBS) \ |
| 76 | -o $@ |
| 77 | |
| 78 | $(TEST_BIN): CXXFLAGS += -DUNIT_TEST |
| 79 | $(TEST_BIN): $(TEST_OBJS) $(SHILL_LIB) |
| 80 | $(CXX) $(CXXFLAGS) $(TEST_INCLUDE_DIRS) $(TEST_LIB_DIRS) $(LDFLAGS) $^ \ |
| 81 | $(TEST_LIBS) -o $@ |
| 82 | |
| 83 | clean: |
Chris Masone | 14de6e5 | 2011-05-09 09:20:59 -0700 | [diff] [blame] | 84 | rm -rf *.o $(DBUS_HEADERS) $(SHILL_BIN) $(SHILL_LIB) $(TEST_BIN) |