
ACLOCAL_AMFLAGS = -I m4

AM_MAKEFLAGS = --no-print-directory

pkgincludedir = ${includedir}/near

pkginclude_HEADERS = include/types.h include/log.h include/plugin.h \
			include/tag.h include/adapter.h include/ndef.h \
			include/tlv.h include/setting.h include/device.h \
			include/nfc_copy.h include/snep.h

nodist_include_HEADERS = include/version.h

noinst_HEADERS = include/dbus.h

local_headers = $(foreach file,$(pkginclude_HEADERS) $(nodist_include_HEADERS) \
			$(noinst_HEADERS), include/near/$(notdir $(file)))

gdbus_sources = gdbus/gdbus.h gdbus/mainloop.c gdbus/watch.c \
				gdbus/object.c gdbus/client.c gdbus/polkit.c

plugin_LTLIBRARIES =

plugin_objects =

unit_objects =

builtin_modules =
builtin_sources =
builtin_cflags =
builtin_libadd =

bin_PROGRAMS =

pkglibexecdir = ${libexecdir}/nfc
pkglibexec_PROGRAMS = src/neard

src_neard_SOURCES = $(gdbus_sources) $(gweb_sources) $(builtin_sources) \
			src/main.c src/error.c src/ndef-private.h src/near.h src/log.c \
			src/dbus.c src/manager.c src/adapter.c src/device.c \
			src/tag.c src/plugin.c src/netlink.c src/ndef.c \
			src/tlv.c src/bluetooth.c src/agent.c src/snep.c

src_neard_LDADD = $(builtin_libadd) ${GLIB_LIBS} ${DBUS_LIBS} ${NETLINK_LIBS} -ldl

src_neard_LDFLAGS = -Wl,--export-dynamic

src_neard_DEPENDENCIES= src/neard.service

BUILT_SOURCES = src/builtin.h

AM_CPPFLAGS = ${GLIB_CFLAGS} ${DBUS_CFLAGS} ${NETLINK_CFLAGS} \
		-DNEAR_PLUGIN_BUILTIN -DPLUGINDIR=\""$(plugindir)"\" \
		-DCONFIGDIR=\""$(configdir)\"" \
		-I$(builddir)/include -I$(builddir)/src -I$(srcdir)/gdbus -I$(srcdir)/src

AM_CFLAGS = ${builtin_cflags} -I$(builddir)/include -I$(builddir)/src -I$(srcdir)/gdbus

if SE

se_plugin_LTLIBRARIES =

se_plugin_objects =

builtin_se_modules =
builtin_se_sources =
builtin_se_libadd =
builtin_se_cflags =

pkglibexec_PROGRAMS += se/seeld

se_seeld_SOURCES = $(gdbus_sources) $(builtin_se_sources) \
			src/log.c src/dbus.c src/error.c src/plugin.c \
			se/main.c se/seel.h se/manager.c se/manager.h \
			se/se.c se/driver.c se/driver.h se/apdu.c \
			se/channel.c se/ace.c

se_seeld_LDADD = $(builtin_se_libadd) @GLIB_LIBS@ @DBUS_LIBS@ -ldl

se_seeld_LDFLAGS = -Wl,--export-dynamic

BUILT_SOURCES += se/builtin.h
endif

src_neard_CFLAGS = ${builtin_cflags} -I$(builddir)/include -I$(builddir)/src -I$(srcdir)/gdbus

src_neard_CPPFLAGS = ${GLIB_CFLAGS} ${DBUS_CFLAGS} ${NETLINK_CFLAGS} \
			-DNEAR_PLUGIN_BUILTIN \
			-DPLUGINDIR=\""$(plugindir)"\" \
			-DCONFIGDIR=\""$(configdir)\"" \
			-I$(builddir)/include -I$(builddir)/src -I$(srcdir)/gdbus

if SE
src_seeld_CFLAGS = ${builtin_se_cflags} -I$(builddir)/include -I$(builddir)/src -I$(srcdir)/gdbus

se_seeld_CPPFLAGS = ${GLIB_CFLAGS} ${DBUS_CFLAGS} ${NETLINK_CFLAGS} \
					-DNEAR_PLUGIN_BUILTIN \
					-DPLUGINDIR=\""$(build_se_plugindir)"\" \
					-DCONFIGDIR=\""$(configdir)\"" \
					-I$(builddir)/se
endif

CLEANFILES = src/builtin.h se/builtin.h $(local_headers)

configdir = ${sysconfdir}/neard

dist_noinst_DATA = src/main.conf

dbusdir = ${sysconfdir}/dbus-1/system.d/

dist_dbus_DATA = src/org.neard.conf

if SE
dist_dbus_DATA += se/org.neard.se.conf
endif

if MAINTAINER_MODE

if SE
build_se_plugindir = $(abs_top_srcdir)/se/plugins/.libs
endif

build_plugindir = $(abs_top_srcdir)/plugins/.libs

else

if SE
build_se_plugindir = $(se_plugindir)
endif

build_plugindir = $(plugindir)
endif

doc_files = doc/tag-api.txt doc/device-api.txt doc/adapter-api.txt \
		doc/agent-api.txt doc/phdc-api.txt \
		doc/secureelement-api.txt doc/se-manager-api.txt

EXTRA_DIST = src/genbuiltin $(doc_files)

dist_man_MANS = doc/neard.8 doc/neard.conf.5 doc/nfctool.1

test_scripts = test/test-adapter test/test-device \
		test/test-tag test/monitor-near test/bt-handover \
		test/handover-agent test/phdc-simple-manager \
		test/neardutils.py

if SYSTEMD
systemdsystemunitdir = ${SYSTEMD_SYSTEMUNITDIR}
systemdsystemunit_DATA = src/neard.service
endif

EXTRA_DIST += src/neard.service.in
CLEANFILES += src/neard.service

if TEST
testdir = $(pkglibdir)/test
test_SCRIPTS = $(test_scripts)
endif

if TOOLS
bin_PROGRAMS += tools/nfctool/nfctool tools/nciattach

noinst_PROGRAMS = tools/snep-send

tools_snep_send_SOURCES = $(gdbus_sources) src/log.c src/dbus.c \
					src/bluetooth.c src/ndef.c \
					tools/snep-send.c src/error.c \
					src/agent.c
tools_snep_send_LDADD = ${GLIB_LIBS} ${DBUS_LIBS}

tools_nfctool_nfctool_SOURCES = tools/nfctool/main.c \
					tools/nfctool/nfctool.h \
					tools/nfctool/adapter.h \
					tools/nfctool/adapter.c \
					tools/nfctool/netlink.h \
					tools/nfctool/netlink.c \
					tools/nfctool/sniffer.h \
					tools/nfctool/sniffer.c \
					tools/nfctool/llcp-decode.h \
					tools/nfctool/llcp-decode.c \
					tools/nfctool/snep-decode.h \
					tools/nfctool/snep-decode.c \
					tools/nfctool/ndef-decode.h \
					tools/nfctool/ndef-decode.c \
					tools/nfctool/display.h \
					tools/nfctool/display.c

tools_nfctool_nfctool_LDADD = ${GLIB_LIBS} ${NETLINK_LIBS}
endif

tools_nfctool_nfctool_CPPFLAGS = ${GLIB_CFLAGS} ${DBUS_CFLAGS} ${NETLINK_CFLAGS} \
			-DNEAR_PLUGIN_BUILTIN \
			-DPLUGINDIR=\""$(plugindir)"\" \
			-DCONFIGDIR=\""$(configdir)\"" \
			-I$(builddir)/include -I$(builddir)/src -I$(srcdir)/gdbus

tools_nciattach_SOURCES = tools/nciattach.c

unit_tests = unit/test-ndef-parse unit/test-ndef-build unit/test-snep-read

unit_test_ndef_parse_SOURCES = $(gdbus_sources) src/log.c src/dbus.c \
					src/error.c src/agent.c \
					src/bluetooth.c src/ndef.c \
					unit/test-ndef-parse.c
unit_test_ndef_parse_LDADD = ${GLIB_LIBS} ${DBUS_LIBS}

unit_test_ndef_build_SOURCES = $(gdbus_sources) src/log.c src/dbus.c \
					src/error.c src/agent.c \
					src/bluetooth.c src/ndef.c \
					unit/test-ndef-build.c
unit_test_ndef_build_LDADD = ${GLIB_LIBS} ${DBUS_LIBS}

unit_test_snep_read_SOURCES = $(gdbus_sources) src/log.c src/dbus.c \
					src/error.c src/agent.c \
					src/bluetooth.c src/ndef.c src/snep.c \
					unit/test-snep-read.c unit/test-utils.c \
					unit/test-utils.h
unit_test_snep_read_LDADD = ${GLIB_LIBS} ${DBUS_LIBS}

check_PROGRAMS = $(unit_tests)

TESTS = $(unit_tests)

include Makefile.plugins

EXTRA_DIST += $(test_scripts)

pkgconfigdir = $(libdir)/pkgconfig

pkgconfig_DATA = neard.pc

DISTCHECK_CONFIGURE_FLAGS = --enable-tools --enable-ese --disable-systemd

DISTCLEANFILES = $(pkgconfig_DATA)

MAINTAINERCLEANFILES = Makefile.in \
	aclocal.m4 configure config.h.in config.sub config.guess \
	ltmain.sh depcomp compile missing install-sh mkinstalldirs

SED_PROCESS = $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
		$(SED) -e 's,@pkglibexecdir\@,$(pkglibexecdir),g' \
		< $< > $@

%.service: %.service.in Makefile
	$(SED_PROCESS)

src/plugin.$(OBJEXT): src/builtin.h

src/builtin.h: src/genbuiltin $(builtin_sources)
	$(AM_V_GEN)$(srcdir)/src/genbuiltin $(builtin_modules) > $@

se/plugin.$(OBJEXT): se/builtin.h

se/builtin.h: src/genbuiltin $(builtin_se_sources)
	$(AM_V_GEN)$(srcdir)/src/genbuiltin $(builtin_se_modules) > $@

$(src_neard_OBJECTS) \
$(tools_nfctool_nfctool_OBJECTS) \
$(plugin_objects) \
$(se_seeld_OBJECTS) \
$(unit_test_ndef_parse_OBJECTS) \
$(unit_test_ndef_build_OBJECTS) \
$(unit_test_snep-read_OBJECTS) \
$(tools_snep_send_OBJECTS): $(local_headers)

include/near/version.h: include/version.h
	$(AM_V_at)$(MKDIR_P) include/near
	$(AM_V_GEN)$(LN_S) $(abs_top_builddir)/$< $@

include/near/%.h: $(abs_top_srcdir)/include/%.h
	$(AM_V_at)$(MKDIR_P) include/near
	$(AM_V_GEN)$(LN_S) $< $@

clean-local:
	@$(RM) -rf include/near
