From 0acaee5e1e398eff591e302583db9aa640e16fea Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Sun, 10 May 2009 22:44:37 -0700 Subject: [PATCH] Add directory for driver plugins --- .gitignore | 1 + Makefile.am | 2 +- configure.ac | 4 ++-- drivers/Makefile.am | 28 ++++++++++++++++++++++++++++ plugins/Makefile.am | 2 +- src/Makefile.am | 1 + src/plugin.c | 17 +++++++++++++---- 7 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 drivers/Makefile.am diff --git a/.gitignore b/.gitignore index 7e04fdf2..eb8edd09 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,4 @@ src/ofonod src/ofono.exp src/ofono.ver plugins/builtin.h +drivers/builtin.h diff --git a/Makefile.am b/Makefile.am index e125f4bf..07cf8166 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,5 @@ -SUBDIRS = gdbus gatchat include plugins src doc +SUBDIRS = gdbus gatchat include plugins drivers src doc DISTCHECK_CONFIGURE_FLAGS = --disable-datafiles diff --git a/configure.ac b/configure.ac index adc5b574..9387c30c 100644 --- a/configure.ac +++ b/configure.ac @@ -86,5 +86,5 @@ AC_ARG_ENABLE(datafiles, AC_HELP_STRING([--disable-datafiles], AM_CONDITIONAL(DATAFILES, test "${enable_datafiles}" != "no") AC_OUTPUT(Makefile gdbus/Makefile gatchat/Makefile - include/Makefile include/version.h - src/Makefile plugins/Makefile doc/Makefile) + include/Makefile include/version.h src/Makefile + plugins/Makefile drivers/Makefile doc/Makefile) diff --git a/drivers/Makefile.am b/drivers/Makefile.am new file mode 100644 index 00000000..0791a1a2 --- /dev/null +++ b/drivers/Makefile.am @@ -0,0 +1,28 @@ + +builtin_modules = +builtin_sources = +builtin_cflags = + +noinst_LTLIBRARIES = libbuiltin.la + +libbuiltin_la_SOURCES = $(builtin_sources) +libbuiltin_la_LDFLAGS = +libbuiltin_la_CFLAGS = $(AM_CFLAGS) $(builtin_cflags) -DOFONO_PLUGIN_BUILTIN + +BUILT_SOURCES = builtin.h + +nodist_libbuiltin_la_SOURCES = $(BUILT_SOURCES) + +CLEANFILES = $(BUILT_SOURCES) + +MAINTAINERCLEANFILES = Makefile.in + +builtin.h: + echo "" > $@ + list='$(builtin_modules)'; for i in $$list; \ + do echo "extern struct ofono_plugin_desc __ofono_builtin_$$i;" >> $@; done + echo "" >> $@ + echo "static struct ofono_plugin_desc *__ofono_drivers[] = {" >> $@ + list='$(builtin_modules)'; for i in $$list; \ + do echo "&__ofono_builtin_$$i," >> $@; done + echo "NULL };" >> $@ diff --git a/plugins/Makefile.am b/plugins/Makefile.am index e2ad41f0..b65bc731 100644 --- a/plugins/Makefile.am +++ b/plugins/Makefile.am @@ -22,7 +22,7 @@ builtin.h: list='$(builtin_modules)'; for i in $$list; \ do echo "extern struct ofono_plugin_desc __ofono_builtin_$$i;" >> $@; done echo "" >> $@ - echo "static struct ofono_plugin_desc *__ofono_builtin[] = {" >> $@ + echo "static struct ofono_plugin_desc *__ofono_plugins[] = {" >> $@ list='$(builtin_modules)'; for i in $$list; \ do echo "&__ofono_builtin_$$i," >> $@; done echo "NULL };" >> $@ diff --git a/src/Makefile.am b/src/Makefile.am index 91449599..15285c5c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -14,6 +14,7 @@ ofonod_SOURCES = main.c ofono.h log.c plugin.c \ call-settings.c call-waiting.c call-forwarding.c call-meter.c ofonod_LDADD = $(top_builddir)/plugins/libbuiltin.la \ + $(top_builddir)/drivers/libbuiltin.la \ @GDBUS_LIBS@ @GLIB_LIBS@ @GTHREAD_LIBS@ -ldl ofonod_LDFLAGS = -Wl,--export-dynamic -Wl,--version-script=ofono.ver diff --git a/src/plugin.c b/src/plugin.c index 27c2a929..017ebad5 100644 --- a/src/plugin.c +++ b/src/plugin.c @@ -89,6 +89,7 @@ static gboolean check_plugin(struct ofono_plugin_desc *desc, } #include "plugins/builtin.h" +#include "drivers/builtin.h" int __ofono_plugin_init(const char *pattern, const char *exclude) { @@ -100,12 +101,20 @@ int __ofono_plugin_init(const char *pattern, const char *exclude) DBG(""); - for (i = 0; __ofono_builtin[i]; i++) { - if (check_plugin(__ofono_builtin[i], - pattern, exclude) == FALSE) + for (i = 0; __ofono_plugins[i]; i++) { + if (check_plugin(__ofono_plugins[i], + pattern, exclude) == FALSE) continue; - add_plugin(NULL, __ofono_builtin[i]); + add_plugin(NULL, __ofono_plugins[i]); + } + + for (i = 0; __ofono_drivers[i]; i++) { + if (check_plugin(__ofono_drivers[i], + pattern, exclude) == FALSE) + continue; + + add_plugin(NULL, __ofono_drivers[i]); } dir = g_dir_open(PLUGINDIR, 0, NULL);