summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Makefile.am2
-rw-r--r--configure.ac4
-rw-r--r--drivers/Makefile.am28
-rw-r--r--plugins/Makefile.am2
-rw-r--r--src/Makefile.am1
-rw-r--r--src/plugin.c17
7 files changed, 47 insertions, 8 deletions
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);