From 8452a7f34907472c5e21c334673afd10df409eef Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Wed, 31 Oct 2018 19:58:10 +0100 Subject: [PATCH] build: Add support for internal and external Embedded Linux library --- .gitignore | 7 +- Makefile.am | 138 ++++++++++++++++++++++--------- configure.ac | 27 +++--- drivers/mbimmodem/mbim-message.c | 1 + 4 files changed, 114 insertions(+), 59 deletions(-) diff --git a/.gitignore b/.gitignore index e5c6e1ef..3601f1ec 100644 --- a/.gitignore +++ b/.gitignore @@ -22,8 +22,7 @@ ltmain.sh missing stamp-h1 autom4te.cache -test-driver -test-suite.log +ell ofono.pc include/ofono @@ -48,9 +47,11 @@ unit/test-rilmodem-cb unit/test-rilmodem-cs unit/test-rilmodem-gprs unit/test-rilmodem-sms +unit/test-mbim unit/test-*.log unit/test-*.trs -unit/test-mbim +test-driver +test-suite.log tools/huawei-audio tools/auto-enable diff --git a/Makefile.am b/Makefile.am index e8e4ed95..b00767cf 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3,6 +3,54 @@ AM_MAKEFLAGS = --no-print-directory noinst_LTLIBRARIES = +if EXTERNAL_ELL +ell_cflags = @ELL_CFLAGS@ +ell_ldadd = @ELL_LIBS@ +ell_dependencies = +ell_built_sources = +else +ell_cflags = +ell_ldadd = ell/libell-internal.la +ell_dependencies = $(ell_ldadd) +ell_built_sources = ell/internal ell/ell.h + +noinst_LTLIBRARIES += ell/libell-internal.la + +ell_headers = ell/util.h \ + ell/test.h \ + ell/strv.h \ + ell/utf8.h \ + ell/queue.h \ + ell/main.h \ + ell/idle.h \ + ell/signal.h \ + ell/io.h \ + ell/log.h \ + ell/checksum.h \ + ell/random.h \ + ell/uuid.h \ + ell/file.h + +ell_sources = ell/private.h \ + ell/missing.h \ + ell/util.c \ + ell/test.c \ + ell/strv.c \ + ell/utf8.c \ + ell/queue.c \ + ell/main.c \ + ell/idle.c \ + ell/signal.c \ + ell/io.c \ + ell/log.c \ + ell/checksum.c \ + ell/random.c \ + ell/uuid.c \ + ell/file.c + +ell_libell_internal_la_SOURCES = $(ell_headers) $(ell_sources) +endif + pkginclude_HEADERS = include/log.h include/plugin.h include/history.h \ include/dbus.h include/modem.h include/types.h \ include/call-barring.h include/call-forwarding.h \ @@ -243,6 +291,31 @@ builtin_modules += gobi builtin_sources += plugins/gobi.c endif +if MBIMMODEM +mbim_sources = drivers/mbimmodem/mbim.h \ + drivers/mbimmodem/mbim.c \ + drivers/mbimmodem/mbim-desc.h \ + drivers/mbimmodem/mbim-desc.c \ + drivers/mbimmodem/mbim-message.h \ + drivers/mbimmodem/mbim-message.c + +builtin_modules += mbimmodem +builtin_sources += $(mbim_sources) \ + drivers/mbimmodem/util.h \ + drivers/mbimmodem/util.c \ + drivers/mbimmodem/mbimmodem.h \ + drivers/mbimmodem/mbimmodem.c \ + drivers/mbimmodem/devinfo.c \ + drivers/mbimmodem/sim.c \ + drivers/mbimmodem/network-registration.c \ + drivers/mbimmodem/sms.c \ + drivers/mbimmodem/gprs.c \ + drivers/mbimmodem/gprs-context.c + +builtin_modules += mbim +builtin_sources += plugins/mbim.c +endif + if ATMODEM builtin_modules += atmodem builtin_sources += drivers/atmodem/atmodem.h \ @@ -610,36 +683,6 @@ builtin_sources += plugins/push-notification.c builtin_modules += allowed_apns builtin_sources += plugins/allowed-apns.c -if ELL -builtin_cflags += @ELL_CFLAGS@ -builtin_libadd += @ELL_LIBS@ - -if MBIMMODEM -mbim_sources = drivers/mbimmodem/mbim.h \ - drivers/mbimmodem/mbim.c \ - drivers/mbimmodem/mbim-desc.h \ - drivers/mbimmodem/mbim-desc.c \ - drivers/mbimmodem/mbim-message.h \ - drivers/mbimmodem/mbim-message.c - -builtin_modules += mbimmodem -builtin_sources += $(mbim_sources) \ - drivers/mbimmodem/util.h \ - drivers/mbimmodem/util.c \ - drivers/mbimmodem/mbimmodem.h \ - drivers/mbimmodem/mbimmodem.c \ - drivers/mbimmodem/devinfo.c \ - drivers/mbimmodem/sim.c \ - drivers/mbimmodem/network-registration.c \ - drivers/mbimmodem/sms.c \ - drivers/mbimmodem/gprs.c \ - drivers/mbimmodem/gprs-context.c - -builtin_modules += mbim -builtin_sources += plugins/mbim.c -endif -endif - sbin_PROGRAMS = src/ofonod src_ofonod_SOURCES = $(builtin_sources) $(gatchat_sources) src/ofono.ver \ @@ -671,13 +714,15 @@ src_ofonod_SOURCES = $(builtin_sources) $(gatchat_sources) src/ofono.ver \ src/netmon.c src/lte.c src/ims.c \ src/netmonagent.c src/netmonagent.h -src_ofonod_LDADD = gdbus/libgdbus-internal.la $(builtin_libadd) \ +src_ofonod_LDADD = gdbus/libgdbus-internal.la $(builtin_libadd) $(ell_ldadd) \ @GLIB_LIBS@ @DBUS_LIBS@ -ldl src_ofonod_LDFLAGS = -Wl,--export-dynamic \ -Wl,--version-script=$(srcdir)/src/ofono.ver -BUILT_SOURCES = $(local_headers) src/builtin.h +src_ofonod_DEPENDENCIES = $(ell_dependencies) + +BUILT_SOURCES = $(local_headers) $(ell_built_sources) src/builtin.h CLEANFILES = $(BUILT_SOURCES) $(rules_DATA) @@ -689,7 +734,7 @@ else build_plugindir = $(plugindir) endif -AM_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ $(builtin_cflags) \ +AM_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ $(ell_cflags) $(builtin_cflags) \ -DOFONO_PLUGIN_BUILTIN \ -DPLUGINDIR=\""$(build_plugindir)"\" @@ -847,18 +892,12 @@ unit_objects = unit_tests = unit/test-common unit/test-util unit/test-idmap \ unit/test-simutil unit/test-stkutil \ unit/test-sms unit/test-cdmasms \ + unit/test-mbim \ unit/test-rilmodem-cs \ unit/test-rilmodem-sms \ unit/test-rilmodem-cb \ unit/test-rilmodem-gprs -if ELL -if MBIMMODEM -unit_tests += unit/test-mbim -endif -endif - - noinst_PROGRAMS = $(unit_tests) \ unit/test-sms-root unit/test-mux unit/test-caif @@ -949,7 +988,7 @@ unit_objects += $(unit_test_rilmodem_gprs_OBJECTS) unit_test_mbim_SOURCES = unit/test-mbim.c \ drivers/mbimmodem/mbim-message.c \ drivers/mbimmodem/mbim.c -unit_test_mbim_LDADD = @ELL_LIBS@ +unit_test_mbim_LDADD = $(ell_ldadd) unit_objects += $(unit_test_mbim_OBJECTS) TESTS = $(unit_tests) @@ -1050,5 +1089,22 @@ include/ofono/%.h: $(abs_top_srcdir)/include/%.h $(AM_V_at)$(MKDIR_P) include/ofono $(AM_V_GEN)$(LN_S) $< $@ +ell/internal: Makefile + $(AM_V_at)$(MKDIR_P) ell + $(AM_V_GEN)for f in $(ell_headers) $(ell_sources) ; do \ + if [ ! -f $$f ] ; then \ + $(LN_S) -t ell -f $(abs_srcdir)/../ell/$$f ; \ + fi \ + done > $@ + +ell/ell.h: Makefile + $(AM_V_at)echo -n > $@ + $(AM_V_GEN)for f in $(ell_headers) ; do \ + echo "#include <$$f>" >> $@ ; \ + done + +maintainer-clean-local: + -rm -rf ell + clean-local: @$(RM) -rf include/ofono diff --git a/configure.ac b/configure.ac index 5a8fb6f5..026c9a6a 100644 --- a/configure.ac +++ b/configure.ac @@ -160,6 +160,11 @@ AC_ARG_ENABLE(qmimodem, AC_HELP_STRING([--disable-qmimodem], [enable_qmimodem=${enableval}]) AM_CONDITIONAL(QMIMODEM, test "${enable_qmimodem}" != "no") +AC_ARG_ENABLE(mbimmodem, AC_HELP_STRING([--disable-mbimmodem], + [disable MBIM modem support]), + [enable_mbimmodem=${enableval}]) +AM_CONDITIONAL(MBIMMODEM, test "${enable_mbimmodem}" != "no") + AC_ARG_ENABLE(bluetooth, AC_HELP_STRING([--disable-bluetooth], [disable BlueZ 4 and BlueZ 5 plugins support]), [enable_bluetooth=${enableval}]) @@ -207,24 +212,16 @@ AC_ARG_ENABLE(upower, AC_HELP_STRING([--disable-upower], [enable_upower=${enableval}]) AM_CONDITIONAL(UPOWER, test "${enable_power}" != "no") -AC_ARG_ENABLE(mbimmodem, AC_HELP_STRING([--enable-mbimmodem], - [enable MBIM based modem support]), - [enable_mbimmodem=${enableval}]) - -AC_ARG_ENABLE(ell, AC_HELP_STRING([--enable-ell], - [enable support for ell]), - [enable_ell=${enableval}]) - -if (test "${enable_ell}" = "yes"); then - AC_DEFINE(HAVE_ELL, 1, [Defined if Ell is enabled]) - PKG_CHECK_MODULES(ELL, ell >= 0.2, dummy=yes, - AC_MSG_ERROR(ell library >= 0.2 is required)) +AC_ARG_ENABLE([external_ell], AC_HELP_STRING([--enable-external-ell], + [enable external Embedded Linux library]), + [enable_external_ell=${enableval}]) +if (test "${enable_external_ell}" = "yes"); then + PKG_CHECK_MODULES(ELL, ell >= 0.12, dummy=yes, + AC_MSG_ERROR(Embedded Linux library >= 0.12 is required)) AC_SUBST(ELL_CFLAGS) AC_SUBST(ELL_LIBS) fi - -AM_CONDITIONAL(MBIMMODEM, test "${enable_ell}" != "no" && test "${enable_mbimmodem}" = "yes") -AM_CONDITIONAL(ELL, test "${enable_ell}" != "no") +AM_CONDITIONAL(EXTERNAL_ELL, test "${enable_external_ell}" = "yes") AC_ARG_ENABLE(datafiles, AC_HELP_STRING([--disable-datafiles], [do not install configuration and data files]), diff --git a/drivers/mbimmodem/mbim-message.c b/drivers/mbimmodem/mbim-message.c index 9b5bd4e2..07f6cd2d 100644 --- a/drivers/mbimmodem/mbim-message.c +++ b/drivers/mbimmodem/mbim-message.c @@ -23,6 +23,7 @@ #include #endif +#include #include #include