
plugin_cflags = -fvisibility=hidden -I$(srcdir)/gdbus \
					@DBUS_CFLAGS@ @GLIB_CFLAGS@
plugin_ldflags = -no-undefined -module -avoid-version

script_cflags = -fvisibility=hidden -I$(srcdir)/gdbus \
					@DBUS_CFLAGS@

if LOOPBACK
builtin_modules += loopback
builtin_sources += plugins/loopback.c
endif

if ETHERNET
builtin_modules += ethernet
builtin_sources += plugins/ethernet.c
endif

gsupplicant_sources = gsupplicant/gsupplicant.h gsupplicant/dbus.h \
			gsupplicant/supplicant.c gsupplicant/dbus.c

if WIFI
builtin_modules += wifi
builtin_sources += plugins/wifi.c $(gsupplicant_sources)
endif

if SLEEP
plugin_LTLIBRARIES += plugins/sleepplugin.la
plugin_objects += $(plugins_sleepplugin_la_OBJECTS)
plugins_sleepplugin_la_CFLAGS = $(plugin_cflags)
plugins_sleepplugin_la_LDFLAGS = $(plugin_ldflags)
endif

if BLUETOOTH
builtin_modules += bluetooth_legacy
builtin_sources += plugins/bluetooth_legacy.c
builtin_modules += bluetooth
builtin_sources += plugins/bluetooth.c
endif

if HH2SERIAL_GPS
if HH2SERIAL_GPS_BUILTIN
builtin_modules += hh2serial_gps
builtin_sources += plugins/hh2serial-gps.c
else
plugin_LTLIBRARIES += plugins/hh2serial-gps.la
plugin_objects += $(plugins_hh2serial_gps_la_OBJECTS)
plugins_hh2serial_gps_la_CFLAGS = $(plugin_cflags)
plugins_hh2serial_gps_la_LDFLAGS = $(plugin_ldflags)
endif
endif

if OFONO
builtin_modules += ofono
builtin_sources += plugins/mcc.h plugins/ofono.c
endif

if DUNDEE
builtin_modules += dundee
builtin_sources += plugins/dundee.c
endif

if VPN
builtin_modules += vpn
builtin_sources += plugins/vpn.c

if OPENCONNECT
if OPENCONNECT_BUILTIN
builtin_vpn_modules += openconnect
builtin_vpn_sources += vpn/plugins/openconnect.c
builtin_vpn_source = vpn/plugins/vpn.c vpn/plugins/vpn.h
builtin_vpn_cflags += -DOPENCONNECT=\"@OPENCONNECT@\"
else
vpn_plugin_LTLIBRARIES += vpn/plugins/openconnect.la
vpn_plugin_objects += $(plugins_openconnect_la_OBJECTS)
vpn_plugins_openconnect_la_SOURCES = vpn/plugins/vpn.h vpn/plugins/vpn.c \
						vpn/plugins/openconnect.c
vpn_plugins_openconnect_la_CFLAGS = $(plugin_cflags) \
					-DOPENCONNECT=\"@OPENCONNECT@\" \
					-DSTATEDIR=\""$(statedir)"\" \
					-DSCRIPTDIR=\""$(build_scriptdir)"\"
vpn_plugins_openconnect_la_LDFLAGS = $(plugin_ldflags)
endif
endif

if OPENVPN
if OPENVPN_BUILTIN
builtin_vpn_modules += openvpn
builtin_vpn_sources += vpn/plugins/openvpn.c
builtin_vpn_source = vpn/plugins/vpn.c vpn/plugins/vpn.h
builtin_vpn_cflags += -DOPENVPN=\"@OPENVPN@\"
else
vpn_plugin_LTLIBRARIES += vpn/plugins/openvpn.la
vpn_plugin_objects += $(plugins_openvpn_la_OBJECTS)
vpn_plugins_openvpn_la_SOURCES = vpn/plugins/vpn.h vpn/plugins/vpn.c \
						vpn/plugins/openvpn.c
vpn_plugins_openvpn_la_CFLAGS = $(plugin_cflags) -DOPENVPN=\"@OPENVPN@\" \
					-DSTATEDIR=\""$(statedir)"\" \
					-DSCRIPTDIR=\""$(build_scriptdir)"\"
vpn_plugins_openvpn_la_LDFLAGS = $(plugin_ldflags)
endif
endif

if VPNC
if VPNC_BUILTIN
builtin_vpn_modules += vpnc
builtin_vpn_sources += vpn/plugins/vpnc.c
builtin_vpn_source = vpn/plugins/vpn.c vpn/plugins/vpn.h
builtin_vpn_cflags += -DVPNC=\"@VPNC@\"
else
vpn_plugin_LTLIBRARIES += vpn/plugins/vpnc.la
vpn_plugin_objects += $(plugins_vpnc_la_OBJECTS)
vpn_plugins_vpnc_la_SOURCES = vpn/plugins/vpn.h vpn/plugins/vpn.c \
						vpn/plugins/vpnc.c
vpn_plugins_vpnc_la_CFLAGS = $(plugin_cflags) -DVPNC=\"@VPNC@\" \
					-DSTATEDIR=\""$(statedir)"\" \
					-DSCRIPTDIR=\""$(build_scriptdir)"\"
vpn_plugins_vpnc_la_LDFLAGS = $(plugin_ldflags)
endif
endif

if L2TP
if L2TP_BUILTIN
builtin_vpn_modules += l2tp
builtin_vpn_sources += vpn/plugins/l2tp.c
builtin_vpn_source = vpn/plugins/vpn.c vpn/plugins/vpn.h
builtin_vpn_cflags += -DL2TP=\"@L2TP@\"
else
vpn_plugin_LTLIBRARIES += vpn/plugins/l2tp.la
vpn_plugin_objects += $(plugins_l2tp_la_OBJECTS)
vpn_plugins_l2tp_la_SOURCES = vpn/plugins/vpn.h vpn/plugins/vpn.c \
						vpn/plugins/l2tp.c
vpn_plugins_l2tp_la_CFLAGS = $(plugin_cflags) -DL2TP=\"@L2TP@\" \
					-DSTATEDIR=\""$(statedir)"\" \
					-DSCRIPTDIR=\""$(build_scriptdir)"\"
vpn_plugins_l2tp_la_LDFLAGS = $(plugin_ldflags)
endif
endif

if PPTP
if PPTP_BUILTIN
builtin_vpn_modules += pptp
builtin_vpn_sources += vpn/plugins/pptp.c
builtin_vpn_source = vpn/plugins/vpn.c vpn/plugins/vpn.h
builtin_vpn_cflags += -DPPPD=\"@PPPD@\" -DPPTP=\"@PPTP@\"
else
vpn_plugin_LTLIBRARIES += vpn/plugins/pptp.la
vpn_plugin_objects += $(plugins_pptp_la_OBJECTS)
vpn_plugins_pptp_la_SOURCES = vpn/plugins/vpn.h vpn/plugins/vpn.c \
						vpn/plugins/pptp.c
vpn_plugins_pptp_la_CFLAGS = $(plugin_cflags) -DPPPD=\"@PPPD@\" \
					-DPPTP=\"@PPTP@\" \
					-DSTATEDIR=\""$(statedir)"\" \
					-DSCRIPTDIR=\""$(build_scriptdir)"\"
vpn_plugins_pptp_la_LDFLAGS = $(plugin_ldflags)
endif
endif

if PPTP
script_LTLIBRARIES += scripts/libppp-plugin.la
scripts_libppp_plugin_la_LDFLAGS = $(script_cflags) @DBUS_CFLAGS@
scripts_libppp_plugin_la_LIBADD = @DBUS_LIBS@
else
if L2TP
script_LTLIBRARIES += scripts/libppp-plugin.la
scripts_libppp_plugin_la_LDFLAGS = $(script_cflags) @DBUS_CFLAGS@
scripts_libppp_plugin_la_LIBADD = @DBUS_LIBS@
endif
endif

if VPN
builtin_vpn_sources += $(builtin_vpn_source)
endif
endif

if PACRUNNER
builtin_modules += pacrunner
builtin_sources += plugins/pacrunner.c
endif

if POLKIT
builtin_modules += polkit
builtin_sources += plugins/polkit.c

if DATAFILES
policydir = @POLKIT_DATADIR@

policy_DATA = plugins/net.connman.policy

if VPN
policy_DATA += vpn/net.connman.vpn.policy
endif
endif
endif

if IOSPM
plugin_LTLIBRARIES += plugins/iospm.la
plugin_objects += $(plugins_iospm_la_OBJECTS)
plugins_iospm_la_CFLAGS = $(plugin_cflags)
plugins_iospm_la_LDFLAGS = $(plugin_ldflags)
endif

if OPENCONNECT
script_PROGRAMS += scripts/openconnect-script

scripts_openconnect_script_LDADD = @DBUS_LIBS@
else
if VPNC
script_PROGRAMS += scripts/openconnect-script

scripts_openconnect_script_LDADD = @DBUS_LIBS@
endif
endif

if OPENVPN
script_PROGRAMS += scripts/openvpn-script

scripts_openvpn_script_LDADD = @DBUS_LIBS@
endif

if NMCOMPAT
builtin_modules += nmcompat
builtin_sources += plugins/nmcompat.c
endif

if TIST
if TIST_BUILTIN
builtin_modules += tist
builtin_sources += plugins/tist.c
else
plugin_LTLIBRARIES += plugins/tist.la
plugin_objects += $(plugins_tist_la_OBJECTS)
plugins_tist_la_CFLAGS = $(plugin_cflags)
plugins_tist_la_LDFLAGS = $(plugin_ldflags)
endif
endif

if SESSION_POLICY_LOCAL
if SESSION_POLICY_LOCAL_BUILTIN
builtin_modules += session_policy_local
builtin_sources += plugins/session_policy_local.c
else
plugin_LTLIBRARIES += plugins/session_policy_local.la
plugin_objects += $(plugins_session_policy_local_la_OBJECTS)
plugins_session_policy_local_la_CFLAGS = $(plugin_cflags) \
				-DSTORAGEDIR=\""$(storagedir)\""
plugins_session_policy_local_la_LDFLAGS = $(plugin_ldflags)
endif
endif

EXTRA_DIST += plugins/polkit.policy

plugins/net.connman.policy: plugins/polkit.policy
if POLKIT
	$(AM_V_GEN)cp $< $@
endif

EXTRA_DIST += vpn/vpn-polkit.policy

if VPN
vpn/net.connman.vpn.policy: vpn/vpn-polkit.policy
if POLKIT
	$(AM_V_GEN)cp $< $@
endif
endif
