diff --git a/.gitignore b/.gitignore index 88156ab5..880497d4 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,4 @@ unit/test-wsc unit/test-eap-mschapv2 unit/test-eap-sim test-suite.log +src/builtin.h diff --git a/Makefile.am b/Makefile.am index dc944cf7..839f30dc 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3,6 +3,9 @@ AM_MAKEFLAGS = --no-print-directory ACLOCAL_AMFLAGS = -I build-aux +builtin_modules = +builtin_sources = + noinst_LTLIBRARIES = ell/libell-internal.la dbusdir = @DBUS_CONFDIR@/dbus-1/system.d @@ -90,6 +93,8 @@ src_iwd_SOURCES = src/main.c linux/nl80211.h \ src/iwd.h src/eap-sim.c src/eap-aka.c \ src/simutil.h src/simutil.c \ src/ap.h src/ap.c + $(builtin_sources) + src_iwd_LDADD = ell/libell-internal.la -ldl dist_sysconf_DATA = src/iwd.conf @@ -246,7 +251,7 @@ if BUILD_DOCS dist_man_MANS = $(manual_pages) endif -EXTRA_DIST = $(manual_pages:.1=.txt) +EXTRA_DIST = src/genbuiltin $(manual_pages:.1=.txt) AM_CFLAGS = -fvisibility=hidden @@ -254,7 +259,7 @@ MAINTAINERCLEANFILES = Makefile.in configure config.h.in aclocal.m4 DISTCLEANFILES = $(BUILT_SOURCES) $(unit_tests) $(manual_pages) -BUILT_SOURCES = ell/internal +BUILT_SOURCES = ell/internal src/builtin.h ell/internal: Makefile $(AM_V_at)$(MKDIR_P) ell @@ -283,3 +288,6 @@ ell/unit/test_data: Makefile maintainer-clean-local: -rm -rf build-aux ell + +src/builtin.h: src/genbuiltin config.status + $(AM_V_GEN)$(srcdir)/src/genbuiltin $(builtin_modules) > $@ diff --git a/src/genbuiltin b/src/genbuiltin new file mode 100755 index 00000000..8b69814e --- /dev/null +++ b/src/genbuiltin @@ -0,0 +1,17 @@ +#!/bin/sh + +for i in $* +do + echo "extern struct l_plugin_desc __iwd_builtin_$i;" +done + +echo +echo "static struct l_plugin_desc *__iwd_builtin[] = {" + +for i in $* +do + echo " &__iwd_builtin_$i," +done + +echo " NULL" +echo "};"