# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

AR ?= ar
CC ?= gcc
CXX ?= g++
# -clang uses clang to syntax check, and then runs gcc/g++ to actually
# generate binaries. See www.chromium.org/chromium-os/developer-guide
CFLAGS += \
	-clang \
	-Wall \
	-Werror \
	-Wextra \
	-Wno-missing-field-initializers \
	-Wno-unused-parameter \
	-Wno-unused-result \
	-Wuninitialized
CXXFLAGS ?= -fno-strict-aliasing

# -std=gnu++11 is c++11 with GNU extensions. In particular, typeof is allowed.
CXXFLAGS += $(CFLAGS) \
	-std=gnu++11 \
	-Woverloaded-virtual
CXXFLAGS += $(EXTRA_CXXFLAGS)
CPPFLAGS ?= -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
PKG_CONFIG ?= pkg-config
DBUSXX_XML2CPP = dbusxx-xml2cpp
PROTOC ?= protoc

BUILDDIR = build
VPATH = $(BUILDDIR)

LIBDIR = /usr/lib
SHIMDIR = $(LIBDIR)/shill/shims
RUNDIR = /var/run/shill
CPPFLAGS += -DSHIMDIR=\"$(SHIMDIR)\" -DRUNDIR=\"$(RUNDIR)\"

BASE_VER ?= 180609
COMMON_PC_DEPS = libchrome-$(BASE_VER) libchromeos-$(BASE_VER)
SHILL_PC_DEPS = \
	$(COMMON_PC_DEPS) \
	dbus-c++-1 \
	gio-2.0 \
	glib-2.0 \
	libnl-3.0 \
	libnl-genl-3.0
CRYPTO_UTIL_PC_DEPS = \
	$(COMMON_PC_DEPS) \
	protobuf-lite \
	openssl
NET_DIAGS_UPLOAD_PC_DEPS = $(COMMON_PC_DEPS)
NETFILTER_QUEUE_HELPER_PC_DEPS = \
	$(COMMON_PC_DEPS) \
	libmnl \
	libnetfilter_queue \
	libnfnetlink
NSS_GET_CERT_PC_DEPS = $(COMMON_PC_DEPS) nss
INCLUDE_DIRS = \
	-iquote.. \
	-iquote $(BUILDDIR) \
	$(shell $(PKG_CONFIG) --cflags \
		$(CRYPTO_UTIL_PC_DEPS) \
		$(NET_DIAGS_UPLOAD_PC_DEPS) \
		$(NETFILTER_QUEUE_HELPER_PC_DEPS) \
		$(NSS_GET_CERT_PC_DEPS) \
		$(SHILL_PC_DEPS))
SHILL_LIBS = \
	-lbootstat \
	-lcares \
	-lmetrics \
	-lminijail \
	-lprotobuf-lite \
	-lrt \
	$(shell $(PKG_CONFIG) --libs $(SHILL_PC_DEPS))
CRYPTO_UTIL_LIBS = \
	$(shell $(PKG_CONFIG) --libs $(CRYPTO_UTIL_PC_DEPS))
NET_DIAGS_UPLOAD_LIBS = \
	$(shell $(PKG_CONFIG) --libs $(NET_DIAGS_UPLOAD_PC_DEPS))
NETFILTER_QUEUE_HELPER_LIBS = \
	$(shell $(PKG_CONFIG) --libs $(NETFILTER_QUEUE_HELPER_PC_DEPS))
NSS_GET_CERT_LIBS = $(shell $(PKG_CONFIG) --libs $(NSS_GET_CERT_PC_DEPS))

DBUS_BINDINGS_DIR = dbus_bindings
BUILD_DBUS_BINDINGS_DIR = $(BUILDDIR)/shill/$(DBUS_BINDINGS_DIR)
BUILD_DBUS_BINDINGS_SHIMS_DIR = $(BUILD_DBUS_BINDINGS_DIR)/shims

BUILD_PROTO_BINDINGS_DIR = $(BUILDDIR)/shill/proto_bindings

BUILD_SHIMS_DIR = $(BUILDDIR)/shims

_CREATE_BUILDDIR := $(shell mkdir -p \
	$(BUILDDIR) \
	$(BUILD_DBUS_BINDINGS_DIR) \
	$(BUILD_DBUS_BINDINGS_SHIMS_DIR) \
	$(BUILD_PROTO_BINDINGS_DIR)/power_manager \
	$(BUILD_PROTO_BINDINGS_DIR)/shims/protos \
	$(BUILD_SHIMS_DIR))

DBUS_ADAPTOR_HEADERS :=

DBUS_PROXY_HEADERS = \
	dbus-properties.h \
	dbus-service.h \
	dhcpcd.h \
	power_manager.h \
	shims/flimflam-task.h \
	supplicant-bss.h \
	supplicant-interface.h \
	supplicant-network.h \
	supplicant-process.h

# Generates rules for copying SYSROOT XMLs locally and updates the proxy header
# dependencies.
DBUS_BINDINGS_XML_SYSROOT = \
	org.chromium.WiMaxManager>wimax_manager \
	org.chromium.WiMaxManager.Device>wimax_manager-device \
	org.chromium.WiMaxManager.Network>wimax_manager-network

# Rename local XML files with the names required by DBus to XML files with the
# names required by the style guide, which will then be turned into generated
# headers later.
DBUS_BINDINGS_XML_LOCAL = \
	org.chromium.flimflam.Device>flimflam-device \
	org.chromium.flimflam.IPConfig>flimflam-ipconfig \
	org.chromium.flimflam.Manager>flimflam-manager \
	org.chromium.flimflam.Profile>flimflam-profile \
	org.chromium.flimflam.Service>flimflam-service \
	org.chromium.flimflam.Task>flimflam-task

ifneq ($(SHILL_CELLULAR), 0)
DBUS_PROXY_HEADERS += \
	dbus-objectmanager.h \
	modem-gobi.h

DBUS_BINDINGS_XML_SYSROOT += \
	org.freedesktop.ModemManager>modem_manager \
	org.freedesktop.ModemManager.Modem>modem \
	org.freedesktop.ModemManager.Modem.Cdma>modem-cdma \
	org.freedesktop.ModemManager.Modem.Gsm.Card>modem-gsm-card \
	org.freedesktop.ModemManager.Modem.Gsm.Network>modem-gsm-network \
	org.freedesktop.ModemManager.Modem.Simple>modem-simple \
	org.freedesktop.ModemManager1.Bearer>mm1-bearer \
	org.freedesktop.ModemManager1.Modem>mm1-modem \
	org.freedesktop.ModemManager1.Modem.Location>mm1-modem-location \
	org.freedesktop.ModemManager1.Modem.Modem3gpp>mm1-modem-modem3gpp \
	org.freedesktop.ModemManager1.Modem.ModemCdma>mm1-modem-modemcdma \
	org.freedesktop.ModemManager1.Modem.Simple>mm1-modem-simple \
	org.freedesktop.ModemManager1.Modem.Time>mm1-modem-time \
	org.freedesktop.ModemManager1.Sim>mm1-sim
endif  # SHILL_CELLULAR

define ADD_BINDING
$(eval _SOURCE = $(word 1,$(subst >, ,$(1))))
$(eval _TARGET = $(word 2,$(subst >, ,$(1))))
DBUS_PROXY_HEADERS += $(_TARGET).h
$(BUILD_DBUS_BINDINGS_DIR)/$(_TARGET).xml: \
	$(SYSROOT)/usr/share/dbus-1/interfaces/$(_SOURCE).xml
	echo "  CP " $$@
	cp $$< $$@
endef

define ADD_LOCAL_BINDING
$(eval _SOURCE = $(word 1,$(subst >, ,$(1))))
$(eval _TARGET = $(word 2,$(subst >, ,$(1))))
DBUS_ADAPTOR_HEADERS += $(_TARGET).h
$(BUILD_DBUS_BINDINGS_DIR)/$(_TARGET).xml: $(DBUS_BINDINGS_DIR)/$(_SOURCE).xml
	echo "  CP " $$@
	cp $$< $$@
endef

$(foreach b,$(DBUS_BINDINGS_XML_SYSROOT),$(eval $(call ADD_BINDING,$(b))))
$(foreach b,$(DBUS_BINDINGS_XML_LOCAL),$(eval $(call ADD_LOCAL_BINDING,$(b))))

DBUS_ADAPTOR_BINDINGS = \
	$(addprefix $(BUILD_DBUS_BINDINGS_DIR)/, $(DBUS_ADAPTOR_HEADERS))
DBUS_PROXY_BINDINGS = \
	$(addprefix $(BUILD_DBUS_BINDINGS_DIR)/, $(DBUS_PROXY_HEADERS))

SYSTEM_API_PROTO_PATH = $(SYSROOT)/usr/include/chromeos/dbus
SYSTEM_PROTO_BINDINGS_OBJS = $(addprefix $(BUILD_PROTO_BINDINGS_DIR)/, \
	power_manager/suspend.pb.o \
	)
CRYPTO_UTIL_PROTO_BINDINGS_OBJS = $(addprefix $(BUILD_PROTO_BINDINGS_DIR)/, \
	shims/protos/crypto_util.pb.o \
	)
PROTO_BINDINGS_OBJS = \
	$(SYSTEM_PROTO_BINDINGS_OBJS) \
	$(CRYPTO_UTIL_PROTO_BINDINGS_OBJS)

PROTO_BINDINGS_H = $(PROTO_BINDINGS_OBJS:.o=.h)
SYSTEM_PROTO_BINDINGS_CC = $(SYSTEM_PROTO_BINDINGS_OBJS:.o=.cc)
SHIM_PROTO_BINDINGS_CC = $(CRYPTO_UTIL_PROTO_BINDINGS_OBJS:.o=.cc)

SHILL_LIB = $(BUILDDIR)/shill.a
SHILL_OBJS = $(addprefix $(BUILDDIR)/, \
	arp_client.o \
	arp_packet.o \
	async_connection.o \
	attribute_list.o \
	byte_string.o \
	callback80211_metrics.o \
	certificate_file.o \
	connection.o \
	connection_health_checker.o \
	connection_info.o \
	connection_info_reader.o \
	control_netlink_attribute.o \
	crypto_des_cbc.o \
	crypto_provider.o \
	crypto_rot47.o \
	dbus_adaptor.o \
	dbus_control.o \
	dbus_manager.o \
	dbus_properties.o \
	dbus_properties_proxy.o \
	dbus_service_proxy.o \
	default_profile.o \
	crypto_util_proxy.o \
	device.o \
	device_dbus_adaptor.o \
	device_info.o \
	dhcp_config.o \
	dhcp_provider.o \
	dhcpcd_proxy.o \
	diagnostics_reporter.o \
	dns_client.o \
	dns_client_factory.o \
	eap_credentials.o \
	eap_listener.o \
	endpoint.o \
	ephemeral_profile.o \
	error.o \
	ethernet.o \
	ethernet_eap_provider.o \
	ethernet_eap_service.o \
	ethernet_service.o \
	event_dispatcher.o \
	file_io.o \
	file_reader.o \
	generic_netlink_message.o \
	geolocation_info.o \
	glib.o \
	glib_io_ready_handler.o \
	glib_io_input_handler.o \
	hook_table.o \
	http_proxy.o \
	http_request.o \
	http_url.o \
	ip_address.o \
	ip_address_store.o \
	ipconfig.o \
	ipconfig_dbus_adaptor.o \
	key_file_store.o \
	key_value_store.o \
	link_monitor.o \
	manager.o \
	manager_dbus_adaptor.o \
	memory_log.o \
	metrics.o \
	minijail.o \
	modem_info.o \
	netlink_attribute.o \
	netlink_manager.o \
	netlink_message.o \
	netlink_socket.o \
	nl80211_attribute.o \
	nl80211_message.o \
	nss.o \
	pending_activation_store.o \
	portal_detector.o \
	power_manager.o \
	power_manager_proxy.o \
	process_killer.o \
	profile.o \
	profile_dbus_adaptor.o \
	profile_dbus_property_exporter.o \
	property_store.o \
	proxy_factory.o \
	routing_table.o \
	resolver.o \
	rpc_task.o \
	rpc_task_dbus_adaptor.o \
	rtnl_handler.o \
	rtnl_listener.o \
	rtnl_message.o \
	scan_session.o \
	scope_logger.o \
	service.o \
	service_dbus_adaptor.o \
	shill_ares.o \
	shill_config.o \
	shill_daemon.o \
	shill_test_config.o \
	shill_time.o \
	socket_info.o \
	socket_info_reader.o \
	sockets.o \
	static_ip_parameters.o \
	supplicant_bss_proxy.o \
	supplicant_eap_state_handler.o \
	supplicant_interface_proxy.o \
	supplicant_network_proxy.o \
	supplicant_process_proxy.o \
	technology.o \
	traffic_monitor.o \
	virtio_ethernet.o \
	vpn.o \
	vpn_driver.o \
	vpn_provider.o \
	vpn_service.o \
	wifi.o \
	wifi_endpoint.o \
	wifi_provider.o \
	wifi_service.o \
	wimax.o \
	wimax_device_proxy.o \
	wimax_manager_proxy.o \
	wimax_network_proxy.o \
	wimax_provider.o \
	wimax_service.o \
	wpa_supplicant.o \
	) \
	$(PROTO_BINDINGS_OBJS)

SHILL_BIN = shill
# Broken out separately, because (unlike other SHILL_OBJS), it
# shouldn't be linked into TEST_BIN.
SHILL_MAIN_OBJ = $(BUILDDIR)/shill_main.o

TEST_BIN = shill_unittest
TEST_OBJS = $(addprefix $(BUILDDIR)/, \
	arp_client_unittest.o \
	arp_packet_unittest.o \
	async_connection_unittest.o \
	byte_string_unittest.o \
	cellular_capability_cdma_unittest.o \
	cellular_capability_classic_unittest.o \
	cellular_capability_gsm_unittest.o \
	cellular_capability_universal_unittest.o \
	cellular_capability_universal_cdma_unittest.o \
	cellular_operator_info_unittest.o \
	cellular_service_unittest.o \
	cellular_unittest.o \
	certificate_file_unittest.o \
	crypto_des_cbc_unittest.o \
	crypto_provider_unittest.o \
	crypto_rot47_unittest.o \
	crypto_util_proxy_unittest.o \
	connection_health_checker_unittest.o \
	connection_info_reader_unittest.o \
	connection_info_unittest.o \
	connection_unittest.o \
	dbus_adaptor_unittest.o \
	dbus_manager_unittest.o \
	dbus_properties_unittest.o \
	dbus_variant_gmock_printer.o \
	default_profile_unittest.o \
	device_info_unittest.o \
	device_unittest.o \
	dhcp_config_unittest.o \
	dhcp_provider_unittest.o \
	diagnostics_reporter_unittest.o \
	dns_client_unittest.o \
	eap_credentials_unittest.o \
	eap_listener_unittest.o \
	error_unittest.o \
	ethernet_unittest.o \
	ethernet_eap_provider_unittest.o \
	ethernet_eap_service_unittest.o \
	ethernet_service_unittest.o \
	file_reader_unittest.o \
	hook_table_unittest.o \
	http_proxy_unittest.o \
	http_request_unittest.o \
	http_url_unittest.o \
	ip_address_unittest.o \
	ip_address_store_unittest.o \
	ipconfig_unittest.o \
	key_file_store_unittest.o \
	key_value_store_unittest.o \
	link_monitor_unittest.o \
	manager_unittest.o \
	memory_log_unittest.o \
	metrics_unittest.o \
	mock_adaptors.o \
	mock_ares.o \
	mock_arp_client.o \
	mock_async_connection.o \
	mock_certificate_file.o \
	mock_connection.o \
	mock_connection_health_checker.o \
	mock_connection_info_reader.o \
	mock_control.o \
	mock_crypto_util_proxy.o \
	mock_dbus_manager.o \
	mock_dbus_objectmanager_proxy.o \
	mock_dbus_properties_proxy.o \
	mock_dbus_service_proxy.o \
	mock_device.o \
	mock_device_info.o \
	mock_dhcp_config.o \
	mock_dhcp_provider.o \
	mock_dhcp_proxy.o \
	mock_diagnostics_reporter.o \
	mock_dns_client.o \
	mock_dns_client_factory.o \
	mock_eap_credentials.o \
	mock_eap_listener.o \
	mock_ethernet.o \
	mock_ethernet_eap_provider.o \
	mock_ethernet_service.o \
	mock_event_dispatcher.o \
	mock_glib.o \
	mock_http_request.o \
	mock_ip_address_store.o \
	mock_ipconfig.o \
	mock_link_monitor.o \
	mock_log.o \
	mock_log_unittest.o \
	mock_manager.o \
	mock_metrics.o \
	mock_minijail.o \
	mock_modem_info.o \
	mock_netlink_manager.o \
	mock_nss.o \
	mock_pending_activation_store.o \
	mock_portal_detector.o \
	mock_power_manager.o \
	mock_power_manager_proxy.o \
	mock_process_killer.o \
	mock_profile.o \
	mock_property_store.o \
	mock_proxy_factory.o \
	mock_resolver.o \
	mock_routing_table.o \
	mock_rtnl_handler.o \
	mock_scan_session.o \
	mock_service.o \
	mock_socket_info_reader.o \
	mock_sockets.o \
	mock_store.o \
	mock_supplicant_bss_proxy.o \
	mock_supplicant_eap_state_handler.o \
	mock_supplicant_interface_proxy.o \
	mock_supplicant_network_proxy.o \
	mock_supplicant_process_proxy.o \
	mock_time.o \
	mock_traffic_monitor.o \
	mock_vpn_provider.o \
	mock_wifi.o \
	mock_wifi_provider.o \
	mock_wifi_service.o \
	mock_wimax.o \
	mock_wimax_device_proxy.o \
	mock_wimax_manager_proxy.o \
	mock_wimax_network_proxy.o \
	mock_wimax_provider.o \
	mock_wimax_service.o \
	modem_info_unittest.o \
	netlink_manager_unittest.o \
	netlink_message_unittest.o \
	netlink_socket_unittest.o \
	nice_mock_control.o \
	nss_unittest.o \
	pending_activation_store_unittest.o \
	portal_detector_unittest.o \
	power_manager_unittest.o \
	process_killer_unittest.o \
	profile_dbus_property_exporter_unittest.o \
	profile_unittest.o \
	property_accessor_unittest.o \
	property_store_unittest.o \
	resolver_unittest.o \
	routing_table_unittest.o \
	rpc_task_unittest.o \
	rtnl_handler_unittest.o \
	rtnl_listener_unittest.o \
	rtnl_message_unittest.o \
	scan_session_unittest.o \
	scope_logger_unittest.o \
	service_property_change_test.o \
	service_under_test.o \
	service_unittest.o \
	supplicant_eap_state_handler_unittest.o \
	shill_unittest.o \
	shims/certificates_unittest.o \
	shims/netfilter_queue_processor_unittest.o \
	socket_info_unittest.o \
	socket_info_reader_unittest.o \
	static_ip_parameters_unittest.o \
	technology_unittest.o \
	traffic_monitor_unittest.o \
	testrunner.o \
	wifi_endpoint_unittest.o \
	wifi_provider_unittest.o \
	wifi_service_unittest.o \
	wifi_unittest.o \
	wimax_provider_unittest.o \
	wimax_service_unittest.o \
	wimax_unittest.o \
	wpa_supplicant_unittest.o \
	)

CRYPTO_UTIL_MAIN_OBJ = $(BUILD_SHIMS_DIR)/crypto_util.o
CRYPTO_UTIL_BIN = $(BUILD_SHIMS_DIR)/crypto-util

NET_DIAGS_UPLOAD_MAIN_OBJ = $(BUILD_SHIMS_DIR)/net_diags_upload.o
NET_DIAGS_UPLOAD_BIN = $(BUILD_SHIMS_DIR)/net-diags-upload

NETFILTER_QUEUE_HELPER_OBJS = $(BUILD_SHIMS_DIR)/netfilter_queue_processor.o
NETFILTER_QUEUE_HELPER_MAIN_OBJ = $(BUILD_SHIMS_DIR)/netfilter_queue_helper.o
NETFILTER_QUEUE_HELPER_BIN = $(BUILD_SHIMS_DIR)/netfilter-queue-helper

NSS_GET_CERT_OBJS = $(BUILD_SHIMS_DIR)/certificates.o
NSS_GET_CERT_MAIN_OBJ = $(BUILD_SHIMS_DIR)/nss_get_cert.o
NSS_GET_CERT_BIN = $(BUILD_SHIMS_DIR)/nss-get-cert

WPA_SUPPLICANT_CONF = $(BUILD_SHIMS_DIR)/wpa_supplicant.conf

# If SHILL_CELLULAR=0, don't build cellular support into shill.
ifeq ($(SHILL_CELLULAR), 0)

CPPFLAGS += -DDISABLE_CELLULAR

else

CELLULAR_PC_DEPS = ModemManager
SET_APN_HELPER_PC_DEPS = dbus-1

INCLUDE_DIRS += \
	$(shell $(PKG_CONFIG) --cflags \
		$(CELLULAR_PC_DEPS) \
		$(SET_APN_HELPER_PC_DEPS))

SET_APN_HELPER_LIBS = $(shell $(PKG_CONFIG) --libs $(SET_APN_HELPER_PC_DEPS))

SHILL_LIBS += \
	-lmobile-provider \
	$(shell $(PKG_CONFIG) --libs $(CELLULAR_PC_DEPS))

SHILL_OBJS += $(addprefix $(BUILDDIR)/, \
	cellular.o \
	cellular_capability.o \
	cellular_capability_cdma.o \
	cellular_capability_classic.o \
	cellular_capability_gsm.o \
	cellular_capability_universal.o \
	cellular_capability_universal_cdma.o \
	cellular_error.o \
	cellular_operator_info.o \
	cellular_service.o \
	dbus_objectmanager_proxy.o \
	mm1_bearer_proxy.o \
	mm1_modem_location_proxy.o \
	mm1_modem_modem3gpp_proxy.o \
	mm1_modem_modemcdma_proxy.o \
	mm1_modem_proxy.o \
	mm1_modem_simple_proxy.o \
	mm1_modem_time_proxy.o \
	mm1_sim_proxy.o \
	modem.o \
	modem_1.o \
	modem_cdma_proxy.o \
	modem_classic.o \
	modem_gobi_proxy.o \
	modem_gsm_card_proxy.o \
	modem_gsm_network_proxy.o \
	modem_manager.o \
	modem_manager_1.o \
	modem_manager_proxy.o \
	modem_proxy.o \
	modem_simple_proxy.o \
	)

TEST_OBJS += $(addprefix $(BUILDDIR)/, \
	cellular_capability_cdma_unittest.o \
	cellular_capability_classic_unittest.o \
	cellular_capability_gsm_unittest.o \
	cellular_capability_universal_cdma_unittest.o \
	cellular_capability_universal_unittest.o \
	cellular_operator_info_unittest.o \
	cellular_service_unittest.o \
	cellular_unittest.o \
	mock_cellular.o \
	mock_mm1_bearer_proxy.o \
	mock_mm1_modem_location_proxy.o \
	mock_mm1_modem_modemcdma_proxy.o \
	mock_mm1_modem_modem3gpp_proxy.o \
	mock_mm1_modem_proxy.o \
	mock_mm1_modem_simple_proxy.o \
	mock_mm1_modem_time_proxy.o \
	mock_mm1_sim_proxy.o \
	mock_modem.o \
	mock_modem_cdma_proxy.o \
	mock_modem_gobi_proxy.o \
	mock_modem_gsm_card_proxy.o \
	mock_modem_gsm_network_proxy.o \
	mock_modem_manager_proxy.o \
	mock_modem_proxy.o \
	mock_modem_simple_proxy.o \
	mock_cellular_operator_info.o \
	mock_cellular_service.o \
	modem_1_unittest.o \
	modem_manager_unittest.o \
	modem_unittest.o \
	)

SET_APN_HELPER_MAIN_OBJ = $(BUILD_SHIMS_DIR)/set_apn_helper.o
SET_APN_HELPER_BIN = $(BUILD_SHIMS_DIR)/set-apn-helper

$(SET_APN_HELPER_BIN): $(SET_APN_HELPER_MAIN_OBJ)
	echo "  CXX " $@
	$(CXX) $(CXXFLAGS) $(LDFLAGS) $^ $(SET_APN_HELPER_LIBS) -o $@

endif  # SHILL_CELLULAR=0

# If SHILL_VPN=0, don't build VPN support into shill.
ifeq ($(SHILL_VPN), 0)

CPPFLAGS += -DDISABLE_VPN

else

OPENVPN_SCRIPT_PC_DEPS = $(COMMON_PC_DEPS) dbus-c++-1
PPPD_PLUGIN_PC_DEPS = $(COMMON_PC_DEPS) dbus-c++-1

INCLUDE_DIRS += \
	$(shell $(PKG_CONFIG) --cflags \
		$(OPENVPN_SCRIPT_PC_DEPS) \
		$(PPPD_PLUGIN_PC_DEPS))

OPENVPN_SCRIPT_LIBS = $(shell $(PKG_CONFIG) --libs $(OPENVPN_SCRIPT_PC_DEPS))
PPPD_PLUGIN_LIBS = $(shell $(PKG_CONFIG) --libs $(PPPD_PLUGIN_PC_DEPS))

OPENVPN_SCRIPT_OBJS = $(addprefix $(BUILD_SHIMS_DIR)/, \
	environment.o \
	task_proxy.o \
	)
OPENVPN_SCRIPT_MAIN_OBJ = $(BUILD_SHIMS_DIR)/openvpn_script.o
OPENVPN_SCRIPT_BIN = $(BUILD_SHIMS_DIR)/openvpn-script

PPPD_PLUGIN_OBJS = $(addprefix $(BUILD_SHIMS_DIR)/, \
	c_ppp.pic.o \
	environment.pic.o \
	ppp.pic.o \
	pppd_plugin.pic.o \
	task_proxy.pic.o \
	)
PPPD_PLUGIN_SO = $(BUILD_SHIMS_DIR)/shill-pppd-plugin.so

SHILL_OBJS += $(addprefix $(BUILDDIR)/, \
	l2tp_ipsec_driver.o \
	openvpn_driver.o \
	openvpn_management_server.o \
	)

TEST_OBJS += $(addprefix $(BUILDDIR)/, \
	l2tp_ipsec_driver_unittest.o \
	mock_openvpn_driver.o \
	mock_openvpn_management_server.o \
	mock_vpn.o \
	mock_vpn_driver.o \
	mock_vpn_service.o \
	openvpn_driver_unittest.o \
	openvpn_management_server_unittest.o \
	shims/environment_unittest.o \
	vpn_driver_unittest.o \
	vpn_provider_unittest.o \
	vpn_service_unittest.o \
	vpn_unittest.o \
	)

$(OPENVPN_SCRIPT_OBJS): $(DBUS_PROXY_BINDINGS)
$(OPENVPN_SCRIPT_MAIN_OBJ): $(DBUS_PROXY_BINDINGS)

$(OPENVPN_SCRIPT_BIN): $(OPENVPN_SCRIPT_MAIN_OBJ) $(OPENVPN_SCRIPT_OBJS)
	echo "  CXX " $@
	$(CXX) $(CXXFLAGS) $(LDFLAGS) $^ $(OPENVPN_SCRIPT_LIBS) -o $@

$(PPPD_PLUGIN_OBJS): $(DBUS_PROXY_BINDINGS)

$(PPPD_PLUGIN_SO): $(PPPD_PLUGIN_OBJS)
	echo "  CXX " $@
	$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $^ $(PPPD_PLUGIN_LIBS) -o $@

endif  # SHILL_VPN=0

OBJS = \
	$(CRYPTO_UTIL_MAIN_OBJ) \
	$(NET_DIAGS_UPLOAD_MAIN_OBJ) \
	$(NETFILTER_QUEUE_HELPER_MAIN_OBJ) \
	$(NETFILTER_QUEUE_HELPER_OBJS) \
	$(NSS_GET_CERT_MAIN_OBJ) \
	$(NSS_GET_CERT_OBJS) \
	$(OPENVPN_SCRIPT_MAIN_OBJ) \
	$(OPENVPN_SCRIPT_OBJS) \
	$(PPPD_PLUGIN_OBJS) \
	$(SET_APN_HELPER_MAIN_OBJ) \
	$(SHILL_MAIN_OBJ) \
	$(SHILL_OBJS) \
	$(TEST_OBJS)

GTEST_LIBS := $(shell gmock-config --libs) $(shell gtest-config --libs)
TEST_LIBS = $(SHILL_LIBS) $(NSS_GET_CERT_LIBS) $(NETFILTER_QUEUE_HELPER_LIBS) \
	$(GTEST_LIBS)

.PHONY: all clean shims

all: $(SHILL_BIN) $(TEST_BIN) shims

shims: \
	$(CRYPTO_UTIL_BIN) \
	$(NET_DIAGS_UPLOAD_BIN) \
	$(NETFILTER_QUEUE_HELPER_BIN) \
	$(NSS_GET_CERT_BIN) \
	$(OPENVPN_SCRIPT_BIN) \
	$(PPPD_PLUGIN_SO) \
	$(SET_APN_HELPER_BIN) \
	$(WPA_SUPPLICANT_CONF)

$(BUILD_DBUS_BINDINGS_SHIMS_DIR)/flimflam-task.xml: \
	$(BUILD_DBUS_BINDINGS_DIR)/flimflam-task.xml
	echo "  CP " $@
	cp $< $@

$(BUILD_DBUS_BINDINGS_DIR)/%.xml: $(DBUS_BINDINGS_DIR)/%.xml
	echo "  CP " $@
	cp $< $@

$(DBUS_PROXY_BINDINGS): %.h: %.xml
	echo "  DBUSXX_XML2CPP " $@
	$(DBUSXX_XML2CPP) $< --proxy=$@ --sync --async

$(DBUS_ADAPTOR_BINDINGS): %.h: %.xml
	echo "  DBUSXX_XML2CPP " $@
	$(DBUSXX_XML2CPP) $< --adaptor=$@

$(PROTO_BINDINGS_H): %.h: %.cc ;

$(SYSTEM_PROTO_BINDINGS_CC): \
	$(BUILD_PROTO_BINDINGS_DIR)/%.pb.cc: $(SYSTEM_API_PROTO_PATH)/%.proto
	echo "  PROTOC " $@
	$(PROTOC) --proto_path=$(SYSTEM_API_PROTO_PATH) \
		--cpp_out=$(BUILD_PROTO_BINDINGS_DIR) $<

$(SHIM_PROTO_BINDINGS_CC): \
	$(BUILD_PROTO_BINDINGS_DIR)/%.pb.cc: %.proto
	echo "  PROTOC " $@
	$(PROTOC) --proto_path=./ --cpp_out=$(BUILD_PROTO_BINDINGS_DIR) $<

$(BUILDDIR)/%.o: %.c
	echo "  CC " $@
	$(CC) $(CPPFLAGS) $(CFLAGS) $(INCLUDE_DIRS) -MMD -c $< -o $@

$(PROTO_BINDINGS_OBJS): INCLUDE_DIRS += -iquote $(BUILD_PROTO_BINDINGS_DIR)

$(BUILDDIR)/%.o: %.cc
	echo "  CXX " $@
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDE_DIRS) -MMD -c $< -o $@

$(BUILDDIR)/%.pic.o: %.c
	echo "  CC " $@
	$(CC) $(CPPFLAGS) $(CFLAGS) -fPIC $(INCLUDE_DIRS) -MMD -c $< -o $@

$(BUILDDIR)/%.pic.o: %.cc
	echo "  CXX " $@
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC $(INCLUDE_DIRS) -MMD -c $< -o $@

$(SHILL_OBJS): \
	$(DBUS_ADAPTOR_BINDINGS) \
	$(DBUS_PROXY_BINDINGS) \
	$(PROTO_BINDINGS_H)

$(SHILL_LIB): $(SHILL_OBJS)
	echo "  AR " $@
	$(AR) rcs $@ $^

$(SHILL_BIN): $(SHILL_MAIN_OBJ) $(SHILL_LIB)
	echo "  CXX " $@
	$(CXX) $(CXXFLAGS) $(LDFLAGS) $^ $(SHILL_LIBS) -o $@

$(CRYPTO_UTIL_BIN): $(CRYPTO_UTIL_MAIN_OBJ) $(CRYPTO_UTIL_PROTO_BINDINGS_OBJS)
	echo "  CXX " $@
	$(CXX) $(CXXFLAGS) $(LDFLAGS) $^ $(CRYPTO_UTIL_LIBS) -o $@

$(NET_DIAGS_UPLOAD_BIN): $(NET_DIAGS_UPLOAD_MAIN_OBJ)
	echo "  CXX " $@
	$(CXX) $(CXXFLAGS) $(LDFLAGS) $^ $(NET_DIAGS_UPLOAD_LIBS) -o $@

$(NETFILTER_QUEUE_HELPER_BIN): \
	$(NETFILTER_QUEUE_HELPER_MAIN_OBJ) \
	$(NETFILTER_QUEUE_HELPER_OBJS)
	echo "  CXX " $@
	$(CXX) $(CXXFLAGS) $(LDFLAGS) $^ $(NETFILTER_QUEUE_HELPER_LIBS) -o $@

$(NSS_GET_CERT_BIN): $(NSS_GET_CERT_MAIN_OBJ) $(NSS_GET_CERT_OBJS) $(SHILL_LIB)
	echo "  CXX " $@
	$(CXX) $(CXXFLAGS) $(LDFLAGS) $^ $(NSS_GET_CERT_LIBS) -o $@

$(WPA_SUPPLICANT_CONF): shims/wpa_supplicant.conf.in
	echo "  SED " $@
	sed s,@libdir@,$(LIBDIR), $^ > $@

$(TEST_BIN): CPPFLAGS += -DUNIT_TEST -DSYSROOT=\"$(SYSROOT)\"
$(TEST_BIN): \
	$(TEST_OBJS) \
	$(NETFILTER_QUEUE_HELPER_OBJS) \
	$(NSS_GET_CERT_OBJS) \
	$(OPENVPN_SCRIPT_OBJS) \
	$(SHILL_LIB)
	echo "  CXX " $@
	$(CXX) $(CXXFLAGS) $(LDFLAGS) $^ $(TEST_LIBS) -o $@

clean:
	rm -rf \
		$(BUILDDIR) \
		$(SHILL_BIN) \
		$(TEST_BIN)

# Don't output build commands. When adding rules, please echo a short
# form of the build command manually. E.g. 'echo "  CXX " $@'.
.SILENT:

-include $(OBJS:.o=.d)
