[build] Create a libbsc.a as noinst_LIBRARY, link bsc_hack and tests against it

Link the tests against the libbsc.a to avoid most of the breakage
when creating new symbols.
diff --git a/configure.in b/configure.in
index edcbe3b..8076c34 100644
--- a/configure.in
+++ b/configure.in
@@ -7,6 +7,7 @@
 AC_PROG_MAKE_SET
 AC_PROG_CC
 AC_PROG_INSTALL
+AC_PROG_RANLIB
 AM_PROG_LEX
 
 dnl checks for libraries
diff --git a/include/openbsc/Makefile.am b/include/openbsc/Makefile.am
index 7c848b3..93e3c7f 100644
--- a/include/openbsc/Makefile.am
+++ b/include/openbsc/Makefile.am
@@ -2,4 +2,4 @@
 		 gsm_subscriber.h linuxlist.h msgb.h select.h tlv.h gsm_04_11.h \
 		 timer.h misdn.h chan_alloc.h telnet_interface.h paging.h \
 		 subchan_demux.h trau_frame.h e1_input.h trau_mux.h signal.h \
-		 gsm_utils.h
+		 gsm_utils.h ipaccess.h
diff --git a/src/Makefile.am b/src/Makefile.am
index f89836c..412e1e3 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -2,13 +2,16 @@
 AM_CFLAGS=-Wall
 
 sbin_PROGRAMS = bsc_hack bs11_config ipaccess-find
+noinst_LIBRARIES = libbsc.a
 
-bsc_hack_SOURCES = bsc_hack.c abis_rsl.c abis_nm.c gsm_04_08.c gsm_data.c \
+libbsc_a_SOURCES = abis_rsl.c abis_nm.c gsm_04_08.c gsm_data.c \
 		gsm_subscriber.c msgb.c select.c chan_alloc.c timer.c debug.c db.c \
 		gsm_04_11.c telnet_interface.c telnet_parser.l subchan_demux.c \
 		trau_frame.c trau_mux.c paging.c e1_config.c e1_input.c tlv_parser.c \
 		input/misdn.c input/ipaccess.c signal.c gsm_utils.c
-bsc_hack_LDADD = -ldl -ldbi
+
+bsc_hack_SOURCES = bsc_hack.c
+bsc_hack_LDADD = libbsc.a -ldl -ldbi
 
 bs11_config_SOURCES = bs11_config.c abis_nm.c gsm_data.c msgb.c debug.c select.c timer.c rs232.c tlv_parser.c
 
diff --git a/tests/gsm0408/Makefile.am b/tests/gsm0408/Makefile.am
index 59a9599..51463dc 100644
--- a/tests/gsm0408/Makefile.am
+++ b/tests/gsm0408/Makefile.am
@@ -1,4 +1,5 @@
 INCLUDES = $(all_includes) -I$(top_srcdir)/include
 noinst_PROGRAMS = gsm0408_test
 
-gsm0408_test_SOURCES = gsm0408_test.c $(top_srcdir)/src/gsm_04_08.c $(top_srcdir)/src/debug.c
+gsm0408_test_SOURCES = gsm0408_test.c
+gsm0408_test_LDADD = $(top_builddir)/src/libbsc.a -ldbi
diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c
index 8b3a376..c99766a 100644
--- a/tests/gsm0408/gsm0408_test.c
+++ b/tests/gsm0408/gsm0408_test.c
@@ -68,19 +68,5 @@
 /*
  * Stubs to compile and link
  */
-void rsl_data_request(void) {}
-void gsm0411_rcv_sms(void) {}
-void schedule_timer(void) {}
-void del_timer(void) {}
-void subscr_get_by_tmsi(void) {}
-void subscr_update(void) {}
-void subscr_put(void) {}
-void db_subscriber_assoc_imei(void) {}
-void db_subscriber_alloc_tmsi(void) {}
-void db_create_subscriber(void) {}
-void rsl_chan_release(void) {}
-void msgb_alloc(void) {}
-void gsm0411_send_sms(void) {}
-void lchan_auto_release(void) {}
-void page_request_stop(void) {}
-void paging_request_stop(void) {}
+void input_event(void) {}
+void nm_state_event(void) {}
diff --git a/tests/sms/Makefile.am b/tests/sms/Makefile.am
index d2b4736..23df871 100644
--- a/tests/sms/Makefile.am
+++ b/tests/sms/Makefile.am
@@ -1,15 +1,5 @@
 INCLUDES = $(all_includes) -I$(top_srcdir)/include
 noinst_PROGRAMS = sms_test
 
-sms_test_SOURCES = sms_test.c $(top_srcdir)/src/input/misdn.c \
-		   $(top_srcdir)/src/abis_rsl.c $(top_srcdir)/src/abis_nm.c \
-		   $(top_srcdir)/src/gsm_04_08.c $(top_srcdir)/src/gsm_data.c \
-		$(top_srcdir)/src/gsm_subscriber.c $(top_srcdir)/src/msgb.c \
-		$(top_srcdir)/src/select.c $(top_srcdir)/src/chan_alloc.c \
-		$(top_srcdir)/src/timer.c $(top_srcdir)/src/debug.c \
-		$(top_srcdir)/src/db.c $(top_srcdir)/src/gsm_04_11.c \
-		$(top_srcdir)/src/paging.c $(top_srcdir)/src/e1_input.c \
-		$(top_srcdir)/src/e1_config.c $(top_srcdir)/src/subchan_demux.c \
-		$(top_srcdir)/src/trau_mux.c $(top_srcdir)/src/trau_frame.c
-
-sms_test_LDADD = -ldl -ldbi
+sms_test_SOURCES = sms_test.c
+sms_test_LDADD = $(top_builddir)/src/libbsc.a -ldl -ldbi
diff --git a/tests/sms/sms_test.c b/tests/sms/sms_test.c
index d850f3b..fe1c346 100644
--- a/tests/sms/sms_test.c
+++ b/tests/sms/sms_test.c
@@ -91,3 +91,4 @@
 
 /* stubs */
 void input_event(void) {}
+void nm_state_event(void) {}